@onside/install-widget 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist-lib/{AndroidPlatformModal-B8lt-w-V.js → AndroidPlatformModal-2Ykjo2V7.js} +14 -13
- package/dist-lib/AndroidPlatformModal-DTglyxUG.cjs +1 -0
- package/dist-lib/{Dialog-DXOEeh8t.js → Dialog-yEP-7Deb.js} +1 -1
- package/dist-lib/{Dialog-D53Br-Xy.cjs → Dialog-yZ9bWtK1.cjs} +1 -1
- package/dist-lib/{GoToSafariModal-CLxmpCng.js → GoToSafariModal-C_KBizh8.js} +27 -26
- package/dist-lib/GoToSafariModal-Cgx0X0rg.cjs +1 -0
- package/dist-lib/{UpdateIOSModal-ms1UJmHc.js → UpdateIOSModal-BGWvssyd.js} +20 -19
- package/dist-lib/UpdateIOSModal-CE-d3YCr.cjs +1 -0
- package/dist-lib/hooks.cjs +1 -0
- package/dist-lib/hooks.d.ts +45 -0
- package/dist-lib/hooks.js +5 -0
- package/dist-lib/install-package-B17QfMPy.cjs +1 -0
- package/dist-lib/{install-package-CyWo-B7v.js → install-package-DowlG4hO.js} +600 -969
- package/dist-lib/install-package.cjs +1 -1
- package/dist-lib/install-package.d.ts +106 -2
- package/dist-lib/install-package.js +21 -6
- package/dist-lib/install-widget.css +1 -1
- package/dist-lib/installUrlService-AjG03i8i.cjs +1 -0
- package/dist-lib/installUrlService-CrJfYPwM.js +95 -0
- package/dist-lib/useInstallUrl-CjUspi0p.cjs +1 -0
- package/dist-lib/useInstallUrl-JIdkWpgj.js +87 -0
- package/dist-lib/utils.cjs +1 -0
- package/dist-lib/utils.d.ts +92 -0
- package/dist-lib/utils.js +289 -0
- package/package.json +22 -2
- package/dist-lib/AndroidPlatformModal-BNghy_S2.cjs +0 -1
- package/dist-lib/GoToSafariModal-DJDoZzSN.cjs +0 -1
- package/dist-lib/UpdateIOSModal-Cd2FI2Dl.cjs +0 -1
- package/dist-lib/install-package-q3ncGygt.cjs +0 -1
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { c as te, b as ne, g as ie, a as re, s as oe } from "./installUrlService-CrJfYPwM.js";
|
|
2
|
+
const I = {
|
|
3
|
+
IOS: /iPhone|iPad|iPod/i,
|
|
4
|
+
IPAD: /iPad/i,
|
|
5
|
+
ANDROID: /Android/i,
|
|
6
|
+
INTEL_MAC: /Intel Mac/i
|
|
7
|
+
}, r = {
|
|
8
|
+
IOS_CHROME: /CriOS/i,
|
|
9
|
+
IOS_FIREFOX: /FxiOS/i,
|
|
10
|
+
IOS_EDGE: /EdgiOS/i,
|
|
11
|
+
IOS_OPERA: /OPiOS/i,
|
|
12
|
+
IOS_OPERA_NEW: /OPT\//i,
|
|
13
|
+
IOS_BRAVE: /Brave\//i,
|
|
14
|
+
IOS_DUCKDUCKGO: /Ddg\//i,
|
|
15
|
+
IOS_DUCKDUCKGO_ALT: /DuckDuckGo\//i,
|
|
16
|
+
IOS_GOOGLE_APP: /GSA/i,
|
|
17
|
+
SAFARI: /Safari/i,
|
|
18
|
+
CHROME: /Chrome|CriOS/i,
|
|
19
|
+
FIREFOX: /Firefox|FxiOS/i,
|
|
20
|
+
EDGE: /Edge|Edg/i,
|
|
21
|
+
OPERA: /Opera|OPiOS|OPT\/|OPR\/|OPX\//i
|
|
22
|
+
}, E = {
|
|
23
|
+
WEBKIT: /AppleWebKit|WebKit/i,
|
|
24
|
+
BLINK: /Chrome|Chromium|Edg|OPR\/|SamsungBrowser|YaBrowser/i,
|
|
25
|
+
GECKO: /Gecko\/\d|Firefox/i
|
|
26
|
+
}, l = {
|
|
27
|
+
IOS_VERSION: /Version\/(\d+[_.\d]*)/,
|
|
28
|
+
IOS_OS: /(?:iPhone|iPad|iPod).*?OS (\d+[_.\d]*)/i,
|
|
29
|
+
IOS_APP: /(?:iOS|iPadOS)\/(\d+[_.\d]*)/i,
|
|
30
|
+
ANDROID_VERSION: /Android\s+(\d+[.\d]*)/,
|
|
31
|
+
MACOS_VERSION: /Mac OS X (\d+[_.\d]*)/i
|
|
32
|
+
}, A = {
|
|
33
|
+
MOBILE: /Mobile/i,
|
|
34
|
+
ANDROID_TABLET_KEYWORDS: /Tablet|SM-T|SM-P|GT-P|SCH-I|SCH-T/i
|
|
35
|
+
}, a = {
|
|
36
|
+
IOS_INSTAGRAM: /\bInstagram\b/i,
|
|
37
|
+
IOS_FACEBOOK: /\bFBAN\/FBIOS\b|\bFBAV\b/i,
|
|
38
|
+
IOS_LINKEDIN: /LinkedInApp/i,
|
|
39
|
+
IOS_LINKEDIN_ALT: /LinkedIn\/\d/i,
|
|
40
|
+
IOS_DISCORD: /\bDiscord\b/i,
|
|
41
|
+
IOS_TWITTER: /Twitter for iPhone/i,
|
|
42
|
+
IOS_TIKTOK: /\bTikTok\b/i,
|
|
43
|
+
IOS_TIKTOK_ALT: /zhiliaoapp\.musically|musically\/\d/i,
|
|
44
|
+
IOS_TELEGRAM: /\bTelegram\b/i,
|
|
45
|
+
IOS_WECHAT: /\bMicroMessenger\b/i,
|
|
46
|
+
IOS_LINE: /\bLine\/\d/i
|
|
47
|
+
}, h = [
|
|
48
|
+
{ detail: "instagram", pattern: a.IOS_INSTAGRAM },
|
|
49
|
+
{ detail: "facebook", pattern: a.IOS_FACEBOOK },
|
|
50
|
+
{ detail: "linkedin", pattern: a.IOS_LINKEDIN },
|
|
51
|
+
{ detail: "linkedin", pattern: a.IOS_LINKEDIN_ALT },
|
|
52
|
+
{ detail: "discord", pattern: a.IOS_DISCORD },
|
|
53
|
+
{ detail: "twitter", pattern: a.IOS_TWITTER },
|
|
54
|
+
{ detail: "tiktok", pattern: a.IOS_TIKTOK },
|
|
55
|
+
{ detail: "tiktok", pattern: a.IOS_TIKTOK_ALT },
|
|
56
|
+
{ detail: "telegram", pattern: a.IOS_TELEGRAM },
|
|
57
|
+
{ detail: "wechat", pattern: a.IOS_WECHAT },
|
|
58
|
+
{ detail: "line", pattern: a.IOS_LINE }
|
|
59
|
+
], b = 768, k = () => "ontouchstart" in window || window.navigator?.maxTouchPoints > 0 || // @ts-expect-error - msMaxTouchPoints exists in some browsers
|
|
60
|
+
window.navigator?.msMaxTouchPoints > 0, v = () => window.navigator.userAgent, L = (e) => {
|
|
61
|
+
if (I.IOS.test(e)) {
|
|
62
|
+
const i = I.IPAD.test(e);
|
|
63
|
+
return {
|
|
64
|
+
platform: "ios",
|
|
65
|
+
isMobile: !i,
|
|
66
|
+
isTablet: i,
|
|
67
|
+
isDesktop: !1
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (I.ANDROID.test(e)) {
|
|
71
|
+
const i = A.MOBILE.test(e), n = A.ANDROID_TABLET_KEYWORDS.test(e), o = window.innerWidth, t = n || !i && o >= b;
|
|
72
|
+
return {
|
|
73
|
+
platform: "android",
|
|
74
|
+
isMobile: !t,
|
|
75
|
+
isTablet: t,
|
|
76
|
+
isDesktop: !1
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return g(e) ? {
|
|
80
|
+
platform: "ios",
|
|
81
|
+
isMobile: !1,
|
|
82
|
+
isTablet: !0,
|
|
83
|
+
isDesktop: !1
|
|
84
|
+
} : r.IOS_GOOGLE_APP.test(e) ? {
|
|
85
|
+
platform: "ios",
|
|
86
|
+
isMobile: !0,
|
|
87
|
+
isTablet: !1,
|
|
88
|
+
isDesktop: !1
|
|
89
|
+
} : {
|
|
90
|
+
platform: "desktop",
|
|
91
|
+
isMobile: !1,
|
|
92
|
+
isTablet: !1,
|
|
93
|
+
isDesktop: !0
|
|
94
|
+
};
|
|
95
|
+
}, g = (e) => r.SAFARI.test(e) && I.INTEL_MAC.test(e) && !r.CHROME.test(e) && !r.FIREFOX.test(e) && !r.OPERA.test(e) ? k() : !1, u = () => (
|
|
96
|
+
// @ts-expect-error - TelegramWebviewProxy may exist
|
|
97
|
+
typeof window?.TelegramWebviewProxy < "u"
|
|
98
|
+
), P = (e) => {
|
|
99
|
+
for (const i of h)
|
|
100
|
+
if (i.pattern.test(e))
|
|
101
|
+
return i.detail;
|
|
102
|
+
}, M = (e, i) => {
|
|
103
|
+
const n = (...o) => o.some((t) => t.test(e));
|
|
104
|
+
return n(r.IOS_EDGE, r.EDGE) ? "edge" : n(
|
|
105
|
+
r.IOS_OPERA,
|
|
106
|
+
r.IOS_OPERA_NEW,
|
|
107
|
+
r.OPERA
|
|
108
|
+
) ? "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";
|
|
109
|
+
}, C = (e, i) => {
|
|
110
|
+
switch (i) {
|
|
111
|
+
case "chrome":
|
|
112
|
+
return r.IOS_CHROME.test(e) ? "crios" : "chrome";
|
|
113
|
+
case "firefox":
|
|
114
|
+
return r.IOS_FIREFOX.test(e) ? "fxios" : "firefox";
|
|
115
|
+
case "edge":
|
|
116
|
+
return r.IOS_EDGE.test(e) ? "edgios" : "edge";
|
|
117
|
+
case "opera":
|
|
118
|
+
return r.IOS_OPERA_NEW.test(e) ? "opt" : r.IOS_OPERA.test(e) ? "opios" : "opera";
|
|
119
|
+
case "duckduckgo":
|
|
120
|
+
return "duckduckgo";
|
|
121
|
+
case "google":
|
|
122
|
+
return "gsa";
|
|
123
|
+
case "safari":
|
|
124
|
+
return "safari";
|
|
125
|
+
case "in-app":
|
|
126
|
+
return a.IOS_TELEGRAM.test(e) || u() ? "telegram" : P(e);
|
|
127
|
+
default:
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
}, F = (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" : E.GECKO.test(e) && !/like Gecko/i.test(e) ? "gecko" : E.BLINK.test(e) ? "blink" : E.WEBKIT.test(e) ? "webkit" : "unknown", K = (e, i) => {
|
|
131
|
+
if (i.platform === "ios")
|
|
132
|
+
return g(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";
|
|
133
|
+
}, G = (e, i, n) => {
|
|
134
|
+
const o = (t) => t.replace(/_/g, ".").split(".").filter((s) => s.length > 0).join(".");
|
|
135
|
+
switch (i) {
|
|
136
|
+
case "ios": {
|
|
137
|
+
let t = n === "safari" ? e.match(l.IOS_VERSION) : null;
|
|
138
|
+
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;
|
|
139
|
+
}
|
|
140
|
+
case "android": {
|
|
141
|
+
const t = e.match(l.ANDROID_VERSION);
|
|
142
|
+
return t ? o(t[1]) : void 0;
|
|
143
|
+
}
|
|
144
|
+
case "desktop": {
|
|
145
|
+
const t = e.match(l.MACOS_VERSION);
|
|
146
|
+
return t ? o(t[1]) : void 0;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}, B = (e) => {
|
|
150
|
+
if (!e) return {};
|
|
151
|
+
const [i, n] = e.split("."), o = Number.parseInt(i, 10), t = Number.parseInt(n ?? "0", 10);
|
|
152
|
+
return {
|
|
153
|
+
version_major: o,
|
|
154
|
+
version_minor: t
|
|
155
|
+
};
|
|
156
|
+
}, U = {
|
|
157
|
+
platform: "unknown",
|
|
158
|
+
browser: "unknown",
|
|
159
|
+
browserEngine: "unknown",
|
|
160
|
+
isMobile: !1,
|
|
161
|
+
isTablet: !1,
|
|
162
|
+
isDesktop: !1,
|
|
163
|
+
version: void 0,
|
|
164
|
+
userAgent: ""
|
|
165
|
+
};
|
|
166
|
+
let f = null, T = null, m = null;
|
|
167
|
+
function V() {
|
|
168
|
+
if (typeof window > "u")
|
|
169
|
+
return U;
|
|
170
|
+
const e = v(), i = window.innerWidth;
|
|
171
|
+
if (f && T === e && m === i)
|
|
172
|
+
return f;
|
|
173
|
+
const n = L(e), o = M(e, n.platform), t = F(e, n.platform, o), s = C(e, o), c = K(e, n), O = G(e, n.platform, o), _ = B(O), S = {
|
|
174
|
+
...n,
|
|
175
|
+
browser: o,
|
|
176
|
+
browserEngine: t,
|
|
177
|
+
browserDetail: s,
|
|
178
|
+
iosDeviceClass: c,
|
|
179
|
+
isInAppBrowser: o === "in-app",
|
|
180
|
+
version: O,
|
|
181
|
+
..._,
|
|
182
|
+
userAgent: e
|
|
183
|
+
};
|
|
184
|
+
return f = S, T = e, m = i, S;
|
|
185
|
+
}
|
|
186
|
+
const W = ".", R = (e) => e.split(W).map((i) => Number.parseInt(i, 10)).filter((i) => Number.isFinite(i) && i >= 0), p = (e, i) => {
|
|
187
|
+
const n = R(e), o = R(i), t = Math.max(n.length, o.length);
|
|
188
|
+
for (let s = 0; s < t; s += 1) {
|
|
189
|
+
const c = n[s] ?? 0, O = o[s] ?? 0;
|
|
190
|
+
if (c > O) return 1;
|
|
191
|
+
if (c < O) return -1;
|
|
192
|
+
}
|
|
193
|
+
return 0;
|
|
194
|
+
}, x = "17.6", y = "18.6", H = [
|
|
195
|
+
"safari",
|
|
196
|
+
"chrome",
|
|
197
|
+
"edge",
|
|
198
|
+
"brave",
|
|
199
|
+
"duckduckgo"
|
|
200
|
+
], X = ({
|
|
201
|
+
platform: e,
|
|
202
|
+
isIOSDevice: i,
|
|
203
|
+
shouldUpdateIOS: n,
|
|
204
|
+
isIOSVersionSupported: o,
|
|
205
|
+
browserSupportsInstall: t
|
|
206
|
+
}) => e === "android" ? "android" : n ? "update_ios" : o && t ? "install_available" : i ? "go_to_safari" : "unsupported";
|
|
207
|
+
function q(e, i = {}) {
|
|
208
|
+
const {
|
|
209
|
+
minIOSVersionForInstall: n = x,
|
|
210
|
+
minIOSVersionForNewSystemUI: o = y
|
|
211
|
+
} = i, t = e.version, s = e.platform === "ios" && (e.isMobile || e.isTablet), c = typeof t == "string", O = !!(s && c && p(t, n) >= 0), _ = !!(s && c && p(t, n) < 0), S = H.includes(
|
|
212
|
+
e.browser
|
|
213
|
+
), D = !!(s && S && !e.isInAppBrowser), N = X({
|
|
214
|
+
platform: e.platform,
|
|
215
|
+
isIOSDevice: s,
|
|
216
|
+
shouldUpdateIOS: _,
|
|
217
|
+
isIOSVersionSupported: O,
|
|
218
|
+
browserSupportsInstall: D
|
|
219
|
+
}), w = !!(s && c && p(t, o) >= 0);
|
|
220
|
+
return {
|
|
221
|
+
installState: N,
|
|
222
|
+
usesNewInstallFlow: w
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
const Y = "onside_analytics_logging", d = () => typeof window < "u";
|
|
226
|
+
function j() {
|
|
227
|
+
return d() ? localStorage.getItem(Y) === "true" : !1;
|
|
228
|
+
}
|
|
229
|
+
const Z = () => d() ? {
|
|
230
|
+
locale: navigator.language,
|
|
231
|
+
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
232
|
+
} : {}, z = (e) => {
|
|
233
|
+
const i = Z(), n = d() ? window.location.href : void 0, o = d() ? new URLSearchParams(window.location.search).get("variant") ?? void 0 : void 0;
|
|
234
|
+
return {
|
|
235
|
+
...V(),
|
|
236
|
+
locale: i.locale,
|
|
237
|
+
timeZone: i.timeZone,
|
|
238
|
+
full_url: n,
|
|
239
|
+
variant: o,
|
|
240
|
+
...e
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
function $(e, i = {}, n) {
|
|
244
|
+
try {
|
|
245
|
+
if (!d()) return null;
|
|
246
|
+
window.dataLayer || (window.dataLayer = []);
|
|
247
|
+
const o = z(i), t = {
|
|
248
|
+
event: "amplitude_event",
|
|
249
|
+
event_name: e,
|
|
250
|
+
event_properties: {
|
|
251
|
+
timestamp: Date.now(),
|
|
252
|
+
...o
|
|
253
|
+
},
|
|
254
|
+
...n ? { user_properties: n } : {}
|
|
255
|
+
};
|
|
256
|
+
return window.dataLayer.push({
|
|
257
|
+
event: t.event,
|
|
258
|
+
event_name: t.event_name,
|
|
259
|
+
event_properties: t.event_properties,
|
|
260
|
+
...t.user_properties ? { user_properties: t.user_properties } : {}
|
|
261
|
+
}), j() && console.log("🎯 Analytics Event:", {
|
|
262
|
+
event_name: t.event_name,
|
|
263
|
+
event_properties: t.event_properties,
|
|
264
|
+
user_properties: t.user_properties
|
|
265
|
+
}), t;
|
|
266
|
+
} catch (o) {
|
|
267
|
+
return console.error("Analytics error:", o), null;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function J(e, i, n, o = {}) {
|
|
271
|
+
const t = `${e}.${i}`, s = {
|
|
272
|
+
modal_name: e,
|
|
273
|
+
event_type: i,
|
|
274
|
+
...o
|
|
275
|
+
};
|
|
276
|
+
return n && (s.action = n), $(t, s);
|
|
277
|
+
}
|
|
278
|
+
export {
|
|
279
|
+
p as compareVersions,
|
|
280
|
+
te as generateUUID,
|
|
281
|
+
ne as getCookie,
|
|
282
|
+
V as getDeviceInfo,
|
|
283
|
+
ie as getInstallUrl,
|
|
284
|
+
re as getOnsideToken,
|
|
285
|
+
q as resolveInstallConditions,
|
|
286
|
+
oe as setCookie,
|
|
287
|
+
$ as trackEvent,
|
|
288
|
+
J as trackModalEvent
|
|
289
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onside/install-widget",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Onside install button widget for partner landings",
|
|
6
6
|
"keywords": [
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
"sync:cdn-manifest": "node scripts/sync-cdn-manifest.mjs",
|
|
18
18
|
"build": "tsc -b && vite build",
|
|
19
19
|
"build:lib": "tsc -b && vite build --config vite.config.lib.ts",
|
|
20
|
+
"test": "pnpm run test:unit && pnpm run test:e2e",
|
|
21
|
+
"test:unit": "vitest run",
|
|
22
|
+
"test:unit:watch": "vitest",
|
|
23
|
+
"test:e2e": "playwright test",
|
|
20
24
|
"bundle:check": "node scripts/check-bundle-size.mjs",
|
|
21
25
|
"pack:check": "HUSKY=0 npm pack --dry-run --json --ignore-scripts --cache /tmp/npm-cache",
|
|
22
26
|
"prepublishOnly": "pnpm run build:lib",
|
|
@@ -37,6 +41,16 @@
|
|
|
37
41
|
"import": "./dist-lib/install-package.js",
|
|
38
42
|
"require": "./dist-lib/install-package.cjs"
|
|
39
43
|
},
|
|
44
|
+
"./hooks": {
|
|
45
|
+
"types": "./dist-lib/hooks.d.ts",
|
|
46
|
+
"import": "./dist-lib/hooks.js",
|
|
47
|
+
"require": "./dist-lib/hooks.cjs"
|
|
48
|
+
},
|
|
49
|
+
"./utils": {
|
|
50
|
+
"types": "./dist-lib/utils.d.ts",
|
|
51
|
+
"import": "./dist-lib/utils.js",
|
|
52
|
+
"require": "./dist-lib/utils.cjs"
|
|
53
|
+
},
|
|
40
54
|
"./styles.css": "./dist-lib/install-widget.css"
|
|
41
55
|
},
|
|
42
56
|
"files": [
|
|
@@ -52,11 +66,15 @@
|
|
|
52
66
|
"devDependencies": {
|
|
53
67
|
"@changesets/cli": "^2.29.8",
|
|
54
68
|
"@eslint/js": "^9.39.2",
|
|
69
|
+
"@playwright/test": "^1.58.2",
|
|
55
70
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
71
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
72
|
+
"@testing-library/react": "^16.3.2",
|
|
56
73
|
"@types/node": "^24.0.10",
|
|
57
74
|
"@types/react": "^19.1.8",
|
|
58
75
|
"@types/react-dom": "^19.1.6",
|
|
59
76
|
"@vitejs/plugin-react": "^5.1.4",
|
|
77
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
60
78
|
"autoprefixer": "^10.4.21",
|
|
61
79
|
"clsx": "^2.1.1",
|
|
62
80
|
"eslint": "^9.39.2",
|
|
@@ -64,6 +82,7 @@
|
|
|
64
82
|
"eslint-plugin-react-refresh": "^0.4.26",
|
|
65
83
|
"globals": "^15.15.0",
|
|
66
84
|
"husky": "^9.1.7",
|
|
85
|
+
"jsdom": "^28.0.0",
|
|
67
86
|
"lint-staged": "^16.2.7",
|
|
68
87
|
"postcss": "^8.5.6",
|
|
69
88
|
"prettier": "^3.6.2",
|
|
@@ -78,7 +97,8 @@
|
|
|
78
97
|
"typescript-eslint": "^8.46.3",
|
|
79
98
|
"vite": "^7.3.1",
|
|
80
99
|
"vite-plugin-dts": "^4.5.4",
|
|
81
|
-
"vite-plugin-svgr": "^4.3.0"
|
|
100
|
+
"vite-plugin-svgr": "^4.3.0",
|
|
101
|
+
"vitest": "^4.0.18"
|
|
82
102
|
},
|
|
83
103
|
"packageManager": "pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b"
|
|
84
104
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),s=require("react"),t=require("./install-package-q3ncGygt.cjs"),c=require("./Dialog-D53Br-Xy.cjs"),d=({open:i,onClose:l})=>{const n="is_android",a=s.useCallback(()=>{t.trackModalEvent(n,"click","close"),l()},[l]),o=s.useCallback(r=>{r||a()},[a]);return e.jsx(c.Dialog,{"aria-labelledby":n,className:"outline-hidden",isDisplayingMargins:!0,open:i,onOpenChange:o,children:e.jsxs("div",{className:"flex h-full flex-col items-center justify-between text-center",children:[e.jsxs("div",{className:"m-auto",children:[e.jsx("p",{className:"text-2xl font-bold",children:"Onside is for iPhone and iPad"}),e.jsx("p",{className:"mt-3 px-10 font-sans text-xs font-normal",children:"To install Onside, please use an iPhone or iPad."})]}),e.jsx(t.Button,{className:"mt-2 w-full",onClick:a,size:"lg",type:"button",variant:"secondary",children:"Close"})]})})};exports.AndroidPlatformModal=d;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),r=require("./install-package-q3ncGygt.cjs"),o=require("react"),g=require("./Dialog-D53Br-Xy.cjs");function h(t){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(a,e,s.get?s:{enumerable:!0,get:()=>t[e]})}}return a.default=t,Object.freeze(a)}const d=h(o),b=5e3,k=t=>{const[a,e]=o.useState(!1);return{handleCopy:o.useCallback(()=>{navigator.clipboard.writeText(t),e(!0),setTimeout(()=>e(!1),b)},[t]),isCopied:a}},y=t=>d.createElement("svg",{width:10,height:16,viewBox:"0 0 10 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},d.createElement("path",{d:"M3.9375 12.25L6.35539 9.83211C6.74592 9.44158 6.74592 8.80842 6.35539 8.41789L3.9375 6",stroke:"#1E1C1F",strokeOpacity:.6,strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"})),w=({open:t,onClose:a})=>{const e=typeof window<"u"?window.location.href.replace(/\/$/,""):"",s=o.useMemo(()=>{const[i]=e.replace(/^https?:\/\//,"").split(/[?#]/);return i?.replace(/\/$/,"")??""},[e]),{handleCopy:l,isCopied:c}=k(e),f=r.getDeviceInfo(),p=f.browser==="opera"&&f.platform==="ios",u=o.useCallback(i=>{i||a()},[a]),x=o.useCallback(()=>{r.trackModalEvent("go_to_safari","click","button"),window.location.href=`x-safari-${e}`},[e]),m=o.useCallback(()=>{r.trackModalEvent("go_to_safari","click","link"),l()},[l]);return n.jsx(g.Dialog,{"aria-labelledby":"go-to-safari-modal",isDisplayingMargins:!0,open:t,onOpenChange:u,showCloseButton:!1,onBackClick:a,children:n.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center",children:[n.jsx("h1",{className:"mt-8 text-center font-sans text-5xl font-medium",children:"Open in Safari"}),n.jsx("p",{className:"text-tertiary mt-5 w-11/12 text-center font-sans text-lg font-normal",children:"Copy the link and open it in Safari to continue."}),n.jsx("p",{className:"text-tertiary w-11/12 text-center font-sans text-lg font-normal",children:"Onside can only be installed from the Safari browser on your device."}),n.jsxs("div",{className:"mt-10 flex w-full flex-col items-center gap-5",children:[!p&&n.jsxs(r.Button,{className:"flex min-w-[206px] items-center justify-center gap-[6px] font-sans text-lg font-normal text-white!",onClick:x,size:"lg",children:["Open in Safari",n.jsx(y,{})]}),n.jsx(r.Button,{className:"flex min-w-[206px] items-center justify-center gap-[6px] font-sans text-lg font-normal",onClick:m,size:"lg",variant:"text",children:c?"Link copied":s})]}),n.jsx("p",{className:r.clsx("relative mt-3 rounded-xl bg-black px-4 py-3 font-sans text-xs font-normal text-white transition-[opacity,transform] duration-300","before:absolute before:-top-1 before:left-1/2 before:block before:size-2 before:-translate-x-1/2 before:rotate-45 before:rounded-xs before:bg-black",c?"translate-y-0 opacity-100":"-translate-y-2 opacity-0"),children:"Paste the link in Safari"})]})})};exports.GoToSafariModal=w;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),a=require("react"),d=require("./install-package-q3ncGygt.cjs"),m=require("./Dialog-D53Br-Xy.cjs"),v="data:image/svg+xml,%3csvg%20width='10'%20height='16'%20viewBox='0%200%2010%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.9375%2012.25L6.35539%209.83211C6.74592%209.44158%206.74592%208.80842%206.35539%208.41789L3.9375%206'%20stroke='%231E1C1F'%20stroke-opacity='0.6'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",f=({breadcrumbs:e,className:t})=>i.jsx("ul",{className:t,children:e.map((n,r)=>i.jsxs("li",{className:"inline-flex",children:[i.jsx("p",{className:"rounded-3xl bg-lightGray px-2 py-0.5 text-sm",children:n}),r<e.length-1&&i.jsx("img",{alt:"Arrow icon","aria-hidden":"true",className:"ml-1",height:16,src:v,width:10})]},n))}),h=e=>{const{ariaLabel:t,children:n,className:r,poster:s}=e,o=a.useRef(null);return a.useEffect(()=>{const l=()=>{o.current&&o.current.paused&&(o.current.muted=!0,o.current.play())},c=()=>{o.current&&(document.visibilityState==="hidden"?o.current.pause():document.visibilityState==="visible"&&l())},u=()=>{o.current&&o.current.pause()};return document.addEventListener("visibilitychange",c),window.addEventListener("focus",l),window.addEventListener("blur",u),()=>{document.removeEventListener("visibilitychange",c),window.removeEventListener("focus",l),window.removeEventListener("blur",u)}},[]),i.jsx("video",{"aria-label":t,autoPlay:!0,className:d.clsx("mt-2 transform-gpu rounded-2xl object-contain object-top",r),controls:!1,disablePictureInPicture:!0,disableRemotePlayback:!0,draggable:!1,loop:!0,muted:!0,playsInline:!0,poster:s,ref:o,"webkit-playsinline":"true","x-webkit-airplay":"deny",children:n},t)},p={"images/.gitkeep":"images/.gitkeep.e3b0c442","images/install-sad-android.png":"images/install-sad-android.8b24a6e1.png","scripts/1.0.0/install-package.cjs":"scripts/1.0.0/install-package.7ac30417.cjs","scripts/1.0.0/install-package.js":"scripts/1.0.0/install-package.65685adc.js","video/.gitkeep":"video/.gitkeep.e3b0c442","video/change-region-poster.png":"video/change-region-poster.bc6bda65.png","video/change-region.h264.mp4":"video/change-region.h264.c47b9282.mp4","video/get-approved-poster.jpg":"video/get-approved-poster.4e7177ac.jpg","video/get-approved.mp4":"video/get-approved.5b7b5f4a.mp4","video/open-onside-poster.jpg":"video/open-onside-poster.6b71cae6.jpg","video/open-onside.av1.mp4":"video/open-onside.av1.32f1aa51.mp4","video/open-onside.h264.mp4":"video/open-onside.h264.6df2feb6.mp4","video/update-ios-poster.png":"video/update-ios-poster.e59e58f8.png","video/update-ios.h264.mp4":"video/update-ios.h264.8054177e.mp4"},b="https://cdn.onside.io/assets/onside-install-widget/";function x(e){return e.replace(/^\//,"")}function y(e){const t=x(e),n=t.split("/").pop()??t,r=[t,`/${t}`,n,`/${n}`];for(const s of r)if(p[s])return p[s];return null}function g(e){if(!e||/^https?:\/\//i.test(e)||e.endsWith(".svg"))return e;const t=y(e);if(!t)return e;try{return new URL(t,b).toString()}catch{return e}}const w=["Settings","General","Software Update"],j=g("/video/update-ios-poster.png"),k=g("/video/update-ios.h264.mp4"),S=({open:e,onClose:t})=>{a.useEffect(()=>{let s;return e&&(s=setTimeout(()=>{document.querySelector("video")?.play()},600)),()=>{clearTimeout(s)}},[e]);const n=a.useCallback(s=>{s||t()},[t]),r=a.useCallback(()=>{d.trackModalEvent("update_ios","click","close"),t()},[t]);return i.jsx(m.Dialog,{"aria-labelledby":"update-ios",open:e,onOpenChange:n,showCloseButton:!1,onBackClick:t,children:i.jsxs("div",{className:"flex h-full flex-col items-center justify-center",children:[i.jsx("h2",{className:"mt-3 text-center font-sans text-3xl font-medium",id:"update-ios",children:"Update your iOS"}),i.jsxs("section",{className:"mt-2",children:[i.jsx("p",{className:"mt-3 text-center font-sans text-xs font-normal",children:"To install Onside, update your iPhone or iPad to the latest version of iOS."}),i.jsx(f,{breadcrumbs:w,className:"mt-2 flex gap-1"})]}),i.jsx("div",{className:"relative mt-4 flex w-full grow justify-center overflow-hidden rounded-t-2xl bg-lightGray px-7 pt-7",children:i.jsx(h,{ariaLabel:"Instruction demonstrating the update process",className:"shadow-14-50-98 rounded-t-[20px] border-8 border-b-0 border-white",poster:j,children:i.jsx("source",{src:k,type:"video/mp4"})})}),i.jsx(d.Button,{"aria-label":"Close",className:"mt-4 w-full",onClick:r,size:"lg",type:"button",children:"Close"})]})})};exports.UpdateIOSModal=S;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const b=require("react/jsx-runtime"),k=require("react");function ct(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const H=ct(k);function We(e){var t,o,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(t=0;t<n;t++)e[t]&&(o=We(e[t]))&&(r&&(r+=" "),r+=o)}else for(o in e)e[o]&&(r&&(r+=" "),r+=o);return r}function Ke(){for(var e,t,o=0,r="",n=arguments.length;o<n;o++)(e=arguments[o])&&(t=We(e))&&(r&&(r+=" "),r+=t);return r}const xe="-",dt=e=>{const t=pt(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const p=i.split(xe);return p[0]===""&&p.length!==1&&p.shift(),$e(p,t)||ut(i)},getConflictingClassGroupIds:(i,p)=>{const u=o[i]||[];return p&&r[i]?[...u,...r[i]]:u}}},$e=(e,t)=>{if(e.length===0)return t.classGroupId;const o=e[0],r=t.nextPart.get(o),n=r?$e(e.slice(1),r):void 0;if(n)return n;if(t.validators.length===0)return;const s=e.join(xe);return t.validators.find(({validator:i})=>i(s))?.classGroupId},Te=/^\[(.+)\]$/,ut=e=>{if(Te.test(e)){const t=Te.exec(e)[1],o=t?.substring(0,t.indexOf(":"));if(o)return"arbitrary.."+o}},pt=e=>{const{theme:t,classGroups:o}=e,r={nextPart:new Map,validators:[]};for(const n in o)be(o[n],r,n,t);return r},be=(e,t,o,r)=>{e.forEach(n=>{if(typeof n=="string"){const s=n===""?t:Me(t,n);s.classGroupId=o;return}if(typeof n=="function"){if(mt(n)){be(n(r),t,o,r);return}t.validators.push({validator:n,classGroupId:o});return}Object.entries(n).forEach(([s,i])=>{be(i,Me(t,s),o,r)})})},Me=(e,t)=>{let o=e;return t.split(xe).forEach(r=>{o.nextPart.has(r)||o.nextPart.set(r,{nextPart:new Map,validators:[]}),o=o.nextPart.get(r)}),o},mt=e=>e.isThemeGetter,ft=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,o=new Map,r=new Map;const n=(s,i)=>{o.set(s,i),t++,t>e&&(t=0,r=o,o=new Map)};return{get(s){let i=o.get(s);if(i!==void 0)return i;if((i=r.get(s))!==void 0)return n(s,i),i},set(s,i){o.has(s)?o.set(s,i):n(s,i)}}},ge="!",he=":",bt=he.length,gt=e=>{const{prefix:t,experimentalParseClassName:o}=e;let r=n=>{const s=[];let i=0,p=0,u=0,m;for(let S=0;S<n.length;S++){let w=n[S];if(i===0&&p===0){if(w===he){s.push(n.slice(u,S)),u=S+bt;continue}if(w==="/"){m=S;continue}}w==="["?i++:w==="]"?i--:w==="("?p++:w===")"&&p--}const h=s.length===0?n:n.substring(u),y=ht(h),I=y!==h,O=m&&m>u?m-u:void 0;return{modifiers:s,hasImportantModifier:I,baseClassName:y,maybePostfixModifierPosition:O}};if(t){const n=t+he,s=r;r=i=>i.startsWith(n)?s(i.substring(n.length)):{isExternal:!0,modifiers:[],hasImportantModifier:!1,baseClassName:i,maybePostfixModifierPosition:void 0}}if(o){const n=r;r=s=>o({className:s,parseClassName:n})}return r},ht=e=>e.endsWith(ge)?e.substring(0,e.length-1):e.startsWith(ge)?e.substring(1):e,wt=e=>{const t=Object.fromEntries(e.orderSensitiveModifiers.map(r=>[r,!0]));return r=>{if(r.length<=1)return r;const n=[];let s=[];return r.forEach(i=>{i[0]==="["||t[i]?(n.push(...s.sort(),i),s=[]):s.push(i)}),n.push(...s.sort()),n}},xt=e=>({cache:ft(e.cacheSize),parseClassName:gt(e),sortModifiers:wt(e),...dt(e)}),kt=/\s+/,yt=(e,t)=>{const{parseClassName:o,getClassGroupId:r,getConflictingClassGroupIds:n,sortModifiers:s}=t,i=[],p=e.trim().split(kt);let u="";for(let m=p.length-1;m>=0;m-=1){const h=p[m],{isExternal:y,modifiers:I,hasImportantModifier:O,baseClassName:S,maybePostfixModifierPosition:w}=o(h);if(y){u=h+(u.length>0?" "+u:u);continue}let E=!!w,T=r(E?S.substring(0,w):S);if(!T){if(!E){u=h+(u.length>0?" "+u:u);continue}if(T=r(S),!T){u=h+(u.length>0?" "+u:u);continue}E=!1}const G=s(I).join(":"),M=O?G+ge:G,R=M+T;if(i.includes(R))continue;i.push(R);const P=n(T,E);for(let A=0;A<P.length;++A){const F=P[A];i.push(M+F)}u=h+(u.length>0?" "+u:u)}return u};function vt(){let e=0,t,o,r="";for(;e<arguments.length;)(t=arguments[e++])&&(o=He(t))&&(r&&(r+=" "),r+=o);return r}const He=e=>{if(typeof e=="string")return e;let t,o="";for(let r=0;r<e.length;r++)e[r]&&(t=He(e[r]))&&(o&&(o+=" "),o+=t);return o};function St(e,...t){let o,r,n,s=i;function i(u){const m=t.reduce((h,y)=>y(h),e());return o=xt(m),r=o.cache.get,n=o.cache.set,s=p,p(u)}function p(u){const m=r(u);if(m)return m;const h=yt(u,o);return n(u,h),h}return function(){return s(vt.apply(null,arguments))}}const x=e=>{const t=o=>o[e]||[];return t.isThemeGetter=!0,t},Xe=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ye=/^\((?:(\w[\w-]*):)?(.+)\)$/i,It=/^\d+\/\d+$/,Ot=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,_t=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Et=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,At=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ct=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,K=e=>It.test(e),f=e=>!!e&&!Number.isNaN(Number(e)),j=e=>!!e&&Number.isInteger(Number(e)),ue=e=>e.endsWith("%")&&f(e.slice(0,-1)),L=e=>Ot.test(e),Tt=()=>!0,Mt=e=>_t.test(e)&&!Et.test(e),qe=()=>!1,Rt=e=>At.test(e),Pt=e=>Ct.test(e),Nt=e=>!a(e)&&!l(e),zt=e=>X(e,Qe,qe),a=e=>Xe.test(e),U=e=>X(e,et,Mt),pe=e=>X(e,jt,f),Re=e=>X(e,Je,qe),Lt=e=>X(e,Ze,Pt),ne=e=>X(e,tt,Rt),l=e=>Ye.test(e),q=e=>Y(e,et),Dt=e=>Y(e,Vt),Pe=e=>Y(e,Je),Gt=e=>Y(e,Qe),Ft=e=>Y(e,Ze),se=e=>Y(e,tt,!0),X=(e,t,o)=>{const r=Xe.exec(e);return r?r[1]?t(r[1]):o(r[2]):!1},Y=(e,t,o=!1)=>{const r=Ye.exec(e);return r?r[1]?t(r[1]):o:!1},Je=e=>e==="position"||e==="percentage",Ze=e=>e==="image"||e==="url",Qe=e=>e==="length"||e==="size"||e==="bg-size",et=e=>e==="length",jt=e=>e==="number",Vt=e=>e==="family-name",tt=e=>e==="shadow",Ut=()=>{const e=x("color"),t=x("font"),o=x("text"),r=x("font-weight"),n=x("tracking"),s=x("leading"),i=x("breakpoint"),p=x("container"),u=x("spacing"),m=x("radius"),h=x("shadow"),y=x("inset-shadow"),I=x("text-shadow"),O=x("drop-shadow"),S=x("blur"),w=x("perspective"),E=x("aspect"),T=x("ease"),G=x("animate"),M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],R=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],P=()=>[...R(),l,a],A=()=>["auto","hidden","clip","visible","scroll"],F=()=>["auto","contain","none"],c=()=>[l,a,u],N=()=>[K,"full","auto",...c()],ve=()=>[j,"none","subgrid",l,a],Se=()=>["auto",{span:["full",j,l,a]},j,l,a],Q=()=>[j,"auto",l,a],Ie=()=>["auto","min","max","fr",l,a],le=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],W=()=>["start","end","center","stretch","center-safe","end-safe"],z=()=>["auto",...c()],V=()=>[K,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],d=()=>[e,l,a],Oe=()=>[...R(),Pe,Re,{position:[l,a]}],_e=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Ee=()=>["auto","cover","contain",Gt,zt,{size:[l,a]}],ce=()=>[ue,q,U],_=()=>["","none","full",m,l,a],C=()=>["",f,q,U],ee=()=>["solid","dashed","dotted","double"],Ae=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],v=()=>[f,ue,Pe,Re],Ce=()=>["","none",S,l,a],te=()=>["none",f,l,a],oe=()=>["none",f,l,a],de=()=>[f,l,a],re=()=>[K,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[L],breakpoint:[L],color:[Tt],container:[L],"drop-shadow":[L],ease:["in","out","in-out"],font:[Nt],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[L],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[L],shadow:[L],spacing:["px",f],text:[L],"text-shadow":[L],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",K,a,l,E]}],container:["container"],columns:[{columns:[f,a,l,p]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:P()}],overflow:[{overflow:A()}],"overflow-x":[{"overflow-x":A()}],"overflow-y":[{"overflow-y":A()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:N()}],"inset-x":[{"inset-x":N()}],"inset-y":[{"inset-y":N()}],start:[{start:N()}],end:[{end:N()}],top:[{top:N()}],right:[{right:N()}],bottom:[{bottom:N()}],left:[{left:N()}],visibility:["visible","invisible","collapse"],z:[{z:[j,"auto",l,a]}],basis:[{basis:[K,"full","auto",p,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[f,K,"auto","initial","none",a]}],grow:[{grow:["",f,l,a]}],shrink:[{shrink:["",f,l,a]}],order:[{order:[j,"first","last","none",l,a]}],"grid-cols":[{"grid-cols":ve()}],"col-start-end":[{col:Se()}],"col-start":[{"col-start":Q()}],"col-end":[{"col-end":Q()}],"grid-rows":[{"grid-rows":ve()}],"row-start-end":[{row:Se()}],"row-start":[{"row-start":Q()}],"row-end":[{"row-end":Q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Ie()}],"auto-rows":[{"auto-rows":Ie()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...le(),"normal"]}],"justify-items":[{"justify-items":[...W(),"normal"]}],"justify-self":[{"justify-self":["auto",...W()]}],"align-content":[{content:["normal",...le()]}],"align-items":[{items:[...W(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...W(),{baseline:["","last"]}]}],"place-content":[{"place-content":le()}],"place-items":[{"place-items":[...W(),"baseline"]}],"place-self":[{"place-self":["auto",...W()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:z()}],mx:[{mx:z()}],my:[{my:z()}],ms:[{ms:z()}],me:[{me:z()}],mt:[{mt:z()}],mr:[{mr:z()}],mb:[{mb:z()}],ml:[{ml:z()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:V()}],w:[{w:[p,"screen",...V()]}],"min-w":[{"min-w":[p,"screen","none",...V()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[i]},...V()]}],h:[{h:["screen","lh",...V()]}],"min-h":[{"min-h":["screen","lh","none",...V()]}],"max-h":[{"max-h":["screen","lh",...V()]}],"font-size":[{text:["base",o,q,U]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,l,pe]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ue,a]}],"font-family":[{font:[Dt,a,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,l,a]}],"line-clamp":[{"line-clamp":[f,"none",l,pe]}],leading:[{leading:[s,...c()]}],"list-image":[{"list-image":["none",l,a]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",l,a]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:d()}],"text-color":[{text:d()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[f,"from-font","auto",l,U]}],"text-decoration-color":[{decoration:d()}],"underline-offset":[{"underline-offset":[f,"auto",l,a]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",l,a]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",l,a]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Oe()}],"bg-repeat":[{bg:_e()}],"bg-size":[{bg:Ee()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},j,l,a],radial:["",l,a],conic:[j,l,a]},Ft,Lt]}],"bg-color":[{bg:d()}],"gradient-from-pos":[{from:ce()}],"gradient-via-pos":[{via:ce()}],"gradient-to-pos":[{to:ce()}],"gradient-from":[{from:d()}],"gradient-via":[{via:d()}],"gradient-to":[{to:d()}],rounded:[{rounded:_()}],"rounded-s":[{"rounded-s":_()}],"rounded-e":[{"rounded-e":_()}],"rounded-t":[{"rounded-t":_()}],"rounded-r":[{"rounded-r":_()}],"rounded-b":[{"rounded-b":_()}],"rounded-l":[{"rounded-l":_()}],"rounded-ss":[{"rounded-ss":_()}],"rounded-se":[{"rounded-se":_()}],"rounded-ee":[{"rounded-ee":_()}],"rounded-es":[{"rounded-es":_()}],"rounded-tl":[{"rounded-tl":_()}],"rounded-tr":[{"rounded-tr":_()}],"rounded-br":[{"rounded-br":_()}],"rounded-bl":[{"rounded-bl":_()}],"border-w":[{border:C()}],"border-w-x":[{"border-x":C()}],"border-w-y":[{"border-y":C()}],"border-w-s":[{"border-s":C()}],"border-w-e":[{"border-e":C()}],"border-w-t":[{"border-t":C()}],"border-w-r":[{"border-r":C()}],"border-w-b":[{"border-b":C()}],"border-w-l":[{"border-l":C()}],"divide-x":[{"divide-x":C()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":C()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:d()}],"border-color-x":[{"border-x":d()}],"border-color-y":[{"border-y":d()}],"border-color-s":[{"border-s":d()}],"border-color-e":[{"border-e":d()}],"border-color-t":[{"border-t":d()}],"border-color-r":[{"border-r":d()}],"border-color-b":[{"border-b":d()}],"border-color-l":[{"border-l":d()}],"divide-color":[{divide:d()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[f,l,a]}],"outline-w":[{outline:["",f,q,U]}],"outline-color":[{outline:d()}],shadow:[{shadow:["","none",h,se,ne]}],"shadow-color":[{shadow:d()}],"inset-shadow":[{"inset-shadow":["none",y,se,ne]}],"inset-shadow-color":[{"inset-shadow":d()}],"ring-w":[{ring:C()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:d()}],"ring-offset-w":[{"ring-offset":[f,U]}],"ring-offset-color":[{"ring-offset":d()}],"inset-ring-w":[{"inset-ring":C()}],"inset-ring-color":[{"inset-ring":d()}],"text-shadow":[{"text-shadow":["none",I,se,ne]}],"text-shadow-color":[{"text-shadow":d()}],opacity:[{opacity:[f,l,a]}],"mix-blend":[{"mix-blend":[...Ae(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ae()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[f]}],"mask-image-linear-from-pos":[{"mask-linear-from":v()}],"mask-image-linear-to-pos":[{"mask-linear-to":v()}],"mask-image-linear-from-color":[{"mask-linear-from":d()}],"mask-image-linear-to-color":[{"mask-linear-to":d()}],"mask-image-t-from-pos":[{"mask-t-from":v()}],"mask-image-t-to-pos":[{"mask-t-to":v()}],"mask-image-t-from-color":[{"mask-t-from":d()}],"mask-image-t-to-color":[{"mask-t-to":d()}],"mask-image-r-from-pos":[{"mask-r-from":v()}],"mask-image-r-to-pos":[{"mask-r-to":v()}],"mask-image-r-from-color":[{"mask-r-from":d()}],"mask-image-r-to-color":[{"mask-r-to":d()}],"mask-image-b-from-pos":[{"mask-b-from":v()}],"mask-image-b-to-pos":[{"mask-b-to":v()}],"mask-image-b-from-color":[{"mask-b-from":d()}],"mask-image-b-to-color":[{"mask-b-to":d()}],"mask-image-l-from-pos":[{"mask-l-from":v()}],"mask-image-l-to-pos":[{"mask-l-to":v()}],"mask-image-l-from-color":[{"mask-l-from":d()}],"mask-image-l-to-color":[{"mask-l-to":d()}],"mask-image-x-from-pos":[{"mask-x-from":v()}],"mask-image-x-to-pos":[{"mask-x-to":v()}],"mask-image-x-from-color":[{"mask-x-from":d()}],"mask-image-x-to-color":[{"mask-x-to":d()}],"mask-image-y-from-pos":[{"mask-y-from":v()}],"mask-image-y-to-pos":[{"mask-y-to":v()}],"mask-image-y-from-color":[{"mask-y-from":d()}],"mask-image-y-to-color":[{"mask-y-to":d()}],"mask-image-radial":[{"mask-radial":[l,a]}],"mask-image-radial-from-pos":[{"mask-radial-from":v()}],"mask-image-radial-to-pos":[{"mask-radial-to":v()}],"mask-image-radial-from-color":[{"mask-radial-from":d()}],"mask-image-radial-to-color":[{"mask-radial-to":d()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":R()}],"mask-image-conic-pos":[{"mask-conic":[f]}],"mask-image-conic-from-pos":[{"mask-conic-from":v()}],"mask-image-conic-to-pos":[{"mask-conic-to":v()}],"mask-image-conic-from-color":[{"mask-conic-from":d()}],"mask-image-conic-to-color":[{"mask-conic-to":d()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Oe()}],"mask-repeat":[{mask:_e()}],"mask-size":[{mask:Ee()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",l,a]}],filter:[{filter:["","none",l,a]}],blur:[{blur:Ce()}],brightness:[{brightness:[f,l,a]}],contrast:[{contrast:[f,l,a]}],"drop-shadow":[{"drop-shadow":["","none",O,se,ne]}],"drop-shadow-color":[{"drop-shadow":d()}],grayscale:[{grayscale:["",f,l,a]}],"hue-rotate":[{"hue-rotate":[f,l,a]}],invert:[{invert:["",f,l,a]}],saturate:[{saturate:[f,l,a]}],sepia:[{sepia:["",f,l,a]}],"backdrop-filter":[{"backdrop-filter":["","none",l,a]}],"backdrop-blur":[{"backdrop-blur":Ce()}],"backdrop-brightness":[{"backdrop-brightness":[f,l,a]}],"backdrop-contrast":[{"backdrop-contrast":[f,l,a]}],"backdrop-grayscale":[{"backdrop-grayscale":["",f,l,a]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f,l,a]}],"backdrop-invert":[{"backdrop-invert":["",f,l,a]}],"backdrop-opacity":[{"backdrop-opacity":[f,l,a]}],"backdrop-saturate":[{"backdrop-saturate":[f,l,a]}],"backdrop-sepia":[{"backdrop-sepia":["",f,l,a]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",l,a]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[f,"initial",l,a]}],ease:[{ease:["linear","initial",T,l,a]}],delay:[{delay:[f,l,a]}],animate:[{animate:["none",G,l,a]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,l,a]}],"perspective-origin":[{"perspective-origin":P()}],rotate:[{rotate:te()}],"rotate-x":[{"rotate-x":te()}],"rotate-y":[{"rotate-y":te()}],"rotate-z":[{"rotate-z":te()}],scale:[{scale:oe()}],"scale-x":[{"scale-x":oe()}],"scale-y":[{"scale-y":oe()}],"scale-z":[{"scale-z":oe()}],"scale-3d":["scale-3d"],skew:[{skew:de()}],"skew-x":[{"skew-x":de()}],"skew-y":[{"skew-y":de()}],transform:[{transform:[l,a,"","none","gpu","cpu"]}],"transform-origin":[{origin:P()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:re()}],"translate-x":[{"translate-x":re()}],"translate-y":[{"translate-y":re()}],"translate-z":[{"translate-z":re()}],"translate-none":["translate-none"],accent:[{accent:d()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:d()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",l,a]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",l,a]}],fill:[{fill:["none",...d()]}],"stroke-w":[{stroke:[f,q,U,pe]}],stroke:[{stroke:["none",...d()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Bt=St(Ut);function D(...e){return Bt(Ke(e))}const Wt={primary:"rounded-[var(--onside-btn-radius,9999px)] whitespace-nowrap leading-none !font-medium transition-bg duration-300 flex items-center justify-center text-center",secondary:"rounded-[var(--onside-btn-radius,9999px)] whitespace-nowrap leading-none !font-medium bg-transparent border transition-bg transition-color duration-300 flex items-center justify-center text-center",text:"whitespace-nowrap leading-none !font-medium transition-colors duration-300 flex items-center justify-center text-center",transparent:"rounded-[var(--onside-btn-radius,9999px)] whitespace-nowrap leading-none !font-medium transition-opacity duration-300 flex items-center justify-center text-center"},Kt={primary:{blue:"bg-[var(--onside-btn-bg,#0A5EFF)] text-[color:var(--onside-btn-text,#FFFFFF)] hover:bg-[var(--onside-btn-bg-hover,#337AFF)] focus:bg-[var(--onside-btn-bg,#0A5EFF)] disabled:bg-[var(--onside-btn-disabled-bg,rgba(10,94,255,0.2))]",lightBlue:"bg-[#e2eaf8] text-blue hover:opacity-60 focus:opacity-100",white:"bg-white text-blue hover:opacity-90 focus:opacity-100 disabled:opacity-50"},secondary:{blue:"border-blue text-blue hover:bg-blue hover:text-white focus:bg-blue focus:text-white",lightBlue:"border-[#e2eaf8] text-[#e2eaf8] hover:bg-[#e2eaf8] hover:text-white focus:bg-[#e2eaf8] focus:text-white",white:"border-white text-white hover:bg-white hover:text-blue focus:bg-white focus:text-blue"},text:{blue:"bg-transparent text-blue hover:underline focus:underline",lightBlue:"bg-transparent text-[#e2eaf8] hover:underline focus:underline",white:"bg-transparent text-white hover:underline focus:underline"},transparent:{blue:"bg-transparent text-blue hover:opacity-75",lightBlue:"bg-transparent text-[#e2eaf8] hover:opacity-75",white:"bg-transparent text-white hover:opacity-75"}},$t={lg:"py-[var(--onside-btn-py,1rem)] px-[var(--onside-btn-px,2rem)] text-[length:var(--onside-btn-font-size,1.125rem)] font-medium",md:"py-[var(--onside-btn-py,0.75rem)] px-[var(--onside-btn-px,1.25rem)] text-[length:var(--onside-btn-font-size,1rem)] font-medium"};function Z({className:e,...t}){const o=t.variant??"primary",r=t.color??"blue",n=t.size??"md",s=D(Wt[o],$t[o!=="text"?n:"md"],Kt[o][r],e);if(typeof t.href>"u"){const u=t;return b.jsx("button",{className:s,...u})}const i=t,p=("rel"in i?i.rel:void 0)??(i.target==="_blank"?"noopener noreferrer":void 0);return b.jsx("a",{className:s,rel:p,...i})}const Ht="https://onside.io/web-api/v1/marketplace/install",ke=1e3,Xt=7*ke,Yt=7*ke,ot=2*ke,we="onside_token_data",Ne=15552e3,ae={IOS:/iPhone|iPad|iPod/i,IPAD:/iPad/i,ANDROID:/Android/i,INTEL_MAC:/Intel Mac/i},g={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_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},ie={IOS_VERSION:/Version\/(\d+[_.\d]*)/,IOS_OS:/(?:iPhone|iPad|iPod).*?OS (\d+[_.\d]*)/i,ANDROID_VERSION:/Android\s+(\d+[.\d]*)/,MACOS_VERSION:/Mac OS X (\d+[_.\d]*)/i},ze={MOBILE:/Mobile/i,ANDROID_TABLET_KEYWORDS:/Tablet|SM-T|SM-P|GT-P|SCH-I|SCH-T/i},$={IOS_INSTAGRAM:/\bInstagram\b/i,IOS_FACEBOOK:/\bFBAN\/FBIOS\b|\bFBAV\b/i,IOS_LINKEDIN:/LinkedInApp/i,IOS_DISCORD:/\bDiscord\b/i,IOS_TWITTER:/Twitter for iPhone/i,IOS_TIKTOK:/\bTikTok\b/i},qt=768,Jt=()=>typeof window<"u"&&("ontouchstart"in window||window.navigator?.maxTouchPoints>0||window.navigator?.msMaxTouchPoints>0),Zt=()=>typeof window>"u"?"":window.navigator.userAgent,Qt=e=>{if(ae.IOS.test(e)){const t=ae.IPAD.test(e);return{platform:"ios",isMobile:!t,isTablet:t,isDesktop:!1}}if(ae.ANDROID.test(e)){const t=ze.MOBILE.test(e)&&(window.innerWidth>=qt||ze.ANDROID_TABLET_KEYWORDS.test(e));return{platform:"android",isMobile:!t,isTablet:t,isDesktop:!1}}return eo(e)?{platform:"ios",isMobile:!1,isTablet:!0,isDesktop:!1}:g.IOS_GOOGLE_APP.test(e)?{platform:"ios",isMobile:!0,isTablet:!1,isDesktop:!1}:{platform:"desktop",isMobile:!1,isTablet:!1,isDesktop:!0}},eo=e=>g.SAFARI.test(e)&&ae.INTEL_MAC.test(e)&&!g.CHROME.test(e)&&!g.FIREFOX.test(e)&&!g.OPERA.test(e)?Jt():!1,Le=()=>typeof window?.TelegramWebviewProxy<"u",to=e=>{const t=(...o)=>o.some(r=>r.test(e));return t(g.IOS_EDGE,g.EDGE)?"edge":t(g.IOS_OPERA,g.IOS_OPERA_NEW,g.OPERA)?"opera":t(g.IOS_BRAVE)?"brave":t(g.IOS_DUCKDUCKGO)?"duckduckgo":t(g.IOS_CHROME,g.CHROME)?"chrome":t(g.IOS_GOOGLE_APP)?"google":t(g.IOS_FIREFOX,g.FIREFOX)?"firefox":g.SAFARI.test(e)&&!g.CHROME.test(e)&&!g.FIREFOX.test(e)&&!g.OPERA.test(e)&&!g.IOS_BRAVE.test(e)&&!g.IOS_DUCKDUCKGO.test(e)&&!g.IOS_GOOGLE_APP.test(e)&&!Le()?"safari":t($.IOS_INSTAGRAM,$.IOS_FACEBOOK,$.IOS_LINKEDIN,$.IOS_DISCORD,$.IOS_TWITTER,$.IOS_TIKTOK)||Le()?"in-app":"unknown"},oo=(e,t)=>{switch(t){case"ios":{let o=e.match(ie.IOS_OS);if(o||(o=e.match(ie.IOS_VERSION)),o){const r=o[1].replace(/_/g,".");return parseFloat(r)}return}case"android":{const o=e.match(ie.ANDROID_VERSION);return o?parseFloat(o[1]):void 0}case"desktop":{const o=e.match(ie.MACOS_VERSION);if(o){const r=o[1].replace(/_/g,".");return parseFloat(r)}return}default:return}},ro={platform:"unknown",browser:"unknown",isMobile:!1,isTablet:!1,isDesktop:!1,version:void 0,userAgent:""};let me=null,De=null,Ge=null;function ye(){if(typeof window>"u")return ro;const e=Zt(),t=window.innerWidth;if(me&&De===e&&Ge===t)return me;const o=Qt(e),r=to(e),n=oo(e,o.platform),s={...o,browser:r,version:n,userAgent:e};return me=s,De=e,Ge=t,s}const Fe=17.6,no=18.6,so=["safari","chrome","edge","brave","duckduckgo"];function io(e){return e.platform==="ios"&&(e.isMobile||e.isTablet)?so.includes(e.browser):!1}function ao(e){return!!(e.platform==="ios"&&e.version&&e.version>=no)}const lo=()=>{const e=ye(),t=io(e),o=!!(e.platform==="ios"&&e.version&&e.version>=Fe),r=!!(e.platform==="ios"&&e.version&&e.version<Fe),n=e.platform==="ios"&&(e.isMobile||e.isTablet)&&!r&&!t,s=ao(e),i=o&&t,p=e.platform==="android";return{canInstall:i,shouldGoToSafari:n,shouldUpdateIOS:r,isIOS186PlusVersion:s,isAndroid:p}},je=e=>{let t;const o=new Set,r=(m,h)=>{const y=typeof m=="function"?m(t):m;if(!Object.is(y,t)){const I=t;t=h??(typeof y!="object"||y===null)?y:Object.assign({},t,y),o.forEach(O=>O(t,I))}},n=()=>t,p={setState:r,getState:n,getInitialState:()=>u,subscribe:m=>(o.add(m),()=>o.delete(m))},u=t=e(r,n,p);return p},co=(e=>e?je(e):je),uo=e=>e;function po(e,t=uo){const o=k.useSyncExternalStore(e.subscribe,k.useCallback(()=>t(e.getState()),[e,t]),k.useCallback(()=>t(e.getInitialState()),[e,t]));return k.useDebugValue(o),o}const Ve=e=>{const t=co(e),o=r=>po(t,r);return Object.assign(o,t),o},rt=(e=>e?Ve(e):Ve),nt=rt(e=>({activeModal:null,openModal:t=>e({activeModal:t}),closeModal:()=>e({activeModal:null})})),mo=e=>{if(typeof document>"u")return null;const t=document.cookie.split("; ").find(r=>r.startsWith(`${e}=`));if(!t)return null;const o=t.indexOf("=");return o!==-1?t.slice(o+1):null},Ue=(e,t,o)=>{if(typeof document>"u")return;const r=new Date(Date.now()+o*1e3),n=typeof window<"u"&&window.location?.protocol==="https:"?"; Secure":"";document.cookie=`${e}=${t}; expires=${r.toUTCString()}; path=/; SameSite=Lax${n}`},fo=()=>{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 e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=Array.from(e,o=>o.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`},st=()=>{const e=mo(we);if(!e)return null;try{return JSON.parse(decodeURIComponent(e)).token}catch{return null}},bo=()=>{const e=st();if(e){const r={token:e,createdAt:Date.now()};return Ue(we,encodeURIComponent(JSON.stringify(r)),Ne),e}const t=fo(),o={token:t,createdAt:Date.now()};return Ue(we,encodeURIComponent(JSON.stringify(o)),Ne),t},go=async e=>{const t=await fetch(Ht,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer_url:window.location.href,onside_token:e})});if(!t.ok)throw new Error(`HTTP ${t.status}: ${t.statusText}`);const o=await t.json();if(!o.url||!o.attribution_token||!o.exp)throw new Error("Invalid response format");return o},ho=async()=>{const t=st()||bo(),o=await go(t),r=o.exp<1e12?o.exp*1e3:o.exp;return{installUrl:o.url,attribution_token:o.attribution_token,is_eligible:o.is_eligible,onside_token:t,install_expires_at:r}},Be=3,wo=e=>Math.min(1e3*2**e,3e4),fe={installUrl:null,attribution_token:null,isEligible:null,onside_token:null,installExpiresAt:null,isLoading:!1,error:null};let J=null;const xo=e=>e?Date.now()<e:!1,B=rt((e,t)=>({...fe,fetchInstallData:async()=>{const o=t();if(!(o.installUrl&&xo(o.installExpiresAt))){if(J){await J;return}if(!o.isLoading){e({isLoading:!0,error:null}),J=(async()=>{let r=null;for(let n=0;n<Be;n++)try{const s=await ho();e({...fe,installUrl:s.installUrl,attribution_token:s.attribution_token,isEligible:s.is_eligible,onside_token:s.onside_token,installExpiresAt:s.install_expires_at,isLoading:!1,error:null});return}catch(s){r=s instanceof Error?s:new Error(String(s)),n<Be-1&&await new Promise(i=>setTimeout(i,wo(n)))}e({isLoading:!1,error:r})})();try{await J}finally{J=null}}}},reset:()=>e(fe)})),ko=(e=!0)=>{const t=B(m=>m.installUrl),o=B(m=>m.attribution_token),r=B(m=>m.isEligible),n=B(m=>m.onside_token),s=B(m=>m.isLoading),i=B(m=>m.error),p=B(m=>m.fetchInstallData),u=k.useRef(!1);return k.useEffect(()=>{e&&!u.current&&(u.current=!0,p())},[e,p]),{installUrl:t,attribution_token:o,isEligible:r,onside_token:n,isLoading:s,error:i,fetchInstallData:p}};function yo(){return typeof window>"u"?!1:localStorage.getItem("onside_analytics_logging")==="true"}function it(e,t={},o){try{if(typeof window>"u")return null;window.dataLayer||(window.dataLayer=[]);const r={...t,...ye()},n={event:"amplitude_event",event_name:e,event_properties:{timestamp:Date.now(),...r},...o?{user_properties:o}:{},url:window.location.href};return window.dataLayer.push({event:n.event,event_name:n.event_name,event_properties:n.event_properties,...n.user_properties?{user_properties:n.user_properties}:{}}),yo()&&console.log("🎯 Analytics Event:",{event_name:n.event_name,event_properties:n.event_properties,user_properties:n.user_properties,url:n.url}),n}catch(r){return console.error("Analytics error:",r),null}}function at(e,t,o,r={}){const n=`${e}.${t}`,s={modal_name:e,event_type:t,...r};return o&&(s.action=o),it(n,s)}const vo={INSTALL_BUTTON_CLICK:"install_button_click"},So=(e={},t)=>({trackInstallEvent:n=>{const s=it(vo.INSTALL_BUTTON_CLICK,{...e,event_type:n});s&&t?.onEvent?.(s)},trackOpenModalEvent:n=>{const s=at(n,"opened","install_button",{...e});s&&t?.onEvent?.(s)}}),Io=e=>{const{id:t,location:o="hero",customAnalytics:r,handleCustomStep:n,pathname:s}=e,i=lo(),{installUrl:p,error:u,onside_token:m,attribution_token:h,isEligible:y}=ko(i.canInstall),{openModal:I}=nt(),[O,S]=k.useState(!1),{trackOpenModalEvent:w,trackInstallEvent:E}=So({page:s,location:o,button_id:t??void 0,onside_token:m??void 0,attribution_token:h??void 0},r),T=k.useCallback(()=>{S(!0);const A=setTimeout(()=>{S(!1),clearTimeout(A)},ot)},[]),G=k.useCallback(A=>{if(!p){A.preventDefault();return}if(n){n();return}E(i.isIOS186PlusVersion?"ios_18_6_plus":"install_click"),window.location.href=p},[p,n,i.isIOS186PlusVersion,E]),M=k.useCallback(()=>{if(i.shouldGoToSafari){w("go_to_safari"),I("goToSafari");return}if(i.shouldUpdateIOS){w("update_ios"),I("updateIOS");return}T(),E("no_condition_matched")},[i.shouldGoToSafari,i.shouldUpdateIOS,I,T,E,w]),R=k.useCallback(()=>{w("is_android"),I("isAndroid")},[I,w]);return{viewMode:i.isAndroid?"android":O?"loading":p&&i.canInstall?"link":"button",installUrl:p,error:u,isEligible:y,conditions:i,handleInstallClick:G,handleModalFlowClick:M,handleAndroidClick:R}},Oo=e=>H.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},H.createElement("path",{d:"M12.1268 5.74646C11.3368 5.74646 10.1139 4.84824 8.82613 4.88071C7.12708 4.90235 5.56872 5.8655 4.69214 7.39139C2.92817 10.454 4.23762 14.9776 5.95831 17.4667C6.80243 18.6787 7.79805 20.0423 9.11832 19.999C10.3845 19.9449 10.8607 19.1765 12.3974 19.1765C13.9233 19.1765 14.3562 19.999 15.6981 19.9665C17.0617 19.9449 17.9274 18.7328 18.7607 17.5099C19.7239 16.1031 20.1243 14.7395 20.1459 14.6638C20.1134 14.653 17.4945 13.6465 17.4621 10.6164C17.4404 8.084 19.5291 6.87195 19.6265 6.81784C18.436 5.0755 16.6071 4.88071 15.9686 4.83742C14.3021 4.70755 12.906 5.74646 12.1268 5.74646ZM14.9406 3.19248C15.644 2.34837 16.1093 1.16877 15.9795 0C14.973 0.0432878 13.761 0.670965 13.0359 1.51508C12.3866 2.26179 11.8238 3.46303 11.9753 4.61016C13.09 4.69673 14.2371 4.03659 14.9406 3.19248Z",fill:"currentColor"})),_o=({className:e,onClick:t,children:o,id:r,androidClassName:n,androidTextClassName:s})=>b.jsx(Z,{id:r,className:D("bg-white px-7",e,n),variant:"secondary",size:"lg",onClick:t,children:b.jsxs("span",{className:"flex flex-row items-center gap-1",children:[b.jsx(Oo,{className:s?"text-[#FF465D]":void 0}),b.jsx("span",{className:D("flex-1",s),children:o})]})}),Eo=({href:e,onClick:t,children:o,className:r,id:n})=>b.jsx(Z,{id:n,href:e,size:"lg",onClick:t,className:r,children:o}),Ao=e=>H.createElement("svg",{stroke:"customColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",...e},H.createElement("style",null,".spinner_V8m1{transform-origin:center;animation:spinner_zKoa 2s linear infinite}.spinner_V8m1 circle{stroke-linecap:round;animation:spinner_YpZS 1.5s ease-in-out infinite}@keyframes spinner_zKoa{100%{transform:rotate(360deg)}}@keyframes spinner_YpZS{0%{stroke-dasharray:0 150;stroke-dashoffset:0}47.5%{stroke-dasharray:42 150;stroke-dashoffset:-16}95%,100%{stroke-dasharray:42 150;stroke-dashoffset:-59}}"),H.createElement("g",{className:"spinner_V8m1"},H.createElement("circle",{cx:12,cy:12,r:9.5,fill:"none",strokeWidth:3}))),Co=e=>{const{id:t,className:o,children:r="Loading...",showLoaderOnly:n}=e;return b.jsx(Z,{id:t,className:D("px-8 py-4",o),disabled:!0,children:b.jsxs("span",{className:"flex items-center gap-2",children:[b.jsx(Ao,{className:"size-5 animate-spin stroke-blue"}),!n&&r]})})},To=()=>b.jsx("p",{className:"mt-2 text-center text-sm text-red-600",children:"Unable to load install link. Please try again."}),lt=k.createContext(!1),Mo=e=>{const{className:t,children:o="Install Onside",handleCustomStep:r,location:n="hero",caption:s,captionClassName:i,showCaption:p=!0,showLoaderOnly:u=!1,androidClassName:m,androidTextClassName:h,customAnalytics:y,styleVars:I,id:O}=e,S=typeof window<"u"?window.location.pathname:"",w=k.useContext(lt),{viewMode:E,installUrl:T,error:G,isEligible:M,handleInstallClick:R,handleModalFlowClick:P,handleAndroidClick:A}=Io({id:O,location:n,customAnalytics:y,handleCustomStep:r,pathname:S});k.useEffect(()=>{},[w]);const F=p&&(!M||s)&&b.jsx("div",{className:D("text-2xs font-mono opacity-60 [color:var(--onside-caption-color,rgba(30,28,31,0.6))] [font-size:var(--onside-caption-size,var(--text-2xs))] [line-height:var(--onside-caption-line-height,var(--text-2xs--line-height))]",i),children:M?s:"Only available in the EU. Install from an eligible region."}),c={"data-provider-widget-host":"",style:I};switch(E){case"android":return b.jsx("div",{...c,children:b.jsx(_o,{id:O,className:t,androidClassName:m,androidTextClassName:h,onClick:A,children:"Onside is for iPhone and iPad"})});case"loading":return b.jsx("div",{...c,children:b.jsx(Co,{showLoaderOnly:u,id:O,className:D("bg-buttonHover!",t)})});case"link":return b.jsxs("div",{...c,children:[b.jsxs(Eo,{id:O,className:D(t,"flex-col gap-1"),href:T??"",onClick:R,children:[o,F]}),G&&b.jsx(To,{})]});default:return b.jsx("div",{...c,children:b.jsxs(Z,{id:O,className:D(t,"flex-col gap-1"),size:"lg",onClick:P,children:[o,F]})})}},Ro=k.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./AndroidPlatformModal-BNghy_S2.cjs"))).AndroidPlatformModal})),Po=k.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./GoToSafariModal-DJDoZzSN.cjs"))).GoToSafariModal})),No=k.lazy(async()=>({default:(await Promise.resolve().then(()=>require("./UpdateIOSModal-Cd2FI2Dl.cjs"))).UpdateIOSModal})),zo=()=>{const{activeModal:e,closeModal:t}=nt();return b.jsxs(k.Suspense,{fallback:null,children:[b.jsx(Po,{open:e==="goToSafari",onClose:t}),b.jsx(No,{open:e==="updateIOS",onClose:t}),b.jsx(Ro,{open:e==="isAndroid",onClose:t})]})},Lo=({children:e})=>b.jsxs(lt.Provider,{value:!0,children:[e,b.jsx(zo,{})]});exports.AVERAGE_CHECK_TIME=Yt;exports.AVERAGE_INSTALL_TIME=Xt;exports.AVERAGE_LOADING_TIME=ot;exports.Button=Z;exports.InstallAppButton=Mo;exports.InstallWidgetProvider=Lo;exports.clsx=Ke;exports.cn=D;exports.getDeviceInfo=ye;exports.trackModalEvent=at;
|