@monetize.software/sdk 3.0.0-alpha.8 → 3.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{PaywallUI-BrDiS6zg.js → PaywallUI-BhQpWSWN.js} +380 -375
- package/dist/chunks/PaywallUI-BhQpWSWN.js.map +1 -0
- package/dist/chunks/PaywallUI-C7Wp2TiR.js +26 -0
- package/dist/chunks/PaywallUI-C7Wp2TiR.js.map +1 -0
- package/dist/chunks/ar-7cgIM-Vl.js +2 -0
- package/dist/chunks/ar-7cgIM-Vl.js.map +1 -0
- package/dist/chunks/{ar-CHae8g-2.js → ar-B2Wg_IrC.js} +2 -2
- package/dist/chunks/ar-B2Wg_IrC.js.map +1 -0
- package/dist/chunks/{cs-eZTedzaK.js → cs-BNo9Dx0Q.js} +2 -2
- package/dist/chunks/cs-BNo9Dx0Q.js.map +1 -0
- package/dist/chunks/cs-S05PC5AC.js +2 -0
- package/dist/chunks/cs-S05PC5AC.js.map +1 -0
- package/dist/chunks/da-Bi4zBG14.js +2 -0
- package/dist/chunks/da-Bi4zBG14.js.map +1 -0
- package/dist/chunks/{da-Dca6j8fp.js → da-Do9Lq6En.js} +2 -2
- package/dist/chunks/da-Do9Lq6En.js.map +1 -0
- package/dist/chunks/{de-BCjn3PUI.js → de-C8pDZNvx.js} +2 -2
- package/dist/chunks/de-C8pDZNvx.js.map +1 -0
- package/dist/chunks/de-nCDB6D2W.js +2 -0
- package/dist/chunks/de-nCDB6D2W.js.map +1 -0
- package/dist/chunks/el-BrKaa978.js +2 -0
- package/dist/chunks/el-BrKaa978.js.map +1 -0
- package/dist/chunks/{el-BpXtDTez.js → el-DzMNX-_P.js} +2 -2
- package/dist/chunks/el-DzMNX-_P.js.map +1 -0
- package/dist/chunks/es-B-Wtyzrl.js +2 -0
- package/dist/chunks/es-B-Wtyzrl.js.map +1 -0
- package/dist/chunks/{es-B3P4nlMw.js → es-YrKt-q4w.js} +2 -2
- package/dist/chunks/es-YrKt-q4w.js.map +1 -0
- package/dist/chunks/{fi-BbQ_Bs0Z.js → fi-Bh44pwZ4.js} +2 -2
- package/dist/chunks/fi-Bh44pwZ4.js.map +1 -0
- package/dist/chunks/fi-D1SGXjnO.js +2 -0
- package/dist/chunks/fi-D1SGXjnO.js.map +1 -0
- package/dist/chunks/{fr-BKDUXceO.js → fr-Bc0pw4ws.js} +2 -2
- package/dist/chunks/fr-Bc0pw4ws.js.map +1 -0
- package/dist/chunks/fr-BhYf-iKk.js +2 -0
- package/dist/chunks/fr-BhYf-iKk.js.map +1 -0
- package/dist/chunks/he-BXAaFv6Y.js +2 -0
- package/dist/chunks/he-BXAaFv6Y.js.map +1 -0
- package/dist/chunks/{he-BVCHlTtT.js → he-Bfm-bhe3.js} +2 -2
- package/dist/chunks/he-Bfm-bhe3.js.map +1 -0
- package/dist/chunks/{hi-H_Hshh-7.js → hi-D-O-B9Dn.js} +2 -2
- package/dist/chunks/hi-D-O-B9Dn.js.map +1 -0
- package/dist/chunks/hi-xblDO0O7.js +2 -0
- package/dist/chunks/hi-xblDO0O7.js.map +1 -0
- package/dist/chunks/{hu-ZWiNfzvN.js → hu-CmIuAbLL.js} +2 -2
- package/dist/chunks/hu-CmIuAbLL.js.map +1 -0
- package/dist/chunks/hu-Wa46p0y4.js +2 -0
- package/dist/chunks/hu-Wa46p0y4.js.map +1 -0
- package/dist/chunks/id-CQEo5X94.js +2 -0
- package/dist/chunks/id-CQEo5X94.js.map +1 -0
- package/dist/chunks/{id-DeiRYsJ1.js → id-DN7IES-A.js} +2 -2
- package/dist/chunks/id-DN7IES-A.js.map +1 -0
- package/dist/chunks/it-8AYCm0xz.js +2 -0
- package/dist/chunks/it-8AYCm0xz.js.map +1 -0
- package/dist/chunks/{it-UH9OzFhg.js → it-Cz5Nmqx5.js} +2 -2
- package/dist/chunks/it-Cz5Nmqx5.js.map +1 -0
- package/dist/chunks/{ja-BYC8FRN8.js → ja-BH9BlBh2.js} +2 -2
- package/dist/chunks/ja-BH9BlBh2.js.map +1 -0
- package/dist/chunks/ja-q-COVayn.js +2 -0
- package/dist/chunks/ja-q-COVayn.js.map +1 -0
- package/dist/chunks/ko-B6HRCscZ.js +2 -0
- package/dist/chunks/ko-B6HRCscZ.js.map +1 -0
- package/dist/chunks/{ko-Bjs2ZRcF.js → ko-CYV9QuYs.js} +2 -2
- package/dist/chunks/ko-CYV9QuYs.js.map +1 -0
- package/dist/chunks/{nl-Ch5HFWQO.js → nl-BvkB900D.js} +2 -2
- package/dist/chunks/nl-BvkB900D.js.map +1 -0
- package/dist/chunks/nl-CAd6_xlm.js +2 -0
- package/dist/chunks/nl-CAd6_xlm.js.map +1 -0
- package/dist/chunks/{no-CljpinWz.js → no-3s9_ormb.js} +2 -2
- package/dist/chunks/no-3s9_ormb.js.map +1 -0
- package/dist/chunks/no-CAmz6bz6.js +2 -0
- package/dist/chunks/no-CAmz6bz6.js.map +1 -0
- package/dist/chunks/{pl-CUcSS0zZ.js → pl-C9WTGQtb.js} +2 -2
- package/dist/chunks/pl-C9WTGQtb.js.map +1 -0
- package/dist/chunks/pl-DqUSTCaF.js +2 -0
- package/dist/chunks/pl-DqUSTCaF.js.map +1 -0
- package/dist/chunks/pt-8ARZnH0_.js +2 -0
- package/dist/chunks/pt-8ARZnH0_.js.map +1 -0
- package/dist/chunks/{pt-BHK0LwkC.js → pt-uFVUv_Op.js} +2 -2
- package/dist/chunks/pt-uFVUv_Op.js.map +1 -0
- package/dist/chunks/{ro-Bj8cwU2n.js → ro-BrqQ8Au-.js} +2 -2
- package/dist/chunks/ro-BrqQ8Au-.js.map +1 -0
- package/dist/chunks/ro-D-NMbp2F.js +2 -0
- package/dist/chunks/ro-D-NMbp2F.js.map +1 -0
- package/dist/chunks/ru-8gbHPh0g.js +2 -0
- package/dist/chunks/ru-8gbHPh0g.js.map +1 -0
- package/dist/chunks/{ru-CgqNy0Gb.js → ru-DK594dA8.js} +2 -2
- package/dist/chunks/ru-DK594dA8.js.map +1 -0
- package/dist/chunks/{sv-H7jroOQ5.js → sv-CHNH8-mq.js} +2 -2
- package/dist/chunks/sv-CHNH8-mq.js.map +1 -0
- package/dist/chunks/sv-D8a8hmx9.js +2 -0
- package/dist/chunks/sv-D8a8hmx9.js.map +1 -0
- package/dist/chunks/th-DfjUK0Y7.js +2 -0
- package/dist/chunks/th-DfjUK0Y7.js.map +1 -0
- package/dist/chunks/{th-Dqm-gpGe.js → th-l24Pm5q-.js} +2 -2
- package/dist/chunks/th-l24Pm5q-.js.map +1 -0
- package/dist/chunks/{tr-D3zPcNtT.js → tr-ADpigSY5.js} +2 -2
- package/dist/chunks/tr-ADpigSY5.js.map +1 -0
- package/dist/chunks/tr-BdBpz4tL.js +2 -0
- package/dist/chunks/tr-BdBpz4tL.js.map +1 -0
- package/dist/chunks/{uk-CoIIs3QI.js → uk-CGqo4jek.js} +2 -2
- package/dist/chunks/uk-CGqo4jek.js.map +1 -0
- package/dist/chunks/uk-Cx1zv1ao.js +2 -0
- package/dist/chunks/uk-Cx1zv1ao.js.map +1 -0
- package/dist/chunks/{vi-C_fruIbh.js → vi-Dk9bTu6f.js} +2 -2
- package/dist/chunks/vi-Dk9bTu6f.js.map +1 -0
- package/dist/chunks/vi-oe2dW21I.js +2 -0
- package/dist/chunks/vi-oe2dW21I.js.map +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +21 -13
- package/dist/core.js +178 -158
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +21 -13
- package/dist/index.js +1 -1
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.ts +21 -13
- package/dist/ui.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/PaywallUI-BrDiS6zg.js.map +0 -1
- package/dist/chunks/PaywallUI-Bvx8nRL0.js +0 -26
- package/dist/chunks/PaywallUI-Bvx8nRL0.js.map +0 -1
- package/dist/chunks/ar-CHae8g-2.js.map +0 -1
- package/dist/chunks/ar-E1mc8SO_.js +0 -2
- package/dist/chunks/ar-E1mc8SO_.js.map +0 -1
- package/dist/chunks/cs-Dccq6LAT.js +0 -2
- package/dist/chunks/cs-Dccq6LAT.js.map +0 -1
- package/dist/chunks/cs-eZTedzaK.js.map +0 -1
- package/dist/chunks/da-C_4MbEh5.js +0 -2
- package/dist/chunks/da-C_4MbEh5.js.map +0 -1
- package/dist/chunks/da-Dca6j8fp.js.map +0 -1
- package/dist/chunks/de-BCjn3PUI.js.map +0 -1
- package/dist/chunks/de-DulxcJj-.js +0 -2
- package/dist/chunks/de-DulxcJj-.js.map +0 -1
- package/dist/chunks/el-BpXtDTez.js.map +0 -1
- package/dist/chunks/el-CVG_1iKB.js +0 -2
- package/dist/chunks/el-CVG_1iKB.js.map +0 -1
- package/dist/chunks/es-B3P4nlMw.js.map +0 -1
- package/dist/chunks/es-ri0uKzUW.js +0 -2
- package/dist/chunks/es-ri0uKzUW.js.map +0 -1
- package/dist/chunks/fi-BbQ_Bs0Z.js.map +0 -1
- package/dist/chunks/fi-CNZqWHjw.js +0 -2
- package/dist/chunks/fi-CNZqWHjw.js.map +0 -1
- package/dist/chunks/fr-BKDUXceO.js.map +0 -1
- package/dist/chunks/fr-CfFOw4hD.js +0 -2
- package/dist/chunks/fr-CfFOw4hD.js.map +0 -1
- package/dist/chunks/he-BVCHlTtT.js.map +0 -1
- package/dist/chunks/he-DN2JEtQb.js +0 -2
- package/dist/chunks/he-DN2JEtQb.js.map +0 -1
- package/dist/chunks/hi-DxfOerNP.js +0 -2
- package/dist/chunks/hi-DxfOerNP.js.map +0 -1
- package/dist/chunks/hi-H_Hshh-7.js.map +0 -1
- package/dist/chunks/hu-BTImywuV.js +0 -2
- package/dist/chunks/hu-BTImywuV.js.map +0 -1
- package/dist/chunks/hu-ZWiNfzvN.js.map +0 -1
- package/dist/chunks/id-DeiRYsJ1.js.map +0 -1
- package/dist/chunks/id-YFuArJA6.js +0 -2
- package/dist/chunks/id-YFuArJA6.js.map +0 -1
- package/dist/chunks/it-UH9OzFhg.js.map +0 -1
- package/dist/chunks/it-mhkzXBM9.js +0 -2
- package/dist/chunks/it-mhkzXBM9.js.map +0 -1
- package/dist/chunks/ja-6l_z_G9k.js +0 -2
- package/dist/chunks/ja-6l_z_G9k.js.map +0 -1
- package/dist/chunks/ja-BYC8FRN8.js.map +0 -1
- package/dist/chunks/ko-Bjs2ZRcF.js.map +0 -1
- package/dist/chunks/ko-YAl4XwHu.js +0 -2
- package/dist/chunks/ko-YAl4XwHu.js.map +0 -1
- package/dist/chunks/nl-C-9zHtfb.js +0 -2
- package/dist/chunks/nl-C-9zHtfb.js.map +0 -1
- package/dist/chunks/nl-Ch5HFWQO.js.map +0 -1
- package/dist/chunks/no-CljpinWz.js.map +0 -1
- package/dist/chunks/no-qzPitLlx.js +0 -2
- package/dist/chunks/no-qzPitLlx.js.map +0 -1
- package/dist/chunks/pl-CUcSS0zZ.js.map +0 -1
- package/dist/chunks/pl-MAIYeuhW.js +0 -2
- package/dist/chunks/pl-MAIYeuhW.js.map +0 -1
- package/dist/chunks/pt-BHK0LwkC.js.map +0 -1
- package/dist/chunks/pt-DqDabE4v.js +0 -2
- package/dist/chunks/pt-DqDabE4v.js.map +0 -1
- package/dist/chunks/ro-BVs-lHH-.js +0 -2
- package/dist/chunks/ro-BVs-lHH-.js.map +0 -1
- package/dist/chunks/ro-Bj8cwU2n.js.map +0 -1
- package/dist/chunks/ru-CgqNy0Gb.js.map +0 -1
- package/dist/chunks/ru-DP7qDAmE.js +0 -2
- package/dist/chunks/ru-DP7qDAmE.js.map +0 -1
- package/dist/chunks/sv-B3QEYGgd.js +0 -2
- package/dist/chunks/sv-B3QEYGgd.js.map +0 -1
- package/dist/chunks/sv-H7jroOQ5.js.map +0 -1
- package/dist/chunks/th-Dqm-gpGe.js.map +0 -1
- package/dist/chunks/th-DzQau9aW.js +0 -2
- package/dist/chunks/th-DzQau9aW.js.map +0 -1
- package/dist/chunks/tr-D3zPcNtT.js.map +0 -1
- package/dist/chunks/tr-cG1YuE1E.js +0 -2
- package/dist/chunks/tr-cG1YuE1E.js.map +0 -1
- package/dist/chunks/uk-CoIIs3QI.js.map +0 -1
- package/dist/chunks/uk-Cvbo0IBW.js +0 -2
- package/dist/chunks/uk-Cvbo0IBW.js.map +0 -1
- package/dist/chunks/vi-BRtYSBUp.js +0 -2
- package/dist/chunks/vi-BRtYSBUp.js.map +0 -1
- package/dist/chunks/vi-C_fruIbh.js.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { PaywallError as
|
|
2
|
-
import { render as
|
|
3
|
-
import { jsx as a, jsxs as c, Fragment as
|
|
4
|
-
import { useContext as
|
|
5
|
-
const
|
|
6
|
-
function
|
|
1
|
+
import { PaywallError as O, BillingClient as Ut, EventTracker as Dt, AuthClient as ct } from "../core.js";
|
|
2
|
+
import { render as Y, h as dt, createContext as Nt } from "preact";
|
|
3
|
+
import { jsx as a, jsxs as c, Fragment as ot } from "preact/jsx-runtime";
|
|
4
|
+
import { useContext as $t, useState as b, useEffect as E, useRef as F, useMemo as Ht, useLayoutEffect as Vt } from "preact/hooks";
|
|
5
|
+
const ut = 3600 * 1e3;
|
|
6
|
+
function X(e) {
|
|
7
7
|
return `paywall-${e}-trial-time-first-open`;
|
|
8
8
|
}
|
|
9
|
-
function
|
|
9
|
+
function J(e) {
|
|
10
10
|
return `paywall-${e}-skip-times`;
|
|
11
11
|
}
|
|
12
|
-
class
|
|
12
|
+
class Ct {
|
|
13
13
|
constructor(t, r, n) {
|
|
14
14
|
this.storage = t, this.paywallId = r, this.config = n;
|
|
15
15
|
}
|
|
@@ -20,10 +20,10 @@ class St {
|
|
|
20
20
|
return this.config.mode === "time" ? this.recordTime() : this.recordOpens();
|
|
21
21
|
}
|
|
22
22
|
async reset() {
|
|
23
|
-
await this.storage.removeItem(this.config.mode === "time" ?
|
|
23
|
+
await this.storage.removeItem(this.config.mode === "time" ? X(this.paywallId) : J(this.paywallId));
|
|
24
24
|
}
|
|
25
25
|
async checkTime() {
|
|
26
|
-
const t = this.config.payload *
|
|
26
|
+
const t = this.config.payload * ut, r = await this.storage.getItem(X(this.paywallId)), n = r ? Number(r) : null;
|
|
27
27
|
if (!n || !Number.isFinite(n))
|
|
28
28
|
return {
|
|
29
29
|
mode: "time",
|
|
@@ -44,7 +44,7 @@ class St {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
async checkOpens() {
|
|
47
|
-
const t = this.config.payload, r = await this.storage.getItem(
|
|
47
|
+
const t = this.config.payload, r = await this.storage.getItem(J(this.paywallId)), n = r ? Number(r) : 0, i = Number.isFinite(n) ? n : 0, o = i < t, s = Math.max(0, t - i);
|
|
48
48
|
return {
|
|
49
49
|
mode: "opens",
|
|
50
50
|
blocked: o,
|
|
@@ -53,7 +53,7 @@ class St {
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
async recordTime() {
|
|
56
|
-
const t = this.config.payload *
|
|
56
|
+
const t = this.config.payload * ut, r = X(this.paywallId), n = await this.storage.getItem(r);
|
|
57
57
|
let i = n ? Number(n) : null;
|
|
58
58
|
(!i || !Number.isFinite(i)) && (i = Date.now(), await this.storage.setItem(r, String(i)));
|
|
59
59
|
const o = i + t, s = Math.max(0, o - Date.now());
|
|
@@ -67,7 +67,7 @@ class St {
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
async recordOpens() {
|
|
70
|
-
const t = this.config.payload, r =
|
|
70
|
+
const t = this.config.payload, r = J(this.paywallId), n = await this.storage.getItem(r), i = n ? Number(n) : 0, o = Number.isFinite(i) ? i : 0, s = Math.min(t, o + 1);
|
|
71
71
|
await this.storage.setItem(r, String(s));
|
|
72
72
|
const d = Math.max(0, t - s);
|
|
73
73
|
return {
|
|
@@ -78,12 +78,12 @@ class St {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
let
|
|
82
|
-
class
|
|
81
|
+
let pt = !1;
|
|
82
|
+
class Gt {
|
|
83
83
|
constructor(t, r, n) {
|
|
84
|
-
|
|
84
|
+
pt || (pt = !0, console.warn(
|
|
85
85
|
'[paywall] trial.storage="server" is not implemented yet — falling back to client storage. State lives in localStorage; users can reset trial by clearing site data.'
|
|
86
|
-
)), this.fallback = new
|
|
86
|
+
)), this.fallback = new Ct(t, r, n);
|
|
87
87
|
}
|
|
88
88
|
check() {
|
|
89
89
|
return this.fallback.check();
|
|
@@ -95,17 +95,17 @@ class Vt {
|
|
|
95
95
|
return this.fallback.reset();
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
function
|
|
99
|
-
return r.storage === "server" ? new
|
|
98
|
+
function qt(e, t, r) {
|
|
99
|
+
return r.storage === "server" ? new Gt(e, t, r) : new Ct(e, t, r);
|
|
100
100
|
}
|
|
101
|
-
const Ct = '/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-600:oklch(57.7% .245 27.325);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{all:initial;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed}[role=button],[role=radio]{cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.-top-2{top:calc(var(--spacing) * -2)}.-top-\\[9px\\]{top:-9px}.-top-\\[10px\\]{top:-10px}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.-right-\\[6px\\]{right:-6px}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.left-1\\/2{left:50%}.z-10{z-index:10}.z-\\[1\\]{z-index:1}.z-\\[2147483647\\]{z-index:2147483647}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-mt-3{margin-top:calc(var(--spacing) * -3)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing) * 1)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-6\\.5{height:calc(var(--spacing) * 6.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-\\[22px\\]{height:22px}.h-full{height:100%}.h-px{height:1px}.max-h-\\[calc\\(100dvh-1rem\\)\\]{max-height:calc(100dvh - 1rem)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-\\[2\\.4em\\]{min-height:2.4em}.min-h-\\[120px\\]{min-height:120px}.w-1{width:calc(var(--spacing) * 1)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-6\\.5{width:calc(var(--spacing) * 6.5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-full{width:100%}.max-w-\\[18rem\\]{max-width:18rem}.max-w-\\[20rem\\]{max-width:20rem}.max-w-\\[75\\%\\]{max-width:75%}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[400px\\]{max-width:400px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\[pw-fade-in_180ms_ease-out\\]{animation:.18s ease-out pw-fade-in}.animate-\\[pw-scale-in_220ms_cubic-bezier\\(0\\.16\\,1\\,0\\.3\\,1\\)\\]{animation:.22s cubic-bezier(.16,1,.3,1) pw-scale-in}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-1\\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[9px\\]{border-radius:9px}.rounded-\\[11px\\]{border-radius:11px}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-tl-xl{border-top-left-radius:var(--radius-xl)}.rounded-tr-xl{border-top-right-radius:var(--radius-xl)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border,.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.border-\\[3px\\]{border-style:var(--tw-border-style);border-width:3px}.border-\\[5px\\]{border-style:var(--tw-border-style);border-width:5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b,.border-b-1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\\[var\\(--pw-accent\\)\\]{border-color:var(--pw-accent)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-white{border-color:var(--color-white)}.border-white\\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\\/40{border-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.border-t-\\[var\\(--pw-accent\\)\\]{border-top-color:var(--pw-accent)}.border-t-gray-700{border-top-color:var(--color-gray-700)}.border-t-white{border-top-color:var(--color-white)}.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:var(--pw-accent)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:color-mix(in srgb,var(--pw-accent) 6%,white)}}.bg-black\\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\\/20{background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\\/60{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\\/60{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-red-50{background-color:var(--color-red-50)}.bg-slate-950\\/50{background-color:#02061880}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\\/50{background-color:color-mix(in oklab,var(--color-slate-950) 50%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-3\\.5{padding:calc(var(--spacing) * 3.5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[0\\.9375rem\\]{font-size:.9375rem}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[22px\\]{font-size:22px}.text-\\[26px\\]{font-size:26px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-800\\/70{color:#1e2939b3}@supports (color:color-mix(in lab,red,red)){.text-gray-800\\/70{color:color-mix(in oklab,var(--color-gray-800) 70%,transparent)}}.text-gray-900{color:var(--color-gray-900)}.text-red-600{color:var(--color-red-600)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-gray-400{-webkit-text-decoration-color:var(--color-gray-400);text-decoration-color:var(--color-gray-400)}.decoration-\\[1\\.5px\\]{text-decoration-thickness:1.5px}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_2px_rgba\\(239\\,68\\,68\\,0\\.5\\)\\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,#ef444480);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\\!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,)!important}.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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\\:text-gray-500::placeholder{color:var(--color-gray-500)}@media(hover:hover){.hover\\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-50\\/60:hover{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-gray-50\\/60:hover{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200\\/60:hover{background-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-gray-200\\/60:hover{background-color:color-mix(in oklab,var(--color-gray-200) 60%,transparent)}}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-gray-700:hover{color:var(--color-gray-700)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-red-600:hover{color:var(--color-red-600)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}.hover\\:brightness-105:hover{--tw-brightness:brightness(105%);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,)}}.focus\\:bg-gray-200\\/60:focus{background-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.focus\\:bg-gray-200\\/60:focus{background-color:color-mix(in oklab,var(--color-gray-200) 60%,transparent)}}.focus\\:shadow-\\[0_0_0_2px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_30\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,var(--pw-accent))}@supports (color:color-mix(in lab,red,red)){.focus\\:shadow-\\[0_0_0_2px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_30\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,color-mix(in srgb,var(--pw-accent) 30%,transparent))}}.focus\\:shadow-\\[0_0_0_2px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_30\\%\\,transparent\\)\\]:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:opacity-80:focus-visible{opacity:.8}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-\\[var\\(--pw-accent\\)\\]:focus-visible{--tw-ring-color:var(--pw-accent)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-inset:focus-visible{--tw-ring-inset:inset}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-60:disabled{opacity:.6}@media(hover:hover){.disabled\\:hover\\:translate-y-0:disabled:hover{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\\:hover\\:brightness-100:disabled:hover{--tw-brightness:brightness(100%);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,)}}@media(min-width:40rem){.sm\\:max-h-\\[calc\\(100dvh-2rem\\)\\]{max-height:calc(100dvh - 2rem)}.sm\\:p-4{padding:calc(var(--spacing) * 4)}.sm\\:p-8{padding:calc(var(--spacing) * 8)}.sm\\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\\:pt-5{padding-top:calc(var(--spacing) * 5)}.sm\\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.sm\\:pb-8{padding-bottom:calc(var(--spacing) * 8)}.sm\\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}}.pw-cta-shimmer:before{content:"";z-index:1;background:linear-gradient(90deg,#0000,#ffffff59 50%,#0000);width:100%;height:100%;animation:3s infinite pw-cta-shimmer;position:absolute;top:0;left:-100%}@keyframes pw-cta-shimmer{0%{left:-100%}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}';
|
|
102
|
-
let
|
|
103
|
-
function
|
|
104
|
-
if (
|
|
101
|
+
const It = '/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-600:oklch(57.7% .245 27.325);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{all:initial;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed}[role=button],[role=radio]{cursor:pointer}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.-top-2{top:calc(var(--spacing) * -2)}.-top-\\[9px\\]{top:-9px}.-top-\\[10px\\]{top:-10px}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.-right-\\[6px\\]{right:-6px}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.left-1\\/2{left:50%}.z-10{z-index:10}.z-\\[1\\]{z-index:1}.z-\\[2147483647\\]{z-index:2147483647}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.-mt-3{margin-top:calc(var(--spacing) * -3)}.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.-mb-2{margin-bottom:calc(var(--spacing) * -2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-1{height:calc(var(--spacing) * 1)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-6\\.5{height:calc(var(--spacing) * 6.5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-\\[22px\\]{height:22px}.h-full{height:100%}.h-px{height:1px}.max-h-\\[calc\\(100dvh-1rem\\)\\]{max-height:calc(100dvh - 1rem)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-\\[2\\.4em\\]{min-height:2.4em}.min-h-\\[120px\\]{min-height:120px}.w-1{width:calc(var(--spacing) * 1)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-6\\.5{width:calc(var(--spacing) * 6.5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-full{width:100%}.max-w-\\[18rem\\]{max-width:18rem}.max-w-\\[20rem\\]{max-width:20rem}.max-w-\\[75\\%\\]{max-width:75%}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[400px\\]{max-width:400px}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\[pw-fade-in_180ms_ease-out\\]{animation:.18s ease-out pw-fade-in}.animate-\\[pw-scale-in_220ms_cubic-bezier\\(0\\.16\\,1\\,0\\.3\\,1\\)\\]{animation:.22s cubic-bezier(.16,1,.3,1) pw-scale-in}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-1\\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.self-center{align-self:center}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[9px\\]{border-radius:9px}.rounded-\\[11px\\]{border-radius:11px}.rounded-full{border-radius:3.40282e38px}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-tl-xl{border-top-left-radius:var(--radius-xl)}.rounded-tr-xl{border-top-right-radius:var(--radius-xl)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.border,.border-1{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.border-\\[3px\\]{border-style:var(--tw-border-style);border-width:3px}.border-\\[5px\\]{border-style:var(--tw-border-style);border-width:5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b,.border-b-1{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\\[var\\(--pw-accent\\)\\]{border-color:var(--pw-accent)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-white{border-color:var(--color-white)}.border-white\\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\\/40{border-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.border-t-\\[var\\(--pw-accent\\)\\]{border-top-color:var(--pw-accent)}.border-t-gray-700{border-top-color:var(--color-gray-700)}.border-t-white{border-top-color:var(--color-white)}.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:var(--pw-accent)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:color-mix(in srgb,var(--pw-accent) 6%,white)}}.bg-black\\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\\/20{background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\\/60{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.bg-gray-50\\/60{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-red-50{background-color:var(--color-red-50)}.bg-slate-950\\/50{background-color:#02061880}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\\/50{background-color:color-mix(in oklab,var(--color-slate-950) 50%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/80{background-color:#fffc}@supports (color:color-mix(in lab,red,red)){.bg-white\\/80{background-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-3\\.5{padding:calc(var(--spacing) * 3.5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-3\\.5{padding-top:calc(var(--spacing) * 3.5)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[0\\.9375rem\\]{font-size:.9375rem}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[22px\\]{font-size:22px}.text-\\[26px\\]{font-size:26px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-700{color:var(--color-emerald-700)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-800\\/70{color:#1e2939b3}@supports (color:color-mix(in lab,red,red)){.text-gray-800\\/70{color:color-mix(in oklab,var(--color-gray-800) 70%,transparent)}}.text-gray-900{color:var(--color-gray-900)}.text-red-600{color:var(--color-red-600)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-gray-400{-webkit-text-decoration-color:var(--color-gray-400);text-decoration-color:var(--color-gray-400)}.decoration-\\[1\\.5px\\]{text-decoration-thickness:1.5px}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_2px_rgba\\(239\\,68\\,68\\,0\\.5\\)\\]{--tw-shadow:0 0 0 2px var(--tw-shadow-color,#ef444480);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.\\!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,)!important}.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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.placeholder\\:text-gray-500::placeholder{color:var(--color-gray-500)}@media(hover:hover){.hover\\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-50\\/60:hover{background-color:#f9fafb99}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-gray-50\\/60:hover{background-color:color-mix(in oklab,var(--color-gray-50) 60%,transparent)}}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200\\/60:hover{background-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-gray-200\\/60:hover{background-color:color-mix(in oklab,var(--color-gray-200) 60%,transparent)}}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-gray-700:hover{color:var(--color-gray-700)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-red-600:hover{color:var(--color-red-600)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}.hover\\:brightness-105:hover{--tw-brightness:brightness(105%);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,)}}.focus\\:bg-gray-200\\/60:focus{background-color:#e5e7eb99}@supports (color:color-mix(in lab,red,red)){.focus\\:bg-gray-200\\/60:focus{background-color:color-mix(in oklab,var(--color-gray-200) 60%,transparent)}}.focus\\:shadow-\\[0_0_0_2px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_30\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,var(--pw-accent))}@supports (color:color-mix(in lab,red,red)){.focus\\:shadow-\\[0_0_0_2px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_30\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,color-mix(in srgb,var(--pw-accent) 30%,transparent))}}.focus\\:shadow-\\[0_0_0_2px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_30\\%\\,transparent\\)\\]:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:opacity-80:focus-visible{opacity:.8}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-\\[var\\(--pw-accent\\)\\]:focus-visible{--tw-ring-color:var(--pw-accent)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\\:ring-inset:focus-visible{--tw-ring-inset:inset}.active\\:scale-\\[0\\.98\\]:active{scale:.98}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-60:disabled{opacity:.6}@media(hover:hover){.disabled\\:hover\\:translate-y-0:disabled:hover{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\\:hover\\:brightness-100:disabled:hover{--tw-brightness:brightness(100%);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,)}}@media(min-width:40rem){.sm\\:max-h-\\[calc\\(100dvh-2rem\\)\\]{max-height:calc(100dvh - 2rem)}.sm\\:p-4{padding:calc(var(--spacing) * 4)}.sm\\:p-8{padding:calc(var(--spacing) * 8)}.sm\\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\\:pt-5{padding-top:calc(var(--spacing) * 5)}.sm\\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.sm\\:pb-8{padding-bottom:calc(var(--spacing) * 8)}.sm\\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}}.pw-cta-shimmer:before{content:"";z-index:1;background:linear-gradient(90deg,#0000,#ffffff59 50%,#0000);width:100%;height:100%;animation:3s infinite pw-cta-shimmer;position:absolute;top:0;left:-100%}@keyframes pw-cta-shimmer{0%{left:-100%}to{left:100%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}';
|
|
102
|
+
let ht = !1;
|
|
103
|
+
function Wt() {
|
|
104
|
+
if (ht || (ht = !0, typeof CSS > "u" || typeof CSS.registerProperty != "function")) return;
|
|
105
105
|
let e;
|
|
106
106
|
try {
|
|
107
107
|
const t = new CSSStyleSheet();
|
|
108
|
-
t.replaceSync(
|
|
108
|
+
t.replaceSync(It), e = t.cssRules;
|
|
109
109
|
} catch {
|
|
110
110
|
return;
|
|
111
111
|
}
|
|
@@ -123,10 +123,10 @@ function qt() {
|
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
function
|
|
126
|
+
function Zt(e, t, r = {}) {
|
|
127
127
|
if (typeof document > "u")
|
|
128
128
|
throw new Error("mountShadow called in non-DOM environment");
|
|
129
|
-
|
|
129
|
+
Wt();
|
|
130
130
|
const n = r.host ?? document.createElement("div");
|
|
131
131
|
n.setAttribute("data-paywall-host", ""), n.style.cssText = r.inline ? "all: initial; position: absolute; inset: 0; z-index: 1; pointer-events: none;" : "all: initial; position: fixed; inset: 0; z-index: 2147483647; pointer-events: none;", !n.isConnected && !r.inline && document.body.appendChild(n);
|
|
132
132
|
const i = n.attachShadow({ mode: r.shadowMode ?? "closed" }), o = `
|
|
@@ -148,21 +148,21 @@ function Wt(e, t, r = {}) {
|
|
|
148
148
|
visibility: visible !important;
|
|
149
149
|
}
|
|
150
150
|
`, s = document.createElement("style");
|
|
151
|
-
s.textContent = o +
|
|
151
|
+
s.textContent = o + It + (r.injectCss ?? ""), i.appendChild(s);
|
|
152
152
|
const d = document.createElement("div");
|
|
153
153
|
d.style.pointerEvents = "auto", i.appendChild(d);
|
|
154
154
|
let l = t;
|
|
155
|
-
return
|
|
155
|
+
return Y(dt(e, l), d), {
|
|
156
156
|
shadowRoot: i,
|
|
157
157
|
update(g) {
|
|
158
|
-
l = { ...l, ...g },
|
|
158
|
+
l = { ...l, ...g }, Y(dt(e, l), d);
|
|
159
159
|
},
|
|
160
160
|
unmount() {
|
|
161
|
-
|
|
161
|
+
Y(null, d), n.remove();
|
|
162
162
|
}
|
|
163
163
|
};
|
|
164
164
|
}
|
|
165
|
-
const
|
|
165
|
+
const Kt = (e, t, r) => {
|
|
166
166
|
const n = e[t];
|
|
167
167
|
return n ? typeof n == "function" ? n() : Promise.resolve(n) : new Promise((i, o) => {
|
|
168
168
|
(typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(
|
|
@@ -174,7 +174,7 @@ const Zt = (e, t, r) => {
|
|
|
174
174
|
)
|
|
175
175
|
);
|
|
176
176
|
});
|
|
177
|
-
},
|
|
177
|
+
}, Yt = [
|
|
178
178
|
"ru",
|
|
179
179
|
"uk",
|
|
180
180
|
"de",
|
|
@@ -202,19 +202,19 @@ const Zt = (e, t, r) => {
|
|
|
202
202
|
"th",
|
|
203
203
|
"vi",
|
|
204
204
|
"he"
|
|
205
|
-
],
|
|
206
|
-
function
|
|
205
|
+
], At = (e, t, r) => Lt(t, r), Mt = Nt({ t: At, locale: "en" });
|
|
206
|
+
function Lt(e, t) {
|
|
207
207
|
if (!t) return e;
|
|
208
208
|
let r = e;
|
|
209
209
|
for (const [n, i] of Object.entries(t))
|
|
210
210
|
r = r.split(`{${n}}`).join(String(i));
|
|
211
211
|
return r;
|
|
212
212
|
}
|
|
213
|
-
const
|
|
214
|
-
function
|
|
215
|
-
return
|
|
213
|
+
const Q = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map();
|
|
214
|
+
function Pt(e) {
|
|
215
|
+
return Yt.includes(e);
|
|
216
216
|
}
|
|
217
|
-
function
|
|
217
|
+
function Xt(e) {
|
|
218
218
|
const t = [];
|
|
219
219
|
if (typeof navigator < "u" && navigator.language) {
|
|
220
220
|
t.push(navigator.language);
|
|
@@ -228,36 +228,36 @@ function Yt(e) {
|
|
|
228
228
|
n && n !== r && t.push(n);
|
|
229
229
|
}
|
|
230
230
|
for (const n of t)
|
|
231
|
-
if (
|
|
231
|
+
if (Pt(n)) return n;
|
|
232
232
|
return null;
|
|
233
233
|
}
|
|
234
|
-
function
|
|
234
|
+
function Jt(e, t) {
|
|
235
235
|
return !!e.locales && e.locales[t] !== void 0;
|
|
236
236
|
}
|
|
237
|
-
async function
|
|
238
|
-
const t =
|
|
237
|
+
async function Qt(e) {
|
|
238
|
+
const t = Q.get(e);
|
|
239
239
|
if (t) return t;
|
|
240
|
-
const r =
|
|
240
|
+
const r = tt.get(e);
|
|
241
241
|
if (r) return r;
|
|
242
|
-
const n =
|
|
242
|
+
const n = Kt(/* @__PURE__ */ Object.assign({ "./locales/ar.ts": () => import("./ar-B2Wg_IrC.js"), "./locales/cs.ts": () => import("./cs-BNo9Dx0Q.js"), "./locales/da.ts": () => import("./da-Do9Lq6En.js"), "./locales/de.ts": () => import("./de-C8pDZNvx.js"), "./locales/el.ts": () => import("./el-DzMNX-_P.js"), "./locales/es.ts": () => import("./es-YrKt-q4w.js"), "./locales/fi.ts": () => import("./fi-Bh44pwZ4.js"), "./locales/fr.ts": () => import("./fr-Bc0pw4ws.js"), "./locales/he.ts": () => import("./he-Bfm-bhe3.js"), "./locales/hi.ts": () => import("./hi-D-O-B9Dn.js"), "./locales/hu.ts": () => import("./hu-CmIuAbLL.js"), "./locales/id.ts": () => import("./id-DN7IES-A.js"), "./locales/it.ts": () => import("./it-Cz5Nmqx5.js"), "./locales/ja.ts": () => import("./ja-BH9BlBh2.js"), "./locales/ko.ts": () => import("./ko-CYV9QuYs.js"), "./locales/nl.ts": () => import("./nl-BvkB900D.js"), "./locales/no.ts": () => import("./no-3s9_ormb.js"), "./locales/pl.ts": () => import("./pl-C9WTGQtb.js"), "./locales/pt.ts": () => import("./pt-uFVUv_Op.js"), "./locales/ro.ts": () => import("./ro-BrqQ8Au-.js"), "./locales/ru.ts": () => import("./ru-DK594dA8.js"), "./locales/sv.ts": () => import("./sv-CHNH8-mq.js"), "./locales/th.ts": () => import("./th-l24Pm5q-.js"), "./locales/tr.ts": () => import("./tr-ADpigSY5.js"), "./locales/uk.ts": () => import("./uk-CGqo4jek.js"), "./locales/vi.ts": () => import("./vi-Dk9bTu6f.js"), "./locales/zh.ts": () => import("./zh-LDkEV2D9.js") }), `./locales/${e}.ts`, 3).then((i) => {
|
|
243
243
|
const o = i.default ?? {};
|
|
244
|
-
return
|
|
244
|
+
return Q.set(e, o), o;
|
|
245
245
|
}).catch((i) => {
|
|
246
246
|
console.warn(`[paywall] failed to load locale chunk "${e}"`, i);
|
|
247
247
|
const o = {};
|
|
248
|
-
return
|
|
248
|
+
return Q.set(e, o), o;
|
|
249
249
|
}).finally(() => {
|
|
250
|
-
|
|
250
|
+
tt.delete(e);
|
|
251
251
|
});
|
|
252
|
-
return
|
|
252
|
+
return tt.set(e, n), n;
|
|
253
253
|
}
|
|
254
|
-
function
|
|
254
|
+
function te({ bootstrap: e, forceLocale: t, children: r }) {
|
|
255
255
|
const [n, i] = b("en"), [o, s] = b(null);
|
|
256
|
-
|
|
257
|
-
const g = (t &&
|
|
256
|
+
E(() => {
|
|
257
|
+
const g = (t && Pt(t) ? t : null) ?? (() => {
|
|
258
258
|
if (!e) return null;
|
|
259
|
-
const u =
|
|
260
|
-
return !u || !
|
|
259
|
+
const u = Xt(e);
|
|
260
|
+
return !u || !Jt(e, u) ? null : u;
|
|
261
261
|
})();
|
|
262
262
|
if (!g) {
|
|
263
263
|
(o !== null || n !== "en") && (i("en"), s(null));
|
|
@@ -265,7 +265,7 @@ function Qt({ bootstrap: e, forceLocale: t, children: r }) {
|
|
|
265
265
|
}
|
|
266
266
|
if (g === n && o) return;
|
|
267
267
|
let p = !1;
|
|
268
|
-
return
|
|
268
|
+
return Qt(g).then((u) => {
|
|
269
269
|
p || (i(g), s(u));
|
|
270
270
|
}), () => {
|
|
271
271
|
p = !0;
|
|
@@ -273,15 +273,15 @@ function Qt({ bootstrap: e, forceLocale: t, children: r }) {
|
|
|
273
273
|
}, [e, t]);
|
|
274
274
|
const d = {
|
|
275
275
|
locale: n,
|
|
276
|
-
t: o ? (l, g, p) =>
|
|
276
|
+
t: o ? (l, g, p) => Lt(o[l] ?? g, p) : At
|
|
277
277
|
};
|
|
278
|
-
return /* @__PURE__ */ a(
|
|
278
|
+
return /* @__PURE__ */ a(Mt.Provider, { value: d, children: r });
|
|
279
279
|
}
|
|
280
280
|
function v() {
|
|
281
|
-
return
|
|
281
|
+
return $t(Mt);
|
|
282
282
|
}
|
|
283
|
-
const
|
|
284
|
-
function
|
|
283
|
+
const gt = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
|
|
284
|
+
function ee({
|
|
285
285
|
open: e,
|
|
286
286
|
onClose: t,
|
|
287
287
|
labelledBy: r,
|
|
@@ -292,12 +292,12 @@ function te({
|
|
|
292
292
|
inline: d = !1,
|
|
293
293
|
children: l
|
|
294
294
|
}) {
|
|
295
|
-
const { t: g } = v(), p =
|
|
296
|
-
return
|
|
295
|
+
const { t: g } = v(), p = F(null), u = F(null);
|
|
296
|
+
return E(() => {
|
|
297
297
|
if (!e) return;
|
|
298
298
|
u.current = document.activeElement ?? null;
|
|
299
299
|
const h = p.current;
|
|
300
|
-
h && (h.querySelector(
|
|
300
|
+
h && (h.querySelector(gt) ?? h).focus({ preventScroll: !0 });
|
|
301
301
|
const m = (_) => {
|
|
302
302
|
if (_.key === "Escape") {
|
|
303
303
|
if (!o) return;
|
|
@@ -306,19 +306,19 @@ function te({
|
|
|
306
306
|
}
|
|
307
307
|
if (_.key !== "Tab" || !p.current) return;
|
|
308
308
|
const S = Array.from(
|
|
309
|
-
p.current.querySelectorAll(
|
|
310
|
-
).filter((
|
|
309
|
+
p.current.querySelectorAll(gt)
|
|
310
|
+
).filter((z) => !z.hasAttribute("disabled") && z.tabIndex !== -1);
|
|
311
311
|
if (S.length === 0) {
|
|
312
312
|
_.preventDefault();
|
|
313
313
|
return;
|
|
314
314
|
}
|
|
315
|
-
const
|
|
316
|
-
_.shiftKey &&
|
|
315
|
+
const A = S[0], R = S[S.length - 1], P = document.activeElement;
|
|
316
|
+
_.shiftKey && P === A ? (_.preventDefault(), R.focus()) : !_.shiftKey && P === R && (_.preventDefault(), A.focus());
|
|
317
317
|
};
|
|
318
318
|
document.addEventListener("keydown", m, !0);
|
|
319
|
-
const
|
|
319
|
+
const j = document.body.style.overflow;
|
|
320
320
|
return d || (document.body.style.overflow = "hidden"), () => {
|
|
321
|
-
document.removeEventListener("keydown", m, !0), d || (document.body.style.overflow =
|
|
321
|
+
document.removeEventListener("keydown", m, !0), d || (document.body.style.overflow = j), u.current?.focus?.({ preventScroll: !0 });
|
|
322
322
|
};
|
|
323
323
|
}, [e, t, o, d]), e ? /* @__PURE__ */ c(
|
|
324
324
|
"div",
|
|
@@ -385,7 +385,7 @@ function te({
|
|
|
385
385
|
}
|
|
386
386
|
) : null;
|
|
387
387
|
}
|
|
388
|
-
function
|
|
388
|
+
function re(e, t) {
|
|
389
389
|
switch (e) {
|
|
390
390
|
case "google":
|
|
391
391
|
return t("auth.continue_with_google", "Continue with Google");
|
|
@@ -397,9 +397,9 @@ function ee(e, t) {
|
|
|
397
397
|
return t("auth.continue_with_facebook", "Continue with Facebook");
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
|
-
function
|
|
400
|
+
function ft(e, t, r) {
|
|
401
401
|
const n = t === "signup" ? r("auth.signup_failed", "Sign-up failed") : r("auth.signin_failed", "Sign-in failed");
|
|
402
|
-
if (!(e instanceof
|
|
402
|
+
if (!(e instanceof O)) return n;
|
|
403
403
|
switch (e.code) {
|
|
404
404
|
case "invalid_credentials":
|
|
405
405
|
return r("auth.invalid_credentials", "Invalid email or password");
|
|
@@ -418,7 +418,7 @@ function gt(e, t, r) {
|
|
|
418
418
|
case "over_request_rate_limit":
|
|
419
419
|
case "rate_limited":
|
|
420
420
|
case "http_429":
|
|
421
|
-
return r("auth.rate_limited", "Too many requests. Please try again
|
|
421
|
+
return r("auth.rate_limited", "Too many requests. Please try again later.");
|
|
422
422
|
case "network_error":
|
|
423
423
|
return r("auth.network_error", "Network error. Please check your connection and try again.");
|
|
424
424
|
case "upstream":
|
|
@@ -431,14 +431,14 @@ function gt(e, t, r) {
|
|
|
431
431
|
return n;
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
|
-
function
|
|
434
|
+
function Tt({ block: e, ctx: t }) {
|
|
435
435
|
const r = t.auth, n = t.authSession, i = e.allow_signup !== !1, o = e.allow_password_reset !== !1, s = e.hide_when_authenticated !== !1;
|
|
436
436
|
if (!r)
|
|
437
437
|
return typeof console < "u" && console.warn("[paywall] auth_panel rendered without AuthClient — pass `auth: true` to PaywallUI"), null;
|
|
438
438
|
const d = n && !n.user.is_anonymous ? n : null;
|
|
439
|
-
return d && s ? null : d ? /* @__PURE__ */ a(
|
|
439
|
+
return d && s ? null : d ? /* @__PURE__ */ a(ie, { email: d.user.email ?? "", onSignOut: () => r.signOut().catch(() => {
|
|
440
440
|
}) }) : /* @__PURE__ */ a(
|
|
441
|
-
|
|
441
|
+
ne,
|
|
442
442
|
{
|
|
443
443
|
block: e,
|
|
444
444
|
allowSignup: i,
|
|
@@ -447,7 +447,7 @@ function Pt({ block: e, ctx: t }) {
|
|
|
447
447
|
}
|
|
448
448
|
);
|
|
449
449
|
}
|
|
450
|
-
function
|
|
450
|
+
function ie({ email: e, onSignOut: t }) {
|
|
451
451
|
const { t: r } = v();
|
|
452
452
|
return /* @__PURE__ */ c("div", { class: "flex items-center justify-between gap-3 rounded-2xl bg-gray-100 px-4 py-3", children: [
|
|
453
453
|
/* @__PURE__ */ c("div", { class: "flex flex-col", children: [
|
|
@@ -465,14 +465,14 @@ function re({ email: e, onSignOut: t }) {
|
|
|
465
465
|
)
|
|
466
466
|
] });
|
|
467
467
|
}
|
|
468
|
-
function
|
|
469
|
-
const { t: i } = v(), o = n.auth, s = e.providers ?? [], d = n.initialAuthMode === "signup" && t ? "signup" : "signin", [l, g] = b(d), [p, u] = b(""), [x, y] = b(""), [k, h] = b(""), [m,
|
|
470
|
-
|
|
468
|
+
function ne({ block: e, allowSignup: t, allowReset: r, ctx: n }) {
|
|
469
|
+
const { t: i } = v(), o = n.auth, s = e.providers ?? [], d = n.initialAuthMode === "signup" && t ? "signup" : "signin", [l, g] = b(d), [p, u] = b(""), [x, y] = b(""), [k, h] = b(""), [m, j] = b(""), [_, S] = b(null), A = F(!1), [R, P] = b(null), [z, U] = b(null), [B, T] = b(!1), [M, D] = b(null);
|
|
470
|
+
E(() => {
|
|
471
471
|
if (typeof o.getLastLogin != "function") return;
|
|
472
472
|
let I = !1;
|
|
473
473
|
return o.getLastLogin().then(
|
|
474
|
-
(
|
|
475
|
-
I || !
|
|
474
|
+
(L) => {
|
|
475
|
+
I || !L || (D(L), L.email && u((H) => H === "" ? L.email : H));
|
|
476
476
|
},
|
|
477
477
|
() => {
|
|
478
478
|
}
|
|
@@ -480,75 +480,80 @@ function ie({ block: e, allowSignup: t, allowReset: r, ctx: n }) {
|
|
|
480
480
|
I = !0;
|
|
481
481
|
};
|
|
482
482
|
}, [o]);
|
|
483
|
-
const
|
|
484
|
-
g(I),
|
|
485
|
-
},
|
|
486
|
-
if (I.preventDefault(), !_) {
|
|
487
|
-
|
|
488
|
-
if (!p.trim()) return;
|
|
489
|
-
D(!0);
|
|
490
|
-
return;
|
|
491
|
-
}
|
|
492
|
-
if (l === "signup" && x !== k) {
|
|
493
|
-
L(i("auth.passwords_mismatch", "Passwords don't match"));
|
|
494
|
-
return;
|
|
495
|
-
}
|
|
496
|
-
S("email");
|
|
483
|
+
const N = (I) => {
|
|
484
|
+
g(I), P(null), U(null), T(!1);
|
|
485
|
+
}, Z = async (I) => {
|
|
486
|
+
if (I.preventDefault(), !(A.current || _)) {
|
|
487
|
+
A.current = !0;
|
|
497
488
|
try {
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
489
|
+
if (P(null), U(null), l === "signup" && !B) {
|
|
490
|
+
if (!p.trim()) return;
|
|
491
|
+
T(!0);
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
if (l === "signup" && x !== k) {
|
|
495
|
+
P(i("auth.passwords_mismatch", "Passwords don't match"));
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
S("email");
|
|
499
|
+
try {
|
|
500
|
+
l === "signin" ? await o.signInWithEmail({ email: p, password: x }) : l === "signup" ? (await o.signUp({ email: p, password: x })).kind === "confirmation_required" && (y(""), g("signup_verify"), U(i("auth.check_email_message", "Check your email for a confirmation code."))) : l === "forgot" ? (await o.requestPasswordReset({ email: p }), g("reset_sent"), U(
|
|
501
|
+
i("auth.reset_sent_message", "If that email exists, a reset code has been sent.")
|
|
502
|
+
)) : l === "signup_verify" ? await o.verifyOtp({ email: p, token: m, type: "email" }) : l === "reset_verify" && (await o.verifyOtp({
|
|
503
|
+
email: p,
|
|
504
|
+
token: m,
|
|
505
|
+
type: x ? "recovery" : "email"
|
|
506
|
+
}), x && await o.updatePassword({ password: x }));
|
|
507
|
+
} catch (L) {
|
|
508
|
+
P(ft(L, l === "signup" ? "signup" : l === "signup_verify" || l === "reset_verify" ? "otp" : l === "forgot" ? "reset" : "signin", i));
|
|
509
|
+
} finally {
|
|
510
|
+
S(null);
|
|
511
|
+
}
|
|
507
512
|
} finally {
|
|
508
|
-
|
|
513
|
+
A.current = !1;
|
|
509
514
|
}
|
|
510
515
|
}
|
|
511
|
-
},
|
|
512
|
-
if (!_) {
|
|
513
|
-
S(I),
|
|
516
|
+
}, w = async (I) => {
|
|
517
|
+
if (!(A.current || _)) {
|
|
518
|
+
A.current = !0, S(I), P(null), U(null);
|
|
514
519
|
try {
|
|
515
520
|
await o.signInWithOAuth({
|
|
516
521
|
provider: I,
|
|
517
522
|
onPopupOpened: () => S(null)
|
|
518
523
|
});
|
|
519
|
-
} catch (
|
|
520
|
-
if (
|
|
524
|
+
} catch (L) {
|
|
525
|
+
if (L instanceof O && (L.code === "oauth_cancelled" || L.code === "oauth_timeout"))
|
|
521
526
|
return;
|
|
522
|
-
|
|
527
|
+
P(ft(L, "signin", i));
|
|
523
528
|
} finally {
|
|
524
|
-
S(null);
|
|
529
|
+
A.current = !1, S(null);
|
|
525
530
|
}
|
|
526
531
|
}
|
|
527
|
-
},
|
|
532
|
+
}, f = s.length > 0 && (l === "signin" || l === "signup"), C = l === "signin" || l === "signup" || l === "forgot", K = l === "signin" || l === "signup" && B;
|
|
528
533
|
return /* @__PURE__ */ c("div", { class: "flex flex-col gap-5", children: [
|
|
529
|
-
/* @__PURE__ */ a(
|
|
530
|
-
|
|
534
|
+
/* @__PURE__ */ a(ae, { mode: l, customHeading: e.heading, customSubheading: e.subheading }),
|
|
535
|
+
f ? /* @__PURE__ */ c("div", { class: "flex flex-col gap-2.5", children: [
|
|
531
536
|
s.map((I) => /* @__PURE__ */ c("div", { class: "relative", children: [
|
|
532
537
|
/* @__PURE__ */ c(
|
|
533
538
|
"button",
|
|
534
539
|
{
|
|
535
540
|
type: "button",
|
|
536
|
-
onClick: () =>
|
|
541
|
+
onClick: () => w(I),
|
|
537
542
|
disabled: _ !== null,
|
|
538
543
|
class: "flex h-12 w-full items-center justify-center gap-2.5 rounded-full border-1 border-gray-200 bg-white px-5 text-base font-medium text-gray-900 transition-all hover:border-gray-300 hover:bg-gray-50 disabled:cursor-not-allowed disabled:opacity-60 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
|
|
539
544
|
children: [
|
|
540
|
-
_ === I ? /* @__PURE__ */ a("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-gray-300 border-t-gray-700" }) : /* @__PURE__ */ a(
|
|
541
|
-
/* @__PURE__ */ a("span", { children:
|
|
545
|
+
_ === I ? /* @__PURE__ */ a("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-gray-300 border-t-gray-700" }) : /* @__PURE__ */ a(fe, { provider: I }),
|
|
546
|
+
/* @__PURE__ */ a("span", { children: re(I, i) })
|
|
542
547
|
]
|
|
543
548
|
}
|
|
544
549
|
),
|
|
545
|
-
|
|
550
|
+
M?.method === I ? /* @__PURE__ */ a(pe, { email: M.email }) : null
|
|
546
551
|
] }, I)),
|
|
547
|
-
/* @__PURE__ */ a(
|
|
552
|
+
/* @__PURE__ */ a(ge, {})
|
|
548
553
|
] }) : null,
|
|
549
|
-
/* @__PURE__ */ c("form", { onSubmit:
|
|
550
|
-
|
|
551
|
-
|
|
554
|
+
/* @__PURE__ */ c("form", { onSubmit: Z, class: "flex flex-col gap-3", children: [
|
|
555
|
+
C && /* @__PURE__ */ a(
|
|
556
|
+
wt,
|
|
552
557
|
{
|
|
553
558
|
type: "email",
|
|
554
559
|
placeholder: i("auth.email", "Email address"),
|
|
@@ -558,8 +563,8 @@ function ie({ block: e, allowSignup: t, allowReset: r, ctx: n }) {
|
|
|
558
563
|
required: !0
|
|
559
564
|
}
|
|
560
565
|
),
|
|
561
|
-
|
|
562
|
-
|
|
566
|
+
K && /* @__PURE__ */ a(
|
|
567
|
+
et,
|
|
563
568
|
{
|
|
564
569
|
placeholder: i("auth.password", "Password"),
|
|
565
570
|
value: x,
|
|
@@ -568,8 +573,8 @@ function ie({ block: e, allowSignup: t, allowReset: r, ctx: n }) {
|
|
|
568
573
|
required: !0
|
|
569
574
|
}
|
|
570
575
|
),
|
|
571
|
-
l === "signup" &&
|
|
572
|
-
|
|
576
|
+
l === "signup" && B && /* @__PURE__ */ a(
|
|
577
|
+
et,
|
|
573
578
|
{
|
|
574
579
|
placeholder: i("auth.repeat_password", "Repeat password"),
|
|
575
580
|
value: k,
|
|
@@ -579,19 +584,19 @@ function ie({ block: e, allowSignup: t, allowReset: r, ctx: n }) {
|
|
|
579
584
|
}
|
|
580
585
|
),
|
|
581
586
|
(l === "signup_verify" || l === "reset_verify") && /* @__PURE__ */ a(
|
|
582
|
-
|
|
587
|
+
wt,
|
|
583
588
|
{
|
|
584
589
|
type: "text",
|
|
585
590
|
placeholder: i("auth.confirmation_code", "Confirmation code"),
|
|
586
591
|
value: m,
|
|
587
|
-
onInput:
|
|
592
|
+
onInput: j,
|
|
588
593
|
autocomplete: "one-time-code",
|
|
589
594
|
inputMode: "numeric",
|
|
590
595
|
required: !0
|
|
591
596
|
}
|
|
592
597
|
),
|
|
593
598
|
l === "reset_verify" && /* @__PURE__ */ a(
|
|
594
|
-
|
|
599
|
+
et,
|
|
595
600
|
{
|
|
596
601
|
placeholder: i(
|
|
597
602
|
"auth.new_password_optional",
|
|
@@ -602,40 +607,40 @@ function ie({ block: e, allowSignup: t, allowReset: r, ctx: n }) {
|
|
|
602
607
|
autocomplete: "new-password"
|
|
603
608
|
}
|
|
604
609
|
),
|
|
605
|
-
l === "reset_sent" &&
|
|
606
|
-
l === "signin" && r && /* @__PURE__ */ a("div", { class: "flex justify-end text-sm", children: /* @__PURE__ */ a(W, { onClick: () =>
|
|
607
|
-
|
|
608
|
-
|
|
610
|
+
l === "reset_sent" && z && /* @__PURE__ */ a("p", { class: "rounded-2xl bg-gray-100 px-4 py-3 text-sm text-gray-600", children: z }),
|
|
611
|
+
l === "signin" && r && /* @__PURE__ */ a("div", { class: "flex justify-end text-sm", children: /* @__PURE__ */ a(W, { onClick: () => N("forgot"), children: i("auth.forgot_password", "Forgot password?") }) }),
|
|
612
|
+
R && /* @__PURE__ */ a("p", { class: "text-sm text-red-600", children: R }),
|
|
613
|
+
z && l !== "reset_sent" && /* @__PURE__ */ a("p", { class: "text-sm text-gray-500", children: z }),
|
|
609
614
|
l !== "reset_sent" && /* @__PURE__ */ a(
|
|
610
|
-
|
|
615
|
+
ce,
|
|
611
616
|
{
|
|
612
617
|
busy: _ === "email",
|
|
613
|
-
label:
|
|
618
|
+
label: se(l, B, e.submit_label ?? e.heading, i)
|
|
614
619
|
}
|
|
615
620
|
)
|
|
616
621
|
] }),
|
|
617
622
|
/* @__PURE__ */ a(
|
|
618
|
-
|
|
623
|
+
le,
|
|
619
624
|
{
|
|
620
625
|
mode: l,
|
|
621
626
|
allowSignup: t,
|
|
622
|
-
onSwitch:
|
|
627
|
+
onSwitch: N
|
|
623
628
|
}
|
|
624
629
|
)
|
|
625
630
|
] });
|
|
626
631
|
}
|
|
627
|
-
function
|
|
632
|
+
function ae({
|
|
628
633
|
mode: e,
|
|
629
634
|
customHeading: t,
|
|
630
635
|
customSubheading: r
|
|
631
636
|
}) {
|
|
632
|
-
const { t: n } = v(), i =
|
|
637
|
+
const { t: n } = v(), i = oe(e, n), o = e === "signin" || e === "signup", s = o && t ? t : i.title, d = o && r !== void 0 ? r || null : i.subtitle;
|
|
633
638
|
return /* @__PURE__ */ c("div", { class: "flex flex-col gap-2", children: [
|
|
634
639
|
/* @__PURE__ */ a("h2", { class: "text-3xl font-bold tracking-tight text-gray-900", children: s }),
|
|
635
640
|
d ? /* @__PURE__ */ a("p", { class: "text-base leading-relaxed text-gray-600", children: d }) : null
|
|
636
641
|
] });
|
|
637
642
|
}
|
|
638
|
-
function
|
|
643
|
+
function oe(e, t) {
|
|
639
644
|
switch (e) {
|
|
640
645
|
case "signin":
|
|
641
646
|
return {
|
|
@@ -678,7 +683,7 @@ function ae(e, t) {
|
|
|
678
683
|
};
|
|
679
684
|
}
|
|
680
685
|
}
|
|
681
|
-
function
|
|
686
|
+
function se(e, t, r, n) {
|
|
682
687
|
if (e === "signin" && r) return r;
|
|
683
688
|
switch (e) {
|
|
684
689
|
case "signin":
|
|
@@ -694,7 +699,7 @@ function oe(e, t, r, n) {
|
|
|
694
699
|
return n("cta.continue", "Continue");
|
|
695
700
|
}
|
|
696
701
|
}
|
|
697
|
-
function
|
|
702
|
+
function le({
|
|
698
703
|
mode: e,
|
|
699
704
|
allowSignup: t,
|
|
700
705
|
onSwitch: r
|
|
@@ -729,7 +734,7 @@ function W({
|
|
|
729
734
|
}
|
|
730
735
|
);
|
|
731
736
|
}
|
|
732
|
-
function
|
|
737
|
+
function ce({ busy: e, label: t }) {
|
|
733
738
|
return /* @__PURE__ */ a(
|
|
734
739
|
"button",
|
|
735
740
|
{
|
|
@@ -744,7 +749,7 @@ function le({ busy: e, label: t }) {
|
|
|
744
749
|
}
|
|
745
750
|
);
|
|
746
751
|
}
|
|
747
|
-
function
|
|
752
|
+
function wt({ type: e, placeholder: t, value: r, onInput: n, autocomplete: i, inputMode: o, required: s }) {
|
|
748
753
|
return /* @__PURE__ */ a(
|
|
749
754
|
"input",
|
|
750
755
|
{
|
|
@@ -759,9 +764,9 @@ function ft({ type: e, placeholder: t, value: r, onInput: n, autocomplete: i, in
|
|
|
759
764
|
}
|
|
760
765
|
);
|
|
761
766
|
}
|
|
762
|
-
function
|
|
763
|
-
const { t: o } = v(), [s, d] = b(!1), l =
|
|
764
|
-
|
|
767
|
+
function et({ placeholder: e, value: t, onInput: r, autocomplete: n, required: i }) {
|
|
768
|
+
const { t: o } = v(), [s, d] = b(!1), l = F(null);
|
|
769
|
+
E(() => {
|
|
765
770
|
const u = l.current;
|
|
766
771
|
u && u.value !== t && (u.value = t);
|
|
767
772
|
}, [s, t]);
|
|
@@ -788,12 +793,12 @@ function tt({ placeholder: e, value: t, onInput: r, autocomplete: n, required: i
|
|
|
788
793
|
"aria-label": s ? p : g,
|
|
789
794
|
tabIndex: -1,
|
|
790
795
|
class: "absolute right-4 top-1/2 -translate-y-1/2 flex h-6 w-6 items-center justify-center rounded text-gray-500 transition-colors hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
|
|
791
|
-
children: s ? /* @__PURE__ */ a(
|
|
796
|
+
children: s ? /* @__PURE__ */ a(ue, {}) : /* @__PURE__ */ a(de, {})
|
|
792
797
|
}
|
|
793
798
|
)
|
|
794
799
|
] });
|
|
795
800
|
}
|
|
796
|
-
function
|
|
801
|
+
function de() {
|
|
797
802
|
return /* @__PURE__ */ c("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
|
|
798
803
|
/* @__PURE__ */ a(
|
|
799
804
|
"path",
|
|
@@ -808,7 +813,7 @@ function ce() {
|
|
|
808
813
|
/* @__PURE__ */ a("circle", { cx: "10", cy: "10", r: "2.5", stroke: "currentColor", "stroke-width": "1.5" })
|
|
809
814
|
] });
|
|
810
815
|
}
|
|
811
|
-
function
|
|
816
|
+
function ue() {
|
|
812
817
|
return /* @__PURE__ */ c("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
|
|
813
818
|
/* @__PURE__ */ a(
|
|
814
819
|
"path",
|
|
@@ -832,15 +837,15 @@ function de() {
|
|
|
832
837
|
)
|
|
833
838
|
] });
|
|
834
839
|
}
|
|
835
|
-
function
|
|
836
|
-
const { t } = v(), r = e ? t("auth.last_used", "Last · {email}", { email:
|
|
840
|
+
function pe({ email: e }) {
|
|
841
|
+
const { t } = v(), r = e ? t("auth.last_used", "Last · {email}", { email: he(e) }) : t("auth.last_used_no_email", "Last");
|
|
837
842
|
return /* @__PURE__ */ a("span", { class: "pointer-events-none absolute -top-2 right-3 max-w-[75%] truncate rounded-full bg-gray-900 px-2 py-0.5 text-[10px] font-semibold tracking-wide text-white shadow-sm", children: r });
|
|
838
843
|
}
|
|
839
|
-
function
|
|
844
|
+
function he(e) {
|
|
840
845
|
const [t, r] = e.split("@");
|
|
841
846
|
return r ? `${t.slice(0, 3)}*****@${r}` : e;
|
|
842
847
|
}
|
|
843
|
-
function
|
|
848
|
+
function ge() {
|
|
844
849
|
const { t: e } = v();
|
|
845
850
|
return /* @__PURE__ */ c("div", { class: "flex items-center gap-3 py-1 text-sm text-gray-400", children: [
|
|
846
851
|
/* @__PURE__ */ a("div", { class: "h-px flex-1 bg-gray-200" }),
|
|
@@ -848,7 +853,7 @@ function he() {
|
|
|
848
853
|
/* @__PURE__ */ a("div", { class: "h-px flex-1 bg-gray-200" })
|
|
849
854
|
] });
|
|
850
855
|
}
|
|
851
|
-
function
|
|
856
|
+
function fe({ provider: e }) {
|
|
852
857
|
return e === "google" ? /* @__PURE__ */ c("svg", { width: "20", height: "20", viewBox: "0 0 18 18", "aria-hidden": "true", children: [
|
|
853
858
|
/* @__PURE__ */ a("path", { fill: "#4285F4", d: "M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.49h4.84a4.14 4.14 0 0 1-1.79 2.71v2.26h2.9c1.7-1.56 2.69-3.87 2.69-6.62Z" }),
|
|
854
859
|
/* @__PURE__ */ a("path", { fill: "#34A853", d: "M9 18c2.43 0 4.47-.8 5.96-2.18l-2.9-2.26c-.8.54-1.83.86-3.06.86-2.36 0-4.36-1.59-5.07-3.74H.92v2.33A9 9 0 0 0 9 18Z" }),
|
|
@@ -861,7 +866,7 @@ function ge({ provider: e }) {
|
|
|
861
866
|
/* @__PURE__ */ a("svg", { width: "26", height: "26", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ a("path", { d: "M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09zM12 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z" }) })
|
|
862
867
|
) : e === "github" ? /* @__PURE__ */ a("svg", { width: "20", height: "20", viewBox: "0 0 16 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ a("path", { d: "M8 0C3.6 0 0 3.6 0 8a8 8 0 0 0 5.5 7.6c.4.1.5-.2.5-.4v-1.5c-2.2.5-2.7-1-2.7-1-.4-.9-.9-1.2-.9-1.2-.7-.5.1-.5.1-.5.8.1 1.2.8 1.2.8.7 1.2 1.9.9 2.4.7 0-.5.3-.9.5-1.1-1.8-.2-3.6-.9-3.6-4 0-.9.3-1.6.8-2.1-.1-.2-.4-1 .1-2.1 0 0 .7-.2 2.2.8a7.6 7.6 0 0 1 4 0c1.5-1 2.2-.8 2.2-.8.4 1.1.2 1.9.1 2.1.5.5.8 1.2.8 2.1 0 3.1-1.9 3.7-3.6 3.9.3.3.6.8.6 1.6V15c0 .2.1.5.6.4A8 8 0 0 0 16 8c0-4.4-3.6-8-8-8Z" }) }) : /* @__PURE__ */ a("svg", { width: "18", height: "20", viewBox: "0 0 14 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ a("path", { d: "M14 2.7C14 1.2 12.8 0 11.3 0H2.7C1.2 0 0 1.2 0 2.7v10.6C0 14.8 1.2 16 2.7 16h4V9.8H4.7v-2H6.7V6.4c0-2 1.2-3.1 3-3.1.9 0 1.7.1 2 .2V5h-1.4c-.8 0-1 .4-1 1v1.5h2.4l-.3 2H9.3V16h2c1.5 0 2.7-1.2 2.7-2.7V2.7Z" }) });
|
|
863
868
|
}
|
|
864
|
-
function
|
|
869
|
+
function we({
|
|
865
870
|
block: e,
|
|
866
871
|
bootstrap: t,
|
|
867
872
|
auth: r,
|
|
@@ -902,11 +907,11 @@ function fe({
|
|
|
902
907
|
submit_label: l("auth.log_in", "Sign In")
|
|
903
908
|
} : e;
|
|
904
909
|
return /* @__PURE__ */ c("div", { class: "relative flex-1 min-h-0 overflow-y-auto p-6 sm:p-8", children: [
|
|
905
|
-
o ? /* @__PURE__ */ a(
|
|
906
|
-
/* @__PURE__ */ a(
|
|
910
|
+
o ? /* @__PURE__ */ a(me, { onClick: i, ariaLabel: l("nav.back_aria", "Back") }) : null,
|
|
911
|
+
/* @__PURE__ */ a(Tt, { block: p, ctx: g })
|
|
907
912
|
] });
|
|
908
913
|
}
|
|
909
|
-
function
|
|
914
|
+
function me({ onClick: e, ariaLabel: t }) {
|
|
910
915
|
return /* @__PURE__ */ a(
|
|
911
916
|
"button",
|
|
912
917
|
{
|
|
@@ -939,8 +944,8 @@ function we({ onClick: e, ariaLabel: t }) {
|
|
|
939
944
|
}
|
|
940
945
|
);
|
|
941
946
|
}
|
|
942
|
-
const
|
|
943
|
-
function
|
|
947
|
+
const Et = (e) => `pw-offer-${e}-start`;
|
|
948
|
+
function rt(e) {
|
|
944
949
|
const t = e - Date.now();
|
|
945
950
|
return t <= 0 ? { days: 0, hours: 0, minutes: 0, seconds: 0, expired: !0 } : {
|
|
946
951
|
days: Math.floor(t / (1e3 * 60 * 60 * 24)),
|
|
@@ -950,7 +955,7 @@ function et(e) {
|
|
|
950
955
|
expired: !1
|
|
951
956
|
};
|
|
952
957
|
}
|
|
953
|
-
function
|
|
958
|
+
function be(e) {
|
|
954
959
|
if (e.expires_at) {
|
|
955
960
|
const t = Date.parse(e.expires_at);
|
|
956
961
|
return Number.isFinite(t) ? t : null;
|
|
@@ -958,7 +963,7 @@ function me(e) {
|
|
|
958
963
|
if (e.duration_minutes && e.duration_minutes > 0) {
|
|
959
964
|
if (typeof window > "u") return null;
|
|
960
965
|
try {
|
|
961
|
-
const t =
|
|
966
|
+
const t = Et(e.id);
|
|
962
967
|
let r = window.localStorage.getItem(t);
|
|
963
968
|
return r || (r = (/* @__PURE__ */ new Date()).toISOString(), window.localStorage.setItem(t, r)), Date.parse(r) + e.duration_minutes * 6e4;
|
|
964
969
|
} catch {
|
|
@@ -967,7 +972,7 @@ function me(e) {
|
|
|
967
972
|
}
|
|
968
973
|
return null;
|
|
969
974
|
}
|
|
970
|
-
function
|
|
975
|
+
function jt(e, t) {
|
|
971
976
|
if (!e || e.length === 0) return null;
|
|
972
977
|
if (t) {
|
|
973
978
|
const r = e.find((n) => n.id === t);
|
|
@@ -975,29 +980,29 @@ function Et(e, t) {
|
|
|
975
980
|
}
|
|
976
981
|
return e.find((r) => r.expires_at || r.duration_minutes) ?? null;
|
|
977
982
|
}
|
|
978
|
-
function
|
|
979
|
-
const t = e ?
|
|
980
|
-
() => t !== null ?
|
|
981
|
-
), i =
|
|
982
|
-
return i.current = t,
|
|
983
|
+
function zt(e) {
|
|
984
|
+
const t = e ? be(e) : null, [r, n] = b(
|
|
985
|
+
() => t !== null ? rt(t) : null
|
|
986
|
+
), i = F(t);
|
|
987
|
+
return i.current = t, E(() => {
|
|
983
988
|
if (t === null) {
|
|
984
989
|
n(null);
|
|
985
990
|
return;
|
|
986
991
|
}
|
|
987
|
-
n(
|
|
992
|
+
n(rt(t));
|
|
988
993
|
const o = setInterval(() => {
|
|
989
|
-
const s =
|
|
994
|
+
const s = rt(i.current ?? 0);
|
|
990
995
|
if (n(s), s.expired && (clearInterval(o), e?.duration_minutes && typeof window < "u"))
|
|
991
996
|
try {
|
|
992
|
-
window.localStorage.removeItem(
|
|
997
|
+
window.localStorage.removeItem(Et(e.id));
|
|
993
998
|
} catch {
|
|
994
999
|
}
|
|
995
1000
|
}, 1e3);
|
|
996
1001
|
return () => clearInterval(o);
|
|
997
1002
|
}, [t, e?.duration_minutes, e?.id]), r;
|
|
998
1003
|
}
|
|
999
|
-
function
|
|
1000
|
-
const { t: r } = v(), n =
|
|
1004
|
+
function xe({ block: e, ctx: t }) {
|
|
1005
|
+
const { t: r } = v(), n = jt(t.bootstrap.offers, e.offer_id), i = zt(n);
|
|
1001
1006
|
if (!n || i === null || i.expired && !e.force) return null;
|
|
1002
1007
|
const o = e.title ?? n.label ?? r("offer.limited_time", "Limited-time offer"), s = n.discount_percent ? `${o} ${n.discount_percent}%` : o;
|
|
1003
1008
|
return /* @__PURE__ */ c(
|
|
@@ -1010,16 +1015,16 @@ function be({ block: e, ctx: t }) {
|
|
|
1010
1015
|
},
|
|
1011
1016
|
role: "status",
|
|
1012
1017
|
children: [
|
|
1013
|
-
/* @__PURE__ */ a(
|
|
1018
|
+
/* @__PURE__ */ a(Ot, {}),
|
|
1014
1019
|
/* @__PURE__ */ a("span", { children: s }),
|
|
1015
|
-
/* @__PURE__ */ a(
|
|
1020
|
+
/* @__PURE__ */ a(Bt, { value: i, t: r })
|
|
1016
1021
|
]
|
|
1017
1022
|
}
|
|
1018
1023
|
);
|
|
1019
1024
|
}
|
|
1020
|
-
function
|
|
1025
|
+
function Bt({ value: e, t }) {
|
|
1021
1026
|
return /* @__PURE__ */ c("div", { class: "flex items-center gap-1 font-mono text-sm", children: [
|
|
1022
|
-
e.days > 0 ? /* @__PURE__ */ c(
|
|
1027
|
+
e.days > 0 ? /* @__PURE__ */ c(ot, { children: [
|
|
1023
1028
|
/* @__PURE__ */ a(V, { children: String(e.days) }),
|
|
1024
1029
|
/* @__PURE__ */ a("span", { class: "text-xs", children: t("countdown.d", "d") })
|
|
1025
1030
|
] }) : null,
|
|
@@ -1034,8 +1039,8 @@ function zt({ value: e, t }) {
|
|
|
1034
1039
|
function V({ children: e }) {
|
|
1035
1040
|
return /* @__PURE__ */ a("span", { class: "rounded bg-black/20 px-1.5 py-0.5 text-xs font-bold", children: e });
|
|
1036
1041
|
}
|
|
1037
|
-
function
|
|
1038
|
-
const { t } = v(), r =
|
|
1042
|
+
function ye({ offer: e }) {
|
|
1043
|
+
const { t } = v(), r = zt(e);
|
|
1039
1044
|
if (r === null || r.expired) return null;
|
|
1040
1045
|
const n = e.label ?? t("offer.limited_time", "Limited-time offer"), i = e.discount_percent ? `${n} ${e.discount_percent}%` : n;
|
|
1041
1046
|
return /* @__PURE__ */ c(
|
|
@@ -1048,14 +1053,14 @@ function xe({ offer: e }) {
|
|
|
1048
1053
|
},
|
|
1049
1054
|
role: "status",
|
|
1050
1055
|
children: [
|
|
1051
|
-
/* @__PURE__ */ a(
|
|
1056
|
+
/* @__PURE__ */ a(Ot, {}),
|
|
1052
1057
|
/* @__PURE__ */ a("span", { children: i }),
|
|
1053
|
-
/* @__PURE__ */ a(
|
|
1058
|
+
/* @__PURE__ */ a(Bt, { value: r, t })
|
|
1054
1059
|
]
|
|
1055
1060
|
}
|
|
1056
1061
|
);
|
|
1057
1062
|
}
|
|
1058
|
-
function
|
|
1063
|
+
function Ot() {
|
|
1059
1064
|
return /* @__PURE__ */ a(
|
|
1060
1065
|
"svg",
|
|
1061
1066
|
{
|
|
@@ -1074,20 +1079,20 @@ function Bt() {
|
|
|
1074
1079
|
}
|
|
1075
1080
|
);
|
|
1076
1081
|
}
|
|
1077
|
-
const
|
|
1078
|
-
function
|
|
1079
|
-
const { t: i } = v(), o = t?.user.email ?? "", s = o || null, [d, l] = b(o), [g, p] = b(""), [u, x] = b(""), [y, k] = b([]), [h, m] = b(!1), [
|
|
1080
|
-
const
|
|
1081
|
-
return M ?
|
|
1082
|
-
min:
|
|
1083
|
-
max: mt
|
|
1084
|
-
})), (N.length < 1 || N.length > bt) && (P.message = i("support.message_length", "{min}–{max} characters", {
|
|
1085
|
-
min: 1,
|
|
1082
|
+
const mt = 3, bt = 200, xt = 5e3, it = 5, ve = 10 * 1024 * 1024, yt = ["image/jpeg", "image/png", "image/webp"], ke = /.+@.+\..+/;
|
|
1083
|
+
function _e({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
1084
|
+
const { t: i } = v(), o = t?.user.email ?? "", s = o || null, [d, l] = b(o), [g, p] = b(""), [u, x] = b(""), [y, k] = b([]), [h, m] = b(!1), [j, _] = b(null), [S, A] = b({}), R = () => {
|
|
1085
|
+
const T = {}, M = (s ?? d).trim(), D = g.trim(), N = u.trim();
|
|
1086
|
+
return M ? ke.test(M.toLowerCase()) || (T.email = i("support.invalid_email", "Invalid email")) : T.email = i("support.required", "Required"), (D.length < mt || D.length > bt) && (T.subject = i("support.subject_length", "{min}–{max} characters", {
|
|
1087
|
+
min: mt,
|
|
1086
1088
|
max: bt
|
|
1087
|
-
})),
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1089
|
+
})), (N.length < 1 || N.length > xt) && (T.message = i("support.message_length", "{min}–{max} characters", {
|
|
1090
|
+
min: 1,
|
|
1091
|
+
max: xt
|
|
1092
|
+
})), A(T), Object.keys(T).length === 0;
|
|
1093
|
+
}, P = async (T) => {
|
|
1094
|
+
if (T.preventDefault(), !h && R()) {
|
|
1095
|
+
m(!0), A((M) => ({ ...M, submit: void 0 }));
|
|
1091
1096
|
try {
|
|
1092
1097
|
const M = (s ?? d).trim();
|
|
1093
1098
|
await e.createSupportTicket({
|
|
@@ -1097,16 +1102,16 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1097
1102
|
files: y.length > 0 ? y : void 0
|
|
1098
1103
|
}), _(M);
|
|
1099
1104
|
} catch (M) {
|
|
1100
|
-
const
|
|
1101
|
-
|
|
1105
|
+
const D = M instanceof O && M.message || "Failed to send. Please try again.";
|
|
1106
|
+
A((N) => ({ ...N, submit: D }));
|
|
1102
1107
|
} finally {
|
|
1103
1108
|
m(!1);
|
|
1104
1109
|
}
|
|
1105
1110
|
}
|
|
1106
|
-
},
|
|
1107
|
-
p(""), x(""), k([]),
|
|
1108
|
-
}, U = "flex flex-col gap-3 bg-white px-6 pb-6 pt-3 sm:px-8",
|
|
1109
|
-
return
|
|
1111
|
+
}, z = () => {
|
|
1112
|
+
p(""), x(""), k([]), A({}), _(null);
|
|
1113
|
+
}, U = "flex flex-col gap-3 bg-white px-6 pb-6 pt-3 sm:px-8", B = { boxShadow: "0 -4px 12px -4px rgba(15,23,42,0.06)" };
|
|
1114
|
+
return j ? /* @__PURE__ */ c("div", { class: "relative flex-1 min-h-0 flex flex-col", children: [
|
|
1110
1115
|
/* @__PURE__ */ c("div", { class: "flex-1 min-h-0 overflow-y-auto flex flex-col items-center gap-4 px-6 pb-3 pt-6 sm:px-8 sm:pb-4 sm:pt-8 text-center", children: [
|
|
1111
1116
|
/* @__PURE__ */ a(
|
|
1112
1117
|
"div",
|
|
@@ -1134,11 +1139,11 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1134
1139
|
"We've received your message and will respond to"
|
|
1135
1140
|
),
|
|
1136
1141
|
" ",
|
|
1137
|
-
/* @__PURE__ */ a("b", { class: "text-gray-700", children:
|
|
1142
|
+
/* @__PURE__ */ a("b", { class: "text-gray-700", children: j }),
|
|
1138
1143
|
"."
|
|
1139
1144
|
] })
|
|
1140
1145
|
] }),
|
|
1141
|
-
/* @__PURE__ */ a("div", { class: U, style:
|
|
1146
|
+
/* @__PURE__ */ a("div", { class: U, style: B, children: /* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-3", children: [
|
|
1142
1147
|
/* @__PURE__ */ a(
|
|
1143
1148
|
"button",
|
|
1144
1149
|
{
|
|
@@ -1152,7 +1157,7 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1152
1157
|
"button",
|
|
1153
1158
|
{
|
|
1154
1159
|
type: "button",
|
|
1155
|
-
onClick:
|
|
1160
|
+
onClick: z,
|
|
1156
1161
|
class: "flex h-10 items-center justify-center rounded-xl px-4 text-sm font-semibold text-white transition-all hover:-translate-y-px hover:brightness-105 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
|
|
1157
1162
|
style: {
|
|
1158
1163
|
background: "linear-gradient(180deg, color-mix(in srgb, var(--pw-accent) 92%, white), var(--pw-accent))",
|
|
@@ -1162,8 +1167,8 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1162
1167
|
}
|
|
1163
1168
|
)
|
|
1164
1169
|
] }) })
|
|
1165
|
-
] }) : /* @__PURE__ */ c("form", { onSubmit:
|
|
1166
|
-
/* @__PURE__ */ a(
|
|
1170
|
+
] }) : /* @__PURE__ */ c("form", { onSubmit: P, class: "relative flex-1 min-h-0 flex flex-col", children: [
|
|
1171
|
+
/* @__PURE__ */ a(Se, { onClick: n, ariaLabel: i("nav.back_aria", "Back") }),
|
|
1167
1172
|
/* @__PURE__ */ a("div", { class: "flex-1 min-h-0 overflow-y-auto px-6 pb-3 pt-6 sm:px-8 sm:pb-4 sm:pt-8", children: /* @__PURE__ */ c("div", { class: "flex flex-col gap-5", children: [
|
|
1168
1173
|
/* @__PURE__ */ c("div", { class: "flex flex-col gap-2 pr-10", children: [
|
|
1169
1174
|
/* @__PURE__ */ a("h2", { class: "text-3xl font-bold tracking-tight text-gray-900", children: i("support.heading", "Support") }),
|
|
@@ -1175,7 +1180,7 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1175
1180
|
" ",
|
|
1176
1181
|
/* @__PURE__ */ a("b", { class: "font-medium text-gray-900", children: s })
|
|
1177
1182
|
] }) : /* @__PURE__ */ a(
|
|
1178
|
-
|
|
1183
|
+
vt,
|
|
1179
1184
|
{
|
|
1180
1185
|
type: "email",
|
|
1181
1186
|
placeholder: i("support.email_placeholder", "Enter your email *"),
|
|
@@ -1187,7 +1192,7 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1187
1192
|
}
|
|
1188
1193
|
),
|
|
1189
1194
|
/* @__PURE__ */ a(
|
|
1190
|
-
|
|
1195
|
+
vt,
|
|
1191
1196
|
{
|
|
1192
1197
|
type: "text",
|
|
1193
1198
|
placeholder: i("support.subject_placeholder", "Enter your subject *"),
|
|
@@ -1198,7 +1203,7 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1198
1203
|
}
|
|
1199
1204
|
),
|
|
1200
1205
|
/* @__PURE__ */ a(
|
|
1201
|
-
|
|
1206
|
+
Ce,
|
|
1202
1207
|
{
|
|
1203
1208
|
placeholder: i("support.message_placeholder", "Enter your message *"),
|
|
1204
1209
|
value: u,
|
|
@@ -1207,10 +1212,10 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1207
1212
|
required: !0
|
|
1208
1213
|
}
|
|
1209
1214
|
),
|
|
1210
|
-
/* @__PURE__ */ a(
|
|
1215
|
+
/* @__PURE__ */ a(Ie, { files: y, onChange: k, disabled: h })
|
|
1211
1216
|
] })
|
|
1212
1217
|
] }) }),
|
|
1213
|
-
/* @__PURE__ */ c("div", { class: U, style:
|
|
1218
|
+
/* @__PURE__ */ c("div", { class: U, style: B, children: [
|
|
1214
1219
|
S.submit && /* @__PURE__ */ a("p", { class: "text-sm text-red-600", children: S.submit }),
|
|
1215
1220
|
/* @__PURE__ */ c("div", { class: "flex items-center justify-end gap-3", children: [
|
|
1216
1221
|
/* @__PURE__ */ a(
|
|
@@ -1240,7 +1245,7 @@ function ke({ client: e, authSession: t, origin: r, onBack: n }) {
|
|
|
1240
1245
|
] })
|
|
1241
1246
|
] });
|
|
1242
1247
|
}
|
|
1243
|
-
function
|
|
1248
|
+
function Se({ onClick: e, ariaLabel: t }) {
|
|
1244
1249
|
return /* @__PURE__ */ a(
|
|
1245
1250
|
"button",
|
|
1246
1251
|
{
|
|
@@ -1273,7 +1278,7 @@ function _e({ onClick: e, ariaLabel: t }) {
|
|
|
1273
1278
|
}
|
|
1274
1279
|
);
|
|
1275
1280
|
}
|
|
1276
|
-
function
|
|
1281
|
+
function vt({
|
|
1277
1282
|
type: e,
|
|
1278
1283
|
placeholder: t,
|
|
1279
1284
|
value: r,
|
|
@@ -1298,7 +1303,7 @@ function yt({
|
|
|
1298
1303
|
i && /* @__PURE__ */ a("span", { class: "mt-1 ml-2 block text-sm text-red-600", children: i })
|
|
1299
1304
|
] });
|
|
1300
1305
|
}
|
|
1301
|
-
function
|
|
1306
|
+
function Ce({
|
|
1302
1307
|
placeholder: e,
|
|
1303
1308
|
value: t,
|
|
1304
1309
|
onInput: r,
|
|
@@ -1320,17 +1325,17 @@ function Se({
|
|
|
1320
1325
|
n && /* @__PURE__ */ a("span", { class: "mt-1 ml-2 block text-sm text-red-600", children: n })
|
|
1321
1326
|
] });
|
|
1322
1327
|
}
|
|
1323
|
-
function
|
|
1324
|
-
const { t: n } = v(), i =
|
|
1328
|
+
function Ie({ files: e, onChange: t, disabled: r }) {
|
|
1329
|
+
const { t: n } = v(), i = F(null), [o, s] = b(!1), [d, l] = b(null), g = (p) => {
|
|
1325
1330
|
if (!p || r) return;
|
|
1326
1331
|
l(null);
|
|
1327
1332
|
const u = Array.from(p);
|
|
1328
|
-
if (e.length + u.length >
|
|
1329
|
-
l(n("support.too_many_files", "Up to {max} files", { max:
|
|
1333
|
+
if (e.length + u.length > it) {
|
|
1334
|
+
l(n("support.too_many_files", "Up to {max} files", { max: it }));
|
|
1330
1335
|
return;
|
|
1331
1336
|
}
|
|
1332
1337
|
const x = u.filter(
|
|
1333
|
-
(y) =>
|
|
1338
|
+
(y) => yt.includes(y.type) && y.size <= ve
|
|
1334
1339
|
);
|
|
1335
1340
|
if (x.length !== u.length) {
|
|
1336
1341
|
l(n("support.invalid_file", "Only JPEG/PNG/WebP, ≤ 10MB each"));
|
|
@@ -1358,7 +1363,7 @@ function Ce({ files: e, onChange: t, disabled: r }) {
|
|
|
1358
1363
|
children: [
|
|
1359
1364
|
/* @__PURE__ */ a("div", { class: "text-xs text-gray-500", children: n("support.dropzone_text", "Drop images here or click to select") }),
|
|
1360
1365
|
/* @__PURE__ */ a("div", { class: "mt-0.5 text-[11px] text-gray-400", children: n("support.file_requirements", "JPEG/PNG/WebP, up to {max} files, ≤ 10MB each", {
|
|
1361
|
-
max:
|
|
1366
|
+
max: it
|
|
1362
1367
|
}) })
|
|
1363
1368
|
]
|
|
1364
1369
|
}
|
|
@@ -1369,7 +1374,7 @@ function Ce({ files: e, onChange: t, disabled: r }) {
|
|
|
1369
1374
|
ref: i,
|
|
1370
1375
|
type: "file",
|
|
1371
1376
|
multiple: !0,
|
|
1372
|
-
accept:
|
|
1377
|
+
accept: yt.join(","),
|
|
1373
1378
|
class: "hidden",
|
|
1374
1379
|
onChange: (p) => {
|
|
1375
1380
|
g(p.target.files), p.currentTarget.value = "";
|
|
@@ -1403,34 +1408,34 @@ function Ce({ files: e, onChange: t, disabled: r }) {
|
|
|
1403
1408
|
)) })
|
|
1404
1409
|
] });
|
|
1405
1410
|
}
|
|
1406
|
-
const
|
|
1411
|
+
const Ae = {
|
|
1407
1412
|
day: "cta.get_plan_daily",
|
|
1408
1413
|
week: "cta.get_plan_weekly",
|
|
1409
1414
|
month: "cta.get_plan_monthly",
|
|
1410
1415
|
year: "cta.get_plan_yearly"
|
|
1411
|
-
},
|
|
1416
|
+
}, Me = {
|
|
1412
1417
|
day: "Get Daily Plan",
|
|
1413
1418
|
week: "Get Weekly Plan",
|
|
1414
1419
|
month: "Get Monthly Plan",
|
|
1415
1420
|
year: "Get Yearly Plan"
|
|
1416
1421
|
};
|
|
1417
|
-
function
|
|
1422
|
+
function Le(e, t, r, n) {
|
|
1418
1423
|
if (t === "close") return n("cta.close", "Close");
|
|
1419
1424
|
if (!e) return n("cta.continue", "Continue");
|
|
1420
1425
|
if (!r && e.trial_days && e.interval && e.interval !== "lifetime")
|
|
1421
1426
|
return n("cta.start_trial", "Start {days}-Day Free Trial", { days: e.trial_days });
|
|
1422
1427
|
if (!e.interval || e.interval === "lifetime")
|
|
1423
1428
|
return n("cta.get_lifetime_access", "Get Lifetime Access");
|
|
1424
|
-
const i =
|
|
1425
|
-
return i ? n(i,
|
|
1426
|
-
interval:
|
|
1429
|
+
const i = Ae[e.interval];
|
|
1430
|
+
return i ? n(i, Me[e.interval]) : n("cta.get_plan_generic", "Get {interval} Plan", {
|
|
1431
|
+
interval: Pe(e.interval)
|
|
1427
1432
|
});
|
|
1428
1433
|
}
|
|
1429
|
-
function
|
|
1434
|
+
function Pe(e) {
|
|
1430
1435
|
return e.length ? e[0].toUpperCase() + e.slice(1) : e;
|
|
1431
1436
|
}
|
|
1432
|
-
function
|
|
1433
|
-
const { t: r } = v(), [n, i] = b(!1), o = e.priceId ?? t.selectedPriceId, s = n || e.action === "checkout" && !o, d = o ? t.bootstrap.prices.find((u) => u.id === o) ?? null : null, l = t.bootstrap.user?.had_previous_trial ?? !1, g = e.label ??
|
|
1437
|
+
function Te({ block: e, ctx: t }) {
|
|
1438
|
+
const { t: r } = v(), [n, i] = b(!1), o = e.priceId ?? t.selectedPriceId, s = n || e.action === "checkout" && !o, d = o ? t.bootstrap.prices.find((u) => u.id === o) ?? null : null, l = t.bootstrap.user?.had_previous_trial ?? !1, g = e.label ?? Le(d, e.action, l, r);
|
|
1434
1439
|
return /* @__PURE__ */ c(
|
|
1435
1440
|
"button",
|
|
1436
1441
|
{
|
|
@@ -1467,7 +1472,7 @@ function Pe({ block: e, ctx: t }) {
|
|
|
1467
1472
|
}
|
|
1468
1473
|
);
|
|
1469
1474
|
}
|
|
1470
|
-
function
|
|
1475
|
+
function Ee({ ctx: e }) {
|
|
1471
1476
|
const { t } = v(), r = e.authSession, n = e.auth, [i, o] = b(!1), s = () => e.onAction("support");
|
|
1472
1477
|
if (r && !r.user.is_anonymous) {
|
|
1473
1478
|
const d = async () => {
|
|
@@ -1489,14 +1494,14 @@ function Te({ ctx: e }) {
|
|
|
1489
1494
|
] }),
|
|
1490
1495
|
/* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-3", children: [
|
|
1491
1496
|
/* @__PURE__ */ a(G, { onClick: d, disabled: !n || i, children: i ? t("session.signing_out", "Signing out…") : t("session.sign_out", "Sign Out") }),
|
|
1492
|
-
/* @__PURE__ */ a(
|
|
1497
|
+
/* @__PURE__ */ a(kt, {}),
|
|
1493
1498
|
/* @__PURE__ */ a(G, { onClick: s, children: t("session.contact_support", "Contact Support") })
|
|
1494
1499
|
] })
|
|
1495
1500
|
] });
|
|
1496
1501
|
}
|
|
1497
1502
|
return /* @__PURE__ */ c("div", { class: "-mt-3 flex items-center justify-center gap-3 pt-1 text-center text-[13px]", children: [
|
|
1498
1503
|
/* @__PURE__ */ a(G, { onClick: () => e.onAction("restore"), children: t("session.restore_purchases", "Restore purchases") }),
|
|
1499
|
-
/* @__PURE__ */ a(
|
|
1504
|
+
/* @__PURE__ */ a(kt, {}),
|
|
1500
1505
|
/* @__PURE__ */ a(G, { onClick: s, children: t("session.contact_support", "Contact Support") })
|
|
1501
1506
|
] });
|
|
1502
1507
|
}
|
|
@@ -1517,10 +1522,10 @@ function G({
|
|
|
1517
1522
|
}
|
|
1518
1523
|
);
|
|
1519
1524
|
}
|
|
1520
|
-
function
|
|
1525
|
+
function kt() {
|
|
1521
1526
|
return /* @__PURE__ */ a("span", { class: "h-1 w-1 rounded-full bg-gray-300", "aria-hidden": "true" });
|
|
1522
1527
|
}
|
|
1523
|
-
function
|
|
1528
|
+
function je({ block: e }) {
|
|
1524
1529
|
return e.items.length ? /* @__PURE__ */ a("ul", { class: "flex flex-col gap-2.5", role: "list", children: e.items.map((t) => /* @__PURE__ */ c("li", { class: "flex items-start gap-3 text-sm text-gray-700", children: [
|
|
1525
1530
|
/* @__PURE__ */ a(
|
|
1526
1531
|
"svg",
|
|
@@ -1549,11 +1554,11 @@ function Ee({ block: e }) {
|
|
|
1549
1554
|
] })
|
|
1550
1555
|
] }, t.id)) }) : null;
|
|
1551
1556
|
}
|
|
1552
|
-
function
|
|
1553
|
-
const { t } = v(), r = e.title ?? t("pricing.money_back", "30-day money-back guarantee"), n = e.subtitle, i = (e.icon ?? "dollar_shield") !== "none", o =
|
|
1557
|
+
function ze({ block: e }) {
|
|
1558
|
+
const { t } = v(), r = e.title ?? t("pricing.money_back", "30-day money-back guarantee"), n = e.subtitle, i = (e.icon ?? "dollar_shield") !== "none", o = Be(r);
|
|
1554
1559
|
return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-1.5 border-b-1 pb-4 mb-1 border-gray-100", children: [
|
|
1555
1560
|
/* @__PURE__ */ c("div", { class: "inline-flex items-center gap-2 text-[12px] text-gray-700", children: [
|
|
1556
|
-
i ? /* @__PURE__ */ a(
|
|
1561
|
+
i ? /* @__PURE__ */ a(Oe, {}) : null,
|
|
1557
1562
|
o ? /* @__PURE__ */ c("span", { children: [
|
|
1558
1563
|
/* @__PURE__ */ a("b", { class: "font-bold text-gray-900", children: o.bold }),
|
|
1559
1564
|
" ",
|
|
@@ -1563,11 +1568,11 @@ function je({ block: e }) {
|
|
|
1563
1568
|
n ? /* @__PURE__ */ a("span", { class: "text-center text-xs leading-relaxed text-gray-500", children: n }) : null
|
|
1564
1569
|
] });
|
|
1565
1570
|
}
|
|
1566
|
-
function
|
|
1571
|
+
function Be(e) {
|
|
1567
1572
|
const t = e.match(/^(\d+[-\s]?days?)\s+(.+)$/i);
|
|
1568
1573
|
return t ? { bold: t[1], rest: t[2] } : null;
|
|
1569
1574
|
}
|
|
1570
|
-
function
|
|
1575
|
+
function Oe() {
|
|
1571
1576
|
return /* @__PURE__ */ c(
|
|
1572
1577
|
"svg",
|
|
1573
1578
|
{
|
|
@@ -1602,22 +1607,22 @@ function Be() {
|
|
|
1602
1607
|
}
|
|
1603
1608
|
);
|
|
1604
1609
|
}
|
|
1605
|
-
const
|
|
1606
|
-
function
|
|
1607
|
-
const r = t *
|
|
1608
|
-
let n =
|
|
1609
|
-
for (e.style.fontSize = `${n}px`; e.scrollHeight > r && n >
|
|
1610
|
+
const Ft = 24, Fe = 16, Re = 2;
|
|
1611
|
+
function Ue(e, t) {
|
|
1612
|
+
const r = t * Re;
|
|
1613
|
+
let n = Ft;
|
|
1614
|
+
for (e.style.fontSize = `${n}px`; e.scrollHeight > r && n > Fe; )
|
|
1610
1615
|
n -= 1, e.style.fontSize = `${n}px`;
|
|
1611
1616
|
}
|
|
1612
|
-
function
|
|
1613
|
-
const r = e.level ?? 1, n = `h${r}`, i = r === 1 ? "text-[22px] sm:text-2xl font-semibold leading-tight text-center text-balance text-gray-800" : r === 2 ? "text-xl font-semibold leading-snug text-gray-900 tracking-tight" : "text-base font-medium text-gray-900", o =
|
|
1614
|
-
return
|
|
1617
|
+
function De({ block: e, ctx: t }) {
|
|
1618
|
+
const r = e.level ?? 1, n = `h${r}`, i = r === 1 ? "text-[22px] sm:text-2xl font-semibold leading-tight text-center text-balance text-gray-800" : r === 2 ? "text-xl font-semibold leading-snug text-gray-900 tracking-tight" : "text-base font-medium text-gray-900", o = F(null), s = r === 1 && !!t.bootstrap.settings.title_auto_fit;
|
|
1619
|
+
return E(() => {
|
|
1615
1620
|
if (!s || !o.current) return;
|
|
1616
|
-
const d = getComputedStyle(o.current), l = parseFloat(d.lineHeight) ||
|
|
1617
|
-
|
|
1621
|
+
const d = getComputedStyle(o.current), l = parseFloat(d.lineHeight) || Ft * 1.5;
|
|
1622
|
+
Ue(o.current, l);
|
|
1618
1623
|
}, [s, e.text]), /* @__PURE__ */ a(n, { ref: o, class: i, children: e.text });
|
|
1619
1624
|
}
|
|
1620
|
-
function
|
|
1625
|
+
function Ne(e) {
|
|
1621
1626
|
const t = e.local ?? { currency: e.currency, amount: e.amount };
|
|
1622
1627
|
if (e.interval === "year") {
|
|
1623
1628
|
const r = (e.interval_count ?? 1) * 12;
|
|
@@ -1625,7 +1630,7 @@ function De(e) {
|
|
|
1625
1630
|
}
|
|
1626
1631
|
return { amount: t.amount, currency: t.currency };
|
|
1627
1632
|
}
|
|
1628
|
-
function
|
|
1633
|
+
function nt(e, t) {
|
|
1629
1634
|
const r = e % 1 !== 0 ? 2 : 0;
|
|
1630
1635
|
try {
|
|
1631
1636
|
const n = new Intl.NumberFormat(void 0, {
|
|
@@ -1643,13 +1648,13 @@ function it(e, t) {
|
|
|
1643
1648
|
return { currency: t, amount: String(e) };
|
|
1644
1649
|
}
|
|
1645
1650
|
}
|
|
1646
|
-
function
|
|
1647
|
-
const { amount: r, currency: n } =
|
|
1651
|
+
function st(e, t) {
|
|
1652
|
+
const { amount: r, currency: n } = Ne(e);
|
|
1648
1653
|
if (!t) {
|
|
1649
|
-
const { currency: d, amount: l } =
|
|
1654
|
+
const { currency: d, amount: l } = nt(r, n);
|
|
1650
1655
|
return { currency: d, amount: l, originalAmount: null };
|
|
1651
1656
|
}
|
|
1652
|
-
const i = r * (1 - t / 100), o =
|
|
1657
|
+
const i = r * (1 - t / 100), o = nt(i, n), s = nt(r, n);
|
|
1653
1658
|
return {
|
|
1654
1659
|
currency: o.currency,
|
|
1655
1660
|
amount: o.amount,
|
|
@@ -1665,7 +1670,7 @@ function q(e, t) {
|
|
|
1665
1670
|
(i) => i.price_id == null && i.discount_percent && i.discount_percent > 0
|
|
1666
1671
|
) ?? null);
|
|
1667
1672
|
}
|
|
1668
|
-
function
|
|
1673
|
+
function Rt(e, t) {
|
|
1669
1674
|
if (e.label) return e.label.toUpperCase();
|
|
1670
1675
|
if (!e.interval || e.interval === "lifetime")
|
|
1671
1676
|
return t("pricing.plan_label.lifetime", "LIFETIME");
|
|
@@ -1677,14 +1682,14 @@ function Ft(e, t) {
|
|
|
1677
1682
|
}[e.interval];
|
|
1678
1683
|
return n ? t(n.key, n.fallback) : `${e.interval.toUpperCase()} PLAN`;
|
|
1679
1684
|
}
|
|
1680
|
-
function
|
|
1685
|
+
function lt(e, t) {
|
|
1681
1686
|
if (!e.interval || e.interval === "lifetime")
|
|
1682
1687
|
return t("pricing.interval.lifetime_short", "lifetime");
|
|
1683
1688
|
if (e.interval === "year") return t("pricing.interval.month", "month");
|
|
1684
1689
|
const r = e.interval_count ?? 1;
|
|
1685
1690
|
return r === 1 ? t(`pricing.interval.${e.interval}`, e.interval) : `${r} ${e.interval}s`;
|
|
1686
1691
|
}
|
|
1687
|
-
function
|
|
1692
|
+
function $e({ block: e, ctx: t }) {
|
|
1688
1693
|
const { t: r } = v(), n = e.priceIds && e.priceIds.length > 0 ? new Set(e.priceIds) : null, i = t.bootstrap.prices.filter((s) => !n || n.has(s.id));
|
|
1689
1694
|
if (i.length === 0)
|
|
1690
1695
|
return /* @__PURE__ */ a("p", { class: "text-sm text-gray-500", children: r("pricing.no_prices", "No prices available.") });
|
|
@@ -1697,7 +1702,7 @@ function Ne({ block: e, ctx: t }) {
|
|
|
1697
1702
|
role: "radiogroup",
|
|
1698
1703
|
"aria-label": r("pricing.plans_aria", "Plans"),
|
|
1699
1704
|
children: i.map((s, d) => /* @__PURE__ */ a(
|
|
1700
|
-
|
|
1705
|
+
Ve,
|
|
1701
1706
|
{
|
|
1702
1707
|
price: s,
|
|
1703
1708
|
isLast: d === i.length - 1,
|
|
@@ -1726,7 +1731,7 @@ function Ne({ block: e, ctx: t }) {
|
|
|
1726
1731
|
role: "radiogroup",
|
|
1727
1732
|
"aria-label": r("pricing.plans_aria", "Plans"),
|
|
1728
1733
|
children: i.map((l) => /* @__PURE__ */ a(
|
|
1729
|
-
|
|
1734
|
+
Ge,
|
|
1730
1735
|
{
|
|
1731
1736
|
price: l,
|
|
1732
1737
|
isPopular: e.popular_price_id === l.id,
|
|
@@ -1751,7 +1756,7 @@ function Ne({ block: e, ctx: t }) {
|
|
|
1751
1756
|
role: "radiogroup",
|
|
1752
1757
|
"aria-label": r("pricing.plans_aria", "Plans"),
|
|
1753
1758
|
children: i.map((s) => {
|
|
1754
|
-
const d = t.selectedPriceId === s.id, l = e.popular_price_id === s.id, p = q(t.bootstrap.offers, s.id)?.discount_percent ?? null, { currency: u, amount: x, originalAmount: y } =
|
|
1759
|
+
const d = t.selectedPriceId === s.id, l = e.popular_price_id === s.id, p = q(t.bootstrap.offers, s.id)?.discount_percent ?? null, { currency: u, amount: x, originalAmount: y } = st(s, p);
|
|
1755
1760
|
return /* @__PURE__ */ c(
|
|
1756
1761
|
"button",
|
|
1757
1762
|
{
|
|
@@ -1807,7 +1812,7 @@ function Ne({ block: e, ctx: t }) {
|
|
|
1807
1812
|
),
|
|
1808
1813
|
/* @__PURE__ */ c("div", { class: "flex flex-1 flex-col gap-0.5", children: [
|
|
1809
1814
|
/* @__PURE__ */ c("div", { class: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
|
|
1810
|
-
/* @__PURE__ */ a("span", { class: "text-xs font-normal uppercase tracking-normal text-gray-800/70", children:
|
|
1815
|
+
/* @__PURE__ */ a("span", { class: "text-xs font-normal uppercase tracking-normal text-gray-800/70", children: Rt(s, r) }),
|
|
1811
1816
|
y ? (
|
|
1812
1817
|
// opacity-60 приглушает strike: глаз сначала ловит label
|
|
1813
1818
|
// и discount-badge, потом main price; original «бывшая цена»
|
|
@@ -1830,7 +1835,7 @@ function Ne({ block: e, ctx: t }) {
|
|
|
1830
1835
|
/* @__PURE__ */ c("span", { class: "text-sm font-normal text-gray-500", children: [
|
|
1831
1836
|
" ",
|
|
1832
1837
|
"/ ",
|
|
1833
|
-
|
|
1838
|
+
lt(s, r)
|
|
1834
1839
|
] })
|
|
1835
1840
|
] }) }),
|
|
1836
1841
|
s.description ? /* @__PURE__ */ a("span", { class: "mt-1 text-xs leading-relaxed text-gray-500", children: s.description }) : null
|
|
@@ -1851,10 +1856,10 @@ function Ne({ block: e, ctx: t }) {
|
|
|
1851
1856
|
}
|
|
1852
1857
|
);
|
|
1853
1858
|
}
|
|
1854
|
-
function
|
|
1859
|
+
function He(e, t) {
|
|
1855
1860
|
return e.label ? e.label : !e.interval || e.interval === "lifetime" ? t("pricing.interval.lifetime_short", "lifetime") : t(`pricing.interval.${e.interval}`, e.interval);
|
|
1856
1861
|
}
|
|
1857
|
-
function
|
|
1862
|
+
function Ve({
|
|
1858
1863
|
price: e,
|
|
1859
1864
|
isLast: t,
|
|
1860
1865
|
isPopular: r,
|
|
@@ -1864,7 +1869,7 @@ function He({
|
|
|
1864
1869
|
onSelect: s,
|
|
1865
1870
|
t: d
|
|
1866
1871
|
}) {
|
|
1867
|
-
const l = i?.discount_percent ?? null, { currency: g, amount: p, originalAmount: u } =
|
|
1872
|
+
const l = i?.discount_percent ?? null, { currency: g, amount: p, originalAmount: u } = st(e, l);
|
|
1868
1873
|
return /* @__PURE__ */ c(
|
|
1869
1874
|
"button",
|
|
1870
1875
|
{
|
|
@@ -1914,7 +1919,7 @@ function He({
|
|
|
1914
1919
|
].join(" "),
|
|
1915
1920
|
children: [
|
|
1916
1921
|
/* @__PURE__ */ c("div", { class: "flex flex-wrap items-center gap-1 gap-x-1.5", children: [
|
|
1917
|
-
/* @__PURE__ */ a("span", { class: "text-base font-normal capitalize text-gray-800", children:
|
|
1922
|
+
/* @__PURE__ */ a("span", { class: "text-base font-normal capitalize text-gray-800", children: He(e, d) }),
|
|
1918
1923
|
r ? (
|
|
1919
1924
|
// Pastel brand-mix pill — точно как `badge` в TelegramPricingRadio.
|
|
1920
1925
|
// Низкий visual weight: pill про "имя плана" (most popular), а не
|
|
@@ -1946,7 +1951,7 @@ function He({
|
|
|
1946
1951
|
/* @__PURE__ */ c("span", { class: "text-xs text-gray-400", children: [
|
|
1947
1952
|
" ",
|
|
1948
1953
|
"/ ",
|
|
1949
|
-
|
|
1954
|
+
lt(e, d)
|
|
1950
1955
|
] })
|
|
1951
1956
|
] })
|
|
1952
1957
|
] })
|
|
@@ -1957,7 +1962,7 @@ function He({
|
|
|
1957
1962
|
}
|
|
1958
1963
|
);
|
|
1959
1964
|
}
|
|
1960
|
-
function
|
|
1965
|
+
function Ge({
|
|
1961
1966
|
price: e,
|
|
1962
1967
|
isPopular: t,
|
|
1963
1968
|
popularLabel: r,
|
|
@@ -1967,7 +1972,7 @@ function Ve({
|
|
|
1967
1972
|
onSelect: s,
|
|
1968
1973
|
t: d
|
|
1969
1974
|
}) {
|
|
1970
|
-
const l = n?.discount_percent ?? null, { currency: g, amount: p, originalAmount: u } =
|
|
1975
|
+
const l = n?.discount_percent ?? null, { currency: g, amount: p, originalAmount: u } = st(e, l);
|
|
1971
1976
|
return /* @__PURE__ */ c(
|
|
1972
1977
|
"button",
|
|
1973
1978
|
{
|
|
@@ -1981,7 +1986,7 @@ function Ve({
|
|
|
1981
1986
|
].join(" "),
|
|
1982
1987
|
style: o ? { background: "color-mix(in srgb, var(--pw-accent) 6%, transparent)" } : void 0,
|
|
1983
1988
|
children: [
|
|
1984
|
-
/* @__PURE__ */ a("span", { class: "flex min-h-[2.4em] items-center text-[10px] font-normal uppercase leading-tight text-gray-800/70", children:
|
|
1989
|
+
/* @__PURE__ */ a("span", { class: "flex min-h-[2.4em] items-center text-[10px] font-normal uppercase leading-tight text-gray-800/70", children: Rt(e, d) }),
|
|
1985
1990
|
i ? /* @__PURE__ */ c("div", { class: "flex h-[22px] items-center justify-center gap-1.5", children: [
|
|
1986
1991
|
u ? /* @__PURE__ */ a("span", { class: "text-[12px] text-gray-400 line-through decoration-gray-400 decoration-[1.5px]", children: u }) : null,
|
|
1987
1992
|
l ? /* @__PURE__ */ c("span", { class: "rounded-md bg-emerald-100 px-1.5 py-0.5 text-[10px] font-bold leading-none text-emerald-700", children: [
|
|
@@ -1996,7 +2001,7 @@ function Ve({
|
|
|
1996
2001
|
] }),
|
|
1997
2002
|
/* @__PURE__ */ c("span", { class: "text-xs font-normal text-gray-500", children: [
|
|
1998
2003
|
"/ ",
|
|
1999
|
-
|
|
2004
|
+
lt(e, d)
|
|
2000
2005
|
] }),
|
|
2001
2006
|
t ? /* @__PURE__ */ a(
|
|
2002
2007
|
"span",
|
|
@@ -2010,24 +2015,24 @@ function Ve({
|
|
|
2010
2015
|
}
|
|
2011
2016
|
);
|
|
2012
2017
|
}
|
|
2013
|
-
function
|
|
2018
|
+
function qe({ block: e }) {
|
|
2014
2019
|
return /* @__PURE__ */ a("p", { class: "text-[0.9375rem] leading-relaxed text-gray-600", children: e.text });
|
|
2015
2020
|
}
|
|
2016
|
-
const
|
|
2021
|
+
const We = {
|
|
2017
2022
|
week: 0.25,
|
|
2018
2023
|
month: 1,
|
|
2019
2024
|
year: 12
|
|
2020
2025
|
};
|
|
2021
|
-
function
|
|
2026
|
+
function Ze(e, t) {
|
|
2022
2027
|
return e ? t(`pricing.interval.${e}`, e) : t("pricing.interval.period", "period");
|
|
2023
2028
|
}
|
|
2024
|
-
function
|
|
2029
|
+
function Ke({ block: e, ctx: t }) {
|
|
2025
2030
|
const { t: r } = v();
|
|
2026
2031
|
if (!e.queries.length) return null;
|
|
2027
|
-
const i = t.bootstrap.prices.find((s) => s.id === t.selectedPriceId)?.interval ?? null, o = i ?
|
|
2032
|
+
const i = t.bootstrap.prices.find((s) => s.id === t.selectedPriceId)?.interval ?? null, o = i ? We[i] : void 0;
|
|
2028
2033
|
return /* @__PURE__ */ c("div", { class: "flex flex-col gap-2", children: [
|
|
2029
2034
|
/* @__PURE__ */ a("div", { class: "text-sm font-semibold text-gray-800", children: !i || i === "lifetime" ? r("pricing.included_total", "Included for lifetime:") : r("pricing.included_per", "Included per {interval}:", {
|
|
2030
|
-
interval:
|
|
2035
|
+
interval: Ze(i, r)
|
|
2031
2036
|
}) }),
|
|
2032
2037
|
/* @__PURE__ */ a("ul", { class: "flex flex-col gap-2", role: "list", children: e.queries.map((s) => {
|
|
2033
2038
|
const d = Number.isFinite(s.count) ? s.count : 0, l = o !== void 0 ? Math.round(d * o) : d;
|
|
@@ -2057,7 +2062,7 @@ function Ze({ block: e, ctx: t }) {
|
|
|
2057
2062
|
/* @__PURE__ */ a("span", { class: "font-semibold text-gray-900 text-sm", children: l }),
|
|
2058
2063
|
" ",
|
|
2059
2064
|
/* @__PURE__ */ a("span", { class: "text-sm text-gray-800", children: s.name }),
|
|
2060
|
-
s.desc ? /* @__PURE__ */ c(
|
|
2065
|
+
s.desc ? /* @__PURE__ */ c(ot, { children: [
|
|
2061
2066
|
/* @__PURE__ */ a("br", {}),
|
|
2062
2067
|
/* @__PURE__ */ a("span", { class: "text-xs text-gray-400", children: s.desc })
|
|
2063
2068
|
] }) : null
|
|
@@ -2066,20 +2071,20 @@ function Ze({ block: e, ctx: t }) {
|
|
|
2066
2071
|
}) })
|
|
2067
2072
|
] });
|
|
2068
2073
|
}
|
|
2069
|
-
const
|
|
2070
|
-
heading:
|
|
2071
|
-
text:
|
|
2072
|
-
price_grid:
|
|
2073
|
-
cta_button:
|
|
2074
|
-
auth_panel:
|
|
2075
|
-
current_session:
|
|
2076
|
-
features_list:
|
|
2077
|
-
tokenization_gate:
|
|
2078
|
-
guarantee_badge:
|
|
2079
|
-
offer_banner:
|
|
2074
|
+
const Ye = {
|
|
2075
|
+
heading: De,
|
|
2076
|
+
text: qe,
|
|
2077
|
+
price_grid: $e,
|
|
2078
|
+
cta_button: Te,
|
|
2079
|
+
auth_panel: Tt,
|
|
2080
|
+
current_session: Ee,
|
|
2081
|
+
features_list: je,
|
|
2082
|
+
tokenization_gate: Ke,
|
|
2083
|
+
guarantee_badge: ze,
|
|
2084
|
+
offer_banner: xe
|
|
2080
2085
|
};
|
|
2081
|
-
function
|
|
2082
|
-
const s =
|
|
2086
|
+
function Xe({ layout: e, bootstrap: t, onAction: r, auth: n, authSession: i, hasTopBanner: o }) {
|
|
2087
|
+
const s = Ht(() => {
|
|
2083
2088
|
for (const k of e.blocks)
|
|
2084
2089
|
if (k.type === "price_grid" && k.popular_price_id && t.prices.some((h) => h.id === k.popular_price_id))
|
|
2085
2090
|
return k.popular_price_id;
|
|
@@ -2092,10 +2097,10 @@ function Ye({ layout: e, bootstrap: t, onAction: r, auth: n, authSession: i, has
|
|
|
2092
2097
|
auth: n,
|
|
2093
2098
|
authSession: i
|
|
2094
2099
|
}, p = e.blocks.findIndex((k) => k.type === "cta_button"), u = p === -1 ? e.blocks : e.blocks.slice(0, p), x = p === -1 ? [] : e.blocks.slice(p), y = (k, h) => {
|
|
2095
|
-
const m =
|
|
2100
|
+
const m = Ye[k.type];
|
|
2096
2101
|
return m ? /* @__PURE__ */ a(m, { block: k, ctx: g }, `${k.type}-${h}`) : (typeof console < "u" && console.warn(`[paywall] unknown block type: ${k.type}`), null);
|
|
2097
2102
|
};
|
|
2098
|
-
return /* @__PURE__ */ c(
|
|
2103
|
+
return /* @__PURE__ */ c(ot, { children: [
|
|
2099
2104
|
/* @__PURE__ */ a("div", { class: "flex-1 min-h-0 overflow-y-auto px-6 pb-3 pt-6 sm:px-8 sm:pb-4 sm:pt-8", children: /* @__PURE__ */ a("div", { class: "flex flex-col gap-6", children: u.map(y) }) }),
|
|
2100
2105
|
x.length > 0 ? (
|
|
2101
2106
|
// Тонкий shadow-top вместо border-t — создаёт depth, читается как
|
|
@@ -2112,13 +2117,13 @@ function Ye({ layout: e, bootstrap: t, onAction: r, auth: n, authSession: i, has
|
|
|
2112
2117
|
) : null
|
|
2113
2118
|
] });
|
|
2114
2119
|
}
|
|
2115
|
-
function
|
|
2120
|
+
function Je(e, t, r, n) {
|
|
2116
2121
|
return e ? n ? { open: !0, view: "purchased", error: null } : t.status === "idle" || t.status === "loading" ? { open: !0, view: "loading", error: null } : t.status === "error" ? { open: !0, view: "error", error: t.error } : r.kind === "support" ? { open: !0, view: "support", error: null } : r.kind === "auth_gate" ? { open: !0, view: "auth", error: null } : r.kind === "awaiting_payment" ? { open: !0, view: "awaiting_payment", error: null } : r.kind === "popup_blocked" ? { open: !0, view: "popup_blocked", error: null } : r.kind === "purchase_success" ? { open: !0, view: "purchased", error: null } : r.kind === "verifying" ? { open: !0, view: "loading", error: null } : { open: !0, view: "layout", error: null } : { open: !1, view: null, error: null };
|
|
2117
2122
|
}
|
|
2118
|
-
function
|
|
2123
|
+
function Qe(e, t) {
|
|
2119
2124
|
return e.open === t.open && e.view === t.view && e.error === t.error;
|
|
2120
2125
|
}
|
|
2121
|
-
function
|
|
2126
|
+
function tr({
|
|
2122
2127
|
client: e,
|
|
2123
2128
|
open: t,
|
|
2124
2129
|
onClose: r,
|
|
@@ -2133,22 +2138,22 @@ function Qe({
|
|
|
2133
2138
|
}) {
|
|
2134
2139
|
const [u, x] = b({ status: "idle" }), [y, k] = b(
|
|
2135
2140
|
() => e.auth?.getCachedSession() ?? null
|
|
2136
|
-
), [h, m] = b(() => i === "support" ? { kind: "support", origin: "standalone" } : i === "auth" ? { kind: "auth_gate", origin: "standalone" } : { kind: "layout" }),
|
|
2137
|
-
|
|
2141
|
+
), [h, m] = b(() => i === "support" ? { kind: "support", origin: "standalone" } : i === "auth" ? { kind: "auth_gate", origin: "standalone" } : { kind: "layout" }), j = F(!1), _ = F(null);
|
|
2142
|
+
E(() => {
|
|
2138
2143
|
if (!l) return;
|
|
2139
|
-
const w =
|
|
2140
|
-
f &&
|
|
2141
|
-
}, [t, u, h, s, l]),
|
|
2144
|
+
const w = Je(t, u, h, s), f = _.current;
|
|
2145
|
+
f && Qe(f, w) || (_.current = w, l(w));
|
|
2146
|
+
}, [t, u, h, s, l]), E(() => {
|
|
2142
2147
|
if (e.auth)
|
|
2143
2148
|
return e.auth.onAuthChange((w, f) => k(f));
|
|
2144
|
-
}, [e.auth]),
|
|
2149
|
+
}, [e.auth]), E(() => {
|
|
2145
2150
|
if (typeof e.onBootstrapChange == "function")
|
|
2146
2151
|
return e.onBootstrapChange((w) => {
|
|
2147
2152
|
x(
|
|
2148
2153
|
(f) => f.status === "ready" ? { status: "ready", data: w } : f
|
|
2149
2154
|
);
|
|
2150
2155
|
});
|
|
2151
|
-
}, [e]),
|
|
2156
|
+
}, [e]), E(() => {
|
|
2152
2157
|
if (!t || u.status === "ready" || u.status === "loading") return;
|
|
2153
2158
|
let w = !1;
|
|
2154
2159
|
return x({ status: "loading" }), e.bootstrap().then((f) => {
|
|
@@ -2159,14 +2164,14 @@ function Qe({
|
|
|
2159
2164
|
}), m({ kind: "purchase_success", restored: !0 })));
|
|
2160
2165
|
}).catch((f) => {
|
|
2161
2166
|
if (w) return;
|
|
2162
|
-
const C = f instanceof
|
|
2167
|
+
const C = f instanceof O ? f : new O("unknown", "Failed to load paywall", { cause: f });
|
|
2163
2168
|
x({ status: "error", error: C }), n("error", C);
|
|
2164
2169
|
}), () => {
|
|
2165
2170
|
w = !0;
|
|
2166
2171
|
};
|
|
2167
|
-
}, [t, e]),
|
|
2172
|
+
}, [t, e]), Vt(() => {
|
|
2168
2173
|
if (!t) {
|
|
2169
|
-
m({ kind: "layout" }),
|
|
2174
|
+
m({ kind: "layout" }), j.current = !1;
|
|
2170
2175
|
return;
|
|
2171
2176
|
}
|
|
2172
2177
|
i === "support" ? m({ kind: "support", origin: "standalone" }) : i === "auth" && m({ kind: "auth_gate", origin: "standalone" });
|
|
@@ -2188,7 +2193,7 @@ function Qe({
|
|
|
2188
2193
|
} else
|
|
2189
2194
|
m({ kind: "popup_blocked", priceId: w, url: f.url });
|
|
2190
2195
|
} catch (f) {
|
|
2191
|
-
if (f instanceof
|
|
2196
|
+
if (f instanceof O && f.code === "already_purchased") {
|
|
2192
2197
|
try {
|
|
2193
2198
|
await e.getUser({ force: !0 });
|
|
2194
2199
|
} catch {
|
|
@@ -2196,10 +2201,10 @@ function Qe({
|
|
|
2196
2201
|
n("purchase_completed", { priceId: w, sessionId: null, restored: !0 }), m({ kind: "purchase_success", restored: !0 });
|
|
2197
2202
|
return;
|
|
2198
2203
|
}
|
|
2199
|
-
const C = f instanceof
|
|
2204
|
+
const C = f instanceof O ? f : new O("checkout_failed", "Checkout failed", { cause: f });
|
|
2200
2205
|
n("error", C), m({ kind: "layout" });
|
|
2201
2206
|
}
|
|
2202
|
-
},
|
|
2207
|
+
}, A = (w, f) => {
|
|
2203
2208
|
if (typeof window > "u") return;
|
|
2204
2209
|
const C = window.open(f, "_blank");
|
|
2205
2210
|
if (C) {
|
|
@@ -2210,9 +2215,9 @@ function Qe({
|
|
|
2210
2215
|
m({ kind: "awaiting_payment", priceId: w, url: f });
|
|
2211
2216
|
}
|
|
2212
2217
|
};
|
|
2213
|
-
|
|
2214
|
-
if (h.kind !== "auth_gate" || !y || y.user.is_anonymous ||
|
|
2215
|
-
|
|
2218
|
+
E(() => {
|
|
2219
|
+
if (h.kind !== "auth_gate" || !y || y.user.is_anonymous || j.current) return;
|
|
2220
|
+
j.current = !0;
|
|
2216
2221
|
const w = h.pendingCheckout, f = h.origin;
|
|
2217
2222
|
m({ kind: "verifying" }), (async () => {
|
|
2218
2223
|
if (!d)
|
|
@@ -2233,10 +2238,10 @@ function Qe({
|
|
|
2233
2238
|
}
|
|
2234
2239
|
await S(w.priceId);
|
|
2235
2240
|
})().finally(() => {
|
|
2236
|
-
|
|
2241
|
+
j.current = !1;
|
|
2237
2242
|
});
|
|
2238
2243
|
}, [y, h]);
|
|
2239
|
-
const
|
|
2244
|
+
const R = async (w, f) => {
|
|
2240
2245
|
if (w === "close") {
|
|
2241
2246
|
r();
|
|
2242
2247
|
return;
|
|
@@ -2259,17 +2264,17 @@ function Qe({
|
|
|
2259
2264
|
if (w === "checkout" && u.status === "ready") {
|
|
2260
2265
|
const C = f?.priceId;
|
|
2261
2266
|
if (!C) {
|
|
2262
|
-
n("error", new
|
|
2267
|
+
n("error", new O("no_price", "No price selected"));
|
|
2263
2268
|
return;
|
|
2264
2269
|
}
|
|
2265
|
-
const
|
|
2266
|
-
if (
|
|
2270
|
+
const K = u.data.settings.checkout_mode ?? "guest", I = e.auth?.getCachedSession() ?? null, L = !!I && !I.user.is_anonymous;
|
|
2271
|
+
if (K === "preauth" && !!e.auth && !L) {
|
|
2267
2272
|
m({ kind: "auth_gate", pendingCheckout: { priceId: C } });
|
|
2268
2273
|
return;
|
|
2269
2274
|
}
|
|
2270
2275
|
await S(C);
|
|
2271
2276
|
}
|
|
2272
|
-
},
|
|
2277
|
+
}, P = u.status === "ready" ? u.data.settings.brand_color : null, z = u.status === "ready" ? u.data.settings.allow_close !== !1 : !0, B = h.kind === "layout" && u.status === "ready" ? jt(u.data.offers) : null, T = B ? /* @__PURE__ */ a(ye, { offer: B }) : null, M = {
|
|
2273
2278
|
type: "auth_panel",
|
|
2274
2279
|
// Заголовок не задаём — AuthGate сам решит по intent'у (restore →
|
|
2275
2280
|
// "Restore Purchases", остальные → дефолтный "Welcome back!").
|
|
@@ -2279,8 +2284,8 @@ function Qe({
|
|
|
2279
2284
|
// чем хотим показывать "Signed in as ..." промежуточным экраном.
|
|
2280
2285
|
hide_when_authenticated: !1,
|
|
2281
2286
|
providers: u.status === "ready" ? u.data.settings.auth_providers : void 0
|
|
2282
|
-
},
|
|
2283
|
-
|
|
2287
|
+
}, D = h.kind === "support" ? /* @__PURE__ */ a(
|
|
2288
|
+
_e,
|
|
2284
2289
|
{
|
|
2285
2290
|
client: e,
|
|
2286
2291
|
authSession: y,
|
|
@@ -2290,19 +2295,19 @@ function Qe({
|
|
|
2290
2295
|
}
|
|
2291
2296
|
}
|
|
2292
2297
|
) : null, N = h.kind === "auth_gate" && h.origin !== "standalone" || h.kind === "support", Z = u.status === "ready" ? u.data : null;
|
|
2293
|
-
return /* @__PURE__ */ a(
|
|
2294
|
-
|
|
2298
|
+
return /* @__PURE__ */ a(te, { bootstrap: Z, forceLocale: p, children: /* @__PURE__ */ a(
|
|
2299
|
+
ee,
|
|
2295
2300
|
{
|
|
2296
2301
|
open: t,
|
|
2297
2302
|
onClose: r,
|
|
2298
|
-
brandColor:
|
|
2299
|
-
topBanner:
|
|
2300
|
-
allowClose:
|
|
2303
|
+
brandColor: P,
|
|
2304
|
+
topBanner: T,
|
|
2305
|
+
allowClose: z,
|
|
2301
2306
|
hideCloseButton: N,
|
|
2302
2307
|
inline: g,
|
|
2303
2308
|
labelledBy: "pw-title",
|
|
2304
|
-
children: s ? /* @__PURE__ */ a(
|
|
2305
|
-
|
|
2309
|
+
children: s ? /* @__PURE__ */ a(_t, { onContinue: r }) : h.kind === "purchase_success" ? /* @__PURE__ */ a(_t, { restored: h.restored, onContinue: r }) : D || (u.status === "loading" || u.status === "idle" || h.kind === "verifying" ? /* @__PURE__ */ a(er, { verifying: h.kind === "verifying" }) : u.status === "error" ? /* @__PURE__ */ a(rr, { message: u.error.message }) : h.kind === "auth_gate" && e.auth ? /* @__PURE__ */ a(
|
|
2310
|
+
we,
|
|
2306
2311
|
{
|
|
2307
2312
|
block: M,
|
|
2308
2313
|
bootstrap: u.data,
|
|
@@ -2316,7 +2321,7 @@ function Qe({
|
|
|
2316
2321
|
}
|
|
2317
2322
|
}
|
|
2318
2323
|
) : h.kind === "awaiting_payment" ? /* @__PURE__ */ a(
|
|
2319
|
-
|
|
2324
|
+
nr,
|
|
2320
2325
|
{
|
|
2321
2326
|
client: e,
|
|
2322
2327
|
onBack: () => m({ kind: "layout" }),
|
|
@@ -2331,12 +2336,12 @@ function Qe({
|
|
|
2331
2336
|
},
|
|
2332
2337
|
onRetry: () => S(h.priceId)
|
|
2333
2338
|
}
|
|
2334
|
-
) : h.kind === "popup_blocked" ? /* @__PURE__ */ a(
|
|
2335
|
-
|
|
2339
|
+
) : h.kind === "popup_blocked" ? /* @__PURE__ */ a(ir, { onReopen: () => A(h.priceId, h.url) }) : /* @__PURE__ */ a(
|
|
2340
|
+
Xe,
|
|
2336
2341
|
{
|
|
2337
2342
|
layout: u.data.layout,
|
|
2338
2343
|
bootstrap: u.data,
|
|
2339
|
-
onAction:
|
|
2344
|
+
onAction: R,
|
|
2340
2345
|
auth: e.auth,
|
|
2341
2346
|
authSession: y
|
|
2342
2347
|
}
|
|
@@ -2344,14 +2349,14 @@ function Qe({
|
|
|
2344
2349
|
}
|
|
2345
2350
|
) });
|
|
2346
2351
|
}
|
|
2347
|
-
function
|
|
2352
|
+
function er({ verifying: e }) {
|
|
2348
2353
|
const { t } = v();
|
|
2349
2354
|
return /* @__PURE__ */ c("div", { class: "flex flex-col items-center justify-center gap-3 py-12", children: [
|
|
2350
2355
|
/* @__PURE__ */ a("span", { class: "inline-block h-7 w-7 animate-spin rounded-full border-[2.5px] border-gray-200 border-t-[var(--pw-accent)]" }),
|
|
2351
2356
|
/* @__PURE__ */ a("span", { class: "text-xs font-medium tracking-wide text-gray-500", children: e ? t("modal.verifying_subscription", "Checking your subscription…") : t("modal.loading", "Loading…") })
|
|
2352
2357
|
] });
|
|
2353
2358
|
}
|
|
2354
|
-
function
|
|
2359
|
+
function rr({ message: e }) {
|
|
2355
2360
|
const { t } = v();
|
|
2356
2361
|
return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-2 py-8 text-center", children: [
|
|
2357
2362
|
/* @__PURE__ */ a("div", { class: "flex h-11 w-11 items-center justify-center rounded-full bg-red-50", children: /* @__PURE__ */ c("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
|
|
@@ -2362,7 +2367,7 @@ function er({ message: e }) {
|
|
|
2362
2367
|
/* @__PURE__ */ a("p", { class: "text-xs leading-relaxed text-gray-500", children: e })
|
|
2363
2368
|
] });
|
|
2364
2369
|
}
|
|
2365
|
-
function
|
|
2370
|
+
function ir({ onReopen: e }) {
|
|
2366
2371
|
const { t } = v();
|
|
2367
2372
|
return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
|
|
2368
2373
|
/* @__PURE__ */ a(
|
|
@@ -2394,14 +2399,14 @@ function rr({ onReopen: e }) {
|
|
|
2394
2399
|
)
|
|
2395
2400
|
] });
|
|
2396
2401
|
}
|
|
2397
|
-
function
|
|
2402
|
+
function nr({
|
|
2398
2403
|
client: e,
|
|
2399
2404
|
onBack: t,
|
|
2400
2405
|
onReopen: r,
|
|
2401
2406
|
onRetry: n
|
|
2402
2407
|
}) {
|
|
2403
|
-
const { t: i } = v(), [o, s] = b(!1), [d, l] = b(!1), g =
|
|
2404
|
-
|
|
2408
|
+
const { t: i } = v(), [o, s] = b(!1), [d, l] = b(!1), g = F(null);
|
|
2409
|
+
E(() => () => {
|
|
2405
2410
|
g.current !== null && clearTimeout(g.current);
|
|
2406
2411
|
}, []);
|
|
2407
2412
|
const p = async () => {
|
|
@@ -2488,7 +2493,7 @@ function ir({
|
|
|
2488
2493
|
)
|
|
2489
2494
|
] });
|
|
2490
2495
|
}
|
|
2491
|
-
function
|
|
2496
|
+
function _t({
|
|
2492
2497
|
onContinue: e,
|
|
2493
2498
|
restored: t = !1
|
|
2494
2499
|
}) {
|
|
@@ -2537,17 +2542,17 @@ function kt({
|
|
|
2537
2542
|
)
|
|
2538
2543
|
] });
|
|
2539
2544
|
}
|
|
2540
|
-
const
|
|
2541
|
-
class
|
|
2545
|
+
const ar = 10 * 6e4, or = 5e3, sr = 3e4;
|
|
2546
|
+
class lr {
|
|
2542
2547
|
constructor(t) {
|
|
2543
2548
|
this.timer = null, this.timeoutTimer = null, this.visibilityHandler = null, this.focusHandler = null, this.messageHandler = null, this.stopped = !1, this.checking = !1, this.opts = {
|
|
2544
2549
|
client: t.client,
|
|
2545
2550
|
onActive: t.onActive,
|
|
2546
2551
|
onTimeout: t.onTimeout ?? (() => {
|
|
2547
2552
|
}),
|
|
2548
|
-
timeoutMs: t.timeoutMs ??
|
|
2549
|
-
visibleIntervalMs: t.visibleIntervalMs ??
|
|
2550
|
-
hiddenIntervalMs: t.hiddenIntervalMs ??
|
|
2553
|
+
timeoutMs: t.timeoutMs ?? ar,
|
|
2554
|
+
visibleIntervalMs: t.visibleIntervalMs ?? or,
|
|
2555
|
+
hiddenIntervalMs: t.hiddenIntervalMs ?? sr
|
|
2551
2556
|
};
|
|
2552
2557
|
}
|
|
2553
2558
|
start() {
|
|
@@ -2586,19 +2591,19 @@ class sr {
|
|
|
2586
2591
|
!r || typeof r != "object" || r.type === "paywall_purchase" && this.check();
|
|
2587
2592
|
}
|
|
2588
2593
|
}
|
|
2589
|
-
function
|
|
2594
|
+
function cr() {
|
|
2590
2595
|
return !(typeof document > "u" || typeof window > "u" || typeof location < "u" && location.protocol === "chrome-extension:");
|
|
2591
2596
|
}
|
|
2592
|
-
const
|
|
2597
|
+
const at = { open: !1, view: null, error: null }, $ = {
|
|
2593
2598
|
status: "paywall_status",
|
|
2594
2599
|
priceId: "paywall_price_id",
|
|
2595
2600
|
sessionId: "paywall_session_id"
|
|
2596
2601
|
};
|
|
2597
2602
|
class yr {
|
|
2598
2603
|
constructor(t) {
|
|
2599
|
-
this.handle = null, this.isOpen = !1, this.listeners = /* @__PURE__ */ new Map(), this.userUnsub = null, this.authUnsub = null, this.watcher = null, this.tracker = null, this.purchased = !1, this.trialStore = null, this.trialStoreConfig = null, this.lastTrialStatus = null, this.trialExpiredFired = !1, this.lastVisibility = null, this.currentState =
|
|
2600
|
-
const { auth: r, ownsAuth: n } =
|
|
2601
|
-
this.auth = r, this.ownsAuth = n, this.billing = t.client ?? new
|
|
2604
|
+
this.handle = null, this.isOpen = !1, this.listeners = /* @__PURE__ */ new Map(), this.userUnsub = null, this.authUnsub = null, this.watcher = null, this.tracker = null, this.purchased = !1, this.trialStore = null, this.trialStoreConfig = null, this.lastTrialStatus = null, this.trialExpiredFired = !1, this.lastVisibility = null, this.currentState = at, this.stateListeners = /* @__PURE__ */ new Set();
|
|
2605
|
+
const { auth: r, ownsAuth: n } = dr(t);
|
|
2606
|
+
this.auth = r, this.ownsAuth = n, this.billing = t.client ?? new Ut({ ...t, auth: this.auth }), this.host = t.host, this.shadowMode = t.shadowMode ?? "closed", this.mountThenLoad = t.mountThenLoad ?? !0, this.inline = t.inline === !0, this.forceLocale = t.locale ?? null, this.userUnsub = this.billing.onUserChange((i) => {
|
|
2602
2607
|
this.emit("userChange", i);
|
|
2603
2608
|
}), this.auth && (this.authUnsub = this.auth.onAuthChange((i, o) => {
|
|
2604
2609
|
this.emit("authChange", { event: i, session: o });
|
|
@@ -2609,7 +2614,7 @@ class yr {
|
|
|
2609
2614
|
const r = typeof t == "object" && t !== null ? t : {};
|
|
2610
2615
|
if (r.enabled === !1) return;
|
|
2611
2616
|
const n = r.endpoint ?? `${this.billing.apiOrigin}/api/v1/paywall/${this.billing.paywallId}/events`;
|
|
2612
|
-
this.tracker = new
|
|
2617
|
+
this.tracker = new Dt({
|
|
2613
2618
|
endpoint: n,
|
|
2614
2619
|
paywallId: this.billing.paywallId,
|
|
2615
2620
|
capabilities: this.billing.capabilities,
|
|
@@ -2809,7 +2814,7 @@ class yr {
|
|
|
2809
2814
|
*/
|
|
2810
2815
|
signInAnonymously() {
|
|
2811
2816
|
return this.auth ? this.auth.signInAnonymously() : Promise.reject(
|
|
2812
|
-
new
|
|
2817
|
+
new O(
|
|
2813
2818
|
"invalid_config",
|
|
2814
2819
|
"signInAnonymously requires managed-auth. Pass `auth: true` to PaywallUI."
|
|
2815
2820
|
)
|
|
@@ -2907,11 +2912,11 @@ class yr {
|
|
|
2907
2912
|
});
|
|
2908
2913
|
}
|
|
2909
2914
|
ensureTrialStore(t) {
|
|
2910
|
-
if (this.trialStore && this.trialStoreConfig &&
|
|
2915
|
+
if (this.trialStore && this.trialStoreConfig && hr(this.trialStoreConfig, t))
|
|
2911
2916
|
return this.trialStore;
|
|
2912
2917
|
this.trialStoreConfig = t;
|
|
2913
2918
|
const r = this.billing.createTrialStore;
|
|
2914
|
-
return this.trialStore = typeof r == "function" ? r.call(this.billing, t) :
|
|
2919
|
+
return this.trialStore = typeof r == "function" ? r.call(this.billing, t) : qt(this.billing.getStorage(), this.billing.paywallId, t), this.trialStore;
|
|
2915
2920
|
}
|
|
2916
2921
|
mountAndShow(t, r = {}) {
|
|
2917
2922
|
const n = r.renew === !0, i = r.authMode;
|
|
@@ -2925,8 +2930,8 @@ class yr {
|
|
|
2925
2930
|
}), this.emit("open");
|
|
2926
2931
|
return;
|
|
2927
2932
|
}
|
|
2928
|
-
this.isOpen = !0, this.handle =
|
|
2929
|
-
|
|
2933
|
+
this.isOpen = !0, this.handle = Zt(
|
|
2934
|
+
tr,
|
|
2930
2935
|
{
|
|
2931
2936
|
client: this.billing,
|
|
2932
2937
|
open: !0,
|
|
@@ -2946,7 +2951,7 @@ class yr {
|
|
|
2946
2951
|
), this.emit("open");
|
|
2947
2952
|
}
|
|
2948
2953
|
applyState(t) {
|
|
2949
|
-
if (!
|
|
2954
|
+
if (!pr(this.currentState, t)) {
|
|
2950
2955
|
this.currentState = t;
|
|
2951
2956
|
for (const r of this.stateListeners)
|
|
2952
2957
|
try {
|
|
@@ -3112,7 +3117,7 @@ class yr {
|
|
|
3112
3117
|
// В extension popup runtime — no-op (popup не доживёт). Там полагаемся на
|
|
3113
3118
|
// bootstrap при следующем открытии.
|
|
3114
3119
|
startUserWatcher() {
|
|
3115
|
-
this.watcher ||
|
|
3120
|
+
this.watcher || cr() && (this.watcher = new lr({
|
|
3116
3121
|
client: this.billing,
|
|
3117
3122
|
onActive: (t) => {
|
|
3118
3123
|
this.watcher = null, this.emit("purchase_completed", { priceId: null, sessionId: null });
|
|
@@ -3131,7 +3136,7 @@ class yr {
|
|
|
3131
3136
|
}), this.watcher.start());
|
|
3132
3137
|
}
|
|
3133
3138
|
close() {
|
|
3134
|
-
!this.isOpen || !this.handle || (this.isOpen = !1, this.purchased = !1, this.handle.update({ open: !1, purchased: !1 }), this.applyState(
|
|
3139
|
+
!this.isOpen || !this.handle || (this.isOpen = !1, this.purchased = !1, this.handle.update({ open: !1, purchased: !1 }), this.applyState(at), this.emit("close"));
|
|
3135
3140
|
}
|
|
3136
3141
|
/**
|
|
3137
3142
|
* Сканирует текущий URL на маркеры возврата с checkout и эмитит
|
|
@@ -3141,23 +3146,23 @@ class yr {
|
|
|
3141
3146
|
*/
|
|
3142
3147
|
checkReturn() {
|
|
3143
3148
|
if (typeof window > "u") return;
|
|
3144
|
-
const t = new URL(window.location.href), r =
|
|
3149
|
+
const t = new URL(window.location.href), r = St(t.hash.replace(/^#/, "")), n = St(t.search.replace(/^\?/, "")), i = r ?? n;
|
|
3145
3150
|
i && (i.status === "paid" ? (this.emit("purchase_completed", {
|
|
3146
3151
|
priceId: i.priceId,
|
|
3147
3152
|
sessionId: i.sessionId
|
|
3148
|
-
}),
|
|
3153
|
+
}), gr(i)) : (i.status === "failed" || i.status === "cancelled") && this.emit("purchase_failed", { reason: i.status }), fr(t));
|
|
3149
3154
|
}
|
|
3150
3155
|
destroy() {
|
|
3151
|
-
this.tracker?.destroy(), this.tracker = null, this.listeners.clear(), this.stateListeners.clear(), this.watcher?.stop(), this.watcher = null, this.userUnsub?.(), this.userUnsub = null, this.authUnsub?.(), this.authUnsub = null, this.ownsAuth && this.auth && this.auth.destroy?.(), this.ownsAuth = !1, this.billing.destroy?.(), this.handle?.unmount(), this.handle = null, this.isOpen = !1, this.currentState =
|
|
3156
|
+
this.tracker?.destroy(), this.tracker = null, this.listeners.clear(), this.stateListeners.clear(), this.watcher?.stop(), this.watcher = null, this.userUnsub?.(), this.userUnsub = null, this.authUnsub?.(), this.authUnsub = null, this.ownsAuth && this.auth && this.auth.destroy?.(), this.ownsAuth = !1, this.billing.destroy?.(), this.handle?.unmount(), this.handle = null, this.isOpen = !1, this.currentState = at;
|
|
3152
3157
|
}
|
|
3153
3158
|
}
|
|
3154
|
-
function
|
|
3159
|
+
function dr(e) {
|
|
3155
3160
|
if (!e.auth) return { auth: void 0, ownsAuth: !1 };
|
|
3156
|
-
if (e.auth instanceof
|
|
3161
|
+
if (e.auth instanceof ct || ur(e.auth))
|
|
3157
3162
|
return { auth: e.auth, ownsAuth: !1 };
|
|
3158
3163
|
const t = e.auth === !0 ? {} : e.auth;
|
|
3159
3164
|
return {
|
|
3160
|
-
auth: new
|
|
3165
|
+
auth: new ct({
|
|
3161
3166
|
paywallId: e.paywallId,
|
|
3162
3167
|
apiOrigin: t.apiOrigin ?? e.apiOrigin,
|
|
3163
3168
|
storage: t.storage ?? e.storage,
|
|
@@ -3167,18 +3172,18 @@ function cr(e) {
|
|
|
3167
3172
|
ownsAuth: !0
|
|
3168
3173
|
};
|
|
3169
3174
|
}
|
|
3170
|
-
function
|
|
3175
|
+
function ur(e) {
|
|
3171
3176
|
if (typeof e != "object" || e === null) return !1;
|
|
3172
3177
|
const t = e;
|
|
3173
3178
|
return typeof t.onAuthChange == "function" && typeof t.getCachedSession == "function" && typeof t.signOut == "function";
|
|
3174
3179
|
}
|
|
3175
|
-
function
|
|
3180
|
+
function pr(e, t) {
|
|
3176
3181
|
return e.open === t.open && e.view === t.view && e.error === t.error;
|
|
3177
3182
|
}
|
|
3178
|
-
function
|
|
3183
|
+
function hr(e, t) {
|
|
3179
3184
|
return e.mode === t.mode && e.payload === t.payload && e.storage === t.storage;
|
|
3180
3185
|
}
|
|
3181
|
-
function
|
|
3186
|
+
function St(e) {
|
|
3182
3187
|
if (!e) return null;
|
|
3183
3188
|
const t = new URLSearchParams(e), r = t.get($.status);
|
|
3184
3189
|
return r ? {
|
|
@@ -3187,7 +3192,7 @@ function _t(e) {
|
|
|
3187
3192
|
sessionId: t.get($.sessionId)
|
|
3188
3193
|
} : null;
|
|
3189
3194
|
}
|
|
3190
|
-
function
|
|
3195
|
+
function gr(e) {
|
|
3191
3196
|
if (!(typeof window > "u" || !window.opener))
|
|
3192
3197
|
try {
|
|
3193
3198
|
window.opener.postMessage(
|
|
@@ -3202,7 +3207,7 @@ function hr(e) {
|
|
|
3202
3207
|
} catch {
|
|
3203
3208
|
}
|
|
3204
3209
|
}
|
|
3205
|
-
function
|
|
3210
|
+
function fr(e) {
|
|
3206
3211
|
const t = (n, i) => {
|
|
3207
3212
|
if (!n) return "";
|
|
3208
3213
|
const o = new URLSearchParams(n.replace(/^[?#]/, ""));
|
|
@@ -3214,6 +3219,6 @@ function gr(e) {
|
|
|
3214
3219
|
}
|
|
3215
3220
|
export {
|
|
3216
3221
|
yr as P,
|
|
3217
|
-
|
|
3222
|
+
Ye as b
|
|
3218
3223
|
};
|
|
3219
|
-
//# sourceMappingURL=PaywallUI-
|
|
3224
|
+
//# sourceMappingURL=PaywallUI-BhQpWSWN.js.map
|