@monetize.software/sdk 3.0.0-alpha.7 → 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.
Files changed (208) hide show
  1. package/dist/chunks/{PaywallUI-BYquPomD.js → PaywallUI-BhQpWSWN.js} +871 -902
  2. package/dist/chunks/PaywallUI-BhQpWSWN.js.map +1 -0
  3. package/dist/chunks/PaywallUI-C7Wp2TiR.js +26 -0
  4. package/dist/chunks/PaywallUI-C7Wp2TiR.js.map +1 -0
  5. package/dist/chunks/ar-7cgIM-Vl.js +2 -0
  6. package/dist/chunks/ar-7cgIM-Vl.js.map +1 -0
  7. package/dist/chunks/{ar-nh4l4WDE.js → ar-B2Wg_IrC.js} +5 -4
  8. package/dist/chunks/ar-B2Wg_IrC.js.map +1 -0
  9. package/dist/chunks/{cs-2UYO2rWf.js → cs-BNo9Dx0Q.js} +3 -2
  10. package/dist/chunks/cs-BNo9Dx0Q.js.map +1 -0
  11. package/dist/chunks/cs-S05PC5AC.js +2 -0
  12. package/dist/chunks/cs-S05PC5AC.js.map +1 -0
  13. package/dist/chunks/da-Bi4zBG14.js +2 -0
  14. package/dist/chunks/da-Bi4zBG14.js.map +1 -0
  15. package/dist/chunks/{da-BD0O_HfV.js → da-Do9Lq6En.js} +3 -2
  16. package/dist/chunks/da-Do9Lq6En.js.map +1 -0
  17. package/dist/chunks/{de-BkCiXPsn.js → de-C8pDZNvx.js} +4 -2
  18. package/dist/chunks/de-C8pDZNvx.js.map +1 -0
  19. package/dist/chunks/de-nCDB6D2W.js +2 -0
  20. package/dist/chunks/de-nCDB6D2W.js.map +1 -0
  21. package/dist/chunks/el-BrKaa978.js +2 -0
  22. package/dist/chunks/el-BrKaa978.js.map +1 -0
  23. package/dist/chunks/{el-cIcxTp07.js → el-DzMNX-_P.js} +3 -2
  24. package/dist/chunks/el-DzMNX-_P.js.map +1 -0
  25. package/dist/chunks/es-B-Wtyzrl.js +2 -0
  26. package/dist/chunks/es-B-Wtyzrl.js.map +1 -0
  27. package/dist/chunks/{es-CJBC_jrV.js → es-YrKt-q4w.js} +4 -2
  28. package/dist/chunks/es-YrKt-q4w.js.map +1 -0
  29. package/dist/chunks/{fi-DyV7ynBf.js → fi-Bh44pwZ4.js} +3 -2
  30. package/dist/chunks/fi-Bh44pwZ4.js.map +1 -0
  31. package/dist/chunks/fi-D1SGXjnO.js +2 -0
  32. package/dist/chunks/fi-D1SGXjnO.js.map +1 -0
  33. package/dist/chunks/{fr-BLQ4AIu7.js → fr-Bc0pw4ws.js} +4 -2
  34. package/dist/chunks/fr-Bc0pw4ws.js.map +1 -0
  35. package/dist/chunks/fr-BhYf-iKk.js +2 -0
  36. package/dist/chunks/fr-BhYf-iKk.js.map +1 -0
  37. package/dist/chunks/he-BXAaFv6Y.js +2 -0
  38. package/dist/chunks/he-BXAaFv6Y.js.map +1 -0
  39. package/dist/chunks/{he-Bg-Bqi7r.js → he-Bfm-bhe3.js} +3 -2
  40. package/dist/chunks/he-Bfm-bhe3.js.map +1 -0
  41. package/dist/chunks/{hi-wQeE43oY.js → hi-D-O-B9Dn.js} +5 -4
  42. package/dist/chunks/hi-D-O-B9Dn.js.map +1 -0
  43. package/dist/chunks/hi-xblDO0O7.js +2 -0
  44. package/dist/chunks/hi-xblDO0O7.js.map +1 -0
  45. package/dist/chunks/{hu-D9qxzu0r.js → hu-CmIuAbLL.js} +3 -2
  46. package/dist/chunks/hu-CmIuAbLL.js.map +1 -0
  47. package/dist/chunks/hu-Wa46p0y4.js +2 -0
  48. package/dist/chunks/hu-Wa46p0y4.js.map +1 -0
  49. package/dist/chunks/id-CQEo5X94.js +2 -0
  50. package/dist/chunks/id-CQEo5X94.js.map +1 -0
  51. package/dist/chunks/{id-Rx_wYvqy.js → id-DN7IES-A.js} +3 -2
  52. package/dist/chunks/id-DN7IES-A.js.map +1 -0
  53. package/dist/chunks/it-8AYCm0xz.js +2 -0
  54. package/dist/chunks/it-8AYCm0xz.js.map +1 -0
  55. package/dist/chunks/{it-B1SRPZ3e.js → it-Cz5Nmqx5.js} +4 -2
  56. package/dist/chunks/it-Cz5Nmqx5.js.map +1 -0
  57. package/dist/chunks/{ja-DiItm8te.js → ja-BH9BlBh2.js} +4 -2
  58. package/dist/chunks/ja-BH9BlBh2.js.map +1 -0
  59. package/dist/chunks/ja-q-COVayn.js +2 -0
  60. package/dist/chunks/ja-q-COVayn.js.map +1 -0
  61. package/dist/chunks/ko-B6HRCscZ.js +2 -0
  62. package/dist/chunks/ko-B6HRCscZ.js.map +1 -0
  63. package/dist/chunks/{ko-CdGFWAKX.js → ko-CYV9QuYs.js} +4 -2
  64. package/dist/chunks/ko-CYV9QuYs.js.map +1 -0
  65. package/dist/chunks/{nl-CmZ3vEvj.js → nl-BvkB900D.js} +4 -2
  66. package/dist/chunks/nl-BvkB900D.js.map +1 -0
  67. package/dist/chunks/nl-CAd6_xlm.js +2 -0
  68. package/dist/chunks/nl-CAd6_xlm.js.map +1 -0
  69. package/dist/chunks/{no-BuxByZpq.js → no-3s9_ormb.js} +3 -2
  70. package/dist/chunks/no-3s9_ormb.js.map +1 -0
  71. package/dist/chunks/no-CAmz6bz6.js +2 -0
  72. package/dist/chunks/no-CAmz6bz6.js.map +1 -0
  73. package/dist/chunks/{pl-jZFCnDb8.js → pl-C9WTGQtb.js} +3 -2
  74. package/dist/chunks/pl-C9WTGQtb.js.map +1 -0
  75. package/dist/chunks/pl-DqUSTCaF.js +2 -0
  76. package/dist/chunks/pl-DqUSTCaF.js.map +1 -0
  77. package/dist/chunks/pt-8ARZnH0_.js +2 -0
  78. package/dist/chunks/pt-8ARZnH0_.js.map +1 -0
  79. package/dist/chunks/{pt-Cld7MwIW.js → pt-uFVUv_Op.js} +4 -2
  80. package/dist/chunks/pt-uFVUv_Op.js.map +1 -0
  81. package/dist/chunks/{ro-CuKDqj3C.js → ro-BrqQ8Au-.js} +3 -2
  82. package/dist/chunks/ro-BrqQ8Au-.js.map +1 -0
  83. package/dist/chunks/ro-D-NMbp2F.js +2 -0
  84. package/dist/chunks/ro-D-NMbp2F.js.map +1 -0
  85. package/dist/chunks/ru-8gbHPh0g.js +2 -0
  86. package/dist/chunks/ru-8gbHPh0g.js.map +1 -0
  87. package/dist/chunks/{ru-B7cjqJUm.js → ru-DK594dA8.js} +11 -2
  88. package/dist/chunks/ru-DK594dA8.js.map +1 -0
  89. package/dist/chunks/{sv-D9y-M1Fo.js → sv-CHNH8-mq.js} +3 -2
  90. package/dist/chunks/sv-CHNH8-mq.js.map +1 -0
  91. package/dist/chunks/sv-D8a8hmx9.js +2 -0
  92. package/dist/chunks/sv-D8a8hmx9.js.map +1 -0
  93. package/dist/chunks/th-DfjUK0Y7.js +2 -0
  94. package/dist/chunks/th-DfjUK0Y7.js.map +1 -0
  95. package/dist/chunks/{th-D9umBjEy.js → th-l24Pm5q-.js} +3 -2
  96. package/dist/chunks/th-l24Pm5q-.js.map +1 -0
  97. package/dist/chunks/{tr-BddMywiw.js → tr-ADpigSY5.js} +3 -2
  98. package/dist/chunks/tr-ADpigSY5.js.map +1 -0
  99. package/dist/chunks/tr-BdBpz4tL.js +2 -0
  100. package/dist/chunks/tr-BdBpz4tL.js.map +1 -0
  101. package/dist/chunks/{uk-Dbd31hFt.js → uk-CGqo4jek.js} +11 -2
  102. package/dist/chunks/uk-CGqo4jek.js.map +1 -0
  103. package/dist/chunks/uk-Cx1zv1ao.js +2 -0
  104. package/dist/chunks/uk-Cx1zv1ao.js.map +1 -0
  105. package/dist/chunks/{vi-Do3BMOdh.js → vi-Dk9bTu6f.js} +3 -2
  106. package/dist/chunks/vi-Dk9bTu6f.js.map +1 -0
  107. package/dist/chunks/vi-oe2dW21I.js +2 -0
  108. package/dist/chunks/vi-oe2dW21I.js.map +1 -0
  109. package/dist/chunks/zh-CwczPMPp.js +2 -0
  110. package/dist/chunks/zh-CwczPMPp.js.map +1 -0
  111. package/dist/chunks/{zh-gQSYLZI3.js → zh-LDkEV2D9.js} +3 -1
  112. package/dist/chunks/zh-LDkEV2D9.js.map +1 -0
  113. package/dist/core.cjs +1 -1
  114. package/dist/core.cjs.map +1 -1
  115. package/dist/core.d.ts +21 -13
  116. package/dist/core.js +188 -168
  117. package/dist/core.js.map +1 -1
  118. package/dist/index.cjs +1 -1
  119. package/dist/index.d.ts +52 -29
  120. package/dist/index.js +1 -1
  121. package/dist/ui.cjs +1 -1
  122. package/dist/ui.d.ts +52 -29
  123. package/dist/ui.js +1 -1
  124. package/package.json +1 -1
  125. package/dist/chunks/PaywallUI-BYquPomD.js.map +0 -1
  126. package/dist/chunks/PaywallUI-Cl9sz_xA.js +0 -26
  127. package/dist/chunks/PaywallUI-Cl9sz_xA.js.map +0 -1
  128. package/dist/chunks/ar-BUQInJ5a.js +0 -2
  129. package/dist/chunks/ar-BUQInJ5a.js.map +0 -1
  130. package/dist/chunks/ar-nh4l4WDE.js.map +0 -1
  131. package/dist/chunks/cs-2UYO2rWf.js.map +0 -1
  132. package/dist/chunks/cs-i5K4KTFV.js +0 -2
  133. package/dist/chunks/cs-i5K4KTFV.js.map +0 -1
  134. package/dist/chunks/da-BD0O_HfV.js.map +0 -1
  135. package/dist/chunks/da-CZbhtVJO.js +0 -2
  136. package/dist/chunks/da-CZbhtVJO.js.map +0 -1
  137. package/dist/chunks/de-Bc-GoLgC.js +0 -2
  138. package/dist/chunks/de-Bc-GoLgC.js.map +0 -1
  139. package/dist/chunks/de-BkCiXPsn.js.map +0 -1
  140. package/dist/chunks/el-CcMEbl_F.js +0 -2
  141. package/dist/chunks/el-CcMEbl_F.js.map +0 -1
  142. package/dist/chunks/el-cIcxTp07.js.map +0 -1
  143. package/dist/chunks/es-BvYmomAz.js +0 -2
  144. package/dist/chunks/es-BvYmomAz.js.map +0 -1
  145. package/dist/chunks/es-CJBC_jrV.js.map +0 -1
  146. package/dist/chunks/fi-DyV7ynBf.js.map +0 -1
  147. package/dist/chunks/fi-aZR-qmZN.js +0 -2
  148. package/dist/chunks/fi-aZR-qmZN.js.map +0 -1
  149. package/dist/chunks/fr-BLQ4AIu7.js.map +0 -1
  150. package/dist/chunks/fr-BgbFAgHx.js +0 -2
  151. package/dist/chunks/fr-BgbFAgHx.js.map +0 -1
  152. package/dist/chunks/he-Bg-Bqi7r.js.map +0 -1
  153. package/dist/chunks/he-CQ4yCuja.js +0 -2
  154. package/dist/chunks/he-CQ4yCuja.js.map +0 -1
  155. package/dist/chunks/hi-DtUsj1c-.js +0 -2
  156. package/dist/chunks/hi-DtUsj1c-.js.map +0 -1
  157. package/dist/chunks/hi-wQeE43oY.js.map +0 -1
  158. package/dist/chunks/hu-D9qxzu0r.js.map +0 -1
  159. package/dist/chunks/hu-DXtscQ8_.js +0 -2
  160. package/dist/chunks/hu-DXtscQ8_.js.map +0 -1
  161. package/dist/chunks/id-BByOYpeo.js +0 -2
  162. package/dist/chunks/id-BByOYpeo.js.map +0 -1
  163. package/dist/chunks/id-Rx_wYvqy.js.map +0 -1
  164. package/dist/chunks/it-52Ip42pa.js +0 -2
  165. package/dist/chunks/it-52Ip42pa.js.map +0 -1
  166. package/dist/chunks/it-B1SRPZ3e.js.map +0 -1
  167. package/dist/chunks/ja-CMC3Parn.js +0 -2
  168. package/dist/chunks/ja-CMC3Parn.js.map +0 -1
  169. package/dist/chunks/ja-DiItm8te.js.map +0 -1
  170. package/dist/chunks/ko-3qY21q40.js +0 -2
  171. package/dist/chunks/ko-3qY21q40.js.map +0 -1
  172. package/dist/chunks/ko-CdGFWAKX.js.map +0 -1
  173. package/dist/chunks/nl-Borc5nw1.js +0 -2
  174. package/dist/chunks/nl-Borc5nw1.js.map +0 -1
  175. package/dist/chunks/nl-CmZ3vEvj.js.map +0 -1
  176. package/dist/chunks/no-BuxByZpq.js.map +0 -1
  177. package/dist/chunks/no-Do2iGedg.js +0 -2
  178. package/dist/chunks/no-Do2iGedg.js.map +0 -1
  179. package/dist/chunks/pl-jZFCnDb8.js.map +0 -1
  180. package/dist/chunks/pl-mRaky_7k.js +0 -2
  181. package/dist/chunks/pl-mRaky_7k.js.map +0 -1
  182. package/dist/chunks/pt-Cld7MwIW.js.map +0 -1
  183. package/dist/chunks/pt-DilDTXfs.js +0 -2
  184. package/dist/chunks/pt-DilDTXfs.js.map +0 -1
  185. package/dist/chunks/ro-CuKDqj3C.js.map +0 -1
  186. package/dist/chunks/ro-DF2uzPIB.js +0 -2
  187. package/dist/chunks/ro-DF2uzPIB.js.map +0 -1
  188. package/dist/chunks/ru-B7cjqJUm.js.map +0 -1
  189. package/dist/chunks/ru-YeaXnTO-.js +0 -2
  190. package/dist/chunks/ru-YeaXnTO-.js.map +0 -1
  191. package/dist/chunks/sv-2pHEvuSe.js +0 -2
  192. package/dist/chunks/sv-2pHEvuSe.js.map +0 -1
  193. package/dist/chunks/sv-D9y-M1Fo.js.map +0 -1
  194. package/dist/chunks/th-D9umBjEy.js.map +0 -1
  195. package/dist/chunks/th-u2QSDF0G.js +0 -2
  196. package/dist/chunks/th-u2QSDF0G.js.map +0 -1
  197. package/dist/chunks/tr-BddMywiw.js.map +0 -1
  198. package/dist/chunks/tr-Bhgm6_ti.js +0 -2
  199. package/dist/chunks/tr-Bhgm6_ti.js.map +0 -1
  200. package/dist/chunks/uk-7vwqsaVK.js +0 -2
  201. package/dist/chunks/uk-7vwqsaVK.js.map +0 -1
  202. package/dist/chunks/uk-Dbd31hFt.js.map +0 -1
  203. package/dist/chunks/vi-CJefLP_g.js +0 -2
  204. package/dist/chunks/vi-CJefLP_g.js.map +0 -1
  205. package/dist/chunks/vi-Do3BMOdh.js.map +0 -1
  206. package/dist/chunks/zh-D5C3BzYL.js +0 -2
  207. package/dist/chunks/zh-D5C3BzYL.js.map +0 -1
  208. package/dist/chunks/zh-gQSYLZI3.js.map +0 -1
@@ -1,17 +1,17 @@
1
- import { PaywallError as U, BillingClient as Dt, EventTracker as Nt, AuthClient as dt } from "../core.js";
2
- import { render as K, h as ut, createContext as Ht } from "preact";
3
- import { jsx as n, jsxs as c, Fragment as Z } from "preact/jsx-runtime";
4
- import { useContext as Vt, useState as b, useEffect as T, useRef as F, useMemo as Ct, useLayoutEffect as $t } from "preact/hooks";
5
- const pt = 3600 * 1e3;
6
- function Y(e) {
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 X(e) {
9
+ function J(e) {
10
10
  return `paywall-${e}-skip-times`;
11
11
  }
12
- class It {
13
- constructor(t, r, a) {
14
- this.storage = t, this.paywallId = r, this.config = a;
12
+ class Ct {
13
+ constructor(t, r, n) {
14
+ this.storage = t, this.paywallId = r, this.config = n;
15
15
  }
16
16
  async check() {
17
17
  return this.config.mode === "time" ? this.checkTime() : this.checkOpens();
@@ -20,11 +20,11 @@ class It {
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" ? Y(this.paywallId) : X(this.paywallId));
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 * pt, r = await this.storage.getItem(Y(this.paywallId)), a = r ? Number(r) : null;
27
- if (!a || !Number.isFinite(a))
26
+ const t = this.config.payload * ut, r = await this.storage.getItem(X(this.paywallId)), n = r ? Number(r) : null;
27
+ if (!n || !Number.isFinite(n))
28
28
  return {
29
29
  mode: "time",
30
30
  blocked: !0,
@@ -33,18 +33,18 @@ class It {
33
33
  remainingMs: t,
34
34
  totalMs: t
35
35
  };
36
- const i = a + t, o = Math.max(0, i - Date.now());
36
+ const i = n + t, o = Math.max(0, i - Date.now());
37
37
  return {
38
38
  mode: "time",
39
39
  blocked: o > 0,
40
- startedAt: a,
40
+ startedAt: n,
41
41
  expiresAt: i,
42
42
  remainingMs: o,
43
43
  totalMs: t
44
44
  };
45
45
  }
46
46
  async checkOpens() {
47
- const t = this.config.payload, r = await this.storage.getItem(X(this.paywallId)), a = r ? Number(r) : 0, i = Number.isFinite(a) ? a : 0, o = i < t, s = Math.max(0, t - i);
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,8 +53,8 @@ class It {
53
53
  };
54
54
  }
55
55
  async recordTime() {
56
- const t = this.config.payload * pt, r = Y(this.paywallId), a = await this.storage.getItem(r);
57
- let i = a ? Number(a) : null;
56
+ const t = this.config.payload * ut, r = X(this.paywallId), n = await this.storage.getItem(r);
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());
60
60
  return {
@@ -67,23 +67,23 @@ class It {
67
67
  };
68
68
  }
69
69
  async recordOpens() {
70
- const t = this.config.payload, r = X(this.paywallId), a = await this.storage.getItem(r), i = a ? Number(a) : 0, o = Number.isFinite(i) ? i : 0, s = Math.min(t, o + 1);
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
- const l = Math.max(0, t - s);
72
+ const d = Math.max(0, t - s);
73
73
  return {
74
74
  mode: "opens",
75
75
  blocked: s < t,
76
- remainingActions: l,
76
+ remainingActions: d,
77
77
  totalActions: t
78
78
  };
79
79
  }
80
80
  }
81
- let ht = !1;
81
+ let pt = !1;
82
82
  class Gt {
83
- constructor(t, r, a) {
84
- ht || (ht = !0, console.warn(
83
+ constructor(t, r, n) {
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 It(t, r, a);
86
+ )), this.fallback = new Ct(t, r, n);
87
87
  }
88
88
  check() {
89
89
  return this.fallback.check();
@@ -96,16 +96,16 @@ class Gt {
96
96
  }
97
97
  }
98
98
  function qt(e, t, r) {
99
- return r.storage === "server" ? new Gt(e, t, r) : new It(e, t, r);
99
+ return r.storage === "server" ? new Gt(e, t, r) : new Ct(e, t, r);
100
100
  }
101
- const At = '/*! 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-red-700:oklch(50.5% .213 27.518);--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-lg:.5rem;--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-5{height:calc(var(--spacing) * 5)}.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-5{width:calc(var(--spacing) * 5)}.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-lg{border-radius:var(--radius-lg)}.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-\\[var\\(--pw-accent\\)\\]{background-color:var(--pw-accent)}.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-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.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-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-\\[var\\(--pw-accent\\)\\]{color:var(--pw-accent)}.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-red-700{color:var(--color-red-700)}.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\\:opacity-90:hover{opacity:.9}.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-8{padding-top:calc(var(--spacing) * 8)}.sm\\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.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 gt = !1;
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
103
  function Wt() {
104
- if (gt || (gt = !0, typeof CSS > "u" || typeof CSS.registerProperty != "function")) return;
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(At), e = t.cssRules;
108
+ t.replaceSync(It), e = t.cssRules;
109
109
  } catch {
110
110
  return;
111
111
  }
@@ -127,9 +127,9 @@ 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
- const a = r.host ?? document.createElement("div");
131
- a.setAttribute("data-paywall-host", ""), a.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;", !a.isConnected && !r.inline && document.body.appendChild(a);
132
- const i = a.attachShadow({ mode: r.shadowMode ?? "closed" }), o = `
130
+ const n = r.host ?? document.createElement("div");
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
+ const i = n.attachShadow({ mode: r.shadowMode ?? "closed" }), o = `
133
133
  :host {
134
134
  all: initial !important;
135
135
  display: block !important;
@@ -148,23 +148,23 @@ function Zt(e, t, r = {}) {
148
148
  visibility: visible !important;
149
149
  }
150
150
  `, s = document.createElement("style");
151
- s.textContent = o + At + (r.injectCss ?? ""), i.appendChild(s);
152
- const l = document.createElement("div");
153
- l.style.pointerEvents = "auto", i.appendChild(l);
154
- let u = t;
155
- return K(ut(e, u), l), {
151
+ s.textContent = o + It + (r.injectCss ?? ""), i.appendChild(s);
152
+ const d = document.createElement("div");
153
+ d.style.pointerEvents = "auto", i.appendChild(d);
154
+ let l = t;
155
+ return Y(dt(e, l), d), {
156
156
  shadowRoot: i,
157
- update(h) {
158
- u = { ...u, ...h }, K(ut(e, u), l);
157
+ update(g) {
158
+ l = { ...l, ...g }, Y(dt(e, l), d);
159
159
  },
160
160
  unmount() {
161
- K(null, l), a.remove();
161
+ Y(null, d), n.remove();
162
162
  }
163
163
  };
164
164
  }
165
165
  const Kt = (e, t, r) => {
166
- const a = e[t];
167
- return a ? typeof a == "function" ? a() : Promise.resolve(a) : new Promise((i, o) => {
166
+ const n = e[t];
167
+ return n ? typeof n == "function" ? n() : Promise.resolve(n) : new Promise((i, o) => {
168
168
  (typeof queueMicrotask == "function" ? queueMicrotask : setTimeout)(
169
169
  o.bind(
170
170
  null,
@@ -202,126 +202,130 @@ const Kt = (e, t, r) => {
202
202
  "th",
203
203
  "vi",
204
204
  "he"
205
- ], Mt = (e, t, r) => Pt(t, r), Lt = Ht({ t: Mt, locale: "en" });
206
- function Pt(e, t) {
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
- for (const [a, i] of Object.entries(t))
210
- r = r.split(`{${a}}`).join(String(i));
209
+ for (const [n, i] of Object.entries(t))
210
+ r = r.split(`{${n}}`).join(String(i));
211
211
  return r;
212
212
  }
213
- const J = /* @__PURE__ */ new Map(), Q = /* @__PURE__ */ new Map();
214
- function Tt(e) {
213
+ const Q = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map();
214
+ function Pt(e) {
215
215
  return Yt.includes(e);
216
216
  }
217
217
  function Xt(e) {
218
218
  const t = [];
219
219
  if (typeof navigator < "u" && navigator.language) {
220
220
  t.push(navigator.language);
221
- const a = navigator.language.split("-")[0];
222
- a && a !== navigator.language && t.push(a);
221
+ const n = navigator.language.split("-")[0];
222
+ n && n !== navigator.language && t.push(n);
223
223
  }
224
224
  const r = e.settings.locale_default;
225
225
  if (r) {
226
226
  t.push(r);
227
- const a = r.split("-")[0];
228
- a && a !== r && t.push(a);
227
+ const n = r.split("-")[0];
228
+ n && n !== r && t.push(n);
229
229
  }
230
- for (const a of t)
231
- if (Tt(a)) return a;
230
+ for (const n of t)
231
+ if (Pt(n)) return n;
232
232
  return null;
233
233
  }
234
- function Jt(e) {
235
- return !!e.locales && Object.keys(e.locales).length > 0;
234
+ function Jt(e, t) {
235
+ return !!e.locales && e.locales[t] !== void 0;
236
236
  }
237
237
  async function Qt(e) {
238
- const t = J.get(e);
238
+ const t = Q.get(e);
239
239
  if (t) return t;
240
- const r = Q.get(e);
240
+ const r = tt.get(e);
241
241
  if (r) return r;
242
- const a = Kt(/* @__PURE__ */ Object.assign({ "./locales/ar.ts": () => import("./ar-nh4l4WDE.js"), "./locales/cs.ts": () => import("./cs-2UYO2rWf.js"), "./locales/da.ts": () => import("./da-BD0O_HfV.js"), "./locales/de.ts": () => import("./de-BkCiXPsn.js"), "./locales/el.ts": () => import("./el-cIcxTp07.js"), "./locales/es.ts": () => import("./es-CJBC_jrV.js"), "./locales/fi.ts": () => import("./fi-DyV7ynBf.js"), "./locales/fr.ts": () => import("./fr-BLQ4AIu7.js"), "./locales/he.ts": () => import("./he-Bg-Bqi7r.js"), "./locales/hi.ts": () => import("./hi-wQeE43oY.js"), "./locales/hu.ts": () => import("./hu-D9qxzu0r.js"), "./locales/id.ts": () => import("./id-Rx_wYvqy.js"), "./locales/it.ts": () => import("./it-B1SRPZ3e.js"), "./locales/ja.ts": () => import("./ja-DiItm8te.js"), "./locales/ko.ts": () => import("./ko-CdGFWAKX.js"), "./locales/nl.ts": () => import("./nl-CmZ3vEvj.js"), "./locales/no.ts": () => import("./no-BuxByZpq.js"), "./locales/pl.ts": () => import("./pl-jZFCnDb8.js"), "./locales/pt.ts": () => import("./pt-Cld7MwIW.js"), "./locales/ro.ts": () => import("./ro-CuKDqj3C.js"), "./locales/ru.ts": () => import("./ru-B7cjqJUm.js"), "./locales/sv.ts": () => import("./sv-D9y-M1Fo.js"), "./locales/th.ts": () => import("./th-D9umBjEy.js"), "./locales/tr.ts": () => import("./tr-BddMywiw.js"), "./locales/uk.ts": () => import("./uk-Dbd31hFt.js"), "./locales/vi.ts": () => import("./vi-Do3BMOdh.js"), "./locales/zh.ts": () => import("./zh-gQSYLZI3.js") }), `./locales/${e}.ts`, 3).then((i) => {
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 J.set(e, o), o;
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 J.set(e, o), o;
248
+ return Q.set(e, o), o;
249
249
  }).finally(() => {
250
- Q.delete(e);
250
+ tt.delete(e);
251
251
  });
252
- return Q.set(e, a), a;
252
+ return tt.set(e, n), n;
253
253
  }
254
254
  function te({ bootstrap: e, forceLocale: t, children: r }) {
255
- const [a, i] = b("en"), [o, s] = b(null);
256
- T(() => {
257
- const h = (t && Tt(t) ? t : null) ?? (!e || !Jt(e) ? null : Xt(e));
258
- if (!h) {
259
- (o !== null || a !== "en") && (i("en"), s(null));
255
+ const [n, i] = b("en"), [o, s] = b(null);
256
+ E(() => {
257
+ const g = (t && Pt(t) ? t : null) ?? (() => {
258
+ if (!e) return null;
259
+ const u = Xt(e);
260
+ return !u || !Jt(e, u) ? null : u;
261
+ })();
262
+ if (!g) {
263
+ (o !== null || n !== "en") && (i("en"), s(null));
260
264
  return;
261
265
  }
262
- if (h === a && o) return;
263
- let d = !1;
264
- return Qt(h).then((p) => {
265
- d || (i(h), s(p));
266
+ if (g === n && o) return;
267
+ let p = !1;
268
+ return Qt(g).then((u) => {
269
+ p || (i(g), s(u));
266
270
  }), () => {
267
- d = !0;
271
+ p = !0;
268
272
  };
269
273
  }, [e, t]);
270
- const l = {
271
- locale: a,
272
- t: o ? (u, h, d) => Pt(o[u] ?? h, d) : Mt
274
+ const d = {
275
+ locale: n,
276
+ t: o ? (l, g, p) => Lt(o[l] ?? g, p) : At
273
277
  };
274
- return /* @__PURE__ */ n(Lt.Provider, { value: l, children: r });
278
+ return /* @__PURE__ */ a(Mt.Provider, { value: d, children: r });
275
279
  }
276
280
  function v() {
277
- return Vt(Lt);
281
+ return $t(Mt);
278
282
  }
279
- const ft = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
283
+ const gt = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
280
284
  function ee({
281
285
  open: e,
282
286
  onClose: t,
283
287
  labelledBy: r,
284
- brandColor: a,
288
+ brandColor: n,
285
289
  topBanner: i,
286
290
  allowClose: o = !0,
287
291
  hideCloseButton: s = !1,
288
- inline: l = !1,
289
- children: u
292
+ inline: d = !1,
293
+ children: l
290
294
  }) {
291
- const { t: h } = v(), d = F(null), p = F(null);
292
- return T(() => {
295
+ const { t: g } = v(), p = F(null), u = F(null);
296
+ return E(() => {
293
297
  if (!e) return;
294
- p.current = document.activeElement ?? null;
295
- const f = d.current;
296
- f && (f.querySelector(ft) ?? f).focus({ preventScroll: !0 });
297
- const M = (y) => {
298
- if (y.key === "Escape") {
298
+ u.current = document.activeElement ?? null;
299
+ const h = p.current;
300
+ h && (h.querySelector(gt) ?? h).focus({ preventScroll: !0 });
301
+ const m = (_) => {
302
+ if (_.key === "Escape") {
299
303
  if (!o) return;
300
- y.stopPropagation(), t();
304
+ _.stopPropagation(), t();
301
305
  return;
302
306
  }
303
- if (y.key !== "Tab" || !d.current) return;
304
- const L = Array.from(
305
- d.current.querySelectorAll(ft)
306
- ).filter((O) => !O.hasAttribute("disabled") && O.tabIndex !== -1);
307
- if (L.length === 0) {
308
- y.preventDefault();
307
+ if (_.key !== "Tab" || !p.current) return;
308
+ const S = Array.from(
309
+ p.current.querySelectorAll(gt)
310
+ ).filter((z) => !z.hasAttribute("disabled") && z.tabIndex !== -1);
311
+ if (S.length === 0) {
312
+ _.preventDefault();
309
313
  return;
310
314
  }
311
- const I = L[0], z = L[L.length - 1], j = document.activeElement;
312
- y.shiftKey && j === I ? (y.preventDefault(), z.focus()) : !y.shiftKey && j === z && (y.preventDefault(), I.focus());
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());
313
317
  };
314
- document.addEventListener("keydown", M, !0);
315
- const E = document.body.style.overflow;
316
- return l || (document.body.style.overflow = "hidden"), () => {
317
- document.removeEventListener("keydown", M, !0), l || (document.body.style.overflow = E), p.current?.focus?.({ preventScroll: !0 });
318
+ document.addEventListener("keydown", m, !0);
319
+ const j = document.body.style.overflow;
320
+ return d || (document.body.style.overflow = "hidden"), () => {
321
+ document.removeEventListener("keydown", m, !0), d || (document.body.style.overflow = j), u.current?.focus?.({ preventScroll: !0 });
318
322
  };
319
- }, [e, t, o, l]), e ? /* @__PURE__ */ c(
323
+ }, [e, t, o, d]), e ? /* @__PURE__ */ c(
320
324
  "div",
321
325
  {
322
- class: `${l ? "absolute z-[1]" : "fixed z-[2147483647]"} inset-0 flex items-center justify-center bg-slate-950/50 p-2 sm:p-4 backdrop-blur-md animate-[pw-fade-in_180ms_ease-out]`,
323
- onClick: (f) => {
324
- o && f.target === f.currentTarget && t();
326
+ class: `${d ? "absolute z-[1]" : "fixed z-[2147483647]"} inset-0 flex items-center justify-center bg-slate-950/50 p-2 sm:p-4 backdrop-blur-md animate-[pw-fade-in_180ms_ease-out]`,
327
+ onClick: (h) => {
328
+ o && h.target === h.currentTarget && t();
325
329
  },
326
330
  "data-pw-root": !0,
327
331
  children: [
@@ -329,13 +333,13 @@ function ee({
329
333
  "div",
330
334
  {
331
335
  class: "relative flex w-full max-w-[400px] flex-col animate-[pw-scale-in_220ms_cubic-bezier(0.16,1,0.3,1)]",
332
- style: { "--pw-accent": a ?? "#3b82f6" },
336
+ style: { "--pw-accent": n ?? "#3b82f6" },
333
337
  children: [
334
338
  i,
335
339
  /* @__PURE__ */ c(
336
340
  "div",
337
341
  {
338
- ref: d,
342
+ ref: p,
339
343
  role: "dialog",
340
344
  "aria-modal": "true",
341
345
  "aria-labelledby": r,
@@ -345,15 +349,15 @@ function ee({
345
349
  boxShadow: "0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1)"
346
350
  },
347
351
  children: [
348
- u,
349
- o && !s ? /* @__PURE__ */ n(
352
+ l,
353
+ o && !s ? /* @__PURE__ */ a(
350
354
  "button",
351
355
  {
352
356
  type: "button",
353
357
  onClick: t,
354
- "aria-label": h("modal.close_aria", "Close"),
358
+ "aria-label": g("modal.close_aria", "Close"),
355
359
  class: "absolute right-3 top-3 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white/80 text-gray-500 backdrop-blur-sm transition-colors hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
356
- children: /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ n(
360
+ children: /* @__PURE__ */ a("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ a(
357
361
  "path",
358
362
  {
359
363
  d: "M3 3l10 10M13 3L3 13",
@@ -370,7 +374,7 @@ function ee({
370
374
  ]
371
375
  }
372
376
  ),
373
- /* @__PURE__ */ n("style", { children: `
377
+ /* @__PURE__ */ a("style", { children: `
374
378
  @keyframes pw-fade-in { from { opacity: 0 } to { opacity: 1 } }
375
379
  @keyframes pw-scale-in {
376
380
  from { opacity: 0; transform: translateY(12px) scale(0.96) }
@@ -393,9 +397,9 @@ function re(e, t) {
393
397
  return t("auth.continue_with_facebook", "Continue with Facebook");
394
398
  }
395
399
  }
396
- function wt(e, t, r) {
397
- const a = t === "signup" ? r("auth.signup_failed", "Sign-up failed") : r("auth.signin_failed", "Sign-in failed");
398
- if (!(e instanceof U)) return a;
400
+ function ft(e, t, r) {
401
+ const n = t === "signup" ? r("auth.signup_failed", "Sign-up failed") : r("auth.signin_failed", "Sign-in failed");
402
+ if (!(e instanceof O)) return n;
399
403
  switch (e.code) {
400
404
  case "invalid_credentials":
401
405
  return r("auth.invalid_credentials", "Invalid email or password");
@@ -414,7 +418,7 @@ function wt(e, t, r) {
414
418
  case "over_request_rate_limit":
415
419
  case "rate_limited":
416
420
  case "http_429":
417
- return r("auth.rate_limited", "Too many requests. Please try again in a moment.");
421
+ return r("auth.rate_limited", "Too many requests. Please try again later.");
418
422
  case "network_error":
419
423
  return r("auth.network_error", "Network error. Please check your connection and try again.");
420
424
  case "upstream":
@@ -424,16 +428,16 @@ function wt(e, t, r) {
424
428
  case "http_504":
425
429
  return r("auth.service_unavailable", "Service is temporarily unavailable. Please try again.");
426
430
  default:
427
- return a;
431
+ return n;
428
432
  }
429
433
  }
430
- function Et({ block: e, ctx: t }) {
431
- const r = t.auth, a = t.authSession, i = e.allow_signup !== !1, o = e.allow_password_reset !== !1, s = e.hide_when_authenticated !== !1;
434
+ function Tt({ block: e, ctx: t }) {
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;
432
436
  if (!r)
433
437
  return typeof console < "u" && console.warn("[paywall] auth_panel rendered without AuthClient — pass `auth: true` to PaywallUI"), null;
434
- const l = a && !a.user.is_anonymous ? a : null;
435
- return l && s ? null : l ? /* @__PURE__ */ n(ie, { email: l.user.email ?? "", onSignOut: () => r.signOut().catch(() => {
436
- }) }) : /* @__PURE__ */ n(
438
+ const d = n && !n.user.is_anonymous ? n : null;
439
+ return d && s ? null : d ? /* @__PURE__ */ a(ie, { email: d.user.email ?? "", onSignOut: () => r.signOut().catch(() => {
440
+ }) }) : /* @__PURE__ */ a(
437
441
  ne,
438
442
  {
439
443
  block: e,
@@ -447,10 +451,10 @@ function ie({ email: e, onSignOut: t }) {
447
451
  const { t: r } = v();
448
452
  return /* @__PURE__ */ c("div", { class: "flex items-center justify-between gap-3 rounded-2xl bg-gray-100 px-4 py-3", children: [
449
453
  /* @__PURE__ */ c("div", { class: "flex flex-col", children: [
450
- /* @__PURE__ */ n("span", { class: "text-[10px] font-semibold uppercase tracking-wider text-gray-500", children: r("auth.signed_in", "Signed in") }),
451
- /* @__PURE__ */ n("span", { class: "text-sm font-medium text-gray-900", children: e })
454
+ /* @__PURE__ */ a("span", { class: "text-[10px] font-semibold uppercase tracking-wider text-gray-500", children: r("auth.signed_in", "Signed in") }),
455
+ /* @__PURE__ */ a("span", { class: "text-sm font-medium text-gray-900", children: e })
452
456
  ] }),
453
- /* @__PURE__ */ n(
457
+ /* @__PURE__ */ a(
454
458
  "button",
455
459
  {
456
460
  type: "button",
@@ -461,166 +465,166 @@ function ie({ email: e, onSignOut: t }) {
461
465
  )
462
466
  ] });
463
467
  }
464
- function ne({ block: e, allowSignup: t, allowReset: r, ctx: a }) {
465
- const { t: i } = v(), o = a.auth, s = e.providers ?? [], [l, u] = b("signin"), [h, d] = b(""), [p, x] = b(""), [_, g] = b(""), [f, M] = b(""), [E, y] = b(null), [L, I] = b(null), [z, j] = b(null), [O, D] = b(!1), [R, N] = b(null);
466
- T(() => {
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(() => {
467
471
  if (typeof o.getLastLogin != "function") return;
468
- let S = !1;
472
+ let I = !1;
469
473
  return o.getLastLogin().then(
470
- (P) => {
471
- S || !P || (N(P), P.email && d((V) => V === "" ? P.email : V));
474
+ (L) => {
475
+ I || !L || (D(L), L.email && u((H) => H === "" ? L.email : H));
472
476
  },
473
477
  () => {
474
478
  }
475
479
  ), () => {
476
- S = !0;
480
+ I = !0;
477
481
  };
478
482
  }, [o]);
479
- const A = (S) => {
480
- u(S), I(null), j(null), D(!1);
481
- }, C = async (S) => {
482
- if (S.preventDefault(), !E) {
483
- if (I(null), j(null), l === "signup" && !O) {
484
- if (!h.trim()) return;
485
- D(!0);
486
- return;
487
- }
488
- if (l === "signup" && p !== _) {
489
- I(i("auth.passwords_mismatch", "Passwords don't match"));
490
- return;
491
- }
492
- y("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;
493
488
  try {
494
- l === "signin" ? await o.signInWithEmail({ email: h, password: p }) : l === "signup" ? (await o.signUp({ email: h, password: p })).kind === "confirmation_required" && (u("reset_verify"), j(i("auth.check_email_message", "Check your email for a confirmation code."))) : l === "forgot" ? (await o.requestPasswordReset({ email: h }), u("reset_sent"), j(
495
- i("auth.reset_sent_message", "If that email exists, a reset code has been sent.")
496
- )) : l === "reset_verify" && (await o.verifyOtp({
497
- email: h,
498
- token: f,
499
- type: p ? "recovery" : "email"
500
- }), p && await o.updatePassword({ password: p }));
501
- } catch (P) {
502
- I(wt(P, l === "signup" ? "signup" : l === "reset_verify" ? "otp" : l === "forgot" ? "reset" : "signin", i));
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
+ }
503
512
  } finally {
504
- y(null);
513
+ A.current = !1;
505
514
  }
506
515
  }
507
- }, B = async (S) => {
508
- if (!E) {
509
- y(S), I(null), j(null);
516
+ }, w = async (I) => {
517
+ if (!(A.current || _)) {
518
+ A.current = !0, S(I), P(null), U(null);
510
519
  try {
511
520
  await o.signInWithOAuth({
512
- provider: S,
513
- onPopupOpened: () => y(null)
521
+ provider: I,
522
+ onPopupOpened: () => S(null)
514
523
  });
515
- } catch (P) {
516
- if (P instanceof U && (P.code === "oauth_cancelled" || P.code === "oauth_timeout"))
524
+ } catch (L) {
525
+ if (L instanceof O && (L.code === "oauth_cancelled" || L.code === "oauth_timeout"))
517
526
  return;
518
- I(wt(P, "signin", i));
527
+ P(ft(L, "signin", i));
519
528
  } finally {
520
- y(null);
529
+ A.current = !1, S(null);
521
530
  }
522
531
  }
523
- }, w = s.length > 0 && (l === "signin" || l === "signup"), m = l === "signin" || l === "signup" || l === "forgot", k = l === "signin" || l === "signup" && O;
532
+ }, f = s.length > 0 && (l === "signin" || l === "signup"), C = l === "signin" || l === "signup" || l === "forgot", K = l === "signin" || l === "signup" && B;
524
533
  return /* @__PURE__ */ c("div", { class: "flex flex-col gap-5", children: [
525
- /* @__PURE__ */ n(ae, { mode: l, customHeading: e.heading, customSubheading: e.subheading }),
526
- w ? /* @__PURE__ */ c("div", { class: "flex flex-col gap-2.5", children: [
527
- s.map((S) => /* @__PURE__ */ c("div", { class: "relative", children: [
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: [
536
+ s.map((I) => /* @__PURE__ */ c("div", { class: "relative", children: [
528
537
  /* @__PURE__ */ c(
529
538
  "button",
530
539
  {
531
540
  type: "button",
532
- onClick: () => B(S),
533
- disabled: E !== null,
541
+ onClick: () => w(I),
542
+ disabled: _ !== null,
534
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)]",
535
544
  children: [
536
- E === S ? /* @__PURE__ */ n("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-gray-300 border-t-gray-700" }) : /* @__PURE__ */ n(ge, { provider: S }),
537
- /* @__PURE__ */ n("span", { children: re(S, i) })
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) })
538
547
  ]
539
548
  }
540
549
  ),
541
- R?.method === S ? /* @__PURE__ */ n(bt, { email: R.email }) : null
542
- ] }, S)),
543
- /* @__PURE__ */ n(he, {})
550
+ M?.method === I ? /* @__PURE__ */ a(pe, { email: M.email }) : null
551
+ ] }, I)),
552
+ /* @__PURE__ */ a(ge, {})
544
553
  ] }) : null,
545
- /* @__PURE__ */ c("form", { onSubmit: C, class: "flex flex-col gap-3", children: [
546
- m && /* @__PURE__ */ n(
547
- mt,
554
+ /* @__PURE__ */ c("form", { onSubmit: Z, class: "flex flex-col gap-3", children: [
555
+ C && /* @__PURE__ */ a(
556
+ wt,
548
557
  {
549
558
  type: "email",
550
559
  placeholder: i("auth.email", "Email address"),
551
- value: h,
552
- onInput: d,
560
+ value: p,
561
+ onInput: u,
553
562
  autocomplete: "email",
554
563
  required: !0
555
564
  }
556
565
  ),
557
- k && /* @__PURE__ */ n(
558
- tt,
566
+ K && /* @__PURE__ */ a(
567
+ et,
559
568
  {
560
569
  placeholder: i("auth.password", "Password"),
561
- value: p,
562
- onInput: x,
570
+ value: x,
571
+ onInput: y,
563
572
  autocomplete: l === "signin" ? "current-password" : "new-password",
564
573
  required: !0
565
574
  }
566
575
  ),
567
- l === "signup" && O && /* @__PURE__ */ n(
568
- tt,
576
+ l === "signup" && B && /* @__PURE__ */ a(
577
+ et,
569
578
  {
570
579
  placeholder: i("auth.repeat_password", "Repeat password"),
571
- value: _,
572
- onInput: g,
580
+ value: k,
581
+ onInput: h,
573
582
  autocomplete: "new-password",
574
583
  required: !0
575
584
  }
576
585
  ),
577
- l === "reset_verify" && /* @__PURE__ */ c(Z, { children: [
578
- /* @__PURE__ */ n(
579
- mt,
580
- {
581
- type: "text",
582
- placeholder: i("auth.confirmation_code", "Confirmation code"),
583
- value: f,
584
- onInput: M,
585
- autocomplete: "one-time-code",
586
- inputMode: "numeric",
587
- required: !0
588
- }
589
- ),
590
- /* @__PURE__ */ n(
591
- tt,
592
- {
593
- placeholder: i(
594
- "auth.new_password_optional",
595
- "New password (optional — only for password reset)"
596
- ),
597
- value: p,
598
- onInput: x,
599
- autocomplete: "new-password"
600
- }
601
- )
602
- ] }),
603
- l === "reset_sent" && z && /* @__PURE__ */ n("p", { class: "rounded-2xl bg-gray-100 px-4 py-3 text-sm text-gray-600", children: z }),
604
- l === "signin" && r && /* @__PURE__ */ n("div", { class: "flex justify-end text-sm", children: /* @__PURE__ */ n(W, { onClick: () => A("forgot"), children: i("auth.forgot_password", "Forgot password?") }) }),
605
- L && /* @__PURE__ */ n("p", { class: "text-sm text-red-600", children: L }),
606
- z && l !== "reset_sent" && /* @__PURE__ */ n("p", { class: "text-sm text-gray-500", children: z }),
607
- l !== "reset_sent" && /* @__PURE__ */ c("div", { class: "relative", children: [
608
- /* @__PURE__ */ n(
609
- ce,
610
- {
611
- busy: E === "email",
612
- label: se(l, O, e.submit_label ?? e.heading, i)
613
- }
614
- ),
615
- l === "signin" && R?.method === "email" ? /* @__PURE__ */ n(bt, { email: R.email }) : null
616
- ] })
586
+ (l === "signup_verify" || l === "reset_verify") && /* @__PURE__ */ a(
587
+ wt,
588
+ {
589
+ type: "text",
590
+ placeholder: i("auth.confirmation_code", "Confirmation code"),
591
+ value: m,
592
+ onInput: j,
593
+ autocomplete: "one-time-code",
594
+ inputMode: "numeric",
595
+ required: !0
596
+ }
597
+ ),
598
+ l === "reset_verify" && /* @__PURE__ */ a(
599
+ et,
600
+ {
601
+ placeholder: i(
602
+ "auth.new_password_optional",
603
+ "New password (optional — only for password reset)"
604
+ ),
605
+ value: x,
606
+ onInput: y,
607
+ autocomplete: "new-password"
608
+ }
609
+ ),
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 }),
614
+ l !== "reset_sent" && /* @__PURE__ */ a(
615
+ ce,
616
+ {
617
+ busy: _ === "email",
618
+ label: se(l, B, e.submit_label ?? e.heading, i)
619
+ }
620
+ )
617
621
  ] }),
618
- /* @__PURE__ */ n(
622
+ /* @__PURE__ */ a(
619
623
  le,
620
624
  {
621
625
  mode: l,
622
626
  allowSignup: t,
623
- onSwitch: A
627
+ onSwitch: N
624
628
  }
625
629
  )
626
630
  ] });
@@ -630,10 +634,10 @@ function ae({
630
634
  customHeading: t,
631
635
  customSubheading: r
632
636
  }) {
633
- const { t: a } = v(), i = oe(e, a), o = e === "signin" || e === "signup", s = o && t ? t : i.title, l = o && r !== void 0 ? r || null : i.subtitle;
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;
634
638
  return /* @__PURE__ */ c("div", { class: "flex flex-col gap-2", children: [
635
- /* @__PURE__ */ n("h2", { class: "text-3xl font-bold tracking-tight text-gray-900", children: s }),
636
- l ? /* @__PURE__ */ n("p", { class: "text-base leading-relaxed text-gray-600", children: l }) : null
639
+ /* @__PURE__ */ a("h2", { class: "text-3xl font-bold tracking-tight text-gray-900", children: s }),
640
+ d ? /* @__PURE__ */ a("p", { class: "text-base leading-relaxed text-gray-600", children: d }) : null
637
641
  ] });
638
642
  }
639
643
  function oe(e, t) {
@@ -669,21 +673,30 @@ function oe(e, t) {
669
673
  "Enter the code from your email and a new password."
670
674
  )
671
675
  };
676
+ case "signup_verify":
677
+ return {
678
+ title: t("auth.confirm_email_title", "Confirm your email"),
679
+ subtitle: t(
680
+ "auth.confirm_email_subtitle",
681
+ "Enter the code we sent to your email to finish creating your account."
682
+ )
683
+ };
672
684
  }
673
685
  }
674
- function se(e, t, r, a) {
686
+ function se(e, t, r, n) {
675
687
  if (e === "signin" && r) return r;
676
688
  switch (e) {
677
689
  case "signin":
678
- return a("auth.log_in", "Sign In");
690
+ return n("auth.log_in", "Sign In");
679
691
  case "signup":
680
- return t ? a("auth.create_account", "Create Account") : a("auth.sign_up", "Sign Up");
692
+ return t ? n("auth.create_account", "Create Account") : n("auth.sign_up", "Sign Up");
681
693
  case "forgot":
682
- return a("auth.send_reset", "Send Reset Email");
694
+ return n("auth.send_reset", "Send Reset Email");
695
+ case "signup_verify":
683
696
  case "reset_verify":
684
- return a("auth.verify", "Verify");
697
+ return n("auth.verify", "Verify");
685
698
  default:
686
- return a("cta.continue", "Continue");
699
+ return n("cta.continue", "Continue");
687
700
  }
688
701
  }
689
702
  function le({
@@ -691,26 +704,26 @@ function le({
691
704
  allowSignup: t,
692
705
  onSwitch: r
693
706
  }) {
694
- const { t: a } = v();
707
+ const { t: n } = v();
695
708
  return e === "signin" && t ? /* @__PURE__ */ c("p", { class: "text-center text-sm text-gray-600", children: [
696
- a("auth.no_account", "Don't have an account?"),
709
+ n("auth.no_account", "Don't have an account?"),
697
710
  " ",
698
- /* @__PURE__ */ n(W, { onClick: () => r("signup"), children: a("auth.sign_up_link", "Sign Up") })
699
- ] }) : e === "signup" ? /* @__PURE__ */ c("p", { class: "text-center text-sm text-gray-600", children: [
700
- a("auth.have_account", "Already have an account?"),
711
+ /* @__PURE__ */ a(W, { onClick: () => r("signup"), children: n("auth.sign_up_link", "Sign Up") })
712
+ ] }) : e === "signup" || e === "signup_verify" ? /* @__PURE__ */ c("p", { class: "text-center text-sm text-gray-600", children: [
713
+ n("auth.have_account", "Already have an account?"),
701
714
  " ",
702
- /* @__PURE__ */ n(W, { onClick: () => r("signin"), children: a("auth.log_in_link", "Log In") })
715
+ /* @__PURE__ */ a(W, { onClick: () => r("signin"), children: n("auth.log_in_link", "Log In") })
703
716
  ] }) : e === "forgot" || e === "reset_sent" || e === "reset_verify" ? /* @__PURE__ */ c("p", { class: "text-center text-sm text-gray-600", children: [
704
- a("auth.no_account", "Don't have an account?"),
717
+ n("auth.no_account", "Don't have an account?"),
705
718
  " ",
706
- /* @__PURE__ */ n(W, { onClick: () => r("signup"), children: a("auth.sign_up_link", "Sign Up") })
719
+ /* @__PURE__ */ a(W, { onClick: () => r("signup"), children: n("auth.sign_up_link", "Sign Up") })
707
720
  ] }) : null;
708
721
  }
709
722
  function W({
710
723
  onClick: e,
711
724
  children: t
712
725
  }) {
713
- return /* @__PURE__ */ n(
726
+ return /* @__PURE__ */ a(
714
727
  "button",
715
728
  {
716
729
  type: "button",
@@ -722,7 +735,7 @@ function W({
722
735
  );
723
736
  }
724
737
  function ce({ busy: e, label: t }) {
725
- return /* @__PURE__ */ n(
738
+ return /* @__PURE__ */ a(
726
739
  "button",
727
740
  {
728
741
  type: "submit",
@@ -732,18 +745,18 @@ function ce({ busy: e, label: t }) {
732
745
  background: "linear-gradient(135deg, color-mix(in srgb, var(--pw-accent) 55%, white) 0%, var(--pw-accent) 55%, color-mix(in srgb, var(--pw-accent) 90%, black) 100%)",
733
746
  boxShadow: "0 0 20px 0 color-mix(in srgb, var(--pw-accent) 25%, transparent), inset 0 0 8px 0 color-mix(in srgb, white 25%, transparent)"
734
747
  },
735
- children: e ? /* @__PURE__ */ n("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ n("span", { class: "relative z-10", children: t })
748
+ children: e ? /* @__PURE__ */ a("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ a("span", { class: "relative z-10", children: t })
736
749
  }
737
750
  );
738
751
  }
739
- function mt({ type: e, placeholder: t, value: r, onInput: a, autocomplete: i, inputMode: o, required: s }) {
740
- return /* @__PURE__ */ n(
752
+ function wt({ type: e, placeholder: t, value: r, onInput: n, autocomplete: i, inputMode: o, required: s }) {
753
+ return /* @__PURE__ */ a(
741
754
  "input",
742
755
  {
743
756
  type: e,
744
757
  value: r,
745
758
  placeholder: t,
746
- onInput: (l) => a(l.target.value),
759
+ onInput: (d) => n(d.target.value),
747
760
  autocomplete: i,
748
761
  inputMode: o,
749
762
  required: s,
@@ -751,43 +764,43 @@ function mt({ type: e, placeholder: t, value: r, onInput: a, autocomplete: i, in
751
764
  }
752
765
  );
753
766
  }
754
- function tt({ placeholder: e, value: t, onInput: r, autocomplete: a, required: i }) {
755
- const { t: o } = v(), [s, l] = b(!1), u = F(null);
756
- T(() => {
757
- const p = u.current;
758
- p && p.value !== t && (p.value = t);
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(() => {
770
+ const u = l.current;
771
+ u && u.value !== t && (u.value = t);
759
772
  }, [s, t]);
760
- const h = o("auth.show_password", "Show password"), d = o("auth.hide_password", "Hide password");
773
+ const g = o("auth.show_password", "Show password"), p = o("auth.hide_password", "Hide password");
761
774
  return /* @__PURE__ */ c("div", { class: "relative", children: [
762
- /* @__PURE__ */ n(
775
+ /* @__PURE__ */ a(
763
776
  "input",
764
777
  {
765
- ref: u,
778
+ ref: l,
766
779
  type: s ? "text" : "password",
767
780
  value: t,
768
781
  placeholder: e,
769
- onInput: (p) => r(p.target.value),
770
- autocomplete: a,
782
+ onInput: (u) => r(u.target.value),
783
+ autocomplete: n,
771
784
  required: i,
772
785
  class: "h-14 w-full rounded-2xl bg-gray-100 pl-5 pr-12 text-base text-gray-900 outline-none transition-all placeholder:text-gray-500 hover:bg-gray-200/60 focus:bg-gray-200/60 focus:shadow-[0_0_0_2px_color-mix(in_srgb,var(--pw-accent)_30%,transparent)]"
773
786
  }
774
787
  ),
775
- /* @__PURE__ */ n(
788
+ /* @__PURE__ */ a(
776
789
  "button",
777
790
  {
778
791
  type: "button",
779
- onClick: () => l((p) => !p),
780
- "aria-label": s ? d : h,
792
+ onClick: () => d((u) => !u),
793
+ "aria-label": s ? p : g,
781
794
  tabIndex: -1,
782
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)]",
783
- children: s ? /* @__PURE__ */ n(ue, {}) : /* @__PURE__ */ n(de, {})
796
+ children: s ? /* @__PURE__ */ a(ue, {}) : /* @__PURE__ */ a(de, {})
784
797
  }
785
798
  )
786
799
  ] });
787
800
  }
788
801
  function de() {
789
802
  return /* @__PURE__ */ c("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
790
- /* @__PURE__ */ n(
803
+ /* @__PURE__ */ a(
791
804
  "path",
792
805
  {
793
806
  d: "M1.667 10S4.583 4.167 10 4.167 18.333 10 18.333 10 15.417 15.833 10 15.833 1.667 10 1.667 10Z",
@@ -797,12 +810,12 @@ function de() {
797
810
  "stroke-linejoin": "round"
798
811
  }
799
812
  ),
800
- /* @__PURE__ */ n("circle", { cx: "10", cy: "10", r: "2.5", stroke: "currentColor", "stroke-width": "1.5" })
813
+ /* @__PURE__ */ a("circle", { cx: "10", cy: "10", r: "2.5", stroke: "currentColor", "stroke-width": "1.5" })
801
814
  ] });
802
815
  }
803
816
  function ue() {
804
817
  return /* @__PURE__ */ c("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
805
- /* @__PURE__ */ n(
818
+ /* @__PURE__ */ a(
806
819
  "path",
807
820
  {
808
821
  d: "M8.236 4.293A6.96 6.96 0 0 1 10 4.167C15.417 4.167 18.333 10 18.333 10a13.5 13.5 0 0 1-1.92 2.755M11.768 11.768A2.5 2.5 0 0 1 8.233 8.233",
@@ -812,7 +825,7 @@ function ue() {
812
825
  "stroke-linejoin": "round"
813
826
  }
814
827
  ),
815
- /* @__PURE__ */ n(
828
+ /* @__PURE__ */ a(
816
829
  "path",
817
830
  {
818
831
  d: "M14.953 14.953A8.84 8.84 0 0 1 10 15.833C4.583 15.833 1.667 10 1.667 10a13.5 13.5 0 0 1 3.38-3.953M1.667 1.667l16.666 16.666",
@@ -824,45 +837,46 @@ function ue() {
824
837
  )
825
838
  ] });
826
839
  }
827
- function bt({ email: e }) {
828
- const { t } = v(), r = e ? t("auth.last_used", "Last · {email}", { email: pe(e) }) : t("auth.last_used_no_email", "Last");
829
- return /* @__PURE__ */ n("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 });
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");
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 });
830
843
  }
831
- function pe(e) {
844
+ function he(e) {
832
845
  const [t, r] = e.split("@");
833
846
  return r ? `${t.slice(0, 3)}*****@${r}` : e;
834
847
  }
835
- function he() {
848
+ function ge() {
836
849
  const { t: e } = v();
837
850
  return /* @__PURE__ */ c("div", { class: "flex items-center gap-3 py-1 text-sm text-gray-400", children: [
838
- /* @__PURE__ */ n("div", { class: "h-px flex-1 bg-gray-200" }),
839
- /* @__PURE__ */ n("span", { children: e("auth.or", "or") }),
840
- /* @__PURE__ */ n("div", { class: "h-px flex-1 bg-gray-200" })
851
+ /* @__PURE__ */ a("div", { class: "h-px flex-1 bg-gray-200" }),
852
+ /* @__PURE__ */ a("span", { children: e("auth.or", "or") }),
853
+ /* @__PURE__ */ a("div", { class: "h-px flex-1 bg-gray-200" })
841
854
  ] });
842
855
  }
843
- function ge({ provider: e }) {
856
+ function fe({ provider: e }) {
844
857
  return e === "google" ? /* @__PURE__ */ c("svg", { width: "20", height: "20", viewBox: "0 0 18 18", "aria-hidden": "true", children: [
845
- /* @__PURE__ */ n("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" }),
846
- /* @__PURE__ */ n("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" }),
847
- /* @__PURE__ */ n("path", { fill: "#FBBC05", d: "M3.93 10.68a5.4 5.4 0 0 1 0-3.36V4.99H.92a9 9 0 0 0 0 8.02l3-2.33Z" }),
848
- /* @__PURE__ */ n("path", { fill: "#EA4335", d: "M9 3.58c1.32 0 2.5.45 3.44 1.34l2.58-2.58A9 9 0 0 0 .92 4.99l3.01 2.33C4.64 5.17 6.64 3.58 9 3.58Z" })
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" }),
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" }),
860
+ /* @__PURE__ */ a("path", { fill: "#FBBC05", d: "M3.93 10.68a5.4 5.4 0 0 1 0-3.36V4.99H.92a9 9 0 0 0 0 8.02l3-2.33Z" }),
861
+ /* @__PURE__ */ a("path", { fill: "#EA4335", d: "M9 3.58c1.32 0 2.5.45 3.44 1.34l2.58-2.58A9 9 0 0 0 .92 4.99l3.01 2.33C4.64 5.17 6.64 3.58 9 3.58Z" })
849
862
  ] }) : e === "apple" ? (
850
863
  // viewBox 0 0 24 24 даёт воздух сверху/снизу пути, поэтому визуально
851
864
  // Apple-яблоко выглядит меньше Google. Компенсируем увеличенным
852
865
  // width/height — 26×26 даёт примерно equal optical size с Google 20×20.
853
- /* @__PURE__ */ n("svg", { width: "26", height: "26", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ n("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" }) })
854
- ) : e === "github" ? /* @__PURE__ */ n("svg", { width: "20", height: "20", viewBox: "0 0 16 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ n("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__ */ n("svg", { width: "18", height: "20", viewBox: "0 0 14 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ n("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" }) });
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" }) })
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" }) });
855
868
  }
856
- function fe({
869
+ function we({
857
870
  block: e,
858
871
  bootstrap: t,
859
872
  auth: r,
860
- authSession: a,
873
+ authSession: n,
861
874
  onBack: i,
862
875
  showBack: o = !0,
863
- intent: s = "preauth"
876
+ intent: s = "preauth",
877
+ initialMode: d
864
878
  }) {
865
- const { t: l } = v(), u = {
879
+ const { t: l } = v(), g = {
866
880
  bootstrap: t,
867
881
  selectedPriceId: null,
868
882
  setSelectedPriceId: () => {
@@ -870,8 +884,9 @@ function fe({
870
884
  onAction: () => {
871
885
  },
872
886
  auth: r,
873
- authSession: a
874
- }, h = s === "restore" ? {
887
+ authSession: n,
888
+ initialAuthMode: d
889
+ }, p = s === "restore" ? {
875
890
  ...e,
876
891
  heading: l("auth.restore_purchases_heading", "Restore Purchases"),
877
892
  subheading: l(
@@ -892,12 +907,12 @@ function fe({
892
907
  submit_label: l("auth.log_in", "Sign In")
893
908
  } : e;
894
909
  return /* @__PURE__ */ c("div", { class: "relative flex-1 min-h-0 overflow-y-auto p-6 sm:p-8", children: [
895
- o ? /* @__PURE__ */ n(we, { onClick: i, ariaLabel: l("nav.back_aria", "Back") }) : null,
896
- /* @__PURE__ */ n(Et, { block: h, ctx: u })
910
+ o ? /* @__PURE__ */ a(me, { onClick: i, ariaLabel: l("nav.back_aria", "Back") }) : null,
911
+ /* @__PURE__ */ a(Tt, { block: p, ctx: g })
897
912
  ] });
898
913
  }
899
- function we({ onClick: e, ariaLabel: t }) {
900
- return /* @__PURE__ */ n(
914
+ function me({ onClick: e, ariaLabel: t }) {
915
+ return /* @__PURE__ */ a(
901
916
  "button",
902
917
  {
903
918
  type: "button",
@@ -905,7 +920,7 @@ function we({ onClick: e, ariaLabel: t }) {
905
920
  "aria-label": t,
906
921
  class: "absolute right-4 top-4 z-10 flex h-8 w-8 items-center justify-center rounded-full text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
907
922
  children: /* @__PURE__ */ c("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
908
- /* @__PURE__ */ n(
923
+ /* @__PURE__ */ a(
909
924
  "path",
910
925
  {
911
926
  d: "M5 8h8a4 4 0 0 1 0 8H9",
@@ -915,7 +930,7 @@ function we({ onClick: e, ariaLabel: t }) {
915
930
  "stroke-linejoin": "round"
916
931
  }
917
932
  ),
918
- /* @__PURE__ */ n(
933
+ /* @__PURE__ */ a(
919
934
  "path",
920
935
  {
921
936
  d: "M8 4 4 8l4 4",
@@ -929,71 +944,8 @@ function we({ onClick: e, ariaLabel: t }) {
929
944
  }
930
945
  );
931
946
  }
932
- function me({
933
- auth: e,
934
- onSuccess: t,
935
- onBack: r,
936
- heading: a,
937
- description: i
938
- }) {
939
- const { t: o } = v(), s = a ?? o("anon.heading_default", "Continue as guest"), l = i ?? o("anon.description_default", "Setting up your guest session…"), [u, h] = b({ kind: "signing-in" }), d = F(!0);
940
- T(() => () => {
941
- d.current = !1;
942
- }, []);
943
- const p = () => {
944
- h({ kind: "signing-in" }), (async () => {
945
- try {
946
- const x = await e.signInAnonymously();
947
- if (!d.current) return;
948
- t(x);
949
- } catch (x) {
950
- if (!d.current) return;
951
- h({
952
- kind: "error",
953
- message: x instanceof Error ? x.message : "Anonymous sign-in failed"
954
- });
955
- }
956
- })();
957
- };
958
- return T(() => {
959
- p();
960
- }, []), /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
961
- r ? /* @__PURE__ */ n(
962
- "button",
963
- {
964
- type: "button",
965
- onClick: r,
966
- class: "-ml-1 self-start rounded-md px-1.5 py-0.5 text-xs font-medium text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
967
- children: o("nav.back", "← Back")
968
- }
969
- ) : null,
970
- /* @__PURE__ */ c("div", { class: "flex flex-col gap-1", children: [
971
- /* @__PURE__ */ n("h2", { class: "text-xl font-semibold text-gray-900", children: s }),
972
- /* @__PURE__ */ n("p", { class: "text-sm text-gray-500", children: l })
973
- ] }),
974
- u.kind === "signing-in" ? /* @__PURE__ */ n("div", { class: "flex items-center justify-center py-6", children: /* @__PURE__ */ n(be, {}) }) : null,
975
- u.kind === "error" ? /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
976
- /* @__PURE__ */ n("div", { class: "rounded-lg bg-red-50 px-3 py-2 text-sm text-red-700", children: u.message }),
977
- /* @__PURE__ */ n(
978
- "button",
979
- {
980
- type: "button",
981
- onClick: p,
982
- class: "self-start rounded-md bg-[var(--pw-accent)] px-3 py-1.5 text-sm font-medium text-white hover:opacity-90 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)] focus-visible:ring-offset-2",
983
- children: o("anon.try_again", "Try again")
984
- }
985
- )
986
- ] }) : null
987
- ] });
988
- }
989
- function be() {
990
- return /* @__PURE__ */ c("svg", { class: "h-5 w-5 animate-spin text-[var(--pw-accent)]", viewBox: "0 0 24 24", fill: "none", children: [
991
- /* @__PURE__ */ n("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "3", "stroke-opacity": "0.2" }),
992
- /* @__PURE__ */ n("path", { d: "M22 12a10 10 0 0 0-10-10", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round" })
993
- ] });
994
- }
995
- const jt = (e) => `pw-offer-${e}-start`;
996
- function et(e) {
947
+ const Et = (e) => `pw-offer-${e}-start`;
948
+ function rt(e) {
997
949
  const t = e - Date.now();
998
950
  return t <= 0 ? { days: 0, hours: 0, minutes: 0, seconds: 0, expired: !0 } : {
999
951
  days: Math.floor(t / (1e3 * 60 * 60 * 24)),
@@ -1003,7 +955,7 @@ function et(e) {
1003
955
  expired: !1
1004
956
  };
1005
957
  }
1006
- function xe(e) {
958
+ function be(e) {
1007
959
  if (e.expires_at) {
1008
960
  const t = Date.parse(e.expires_at);
1009
961
  return Number.isFinite(t) ? t : null;
@@ -1011,7 +963,7 @@ function xe(e) {
1011
963
  if (e.duration_minutes && e.duration_minutes > 0) {
1012
964
  if (typeof window > "u") return null;
1013
965
  try {
1014
- const t = jt(e.id);
966
+ const t = Et(e.id);
1015
967
  let r = window.localStorage.getItem(t);
1016
968
  return r || (r = (/* @__PURE__ */ new Date()).toISOString(), window.localStorage.setItem(t, r)), Date.parse(r) + e.duration_minutes * 6e4;
1017
969
  } catch {
@@ -1020,39 +972,39 @@ function xe(e) {
1020
972
  }
1021
973
  return null;
1022
974
  }
1023
- function zt(e, t) {
975
+ function jt(e, t) {
1024
976
  if (!e || e.length === 0) return null;
1025
977
  if (t) {
1026
- const r = e.find((a) => a.id === t);
978
+ const r = e.find((n) => n.id === t);
1027
979
  if (r) return r;
1028
980
  }
1029
981
  return e.find((r) => r.expires_at || r.duration_minutes) ?? null;
1030
982
  }
1031
- function Bt(e) {
1032
- const t = e ? xe(e) : null, [r, a] = b(
1033
- () => t !== null ? et(t) : null
983
+ function zt(e) {
984
+ const t = e ? be(e) : null, [r, n] = b(
985
+ () => t !== null ? rt(t) : null
1034
986
  ), i = F(t);
1035
- return i.current = t, T(() => {
987
+ return i.current = t, E(() => {
1036
988
  if (t === null) {
1037
- a(null);
989
+ n(null);
1038
990
  return;
1039
991
  }
1040
- a(et(t));
992
+ n(rt(t));
1041
993
  const o = setInterval(() => {
1042
- const s = et(i.current ?? 0);
1043
- if (a(s), s.expired && (clearInterval(o), e?.duration_minutes && typeof window < "u"))
994
+ const s = rt(i.current ?? 0);
995
+ if (n(s), s.expired && (clearInterval(o), e?.duration_minutes && typeof window < "u"))
1044
996
  try {
1045
- window.localStorage.removeItem(jt(e.id));
997
+ window.localStorage.removeItem(Et(e.id));
1046
998
  } catch {
1047
999
  }
1048
1000
  }, 1e3);
1049
1001
  return () => clearInterval(o);
1050
1002
  }, [t, e?.duration_minutes, e?.id]), r;
1051
1003
  }
1052
- function ve({ block: e, ctx: t }) {
1053
- const { t: r } = v(), a = zt(t.bootstrap.offers, e.offer_id), i = Bt(a);
1054
- if (!a || i === null || i.expired && !e.force) return null;
1055
- const o = e.title ?? a.label ?? r("offer.limited_time", "Limited-time offer"), s = a.discount_percent ? `${o} ${a.discount_percent}%` : o;
1004
+ function xe({ block: e, ctx: t }) {
1005
+ const { t: r } = v(), n = jt(t.bootstrap.offers, e.offer_id), i = zt(n);
1006
+ if (!n || i === null || i.expired && !e.force) return null;
1007
+ const o = e.title ?? n.label ?? r("offer.limited_time", "Limited-time offer"), s = n.discount_percent ? `${o} ${n.discount_percent}%` : o;
1056
1008
  return /* @__PURE__ */ c(
1057
1009
  "div",
1058
1010
  {
@@ -1063,34 +1015,34 @@ function ve({ block: e, ctx: t }) {
1063
1015
  },
1064
1016
  role: "status",
1065
1017
  children: [
1066
- /* @__PURE__ */ n(Ft, {}),
1067
- /* @__PURE__ */ n("span", { children: s }),
1068
- /* @__PURE__ */ n(Ot, { value: i, t: r })
1018
+ /* @__PURE__ */ a(Ot, {}),
1019
+ /* @__PURE__ */ a("span", { children: s }),
1020
+ /* @__PURE__ */ a(Bt, { value: i, t: r })
1069
1021
  ]
1070
1022
  }
1071
1023
  );
1072
1024
  }
1073
- function Ot({ value: e, t }) {
1025
+ function Bt({ value: e, t }) {
1074
1026
  return /* @__PURE__ */ c("div", { class: "flex items-center gap-1 font-mono text-sm", children: [
1075
- e.days > 0 ? /* @__PURE__ */ c(Z, { children: [
1076
- /* @__PURE__ */ n($, { children: String(e.days) }),
1077
- /* @__PURE__ */ n("span", { class: "text-xs", children: t("countdown.d", "d") })
1027
+ e.days > 0 ? /* @__PURE__ */ c(ot, { children: [
1028
+ /* @__PURE__ */ a(V, { children: String(e.days) }),
1029
+ /* @__PURE__ */ a("span", { class: "text-xs", children: t("countdown.d", "d") })
1078
1030
  ] }) : null,
1079
- /* @__PURE__ */ n($, { children: String(e.hours).padStart(2, "0") }),
1080
- /* @__PURE__ */ n("span", { class: "text-xs", children: t("countdown.h", "h") }),
1081
- /* @__PURE__ */ n($, { children: String(e.minutes).padStart(2, "0") }),
1082
- /* @__PURE__ */ n("span", { class: "text-xs", children: t("countdown.m", "m") }),
1083
- /* @__PURE__ */ n($, { children: String(e.seconds).padStart(2, "0") }),
1084
- /* @__PURE__ */ n("span", { class: "text-xs", children: t("countdown.s", "s") })
1031
+ /* @__PURE__ */ a(V, { children: String(e.hours).padStart(2, "0") }),
1032
+ /* @__PURE__ */ a("span", { class: "text-xs", children: t("countdown.h", "h") }),
1033
+ /* @__PURE__ */ a(V, { children: String(e.minutes).padStart(2, "0") }),
1034
+ /* @__PURE__ */ a("span", { class: "text-xs", children: t("countdown.m", "m") }),
1035
+ /* @__PURE__ */ a(V, { children: String(e.seconds).padStart(2, "0") }),
1036
+ /* @__PURE__ */ a("span", { class: "text-xs", children: t("countdown.s", "s") })
1085
1037
  ] });
1086
1038
  }
1087
- function $({ children: e }) {
1088
- return /* @__PURE__ */ n("span", { class: "rounded bg-black/20 px-1.5 py-0.5 text-xs font-bold", children: e });
1039
+ function V({ children: e }) {
1040
+ return /* @__PURE__ */ a("span", { class: "rounded bg-black/20 px-1.5 py-0.5 text-xs font-bold", children: e });
1089
1041
  }
1090
1042
  function ye({ offer: e }) {
1091
- const { t } = v(), r = Bt(e);
1043
+ const { t } = v(), r = zt(e);
1092
1044
  if (r === null || r.expired) return null;
1093
- const a = e.label ?? t("offer.limited_time", "Limited-time offer"), i = e.discount_percent ? `${a} ${e.discount_percent}%` : a;
1045
+ const n = e.label ?? t("offer.limited_time", "Limited-time offer"), i = e.discount_percent ? `${n} ${e.discount_percent}%` : n;
1094
1046
  return /* @__PURE__ */ c(
1095
1047
  "div",
1096
1048
  {
@@ -1101,15 +1053,15 @@ function ye({ offer: e }) {
1101
1053
  },
1102
1054
  role: "status",
1103
1055
  children: [
1104
- /* @__PURE__ */ n(Ft, {}),
1105
- /* @__PURE__ */ n("span", { children: i }),
1106
- /* @__PURE__ */ n(Ot, { value: r, t })
1056
+ /* @__PURE__ */ a(Ot, {}),
1057
+ /* @__PURE__ */ a("span", { children: i }),
1058
+ /* @__PURE__ */ a(Bt, { value: r, t })
1107
1059
  ]
1108
1060
  }
1109
1061
  );
1110
1062
  }
1111
- function Ft() {
1112
- return /* @__PURE__ */ n(
1063
+ function Ot() {
1064
+ return /* @__PURE__ */ a(
1113
1065
  "svg",
1114
1066
  {
1115
1067
  width: "16",
@@ -1117,7 +1069,7 @@ function Ft() {
1117
1069
  viewBox: "0 0 12 12",
1118
1070
  fill: "none",
1119
1071
  "aria-hidden": "true",
1120
- children: /* @__PURE__ */ n(
1072
+ children: /* @__PURE__ */ a(
1121
1073
  "path",
1122
1074
  {
1123
1075
  fill: "currentColor",
@@ -1127,44 +1079,41 @@ function Ft() {
1127
1079
  }
1128
1080
  );
1129
1081
  }
1130
- const rt = 3, it = 200, nt = 5e3, at = 5, ke = 10 * 1024 * 1024, xt = ["image/jpeg", "image/png", "image/webp"], vt = /.+@.+\..+/;
1131
- function _e({ client: e, authSession: t, origin: r, onBack: a }) {
1132
- const { t: i } = v(), o = t?.user.email ?? "", s = o || null, [l, u] = b(o), [h, d] = b(""), [p, x] = b(""), [_, g] = b([]), [f, M] = b(!1), [E, y] = b(null), [L, I] = b({}), z = Ct(() => {
1133
- const A = (s ?? l).trim().toLowerCase(), C = h.trim(), B = p.trim();
1134
- return vt.test(A) && C.length >= rt && C.length <= it && B.length >= 1 && B.length <= nt;
1135
- }, [s, l, h, p]), j = () => {
1136
- const A = {}, C = (s ?? l).trim(), B = h.trim(), w = p.trim();
1137
- return C ? vt.test(C.toLowerCase()) || (A.email = i("support.invalid_email", "Invalid email")) : A.email = i("support.required", "Required"), (B.length < rt || B.length > it) && (A.subject = i("support.subject_length", "{min}–{max} characters", {
1138
- min: rt,
1139
- max: it
1140
- })), (w.length < 1 || w.length > nt) && (A.message = i("support.message_length", "{min}–{max} characters", {
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,
1088
+ max: bt
1089
+ })), (N.length < 1 || N.length > xt) && (T.message = i("support.message_length", "{min}–{max} characters", {
1141
1090
  min: 1,
1142
- max: nt
1143
- })), I(A), Object.keys(A).length === 0;
1144
- }, O = async (A) => {
1145
- if (A.preventDefault(), !f && j()) {
1146
- M(!0), I((C) => ({ ...C, submit: void 0 }));
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 }));
1147
1096
  try {
1148
- const C = (s ?? l).trim();
1097
+ const M = (s ?? d).trim();
1149
1098
  await e.createSupportTicket({
1150
- subject: h.trim(),
1151
- content: p.trim(),
1152
- email: C || void 0,
1153
- files: _.length > 0 ? _ : void 0
1154
- }), y(C);
1155
- } catch (C) {
1156
- const B = C instanceof U && C.message || "Failed to send. Please try again.";
1157
- I((w) => ({ ...w, submit: B }));
1099
+ subject: g.trim(),
1100
+ content: u.trim(),
1101
+ email: M || void 0,
1102
+ files: y.length > 0 ? y : void 0
1103
+ }), _(M);
1104
+ } catch (M) {
1105
+ const D = M instanceof O && M.message || "Failed to send. Please try again.";
1106
+ A((N) => ({ ...N, submit: D }));
1158
1107
  } finally {
1159
- M(!1);
1108
+ m(!1);
1160
1109
  }
1161
1110
  }
1162
- }, D = () => {
1163
- d(""), x(""), g([]), I({}), y(null);
1164
- }, R = "flex flex-col gap-3 bg-white px-6 pb-6 pt-3 sm:px-8", N = { boxShadow: "0 -4px 12px -4px rgba(15,23,42,0.06)" };
1165
- return E ? /* @__PURE__ */ c("div", { class: "relative flex-1 min-h-0 flex flex-col", children: [
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: [
1166
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: [
1167
- /* @__PURE__ */ n(
1116
+ /* @__PURE__ */ a(
1168
1117
  "div",
1169
1118
  {
1170
1119
  class: "flex h-14 w-14 items-center justify-center rounded-full",
@@ -1174,7 +1123,7 @@ function _e({ client: e, authSession: t, origin: r, onBack: a }) {
1174
1123
  boxShadow: "0 0 0 8px color-mix(in srgb, var(--pw-accent) 12%, transparent), 0 8px 20px -6px color-mix(in srgb, var(--pw-accent) 45%, transparent)"
1175
1124
  },
1176
1125
  "aria-hidden": "true",
1177
- children: /* @__PURE__ */ n("svg", { viewBox: "0 0 24 24", class: "h-7 w-7", children: /* @__PURE__ */ n(
1126
+ children: /* @__PURE__ */ a("svg", { viewBox: "0 0 24 24", class: "h-7 w-7", children: /* @__PURE__ */ a(
1178
1127
  "path",
1179
1128
  {
1180
1129
  fill: "currentColor",
@@ -1183,32 +1132,32 @@ function _e({ client: e, authSession: t, origin: r, onBack: a }) {
1183
1132
  ) })
1184
1133
  }
1185
1134
  ),
1186
- /* @__PURE__ */ n("div", { class: "text-lg font-semibold tracking-tight text-gray-900", children: i("support.success_heading", "Request submitted") }),
1135
+ /* @__PURE__ */ a("div", { class: "text-lg font-semibold tracking-tight text-gray-900", children: i("support.success_heading", "Request submitted") }),
1187
1136
  /* @__PURE__ */ c("div", { class: "max-w-[320px] text-sm leading-relaxed text-gray-500", children: [
1188
1137
  i(
1189
1138
  "support.success_message_prefix",
1190
1139
  "We've received your message and will respond to"
1191
1140
  ),
1192
1141
  " ",
1193
- /* @__PURE__ */ n("b", { class: "text-gray-700", children: E }),
1142
+ /* @__PURE__ */ a("b", { class: "text-gray-700", children: j }),
1194
1143
  "."
1195
1144
  ] })
1196
1145
  ] }),
1197
- /* @__PURE__ */ n("div", { class: R, style: N, children: /* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-3", children: [
1198
- /* @__PURE__ */ n(
1146
+ /* @__PURE__ */ a("div", { class: U, style: B, children: /* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-3", children: [
1147
+ /* @__PURE__ */ a(
1199
1148
  "button",
1200
1149
  {
1201
1150
  type: "button",
1202
- onClick: a,
1151
+ onClick: n,
1203
1152
  class: "rounded-xl px-3 py-2 text-sm font-medium text-gray-600 transition-colors hover:bg-gray-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
1204
1153
  children: r === "standalone" ? i("support.done_button", "Done") : i("nav.back_aria", "Back")
1205
1154
  }
1206
1155
  ),
1207
- /* @__PURE__ */ n(
1156
+ /* @__PURE__ */ a(
1208
1157
  "button",
1209
1158
  {
1210
1159
  type: "button",
1211
- onClick: D,
1160
+ onClick: z,
1212
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)]",
1213
1162
  style: {
1214
1163
  background: "linear-gradient(180deg, color-mix(in srgb, var(--pw-accent) 92%, white), var(--pw-accent))",
@@ -1218,78 +1167,78 @@ function _e({ client: e, authSession: t, origin: r, onBack: a }) {
1218
1167
  }
1219
1168
  )
1220
1169
  ] }) })
1221
- ] }) : /* @__PURE__ */ c("form", { onSubmit: O, class: "relative flex-1 min-h-0 flex flex-col", children: [
1222
- /* @__PURE__ */ n(Se, { onClick: a, ariaLabel: i("nav.back_aria", "Back") }),
1223
- /* @__PURE__ */ n("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: [
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") }),
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: [
1224
1173
  /* @__PURE__ */ c("div", { class: "flex flex-col gap-2 pr-10", children: [
1225
- /* @__PURE__ */ n("h2", { class: "text-3xl font-bold tracking-tight text-gray-900", children: i("support.heading", "Support") }),
1226
- /* @__PURE__ */ n("p", { class: "text-base leading-relaxed text-gray-600", children: i("support.instruction", "Please fill out the form below to submit your support request.") })
1174
+ /* @__PURE__ */ a("h2", { class: "text-3xl font-bold tracking-tight text-gray-900", children: i("support.heading", "Support") }),
1175
+ /* @__PURE__ */ a("p", { class: "text-base leading-relaxed text-gray-600", children: i("support.instruction", "Please fill out the form below to submit your support request.") })
1227
1176
  ] }),
1228
1177
  /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
1229
1178
  s ? /* @__PURE__ */ c("div", { class: "rounded-2xl bg-gray-100 px-5 py-3 text-sm text-gray-600", children: [
1230
1179
  i("support.sending_as", "Sending as"),
1231
1180
  " ",
1232
- /* @__PURE__ */ n("b", { class: "font-medium text-gray-900", children: s })
1233
- ] }) : /* @__PURE__ */ n(
1234
- yt,
1181
+ /* @__PURE__ */ a("b", { class: "font-medium text-gray-900", children: s })
1182
+ ] }) : /* @__PURE__ */ a(
1183
+ vt,
1235
1184
  {
1236
1185
  type: "email",
1237
1186
  placeholder: i("support.email_placeholder", "Enter your email *"),
1238
- value: l,
1239
- onInput: u,
1240
- error: L.email,
1187
+ value: d,
1188
+ onInput: l,
1189
+ error: S.email,
1241
1190
  autocomplete: "email",
1242
1191
  required: !0
1243
1192
  }
1244
1193
  ),
1245
- /* @__PURE__ */ n(
1246
- yt,
1194
+ /* @__PURE__ */ a(
1195
+ vt,
1247
1196
  {
1248
1197
  type: "text",
1249
1198
  placeholder: i("support.subject_placeholder", "Enter your subject *"),
1250
- value: h,
1251
- onInput: d,
1252
- error: L.subject,
1199
+ value: g,
1200
+ onInput: p,
1201
+ error: S.subject,
1253
1202
  required: !0
1254
1203
  }
1255
1204
  ),
1256
- /* @__PURE__ */ n(
1205
+ /* @__PURE__ */ a(
1257
1206
  Ce,
1258
1207
  {
1259
1208
  placeholder: i("support.message_placeholder", "Enter your message *"),
1260
- value: p,
1209
+ value: u,
1261
1210
  onInput: x,
1262
- error: L.message,
1211
+ error: S.message,
1263
1212
  required: !0
1264
1213
  }
1265
1214
  ),
1266
- /* @__PURE__ */ n(Ie, { files: _, onChange: g, disabled: f })
1215
+ /* @__PURE__ */ a(Ie, { files: y, onChange: k, disabled: h })
1267
1216
  ] })
1268
1217
  ] }) }),
1269
- /* @__PURE__ */ c("div", { class: R, style: N, children: [
1270
- L.submit && /* @__PURE__ */ n("p", { class: "text-sm text-red-600", children: L.submit }),
1218
+ /* @__PURE__ */ c("div", { class: U, style: B, children: [
1219
+ S.submit && /* @__PURE__ */ a("p", { class: "text-sm text-red-600", children: S.submit }),
1271
1220
  /* @__PURE__ */ c("div", { class: "flex items-center justify-end gap-3", children: [
1272
- /* @__PURE__ */ n(
1221
+ /* @__PURE__ */ a(
1273
1222
  "button",
1274
1223
  {
1275
1224
  type: "button",
1276
- onClick: a,
1277
- disabled: f,
1225
+ onClick: n,
1226
+ disabled: h,
1278
1227
  class: "rounded-full px-4 py-2 text-base font-medium text-gray-700 transition-colors hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-60 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
1279
1228
  children: r === "standalone" ? i("support.close_button", "Close") : i("nav.back_aria", "Back")
1280
1229
  }
1281
1230
  ),
1282
- /* @__PURE__ */ n(
1231
+ /* @__PURE__ */ a(
1283
1232
  "button",
1284
1233
  {
1285
1234
  type: "submit",
1286
- disabled: !z || f,
1235
+ disabled: h,
1287
1236
  class: "pw-cta-shimmer relative flex h-12 items-center justify-center overflow-hidden rounded-full px-8 text-base font-semibold text-white transition-transform duration-150 active:scale-[0.98] disabled:cursor-not-allowed disabled:opacity-60 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
1288
1237
  style: {
1289
1238
  background: "linear-gradient(135deg, color-mix(in srgb, var(--pw-accent) 55%, white) 0%, var(--pw-accent) 55%, color-mix(in srgb, var(--pw-accent) 90%, black) 100%)",
1290
1239
  boxShadow: "0 0 20px 0 color-mix(in srgb, var(--pw-accent) 25%, transparent), inset 0 0 8px 0 color-mix(in srgb, white 25%, transparent)"
1291
1240
  },
1292
- children: f ? /* @__PURE__ */ n("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ n("span", { class: "relative z-10", children: i("support.send_button", "Send") })
1241
+ children: h ? /* @__PURE__ */ a("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ a("span", { class: "relative z-10", children: i("support.send_button", "Send") })
1293
1242
  }
1294
1243
  )
1295
1244
  ] })
@@ -1297,7 +1246,7 @@ function _e({ client: e, authSession: t, origin: r, onBack: a }) {
1297
1246
  ] });
1298
1247
  }
1299
1248
  function Se({ onClick: e, ariaLabel: t }) {
1300
- return /* @__PURE__ */ n(
1249
+ return /* @__PURE__ */ a(
1301
1250
  "button",
1302
1251
  {
1303
1252
  type: "button",
@@ -1305,7 +1254,7 @@ function Se({ onClick: e, ariaLabel: t }) {
1305
1254
  "aria-label": t,
1306
1255
  class: "absolute right-4 top-4 z-10 flex h-8 w-8 items-center justify-center rounded-full text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
1307
1256
  children: /* @__PURE__ */ c("svg", { width: "18", height: "18", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
1308
- /* @__PURE__ */ n(
1257
+ /* @__PURE__ */ a(
1309
1258
  "path",
1310
1259
  {
1311
1260
  d: "M5 8h8a4 4 0 0 1 0 8H9",
@@ -1315,7 +1264,7 @@ function Se({ onClick: e, ariaLabel: t }) {
1315
1264
  "stroke-linejoin": "round"
1316
1265
  }
1317
1266
  ),
1318
- /* @__PURE__ */ n(
1267
+ /* @__PURE__ */ a(
1319
1268
  "path",
1320
1269
  {
1321
1270
  d: "M8 4 4 8l4 4",
@@ -1329,40 +1278,40 @@ function Se({ onClick: e, ariaLabel: t }) {
1329
1278
  }
1330
1279
  );
1331
1280
  }
1332
- function yt({
1281
+ function vt({
1333
1282
  type: e,
1334
1283
  placeholder: t,
1335
1284
  value: r,
1336
- onInput: a,
1285
+ onInput: n,
1337
1286
  error: i,
1338
1287
  autocomplete: o,
1339
1288
  required: s
1340
1289
  }) {
1341
1290
  return /* @__PURE__ */ c("div", { children: [
1342
- /* @__PURE__ */ n(
1291
+ /* @__PURE__ */ a(
1343
1292
  "input",
1344
1293
  {
1345
1294
  type: e,
1346
1295
  value: r,
1347
1296
  placeholder: t,
1348
- onInput: (l) => a(l.target.value),
1297
+ onInput: (d) => n(d.target.value),
1349
1298
  autocomplete: o,
1350
1299
  required: s,
1351
1300
  class: `h-14 w-full rounded-2xl bg-gray-100 px-5 text-base text-gray-900 outline-none transition-all placeholder:text-gray-500 hover:bg-gray-200/60 focus:bg-gray-200/60 ${i ? "shadow-[0_0_0_2px_rgba(239,68,68,0.5)]" : "focus:shadow-[0_0_0_2px_color-mix(in_srgb,var(--pw-accent)_30%,transparent)]"}`
1352
1301
  }
1353
1302
  ),
1354
- i && /* @__PURE__ */ n("span", { class: "mt-1 ml-2 block text-sm text-red-600", children: i })
1303
+ i && /* @__PURE__ */ a("span", { class: "mt-1 ml-2 block text-sm text-red-600", children: i })
1355
1304
  ] });
1356
1305
  }
1357
1306
  function Ce({
1358
1307
  placeholder: e,
1359
1308
  value: t,
1360
1309
  onInput: r,
1361
- error: a,
1310
+ error: n,
1362
1311
  required: i
1363
1312
  }) {
1364
1313
  return /* @__PURE__ */ c("div", { children: [
1365
- /* @__PURE__ */ n(
1314
+ /* @__PURE__ */ a(
1366
1315
  "textarea",
1367
1316
  {
1368
1317
  value: t,
@@ -1370,92 +1319,92 @@ function Ce({
1370
1319
  onInput: (o) => r(o.target.value),
1371
1320
  required: i,
1372
1321
  rows: 5,
1373
- class: `min-h-[120px] w-full rounded-2xl bg-gray-100 px-5 py-3.5 text-base leading-relaxed text-gray-900 outline-none transition-all placeholder:text-gray-500 hover:bg-gray-200/60 focus:bg-gray-200/60 ${a ? "shadow-[0_0_0_2px_rgba(239,68,68,0.5)]" : "focus:shadow-[0_0_0_2px_color-mix(in_srgb,var(--pw-accent)_30%,transparent)]"}`
1322
+ class: `min-h-[120px] w-full rounded-2xl bg-gray-100 px-5 py-3.5 text-base leading-relaxed text-gray-900 outline-none transition-all placeholder:text-gray-500 hover:bg-gray-200/60 focus:bg-gray-200/60 ${n ? "shadow-[0_0_0_2px_rgba(239,68,68,0.5)]" : "focus:shadow-[0_0_0_2px_color-mix(in_srgb,var(--pw-accent)_30%,transparent)]"}`
1374
1323
  }
1375
1324
  ),
1376
- a && /* @__PURE__ */ n("span", { class: "mt-1 ml-2 block text-sm text-red-600", children: a })
1325
+ n && /* @__PURE__ */ a("span", { class: "mt-1 ml-2 block text-sm text-red-600", children: n })
1377
1326
  ] });
1378
1327
  }
1379
1328
  function Ie({ files: e, onChange: t, disabled: r }) {
1380
- const { t: a } = v(), i = F(null), [o, s] = b(!1), [l, u] = b(null), h = (d) => {
1381
- if (!d || r) return;
1382
- u(null);
1383
- const p = Array.from(d);
1384
- if (e.length + p.length > at) {
1385
- u(a("support.too_many_files", "Up to {max} files", { max: at }));
1329
+ const { t: n } = v(), i = F(null), [o, s] = b(!1), [d, l] = b(null), g = (p) => {
1330
+ if (!p || r) return;
1331
+ l(null);
1332
+ const u = Array.from(p);
1333
+ if (e.length + u.length > it) {
1334
+ l(n("support.too_many_files", "Up to {max} files", { max: it }));
1386
1335
  return;
1387
1336
  }
1388
- const x = p.filter(
1389
- (_) => xt.includes(_.type) && _.size <= ke
1337
+ const x = u.filter(
1338
+ (y) => yt.includes(y.type) && y.size <= ve
1390
1339
  );
1391
- if (x.length !== p.length) {
1392
- u(a("support.invalid_file", "Only JPEG/PNG/WebP, ≤ 10MB each"));
1340
+ if (x.length !== u.length) {
1341
+ l(n("support.invalid_file", "Only JPEG/PNG/WebP, ≤ 10MB each"));
1393
1342
  return;
1394
1343
  }
1395
1344
  t([...e, ...x]);
1396
1345
  };
1397
1346
  return /* @__PURE__ */ c("div", { children: [
1398
- /* @__PURE__ */ n("span", { class: "text-xs font-medium text-gray-700", children: a("support.attachments_label", "Attachments (optional)") }),
1347
+ /* @__PURE__ */ a("span", { class: "text-xs font-medium text-gray-700", children: n("support.attachments_label", "Attachments (optional)") }),
1399
1348
  /* @__PURE__ */ c(
1400
1349
  "div",
1401
1350
  {
1402
1351
  role: "button",
1403
1352
  tabIndex: 0,
1404
- "aria-label": a("support.attachments_aria", "Attachments upload"),
1353
+ "aria-label": n("support.attachments_aria", "Attachments upload"),
1405
1354
  onClick: () => !r && i.current?.click(),
1406
- onDragOver: (d) => {
1407
- d.preventDefault(), r || s(!0);
1355
+ onDragOver: (p) => {
1356
+ p.preventDefault(), r || s(!0);
1408
1357
  },
1409
1358
  onDragLeave: () => s(!1),
1410
- onDrop: (d) => {
1411
- d.preventDefault(), s(!1), h(d.dataTransfer?.files ?? null);
1359
+ onDrop: (p) => {
1360
+ p.preventDefault(), s(!1), g(p.dataTransfer?.files ?? null);
1412
1361
  },
1413
1362
  class: `mt-1.5 cursor-pointer rounded-2xl border border-dashed p-3.5 text-center transition-all ${o ? "border-[var(--pw-accent)] bg-[color-mix(in_srgb,var(--pw-accent)_6%,white)]" : "border-gray-300 hover:border-gray-400 hover:bg-gray-50/60"} ${r ? "cursor-not-allowed opacity-60" : ""}`,
1414
1363
  children: [
1415
- /* @__PURE__ */ n("div", { class: "text-xs text-gray-500", children: a("support.dropzone_text", "Drop images here or click to select") }),
1416
- /* @__PURE__ */ n("div", { class: "mt-0.5 text-[11px] text-gray-400", children: a("support.file_requirements", "JPEG/PNG/WebP, up to {max} files, ≤ 10MB each", {
1417
- max: at
1364
+ /* @__PURE__ */ a("div", { class: "text-xs text-gray-500", children: n("support.dropzone_text", "Drop images here or click to select") }),
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", {
1366
+ max: it
1418
1367
  }) })
1419
1368
  ]
1420
1369
  }
1421
1370
  ),
1422
- /* @__PURE__ */ n(
1371
+ /* @__PURE__ */ a(
1423
1372
  "input",
1424
1373
  {
1425
1374
  ref: i,
1426
1375
  type: "file",
1427
1376
  multiple: !0,
1428
- accept: xt.join(","),
1377
+ accept: yt.join(","),
1429
1378
  class: "hidden",
1430
- onChange: (d) => {
1431
- h(d.target.files), d.currentTarget.value = "";
1379
+ onChange: (p) => {
1380
+ g(p.target.files), p.currentTarget.value = "";
1432
1381
  }
1433
1382
  }
1434
1383
  ),
1435
- l && /* @__PURE__ */ n("p", { class: "mt-1 text-xs text-red-600", children: l }),
1436
- e.length > 0 && /* @__PURE__ */ n("ul", { class: "mt-2 flex flex-col gap-1", children: e.map((d, p) => /* @__PURE__ */ c(
1384
+ d && /* @__PURE__ */ a("p", { class: "mt-1 text-xs text-red-600", children: d }),
1385
+ e.length > 0 && /* @__PURE__ */ a("ul", { class: "mt-2 flex flex-col gap-1", children: e.map((p, u) => /* @__PURE__ */ c(
1437
1386
  "li",
1438
1387
  {
1439
1388
  class: "flex items-center justify-between gap-2 rounded bg-gray-50 px-2 py-1 text-xs",
1440
1389
  children: [
1441
- /* @__PURE__ */ n("span", { class: "truncate text-gray-700", children: d.name }),
1442
- /* @__PURE__ */ n(
1390
+ /* @__PURE__ */ a("span", { class: "truncate text-gray-700", children: p.name }),
1391
+ /* @__PURE__ */ a(
1443
1392
  "button",
1444
1393
  {
1445
1394
  type: "button",
1446
1395
  onClick: () => {
1447
1396
  const x = [...e];
1448
- x.splice(p, 1), t(x);
1397
+ x.splice(u, 1), t(x);
1449
1398
  },
1450
1399
  disabled: r,
1451
1400
  class: "text-gray-500 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-60",
1452
- "aria-label": a("support.remove_file_aria", "Remove {filename}", { filename: d.name }),
1401
+ "aria-label": n("support.remove_file_aria", "Remove {filename}", { filename: p.name }),
1453
1402
  children: "✕"
1454
1403
  }
1455
1404
  )
1456
1405
  ]
1457
1406
  },
1458
- `${d.name}-${d.size}-${p}`
1407
+ `${p.name}-${p.size}-${u}`
1459
1408
  )) })
1460
1409
  ] });
1461
1410
  }
@@ -1470,15 +1419,15 @@ const Ae = {
1470
1419
  month: "Get Monthly Plan",
1471
1420
  year: "Get Yearly Plan"
1472
1421
  };
1473
- function Le(e, t, r, a) {
1474
- if (t === "close") return a("cta.close", "Close");
1475
- if (!e) return a("cta.continue", "Continue");
1422
+ function Le(e, t, r, n) {
1423
+ if (t === "close") return n("cta.close", "Close");
1424
+ if (!e) return n("cta.continue", "Continue");
1476
1425
  if (!r && e.trial_days && e.interval && e.interval !== "lifetime")
1477
- return a("cta.start_trial", "Start {days}-Day Free Trial", { days: e.trial_days });
1426
+ return n("cta.start_trial", "Start {days}-Day Free Trial", { days: e.trial_days });
1478
1427
  if (!e.interval || e.interval === "lifetime")
1479
- return a("cta.get_lifetime_access", "Get Lifetime Access");
1428
+ return n("cta.get_lifetime_access", "Get Lifetime Access");
1480
1429
  const i = Ae[e.interval];
1481
- return i ? a(i, Me[e.interval]) : a("cta.get_plan_generic", "Get {interval} Plan", {
1430
+ return i ? n(i, Me[e.interval]) : n("cta.get_plan_generic", "Get {interval} Plan", {
1482
1431
  interval: Pe(e.interval)
1483
1432
  });
1484
1433
  }
@@ -1486,7 +1435,7 @@ function Pe(e) {
1486
1435
  return e.length ? e[0].toUpperCase() + e.slice(1) : e;
1487
1436
  }
1488
1437
  function Te({ block: e, ctx: t }) {
1489
- const { t: r } = v(), [a, i] = b(!1), o = e.priceId ?? t.selectedPriceId, s = a || e.action === "checkout" && !o, l = o ? t.bootstrap.prices.find((p) => p.id === o) ?? null : null, u = t.bootstrap.user?.had_previous_trial ?? !1, h = e.label ?? Le(l, e.action, u, r);
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);
1490
1439
  return /* @__PURE__ */ c(
1491
1440
  "button",
1492
1441
  {
@@ -1508,7 +1457,7 @@ function Te({ block: e, ctx: t }) {
1508
1457
  boxShadow: "0 0 20px 0 color-mix(in srgb, var(--pw-accent) 25%, transparent), inset 0 0 8px 0 color-mix(in srgb, white 25%, transparent)"
1509
1458
  },
1510
1459
  children: [
1511
- /* @__PURE__ */ n(
1460
+ /* @__PURE__ */ a(
1512
1461
  "span",
1513
1462
  {
1514
1463
  class: "absolute inset-0 opacity-40",
@@ -1518,19 +1467,19 @@ function Te({ block: e, ctx: t }) {
1518
1467
  "aria-hidden": "true"
1519
1468
  }
1520
1469
  ),
1521
- a ? /* @__PURE__ */ n("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ n("span", { class: "relative z-10", children: h })
1470
+ n ? /* @__PURE__ */ a("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ a("span", { class: "relative z-10", children: g })
1522
1471
  ]
1523
1472
  }
1524
1473
  );
1525
1474
  }
1526
1475
  function Ee({ ctx: e }) {
1527
- const { t } = v(), r = e.authSession, a = e.auth, [i, o] = b(!1), s = () => e.onAction("support");
1476
+ const { t } = v(), r = e.authSession, n = e.auth, [i, o] = b(!1), s = () => e.onAction("support");
1528
1477
  if (r && !r.user.is_anonymous) {
1529
- const l = async () => {
1530
- if (!(!a || i)) {
1478
+ const d = async () => {
1479
+ if (!(!n || i)) {
1531
1480
  o(!0);
1532
1481
  try {
1533
- await a.signOut();
1482
+ await n.signOut();
1534
1483
  } catch {
1535
1484
  } finally {
1536
1485
  o(!1);
@@ -1541,19 +1490,19 @@ function Ee({ ctx: e }) {
1541
1490
  /* @__PURE__ */ c("span", { children: [
1542
1491
  t("session.signed_in_as_prefix", "Signed in as"),
1543
1492
  " ",
1544
- /* @__PURE__ */ n("b", { class: "font-medium text-gray-700", children: r.user.email })
1493
+ /* @__PURE__ */ a("b", { class: "font-medium text-gray-700", children: r.user.email })
1545
1494
  ] }),
1546
1495
  /* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-3", children: [
1547
- /* @__PURE__ */ n(G, { onClick: l, disabled: !a || i, children: i ? t("session.signing_out", "Signing out…") : t("session.sign_out", "Sign Out") }),
1548
- /* @__PURE__ */ n(kt, {}),
1549
- /* @__PURE__ */ n(G, { onClick: s, children: t("session.contact_support", "Contact Support") })
1496
+ /* @__PURE__ */ a(G, { onClick: d, disabled: !n || i, children: i ? t("session.signing_out", "Signing out…") : t("session.sign_out", "Sign Out") }),
1497
+ /* @__PURE__ */ a(kt, {}),
1498
+ /* @__PURE__ */ a(G, { onClick: s, children: t("session.contact_support", "Contact Support") })
1550
1499
  ] })
1551
1500
  ] });
1552
1501
  }
1553
1502
  return /* @__PURE__ */ c("div", { class: "-mt-3 flex items-center justify-center gap-3 pt-1 text-center text-[13px]", children: [
1554
- /* @__PURE__ */ n(G, { onClick: () => e.onAction("restore"), children: t("session.restore_purchases", "Restore purchases") }),
1555
- /* @__PURE__ */ n(kt, {}),
1556
- /* @__PURE__ */ n(G, { onClick: s, children: t("session.contact_support", "Contact Support") })
1503
+ /* @__PURE__ */ a(G, { onClick: () => e.onAction("restore"), children: t("session.restore_purchases", "Restore purchases") }),
1504
+ /* @__PURE__ */ a(kt, {}),
1505
+ /* @__PURE__ */ a(G, { onClick: s, children: t("session.contact_support", "Contact Support") })
1557
1506
  ] });
1558
1507
  }
1559
1508
  function G({
@@ -1561,7 +1510,7 @@ function G({
1561
1510
  disabled: t,
1562
1511
  children: r
1563
1512
  }) {
1564
- return /* @__PURE__ */ n(
1513
+ return /* @__PURE__ */ a(
1565
1514
  "button",
1566
1515
  {
1567
1516
  type: "button",
@@ -1574,11 +1523,11 @@ function G({
1574
1523
  );
1575
1524
  }
1576
1525
  function kt() {
1577
- return /* @__PURE__ */ n("span", { class: "h-1 w-1 rounded-full bg-gray-300", "aria-hidden": "true" });
1526
+ return /* @__PURE__ */ a("span", { class: "h-1 w-1 rounded-full bg-gray-300", "aria-hidden": "true" });
1578
1527
  }
1579
1528
  function je({ block: e }) {
1580
- return e.items.length ? /* @__PURE__ */ n("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: [
1581
- /* @__PURE__ */ n(
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: [
1530
+ /* @__PURE__ */ a(
1582
1531
  "svg",
1583
1532
  {
1584
1533
  width: "18",
@@ -1587,7 +1536,7 @@ function je({ block: e }) {
1587
1536
  fill: "none",
1588
1537
  class: "mt-0.5 flex-shrink-0 text-emerald-500",
1589
1538
  "aria-hidden": "true",
1590
- children: /* @__PURE__ */ n(
1539
+ children: /* @__PURE__ */ a(
1591
1540
  "path",
1592
1541
  {
1593
1542
  d: "M4 10.5l3.5 3.5 8.5-8.5",
@@ -1600,23 +1549,23 @@ function je({ block: e }) {
1600
1549
  }
1601
1550
  ),
1602
1551
  /* @__PURE__ */ c("div", { class: "flex flex-col gap-0.5", children: [
1603
- /* @__PURE__ */ n("span", { class: "font-medium leading-snug text-gray-900", children: t.name }),
1604
- t.desc ? /* @__PURE__ */ n("span", { class: "text-xs leading-relaxed text-gray-400", children: t.desc }) : null
1552
+ /* @__PURE__ */ a("span", { class: "font-medium leading-snug text-gray-900", children: t.name }),
1553
+ t.desc ? /* @__PURE__ */ a("span", { class: "text-xs leading-relaxed text-gray-400", children: t.desc }) : null
1605
1554
  ] })
1606
1555
  ] }, t.id)) }) : null;
1607
1556
  }
1608
1557
  function ze({ block: e }) {
1609
- const { t } = v(), r = e.title ?? t("pricing.money_back", "30-day money-back guarantee"), a = e.subtitle, i = (e.icon ?? "dollar_shield") !== "none", o = Be(r);
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);
1610
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: [
1611
1560
  /* @__PURE__ */ c("div", { class: "inline-flex items-center gap-2 text-[12px] text-gray-700", children: [
1612
- i ? /* @__PURE__ */ n(Oe, {}) : null,
1561
+ i ? /* @__PURE__ */ a(Oe, {}) : null,
1613
1562
  o ? /* @__PURE__ */ c("span", { children: [
1614
- /* @__PURE__ */ n("b", { class: "font-bold text-gray-900", children: o.bold }),
1563
+ /* @__PURE__ */ a("b", { class: "font-bold text-gray-900", children: o.bold }),
1615
1564
  " ",
1616
- /* @__PURE__ */ n("span", { class: "font-medium", children: o.rest })
1617
- ] }) : /* @__PURE__ */ n("span", { class: "font-medium", children: r })
1565
+ /* @__PURE__ */ a("span", { class: "font-medium", children: o.rest })
1566
+ ] }) : /* @__PURE__ */ a("span", { class: "font-medium", children: r })
1618
1567
  ] }),
1619
- a ? /* @__PURE__ */ n("span", { class: "text-center text-xs leading-relaxed text-gray-500", children: a }) : null
1568
+ n ? /* @__PURE__ */ a("span", { class: "text-center text-xs leading-relaxed text-gray-500", children: n }) : null
1620
1569
  ] });
1621
1570
  }
1622
1571
  function Be(e) {
@@ -1635,7 +1584,7 @@ function Oe() {
1635
1584
  class: "flex-shrink-0 text-emerald-500",
1636
1585
  "aria-hidden": "true",
1637
1586
  children: [
1638
- /* @__PURE__ */ n(
1587
+ /* @__PURE__ */ a(
1639
1588
  "path",
1640
1589
  {
1641
1590
  d: "M12 2 4 5v6c0 5.25 3.5 9.5 8 11 4.5-1.5 8-5.75 8-11V5l-8-3Z",
@@ -1644,7 +1593,7 @@ function Oe() {
1644
1593
  "stroke-linejoin": "round"
1645
1594
  }
1646
1595
  ),
1647
- /* @__PURE__ */ n(
1596
+ /* @__PURE__ */ a(
1648
1597
  "path",
1649
1598
  {
1650
1599
  d: "m9 12 2 2 4-4",
@@ -1658,20 +1607,20 @@ function Oe() {
1658
1607
  }
1659
1608
  );
1660
1609
  }
1661
- const Rt = 24, Fe = 16, Re = 2;
1610
+ const Ft = 24, Fe = 16, Re = 2;
1662
1611
  function Ue(e, t) {
1663
1612
  const r = t * Re;
1664
- let a = Rt;
1665
- for (e.style.fontSize = `${a}px`; e.scrollHeight > r && a > Fe; )
1666
- a -= 1, e.style.fontSize = `${a}px`;
1613
+ let n = Ft;
1614
+ for (e.style.fontSize = `${n}px`; e.scrollHeight > r && n > Fe; )
1615
+ n -= 1, e.style.fontSize = `${n}px`;
1667
1616
  }
1668
1617
  function De({ block: e, ctx: t }) {
1669
- const r = e.level ?? 1, a = `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;
1670
- return 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(() => {
1671
1620
  if (!s || !o.current) return;
1672
- const l = getComputedStyle(o.current), u = parseFloat(l.lineHeight) || Rt * 1.5;
1673
- Ue(o.current, u);
1674
- }, [s, e.text]), /* @__PURE__ */ n(a, { ref: o, class: i, children: e.text });
1621
+ const d = getComputedStyle(o.current), l = parseFloat(d.lineHeight) || Ft * 1.5;
1622
+ Ue(o.current, l);
1623
+ }, [s, e.text]), /* @__PURE__ */ a(n, { ref: o, class: i, children: e.text });
1675
1624
  }
1676
1625
  function Ne(e) {
1677
1626
  const t = e.local ?? { currency: e.currency, amount: e.amount };
@@ -1681,10 +1630,10 @@ function Ne(e) {
1681
1630
  }
1682
1631
  return { amount: t.amount, currency: t.currency };
1683
1632
  }
1684
- function ot(e, t) {
1633
+ function nt(e, t) {
1685
1634
  const r = e % 1 !== 0 ? 2 : 0;
1686
1635
  try {
1687
- const a = new Intl.NumberFormat(void 0, {
1636
+ const n = new Intl.NumberFormat(void 0, {
1688
1637
  style: "currency",
1689
1638
  currency: t,
1690
1639
  currencyDisplay: "narrowSymbol",
@@ -1692,20 +1641,20 @@ function ot(e, t) {
1692
1641
  minimumFractionDigits: r
1693
1642
  }).formatToParts(e);
1694
1643
  let i = "", o = "";
1695
- for (const s of a)
1644
+ for (const s of n)
1696
1645
  s.type === "currency" ? i = s.value : s.type !== "literal" && (o += s.value);
1697
1646
  return { currency: i || t, amount: o.trim() };
1698
1647
  } catch {
1699
1648
  return { currency: t, amount: String(e) };
1700
1649
  }
1701
1650
  }
1702
- function lt(e, t) {
1703
- const { amount: r, currency: a } = Ne(e);
1651
+ function st(e, t) {
1652
+ const { amount: r, currency: n } = Ne(e);
1704
1653
  if (!t) {
1705
- const { currency: l, amount: u } = ot(r, a);
1706
- return { currency: l, amount: u, originalAmount: null };
1654
+ const { currency: d, amount: l } = nt(r, n);
1655
+ return { currency: d, amount: l, originalAmount: null };
1707
1656
  }
1708
- const i = r * (1 - t / 100), o = ot(i, a), s = ot(r, a);
1657
+ const i = r * (1 - t / 100), o = nt(i, n), s = nt(r, n);
1709
1658
  return {
1710
1659
  currency: o.currency,
1711
1660
  amount: o.amount,
@@ -1721,42 +1670,42 @@ function q(e, t) {
1721
1670
  (i) => i.price_id == null && i.discount_percent && i.discount_percent > 0
1722
1671
  ) ?? null);
1723
1672
  }
1724
- function Ut(e, t) {
1673
+ function Rt(e, t) {
1725
1674
  if (e.label) return e.label.toUpperCase();
1726
1675
  if (!e.interval || e.interval === "lifetime")
1727
1676
  return t("pricing.plan_label.lifetime", "LIFETIME");
1728
- const a = {
1677
+ const n = {
1729
1678
  day: { key: "pricing.plan_label.daily", fallback: "DAILY PLAN" },
1730
1679
  week: { key: "pricing.plan_label.weekly", fallback: "WEEKLY PLAN" },
1731
1680
  month: { key: "pricing.plan_label.monthly", fallback: "MONTHLY PLAN" },
1732
1681
  year: { key: "pricing.plan_label.yearly", fallback: "YEARLY PLAN" }
1733
1682
  }[e.interval];
1734
- return a ? t(a.key, a.fallback) : `${e.interval.toUpperCase()} PLAN`;
1683
+ return n ? t(n.key, n.fallback) : `${e.interval.toUpperCase()} PLAN`;
1735
1684
  }
1736
- function ct(e, t) {
1685
+ function lt(e, t) {
1737
1686
  if (!e.interval || e.interval === "lifetime")
1738
1687
  return t("pricing.interval.lifetime_short", "lifetime");
1739
1688
  if (e.interval === "year") return t("pricing.interval.month", "month");
1740
1689
  const r = e.interval_count ?? 1;
1741
1690
  return r === 1 ? t(`pricing.interval.${e.interval}`, e.interval) : `${r} ${e.interval}s`;
1742
1691
  }
1743
- function He({ block: e, ctx: t }) {
1744
- const { t: r } = v(), a = e.priceIds && e.priceIds.length > 0 ? new Set(e.priceIds) : null, i = t.bootstrap.prices.filter((s) => !a || a.has(s.id));
1692
+ function $e({ block: e, ctx: t }) {
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));
1745
1694
  if (i.length === 0)
1746
- return /* @__PURE__ */ n("p", { class: "text-sm text-gray-500", children: r("pricing.no_prices", "No prices available.") });
1695
+ return /* @__PURE__ */ a("p", { class: "text-sm text-gray-500", children: r("pricing.no_prices", "No prices available.") });
1747
1696
  const o = e.popular_label ?? r("pricing.most_popular", "Most popular");
1748
1697
  if (e.view === "compact")
1749
- return /* @__PURE__ */ n(
1698
+ return /* @__PURE__ */ a(
1750
1699
  "div",
1751
1700
  {
1752
1701
  class: "flex w-full flex-col rounded-xl border border-gray-200 bg-gray-50",
1753
1702
  role: "radiogroup",
1754
1703
  "aria-label": r("pricing.plans_aria", "Plans"),
1755
- children: i.map((s, l) => /* @__PURE__ */ n(
1756
- $e,
1704
+ children: i.map((s, d) => /* @__PURE__ */ a(
1705
+ Ve,
1757
1706
  {
1758
1707
  price: s,
1759
- isLast: l === i.length - 1,
1708
+ isLast: d === i.length - 1,
1760
1709
  isPopular: e.popular_price_id === s.id,
1761
1710
  popularLabel: o,
1762
1711
  offer: q(t.bootstrap.offers, s.id),
@@ -1771,49 +1720,49 @@ function He({ block: e, ctx: t }) {
1771
1720
  }
1772
1721
  );
1773
1722
  if (e.view === "horizontal") {
1774
- const s = Math.min(i.length, 3), l = i.some(
1775
- (u) => (q(t.bootstrap.offers, u.id)?.discount_percent ?? 0) > 0
1723
+ const s = Math.min(i.length, 3), d = i.some(
1724
+ (l) => (q(t.bootstrap.offers, l.id)?.discount_percent ?? 0) > 0
1776
1725
  );
1777
- return /* @__PURE__ */ n(
1726
+ return /* @__PURE__ */ a(
1778
1727
  "div",
1779
1728
  {
1780
1729
  class: "grid items-stretch gap-2",
1781
1730
  style: { gridTemplateColumns: `repeat(${s}, minmax(0, 1fr))` },
1782
1731
  role: "radiogroup",
1783
1732
  "aria-label": r("pricing.plans_aria", "Plans"),
1784
- children: i.map((u) => /* @__PURE__ */ n(
1733
+ children: i.map((l) => /* @__PURE__ */ a(
1785
1734
  Ge,
1786
1735
  {
1787
- price: u,
1788
- isPopular: e.popular_price_id === u.id,
1736
+ price: l,
1737
+ isPopular: e.popular_price_id === l.id,
1789
1738
  popularLabel: o,
1790
- offer: q(t.bootstrap.offers, u.id),
1791
- reserveStrikeRow: l,
1792
- selected: t.selectedPriceId === u.id,
1739
+ offer: q(t.bootstrap.offers, l.id),
1740
+ reserveStrikeRow: d,
1741
+ selected: t.selectedPriceId === l.id,
1793
1742
  onSelect: () => {
1794
- t.setSelectedPriceId(u.id), t.onAction("price_selected", { priceId: u.id, price: u });
1743
+ t.setSelectedPriceId(l.id), t.onAction("price_selected", { priceId: l.id, price: l });
1795
1744
  },
1796
1745
  t: r
1797
1746
  },
1798
- u.id
1747
+ l.id
1799
1748
  ))
1800
1749
  }
1801
1750
  );
1802
1751
  }
1803
- return /* @__PURE__ */ n(
1752
+ return /* @__PURE__ */ a(
1804
1753
  "div",
1805
1754
  {
1806
1755
  class: "flex flex-col gap-2",
1807
1756
  role: "radiogroup",
1808
1757
  "aria-label": r("pricing.plans_aria", "Plans"),
1809
1758
  children: i.map((s) => {
1810
- const l = t.selectedPriceId === s.id, u = e.popular_price_id === s.id, d = q(t.bootstrap.offers, s.id)?.discount_percent ?? null, { currency: p, amount: x, originalAmount: _ } = lt(s, d);
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);
1811
1760
  return /* @__PURE__ */ c(
1812
1761
  "button",
1813
1762
  {
1814
1763
  type: "button",
1815
1764
  role: "radio",
1816
- "aria-checked": l,
1765
+ "aria-checked": d,
1817
1766
  onClick: () => {
1818
1767
  t.setSelectedPriceId(s.id), t.onAction("price_selected", { priceId: s.id, price: s });
1819
1768
  },
@@ -1822,26 +1771,26 @@ function He({ block: e, ctx: t }) {
1822
1771
  // Везде border 2px — selection выражается только цветом, layout
1823
1772
  // не прыгает (равная толщина у selected/unselected). Цветовая
1824
1773
  // разница accent vs gray достаточно сильная для visual hierarchy.
1825
- l ? "border-[var(--pw-accent)] bg-transparent" : "border-gray-200 bg-transparent hover:bg-gray-50"
1774
+ d ? "border-[var(--pw-accent)] bg-transparent" : "border-gray-200 bg-transparent hover:bg-gray-50"
1826
1775
  ].join(" "),
1827
1776
  children: [
1828
- /* @__PURE__ */ n(
1777
+ /* @__PURE__ */ a(
1829
1778
  "span",
1830
1779
  {
1831
1780
  class: [
1832
1781
  "flex h-6.5 w-6.5 flex-shrink-0 items-center justify-center rounded-full border transition-colors",
1833
- l ? "border-[var(--pw-accent)] text-white" : "border-gray-300 bg-transparent text-transparent",
1782
+ d ? "border-[var(--pw-accent)] text-white" : "border-gray-300 bg-transparent text-transparent",
1834
1783
  // Popular-label badge сидит absolute сверху-справа карточки и
1835
1784
  // визуально сдвигает центр content'а вниз. flex items-center
1836
1785
  // на карточке держит галочку по геометрическому центру, что
1837
1786
  // делает её визуально выше — компенсируем небольшим mt'ом.
1838
- u ? "mt-3" : ""
1787
+ l ? "mt-3" : ""
1839
1788
  ].join(" "),
1840
- style: l ? {
1789
+ style: d ? {
1841
1790
  background: "linear-gradient(135deg, color-mix(in srgb, var(--pw-accent) 70%, white) 0%, var(--pw-accent) 50%, color-mix(in srgb, var(--pw-accent) 85%, black) 100%)"
1842
1791
  } : void 0,
1843
1792
  "aria-hidden": "true",
1844
- children: /* @__PURE__ */ n(
1793
+ children: /* @__PURE__ */ a(
1845
1794
  "svg",
1846
1795
  {
1847
1796
  width: "14",
@@ -1849,8 +1798,8 @@ function He({ block: e, ctx: t }) {
1849
1798
  viewBox: "0 0 17 12",
1850
1799
  fill: "none",
1851
1800
  xmlns: "http://www.w3.org/2000/svg",
1852
- class: l ? "opacity-100" : "opacity-0",
1853
- children: /* @__PURE__ */ n(
1801
+ class: d ? "opacity-100" : "opacity-0",
1802
+ children: /* @__PURE__ */ a(
1854
1803
  "path",
1855
1804
  {
1856
1805
  d: "M16.5234 0.476562C16.9805 0.898438 16.9805 1.63672 16.5234 2.05859L7.52344 11.0586C7.10156 11.5156 6.36328 11.5156 5.94141 11.0586L1.44141 6.55859C0.984375 6.13672 0.984375 5.39844 1.44141 4.97656C1.86328 4.51953 2.60156 4.51953 3.02344 4.97656L6.75 8.66797L14.9414 0.476562C15.3633 0.0195312 16.1016 0.0195312 16.5234 0.476562Z",
@@ -1863,35 +1812,35 @@ function He({ block: e, ctx: t }) {
1863
1812
  ),
1864
1813
  /* @__PURE__ */ c("div", { class: "flex flex-1 flex-col gap-0.5", children: [
1865
1814
  /* @__PURE__ */ c("div", { class: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
1866
- /* @__PURE__ */ n("span", { class: "text-xs font-normal uppercase tracking-normal text-gray-800/70", children: Ut(s, r) }),
1867
- _ ? (
1815
+ /* @__PURE__ */ a("span", { class: "text-xs font-normal uppercase tracking-normal text-gray-800/70", children: Rt(s, r) }),
1816
+ y ? (
1868
1817
  // opacity-60 приглушает strike: глаз сначала ловит label
1869
1818
  // и discount-badge, потом main price; original «бывшая цена»
1870
1819
  // — третичная информация, не должна конкурировать с label.
1871
- /* @__PURE__ */ n("span", { class: "text-[15px] font-normal text-gray-400 opacity-60 line-through decoration-gray-400 decoration-[1.5px]", children: _ })
1820
+ /* @__PURE__ */ a("span", { class: "text-[15px] font-normal text-gray-400 opacity-60 line-through decoration-gray-400 decoration-[1.5px]", children: y })
1872
1821
  ) : null,
1873
- d ? (
1822
+ p ? (
1874
1823
  // Emerald pill — фиксированный «успех/выгода», не зависит от
1875
1824
  // brand_color. Читается даже на тёмных бренд-акцентах.
1876
1825
  /* @__PURE__ */ c("span", { class: "rounded-full bg-emerald-100 px-2.5 py-1 text-xs font-bold leading-none text-emerald-700", children: [
1877
1826
  "-",
1878
- d,
1827
+ p,
1879
1828
  "%"
1880
1829
  ] })
1881
1830
  ) : null
1882
1831
  ] }),
1883
- /* @__PURE__ */ n("div", { class: "flex items-baseline gap-2 flex-wrap", children: /* @__PURE__ */ c("span", { class: "text-[26px] leading-tight whitespace-nowrap text-gray-800 font-medium", children: [
1884
- /* @__PURE__ */ n("span", { class: "opacity-90", children: p }),
1832
+ /* @__PURE__ */ a("div", { class: "flex items-baseline gap-2 flex-wrap", children: /* @__PURE__ */ c("span", { class: "text-[26px] leading-tight whitespace-nowrap text-gray-800 font-medium", children: [
1833
+ /* @__PURE__ */ a("span", { class: "opacity-90", children: u }),
1885
1834
  x,
1886
1835
  /* @__PURE__ */ c("span", { class: "text-sm font-normal text-gray-500", children: [
1887
1836
  " ",
1888
1837
  "/ ",
1889
- ct(s, r)
1838
+ lt(s, r)
1890
1839
  ] })
1891
1840
  ] }) }),
1892
- s.description ? /* @__PURE__ */ n("span", { class: "mt-1 text-xs leading-relaxed text-gray-500", children: s.description }) : null
1841
+ s.description ? /* @__PURE__ */ a("span", { class: "mt-1 text-xs leading-relaxed text-gray-500", children: s.description }) : null
1893
1842
  ] }),
1894
- u ? /* @__PURE__ */ n(
1843
+ l ? /* @__PURE__ */ a(
1895
1844
  "span",
1896
1845
  {
1897
1846
  class: "absolute -top-[9px] -right-[6px] rounded-[11px] border-[5px] border-white px-2 py-1 text-[12px] font-semibold text-white",
@@ -1907,20 +1856,20 @@ function He({ block: e, ctx: t }) {
1907
1856
  }
1908
1857
  );
1909
1858
  }
1910
- function Ve(e, t) {
1859
+ function He(e, t) {
1911
1860
  return e.label ? e.label : !e.interval || e.interval === "lifetime" ? t("pricing.interval.lifetime_short", "lifetime") : t(`pricing.interval.${e.interval}`, e.interval);
1912
1861
  }
1913
- function $e({
1862
+ function Ve({
1914
1863
  price: e,
1915
1864
  isLast: t,
1916
1865
  isPopular: r,
1917
- popularLabel: a,
1866
+ popularLabel: n,
1918
1867
  offer: i,
1919
1868
  selected: o,
1920
1869
  onSelect: s,
1921
- t: l
1870
+ t: d
1922
1871
  }) {
1923
- const u = i?.discount_percent ?? null, { currency: h, amount: d, originalAmount: p } = lt(e, u);
1872
+ const l = i?.discount_percent ?? null, { currency: g, amount: p, originalAmount: u } = st(e, l);
1924
1873
  return /* @__PURE__ */ c(
1925
1874
  "button",
1926
1875
  {
@@ -1930,7 +1879,7 @@ function $e({
1930
1879
  onClick: s,
1931
1880
  class: "group relative inline-flex w-full max-w-[360px] mx-auto items-center justify-between gap-4 px-4 pt-3.5 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--pw-accent)]",
1932
1881
  children: [
1933
- /* @__PURE__ */ n(
1882
+ /* @__PURE__ */ a(
1934
1883
  "span",
1935
1884
  {
1936
1885
  class: [
@@ -1941,7 +1890,7 @@ function $e({
1941
1890
  background: "linear-gradient(135deg, color-mix(in srgb, var(--pw-accent) 70%, white) 0%, var(--pw-accent) 50%, color-mix(in srgb, var(--pw-accent) 85%, black) 100%)"
1942
1891
  } : void 0,
1943
1892
  "aria-hidden": "true",
1944
- children: /* @__PURE__ */ n(
1893
+ children: /* @__PURE__ */ a(
1945
1894
  "svg",
1946
1895
  {
1947
1896
  width: "14",
@@ -1950,7 +1899,7 @@ function $e({
1950
1899
  fill: "none",
1951
1900
  xmlns: "http://www.w3.org/2000/svg",
1952
1901
  class: o ? "opacity-100" : "opacity-0",
1953
- children: /* @__PURE__ */ n(
1902
+ children: /* @__PURE__ */ a(
1954
1903
  "path",
1955
1904
  {
1956
1905
  d: "M16.5234 0.476562C16.9805 0.898438 16.9805 1.63672 16.5234 2.05859L7.52344 11.0586C7.10156 11.5156 6.36328 11.5156 5.94141 11.0586L1.44141 6.55859C0.984375 6.13672 0.984375 5.39844 1.44141 4.97656C1.86328 4.51953 2.60156 4.51953 3.02344 4.97656L6.75 8.66797L14.9414 0.476562C15.3633 0.0195312 16.1016 0.0195312 16.5234 0.476562Z",
@@ -1970,12 +1919,12 @@ function $e({
1970
1919
  ].join(" "),
1971
1920
  children: [
1972
1921
  /* @__PURE__ */ c("div", { class: "flex flex-wrap items-center gap-1 gap-x-1.5", children: [
1973
- /* @__PURE__ */ n("span", { class: "text-base font-normal capitalize text-gray-800", children: Ve(e, l) }),
1922
+ /* @__PURE__ */ a("span", { class: "text-base font-normal capitalize text-gray-800", children: He(e, d) }),
1974
1923
  r ? (
1975
1924
  // Pastel brand-mix pill — точно как `badge` в TelegramPricingRadio.
1976
1925
  // Низкий visual weight: pill про "имя плана" (most popular), а не
1977
1926
  // про savings — не должна конкурировать с -X% discount-pill.
1978
- /* @__PURE__ */ n(
1927
+ /* @__PURE__ */ a(
1979
1928
  "span",
1980
1929
  {
1981
1930
  class: "rounded-[9px] px-2 py-1 text-[10px] font-bold",
@@ -1983,26 +1932,26 @@ function $e({
1983
1932
  background: "linear-gradient(160deg, color-mix(in srgb, var(--pw-accent) 6%, white) 0%, color-mix(in srgb, var(--pw-accent) 15%, white) 100%)",
1984
1933
  color: "var(--pw-accent)"
1985
1934
  },
1986
- children: a
1935
+ children: n
1987
1936
  }
1988
1937
  )
1989
1938
  ) : null,
1990
- u ? /* @__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: [
1939
+ 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: [
1991
1940
  "-",
1992
- u,
1941
+ l,
1993
1942
  "%"
1994
1943
  ] }) : null
1995
1944
  ] }),
1996
- /* @__PURE__ */ n("div", { class: "flex-1" }),
1945
+ /* @__PURE__ */ a("div", { class: "flex-1" }),
1997
1946
  /* @__PURE__ */ c("span", { class: "flex items-baseline gap-1.5 text-base font-normal text-gray-600", children: [
1998
- p ? /* @__PURE__ */ n("span", { class: "text-xs text-gray-400 line-through decoration-gray-400 decoration-[1.5px]", children: p }) : null,
1947
+ u ? /* @__PURE__ */ a("span", { class: "text-xs text-gray-400 line-through decoration-gray-400 decoration-[1.5px]", children: u }) : null,
1999
1948
  /* @__PURE__ */ c("span", { class: "whitespace-nowrap", children: [
2000
- /* @__PURE__ */ n("span", { class: "opacity-90", children: h }),
2001
- d,
1949
+ /* @__PURE__ */ a("span", { class: "opacity-90", children: g }),
1950
+ p,
2002
1951
  /* @__PURE__ */ c("span", { class: "text-xs text-gray-400", children: [
2003
1952
  " ",
2004
1953
  "/ ",
2005
- ct(e, l)
1954
+ lt(e, d)
2006
1955
  ] })
2007
1956
  ] })
2008
1957
  ] })
@@ -2017,13 +1966,13 @@ function Ge({
2017
1966
  price: e,
2018
1967
  isPopular: t,
2019
1968
  popularLabel: r,
2020
- offer: a,
1969
+ offer: n,
2021
1970
  reserveStrikeRow: i,
2022
1971
  selected: o,
2023
1972
  onSelect: s,
2024
- t: l
1973
+ t: d
2025
1974
  }) {
2026
- const u = a?.discount_percent ?? null, { currency: h, amount: d, originalAmount: p } = lt(e, u);
1975
+ const l = n?.discount_percent ?? null, { currency: g, amount: p, originalAmount: u } = st(e, l);
2027
1976
  return /* @__PURE__ */ c(
2028
1977
  "button",
2029
1978
  {
@@ -2037,24 +1986,24 @@ function Ge({
2037
1986
  ].join(" "),
2038
1987
  style: o ? { background: "color-mix(in srgb, var(--pw-accent) 6%, transparent)" } : void 0,
2039
1988
  children: [
2040
- /* @__PURE__ */ n("span", { class: "flex min-h-[2.4em] items-center text-[10px] font-normal uppercase leading-tight text-gray-800/70", children: Ut(e, l) }),
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) }),
2041
1990
  i ? /* @__PURE__ */ c("div", { class: "flex h-[22px] items-center justify-center gap-1.5", children: [
2042
- p ? /* @__PURE__ */ n("span", { class: "text-[12px] text-gray-400 line-through decoration-gray-400 decoration-[1.5px]", children: p }) : null,
2043
- u ? /* @__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: [
1991
+ u ? /* @__PURE__ */ a("span", { class: "text-[12px] text-gray-400 line-through decoration-gray-400 decoration-[1.5px]", children: u }) : null,
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: [
2044
1993
  "-",
2045
- u,
1994
+ l,
2046
1995
  "%"
2047
1996
  ] }) : null
2048
1997
  ] }) : null,
2049
1998
  /* @__PURE__ */ c("span", { class: "text-[26px] leading-none whitespace-nowrap text-gray-800 font-medium", children: [
2050
- /* @__PURE__ */ n("span", { class: "opacity-90", children: h }),
2051
- d
1999
+ /* @__PURE__ */ a("span", { class: "opacity-90", children: g }),
2000
+ p
2052
2001
  ] }),
2053
2002
  /* @__PURE__ */ c("span", { class: "text-xs font-normal text-gray-500", children: [
2054
2003
  "/ ",
2055
- ct(e, l)
2004
+ lt(e, d)
2056
2005
  ] }),
2057
- t ? /* @__PURE__ */ n(
2006
+ t ? /* @__PURE__ */ a(
2058
2007
  "span",
2059
2008
  {
2060
2009
  class: "absolute -top-[10px] left-1/2 -translate-x-1/2 whitespace-nowrap rounded-[11px] border-[3px] border-white px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-white",
@@ -2067,7 +2016,7 @@ function Ge({
2067
2016
  );
2068
2017
  }
2069
2018
  function qe({ block: e }) {
2070
- return /* @__PURE__ */ n("p", { class: "text-[0.9375rem] leading-relaxed text-gray-600", children: e.text });
2019
+ return /* @__PURE__ */ a("p", { class: "text-[0.9375rem] leading-relaxed text-gray-600", children: e.text });
2071
2020
  }
2072
2021
  const We = {
2073
2022
  week: 0.25,
@@ -2082,13 +2031,13 @@ function Ke({ block: e, ctx: t }) {
2082
2031
  if (!e.queries.length) return null;
2083
2032
  const i = t.bootstrap.prices.find((s) => s.id === t.selectedPriceId)?.interval ?? null, o = i ? We[i] : void 0;
2084
2033
  return /* @__PURE__ */ c("div", { class: "flex flex-col gap-2", children: [
2085
- /* @__PURE__ */ n("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}:", {
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}:", {
2086
2035
  interval: Ze(i, r)
2087
2036
  }) }),
2088
- /* @__PURE__ */ n("ul", { class: "flex flex-col gap-2", role: "list", children: e.queries.map((s) => {
2089
- const l = Number.isFinite(s.count) ? s.count : 0, u = o !== void 0 ? Math.round(l * o) : l;
2037
+ /* @__PURE__ */ a("ul", { class: "flex flex-col gap-2", role: "list", children: e.queries.map((s) => {
2038
+ const d = Number.isFinite(s.count) ? s.count : 0, l = o !== void 0 ? Math.round(d * o) : d;
2090
2039
  return /* @__PURE__ */ c("li", { class: `flex gap-3 ${s.desc ? "items-start" : "items-center"}`, children: [
2091
- /* @__PURE__ */ n(
2040
+ /* @__PURE__ */ a(
2092
2041
  "svg",
2093
2042
  {
2094
2043
  width: "18",
@@ -2097,7 +2046,7 @@ function Ke({ block: e, ctx: t }) {
2097
2046
  fill: "none",
2098
2047
  class: `flex-shrink-0 text-emerald-500 ${s.desc ? "mt-0.5" : ""}`,
2099
2048
  "aria-hidden": "true",
2100
- children: /* @__PURE__ */ n(
2049
+ children: /* @__PURE__ */ a(
2101
2050
  "path",
2102
2051
  {
2103
2052
  d: "M4 10.5l3.5 3.5 8.5-8.5",
@@ -2110,12 +2059,12 @@ function Ke({ block: e, ctx: t }) {
2110
2059
  }
2111
2060
  ),
2112
2061
  /* @__PURE__ */ c("div", { children: [
2113
- /* @__PURE__ */ n("span", { class: "font-semibold text-gray-900 text-sm", children: u }),
2062
+ /* @__PURE__ */ a("span", { class: "font-semibold text-gray-900 text-sm", children: l }),
2114
2063
  " ",
2115
- /* @__PURE__ */ n("span", { class: "text-sm text-gray-800", children: s.name }),
2116
- s.desc ? /* @__PURE__ */ c(Z, { children: [
2117
- /* @__PURE__ */ n("br", {}),
2118
- /* @__PURE__ */ n("span", { class: "text-xs text-gray-400", children: s.desc })
2064
+ /* @__PURE__ */ a("span", { class: "text-sm text-gray-800", children: s.name }),
2065
+ s.desc ? /* @__PURE__ */ c(ot, { children: [
2066
+ /* @__PURE__ */ a("br", {}),
2067
+ /* @__PURE__ */ a("span", { class: "text-xs text-gray-400", children: s.desc })
2119
2068
  ] }) : null
2120
2069
  ] })
2121
2070
  ] }, s.id);
@@ -2125,51 +2074,51 @@ function Ke({ block: e, ctx: t }) {
2125
2074
  const Ye = {
2126
2075
  heading: De,
2127
2076
  text: qe,
2128
- price_grid: He,
2077
+ price_grid: $e,
2129
2078
  cta_button: Te,
2130
- auth_panel: Et,
2079
+ auth_panel: Tt,
2131
2080
  current_session: Ee,
2132
2081
  features_list: je,
2133
2082
  tokenization_gate: Ke,
2134
2083
  guarantee_badge: ze,
2135
- offer_banner: ve
2084
+ offer_banner: xe
2136
2085
  };
2137
- function Xe({ layout: e, bootstrap: t, onAction: r, auth: a, authSession: i, hasTopBanner: o }) {
2138
- const s = Ct(() => {
2139
- for (const g of e.blocks)
2140
- if (g.type === "price_grid" && g.popular_price_id && t.prices.some((f) => f.id === g.popular_price_id))
2141
- return g.popular_price_id;
2086
+ function Xe({ layout: e, bootstrap: t, onAction: r, auth: n, authSession: i, hasTopBanner: o }) {
2087
+ const s = Ht(() => {
2088
+ for (const k of e.blocks)
2089
+ if (k.type === "price_grid" && k.popular_price_id && t.prices.some((h) => h.id === k.popular_price_id))
2090
+ return k.popular_price_id;
2142
2091
  return t.prices[0]?.id ?? null;
2143
- }, [e.blocks, t.prices]), [l, u] = b(s), h = {
2092
+ }, [e.blocks, t.prices]), [d, l] = b(s), g = {
2144
2093
  bootstrap: t,
2145
- selectedPriceId: l,
2146
- setSelectedPriceId: u,
2094
+ selectedPriceId: d,
2095
+ setSelectedPriceId: l,
2147
2096
  onAction: r,
2148
- auth: a,
2097
+ auth: n,
2149
2098
  authSession: i
2150
- }, d = e.blocks.findIndex((g) => g.type === "cta_button"), p = d === -1 ? e.blocks : e.blocks.slice(0, d), x = d === -1 ? [] : e.blocks.slice(d), _ = (g, f) => {
2151
- const M = Ye[g.type];
2152
- return M ? /* @__PURE__ */ n(M, { block: g, ctx: h }, `${g.type}-${f}`) : (typeof console < "u" && console.warn(`[paywall] unknown block type: ${g.type}`), null);
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) => {
2100
+ const m = Ye[k.type];
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);
2153
2102
  };
2154
- return /* @__PURE__ */ c(Z, { children: [
2155
- /* @__PURE__ */ n("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__ */ n("div", { class: "flex flex-col gap-6", children: p.map(_) }) }),
2103
+ return /* @__PURE__ */ c(ot, { children: [
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) }) }),
2156
2105
  x.length > 0 ? (
2157
2106
  // Тонкий shadow-top вместо border-t — создаёт depth, читается как
2158
2107
  // «footer закреплён к низу dialog'а». Линия выглядела как divider
2159
2108
  // в обычном flow, не передавала sticky-character.
2160
- /* @__PURE__ */ n(
2109
+ /* @__PURE__ */ a(
2161
2110
  "div",
2162
2111
  {
2163
2112
  class: "flex flex-col gap-4 bg-white px-6 pb-6 pt-3 sm:px-8",
2164
2113
  style: { boxShadow: "0 -4px 12px -4px rgba(15,23,42,0.06)" },
2165
- children: x.map((g, f) => _(g, p.length + f))
2114
+ children: x.map((k, h) => y(k, u.length + h))
2166
2115
  }
2167
2116
  )
2168
2117
  ) : null
2169
2118
  ] });
2170
2119
  }
2171
- function Je(e, t, r, a) {
2172
- return e ? a ? { 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 === "anon_gate" ? { open: !0, view: "anon", 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 };
2120
+ function Je(e, t, r, n) {
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 };
2173
2122
  }
2174
2123
  function Qe(e, t) {
2175
2124
  return e.open === t.open && e.view === t.view && e.error === t.error;
@@ -2178,153 +2127,154 @@ function tr({
2178
2127
  client: e,
2179
2128
  open: t,
2180
2129
  onClose: r,
2181
- onEvent: a,
2130
+ onEvent: n,
2182
2131
  initialView: i,
2183
- purchased: o,
2184
- renew: s,
2132
+ initialAuthMode: o,
2133
+ purchased: s,
2134
+ renew: d,
2185
2135
  onState: l,
2186
- inline: u,
2187
- locale: h
2136
+ inline: g,
2137
+ locale: p
2188
2138
  }) {
2189
- const [d, p] = b({ status: "idle" }), [x, _] = b(
2139
+ const [u, x] = b({ status: "idle" }), [y, k] = b(
2190
2140
  () => e.auth?.getCachedSession() ?? null
2191
- ), [g, f] = b(() => i === "support" ? { kind: "support", origin: "standalone" } : i === "auth" ? { kind: "auth_gate", origin: "standalone" } : i === "anon" ? { kind: "anon_gate", origin: "standalone" } : { kind: "layout" }), M = F(!1), E = F(null);
2192
- T(() => {
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(() => {
2193
2143
  if (!l) return;
2194
- const w = Je(t, d, g, o), m = E.current;
2195
- m && Qe(m, w) || (E.current = w, l(w));
2196
- }, [t, d, g, o, l]), T(() => {
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(() => {
2197
2147
  if (e.auth)
2198
- return e.auth.onAuthChange((w, m) => _(m));
2199
- }, [e.auth]), T(() => {
2148
+ return e.auth.onAuthChange((w, f) => k(f));
2149
+ }, [e.auth]), E(() => {
2200
2150
  if (typeof e.onBootstrapChange == "function")
2201
2151
  return e.onBootstrapChange((w) => {
2202
- p(
2203
- (m) => m.status === "ready" ? { status: "ready", data: w } : m
2152
+ x(
2153
+ (f) => f.status === "ready" ? { status: "ready", data: w } : f
2204
2154
  );
2205
2155
  });
2206
- }, [e]), T(() => {
2207
- if (!t || d.status === "ready" || d.status === "loading") return;
2156
+ }, [e]), E(() => {
2157
+ if (!t || u.status === "ready" || u.status === "loading") return;
2208
2158
  let w = !1;
2209
- return p({ status: "loading" }), e.bootstrap().then((m) => {
2210
- w || (p({ status: "ready", data: m }), a("ready", m), m.user?.has_active_subscription && !s && (a("purchase_completed", {
2159
+ return x({ status: "loading" }), e.bootstrap().then((f) => {
2160
+ w || (x({ status: "ready", data: f }), n("ready", f), f.user?.has_active_subscription && !d && !i && (n("purchase_completed", {
2211
2161
  priceId: null,
2212
2162
  sessionId: null,
2213
2163
  restored: !0
2214
- }), f({ kind: "purchase_success", restored: !0 })));
2215
- }).catch((m) => {
2164
+ }), m({ kind: "purchase_success", restored: !0 })));
2165
+ }).catch((f) => {
2216
2166
  if (w) return;
2217
- const k = m instanceof U ? m : new U("unknown", "Failed to load paywall", { cause: m });
2218
- p({ status: "error", error: k }), a("error", k);
2167
+ const C = f instanceof O ? f : new O("unknown", "Failed to load paywall", { cause: f });
2168
+ x({ status: "error", error: C }), n("error", C);
2219
2169
  }), () => {
2220
2170
  w = !0;
2221
2171
  };
2222
- }, [t, e]), $t(() => {
2172
+ }, [t, e]), Vt(() => {
2223
2173
  if (!t) {
2224
- f({ kind: "layout" }), M.current = !1;
2174
+ m({ kind: "layout" }), j.current = !1;
2225
2175
  return;
2226
2176
  }
2227
- i === "support" ? f({ kind: "support", origin: "standalone" }) : i === "auth" ? f({ kind: "auth_gate", origin: "standalone" }) : i === "anon" && f({ kind: "anon_gate", origin: "standalone" });
2177
+ i === "support" ? m({ kind: "support", origin: "standalone" }) : i === "auth" && m({ kind: "auth_gate", origin: "standalone" });
2228
2178
  }, [t, i]);
2229
- const y = async (w) => {
2179
+ const S = async (w) => {
2230
2180
  try {
2231
- const m = await e.createCheckout({
2181
+ const f = await e.createCheckout({
2232
2182
  priceId: w,
2233
- ignoreActivePurchase: s === !0
2183
+ ignoreActivePurchase: d === !0
2234
2184
  });
2235
- if (a("checkout_started", { priceId: w, url: m.url, acquiring: m.acquiring }), typeof window > "u" || !m.url) return;
2236
- const k = window.open(m.url, "_blank");
2237
- if (k) {
2185
+ if (n("checkout_started", { priceId: w, url: f.url, acquiring: f.acquiring }), typeof window > "u" || !f.url) return;
2186
+ const C = window.open(f.url, "_blank");
2187
+ if (C) {
2238
2188
  try {
2239
- k.opener = null;
2189
+ C.opener = null;
2240
2190
  } catch {
2241
2191
  }
2242
- f({ kind: "awaiting_payment", priceId: w, url: m.url });
2192
+ m({ kind: "awaiting_payment", priceId: w, url: f.url });
2243
2193
  } else
2244
- f({ kind: "popup_blocked", priceId: w, url: m.url });
2245
- } catch (m) {
2246
- if (m instanceof U && m.code === "already_purchased") {
2194
+ m({ kind: "popup_blocked", priceId: w, url: f.url });
2195
+ } catch (f) {
2196
+ if (f instanceof O && f.code === "already_purchased") {
2247
2197
  try {
2248
2198
  await e.getUser({ force: !0 });
2249
2199
  } catch {
2250
2200
  }
2251
- a("purchase_completed", { priceId: w, sessionId: null, restored: !0 }), f({ kind: "purchase_success", restored: !0 });
2201
+ n("purchase_completed", { priceId: w, sessionId: null, restored: !0 }), m({ kind: "purchase_success", restored: !0 });
2252
2202
  return;
2253
2203
  }
2254
- const k = m instanceof U ? m : new U("checkout_failed", "Checkout failed", { cause: m });
2255
- a("error", k), f({ kind: "layout" });
2204
+ const C = f instanceof O ? f : new O("checkout_failed", "Checkout failed", { cause: f });
2205
+ n("error", C), m({ kind: "layout" });
2256
2206
  }
2257
- }, L = (w, m) => {
2207
+ }, A = (w, f) => {
2258
2208
  if (typeof window > "u") return;
2259
- const k = window.open(m, "_blank");
2260
- if (k) {
2209
+ const C = window.open(f, "_blank");
2210
+ if (C) {
2261
2211
  try {
2262
- k.opener = null;
2212
+ C.opener = null;
2263
2213
  } catch {
2264
2214
  }
2265
- f({ kind: "awaiting_payment", priceId: w, url: m });
2215
+ m({ kind: "awaiting_payment", priceId: w, url: f });
2266
2216
  }
2267
2217
  };
2268
- T(() => {
2269
- if (g.kind !== "auth_gate" || !x || x.user.is_anonymous || M.current) return;
2270
- M.current = !0;
2271
- const w = g.pendingCheckout, m = g.origin;
2272
- f({ kind: "verifying" }), (async () => {
2273
- if (!s)
2218
+ E(() => {
2219
+ if (h.kind !== "auth_gate" || !y || y.user.is_anonymous || j.current) return;
2220
+ j.current = !0;
2221
+ const w = h.pendingCheckout, f = h.origin;
2222
+ m({ kind: "verifying" }), (async () => {
2223
+ if (!d)
2274
2224
  try {
2275
2225
  if ((await e.getUser({ force: !0 })).has_active_subscription) {
2276
- a("purchase_completed", {
2226
+ n("purchase_completed", {
2277
2227
  priceId: w?.priceId ?? null,
2278
2228
  sessionId: null,
2279
2229
  restored: !0
2280
- }), f({ kind: "purchase_success", restored: !0 });
2230
+ }), m({ kind: "purchase_success", restored: !0 });
2281
2231
  return;
2282
2232
  }
2283
2233
  } catch {
2284
2234
  }
2285
2235
  if (!w) {
2286
- m === "standalone" ? r() : f({ kind: "layout" });
2236
+ f === "standalone" ? r() : m({ kind: "layout" });
2287
2237
  return;
2288
2238
  }
2289
- await y(w.priceId);
2239
+ await S(w.priceId);
2290
2240
  })().finally(() => {
2291
- M.current = !1;
2241
+ j.current = !1;
2292
2242
  });
2293
- }, [x, g]);
2294
- const I = async (w, m) => {
2243
+ }, [y, h]);
2244
+ const R = async (w, f) => {
2295
2245
  if (w === "close") {
2296
2246
  r();
2297
2247
  return;
2298
2248
  }
2299
2249
  if (w === "price_selected") {
2300
- a("price_selected", m);
2250
+ n("price_selected", f);
2301
2251
  return;
2302
2252
  }
2303
2253
  if (w === "restore") {
2304
2254
  if (!e.auth) return;
2305
- const k = e.auth.getCachedSession();
2306
- if (k && !k.user.is_anonymous) return;
2307
- f({ kind: "auth_gate", intent: "restore" });
2255
+ const C = e.auth.getCachedSession();
2256
+ if (C && !C.user.is_anonymous) return;
2257
+ m({ kind: "auth_gate", intent: "restore" });
2308
2258
  return;
2309
2259
  }
2310
2260
  if (w === "support") {
2311
- f({ kind: "support", origin: "layout" });
2261
+ m({ kind: "support", origin: "layout" });
2312
2262
  return;
2313
2263
  }
2314
- if (w === "checkout" && d.status === "ready") {
2315
- const k = m?.priceId;
2316
- if (!k) {
2317
- a("error", new U("no_price", "No price selected"));
2264
+ if (w === "checkout" && u.status === "ready") {
2265
+ const C = f?.priceId;
2266
+ if (!C) {
2267
+ n("error", new O("no_price", "No price selected"));
2318
2268
  return;
2319
2269
  }
2320
- const S = d.data.settings.checkout_mode ?? "guest", P = e.auth?.getCachedSession() ?? null, V = !!P && !P.user.is_anonymous;
2321
- if (S === "preauth" && !!e.auth && !V) {
2322
- f({ kind: "auth_gate", pendingCheckout: { priceId: k } });
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) {
2272
+ m({ kind: "auth_gate", pendingCheckout: { priceId: C } });
2323
2273
  return;
2324
2274
  }
2325
- await y(k);
2275
+ await S(C);
2326
2276
  }
2327
- }, z = d.status === "ready" ? d.data.settings.brand_color : null, j = d.status === "ready" ? d.data.settings.allow_close !== !1 : !0, D = g.kind === "layout" && d.status === "ready" ? zt(d.data.offers) : null, R = D ? /* @__PURE__ */ n(ye, { offer: D }) : null, N = {
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 = {
2328
2278
  type: "auth_panel",
2329
2279
  // Заголовок не задаём — AuthGate сам решит по intent'у (restore →
2330
2280
  // "Restore Purchases", остальные → дефолтный "Welcome back!").
@@ -2333,75 +2283,67 @@ function tr({
2333
2283
  // Не скрываем при наличии сессии — auto-resume useEffect отрабатывает быстрее,
2334
2284
  // чем хотим показывать "Signed in as ..." промежуточным экраном.
2335
2285
  hide_when_authenticated: !1,
2336
- providers: d.status === "ready" ? d.data.settings.auth_providers : void 0
2337
- }, A = g.kind === "support" ? /* @__PURE__ */ n(
2286
+ providers: u.status === "ready" ? u.data.settings.auth_providers : void 0
2287
+ }, D = h.kind === "support" ? /* @__PURE__ */ a(
2338
2288
  _e,
2339
2289
  {
2340
2290
  client: e,
2341
- authSession: x,
2342
- origin: g.origin,
2291
+ authSession: y,
2292
+ origin: h.origin,
2343
2293
  onBack: () => {
2344
- g.origin === "standalone" ? r() : f({ kind: "layout" });
2294
+ h.origin === "standalone" ? r() : m({ kind: "layout" });
2345
2295
  }
2346
2296
  }
2347
- ) : null, C = g.kind === "auth_gate" && g.origin !== "standalone" || g.kind === "support", B = d.status === "ready" ? d.data : null;
2348
- return /* @__PURE__ */ n(te, { bootstrap: B, forceLocale: h, children: /* @__PURE__ */ n(
2297
+ ) : null, N = h.kind === "auth_gate" && h.origin !== "standalone" || h.kind === "support", Z = u.status === "ready" ? u.data : null;
2298
+ return /* @__PURE__ */ a(te, { bootstrap: Z, forceLocale: p, children: /* @__PURE__ */ a(
2349
2299
  ee,
2350
2300
  {
2351
2301
  open: t,
2352
2302
  onClose: r,
2353
- brandColor: z,
2354
- topBanner: R,
2355
- allowClose: j,
2356
- hideCloseButton: C,
2357
- inline: u,
2303
+ brandColor: P,
2304
+ topBanner: T,
2305
+ allowClose: z,
2306
+ hideCloseButton: N,
2307
+ inline: g,
2358
2308
  labelledBy: "pw-title",
2359
- children: o ? /* @__PURE__ */ n(_t, { onContinue: r }) : g.kind === "purchase_success" ? /* @__PURE__ */ n(_t, { restored: g.restored, onContinue: r }) : A || (d.status === "loading" || d.status === "idle" || g.kind === "verifying" ? /* @__PURE__ */ n(er, { verifying: g.kind === "verifying" }) : d.status === "error" ? /* @__PURE__ */ n(rr, { message: d.error.message }) : g.kind === "auth_gate" && e.auth ? /* @__PURE__ */ n(
2360
- fe,
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,
2361
2311
  {
2362
- block: N,
2363
- bootstrap: d.data,
2312
+ block: M,
2313
+ bootstrap: u.data,
2364
2314
  auth: e.auth,
2365
- authSession: x,
2366
- showBack: g.origin !== "standalone",
2367
- intent: g.intent ?? (g.origin === "standalone" ? "standalone" : "preauth"),
2315
+ authSession: y,
2316
+ showBack: h.origin !== "standalone",
2317
+ intent: h.intent ?? (h.origin === "standalone" ? "standalone" : "preauth"),
2318
+ initialMode: h.origin === "standalone" ? o : void 0,
2368
2319
  onBack: () => {
2369
- g.origin === "standalone" ? r() : f({ kind: "layout" });
2320
+ h.origin === "standalone" ? r() : m({ kind: "layout" });
2370
2321
  }
2371
2322
  }
2372
- ) : g.kind === "anon_gate" && e.auth ? /* @__PURE__ */ n(
2373
- me,
2374
- {
2375
- auth: e.auth,
2376
- onSuccess: () => {
2377
- g.origin === "standalone" ? r() : f({ kind: "layout" });
2378
- },
2379
- onBack: g.origin === "standalone" ? void 0 : () => f({ kind: "layout" })
2380
- }
2381
- ) : g.kind === "awaiting_payment" ? /* @__PURE__ */ n(
2323
+ ) : h.kind === "awaiting_payment" ? /* @__PURE__ */ a(
2382
2324
  nr,
2383
2325
  {
2384
2326
  client: e,
2385
- onBack: () => f({ kind: "layout" }),
2327
+ onBack: () => m({ kind: "layout" }),
2386
2328
  onReopen: () => {
2387
2329
  if (typeof window > "u") return;
2388
- const w = window.open(g.url, "_blank");
2330
+ const w = window.open(h.url, "_blank");
2389
2331
  if (w)
2390
2332
  try {
2391
2333
  w.opener = null;
2392
2334
  } catch {
2393
2335
  }
2394
2336
  },
2395
- onRetry: () => y(g.priceId)
2337
+ onRetry: () => S(h.priceId)
2396
2338
  }
2397
- ) : g.kind === "popup_blocked" ? /* @__PURE__ */ n(ir, { onReopen: () => L(g.priceId, g.url) }) : /* @__PURE__ */ n(
2339
+ ) : h.kind === "popup_blocked" ? /* @__PURE__ */ a(ir, { onReopen: () => A(h.priceId, h.url) }) : /* @__PURE__ */ a(
2398
2340
  Xe,
2399
2341
  {
2400
- layout: d.data.layout,
2401
- bootstrap: d.data,
2402
- onAction: I,
2342
+ layout: u.data.layout,
2343
+ bootstrap: u.data,
2344
+ onAction: R,
2403
2345
  auth: e.auth,
2404
- authSession: x
2346
+ authSession: y
2405
2347
  }
2406
2348
  ))
2407
2349
  }
@@ -2410,39 +2352,39 @@ function tr({
2410
2352
  function er({ verifying: e }) {
2411
2353
  const { t } = v();
2412
2354
  return /* @__PURE__ */ c("div", { class: "flex flex-col items-center justify-center gap-3 py-12", children: [
2413
- /* @__PURE__ */ n("span", { class: "inline-block h-7 w-7 animate-spin rounded-full border-[2.5px] border-gray-200 border-t-[var(--pw-accent)]" }),
2414
- /* @__PURE__ */ n("span", { class: "text-xs font-medium tracking-wide text-gray-500", children: e ? t("modal.verifying_subscription", "Checking your subscription…") : t("modal.loading", "Loading…") })
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)]" }),
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…") })
2415
2357
  ] });
2416
2358
  }
2417
2359
  function rr({ message: e }) {
2418
2360
  const { t } = v();
2419
2361
  return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-2 py-8 text-center", children: [
2420
- /* @__PURE__ */ n("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: [
2421
- /* @__PURE__ */ n("path", { d: "M10 6v5M10 14h.01", stroke: "#dc2626", "stroke-width": "2", "stroke-linecap": "round" }),
2422
- /* @__PURE__ */ n("circle", { cx: "10", cy: "10", r: "8", stroke: "#dc2626", "stroke-width": "1.75" })
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: [
2363
+ /* @__PURE__ */ a("path", { d: "M10 6v5M10 14h.01", stroke: "#dc2626", "stroke-width": "2", "stroke-linecap": "round" }),
2364
+ /* @__PURE__ */ a("circle", { cx: "10", cy: "10", r: "8", stroke: "#dc2626", "stroke-width": "1.75" })
2423
2365
  ] }) }),
2424
- /* @__PURE__ */ n("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: t("modal.error_generic", "Something went wrong") }),
2425
- /* @__PURE__ */ n("p", { class: "text-xs leading-relaxed text-gray-500", children: e })
2366
+ /* @__PURE__ */ a("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: t("modal.error_generic", "Something went wrong") }),
2367
+ /* @__PURE__ */ a("p", { class: "text-xs leading-relaxed text-gray-500", children: e })
2426
2368
  ] });
2427
2369
  }
2428
2370
  function ir({ onReopen: e }) {
2429
2371
  const { t } = v();
2430
2372
  return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
2431
- /* @__PURE__ */ n(
2373
+ /* @__PURE__ */ a(
2432
2374
  "div",
2433
2375
  {
2434
2376
  class: "flex h-11 w-11 items-center justify-center rounded-full",
2435
2377
  style: { background: "color-mix(in srgb, var(--pw-accent) 12%, white)", color: "var(--pw-accent)" },
2436
2378
  "aria-hidden": "true",
2437
2379
  children: /* @__PURE__ */ c("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: [
2438
- /* @__PURE__ */ n("path", { d: "M4 5h12v10H4z", stroke: "currentColor", "stroke-width": "1.75", "stroke-linejoin": "round" }),
2439
- /* @__PURE__ */ n("path", { d: "M7 9l3 3 4-5", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })
2380
+ /* @__PURE__ */ a("path", { d: "M4 5h12v10H4z", stroke: "currentColor", "stroke-width": "1.75", "stroke-linejoin": "round" }),
2381
+ /* @__PURE__ */ a("path", { d: "M7 9l3 3 4-5", stroke: "currentColor", "stroke-width": "1.75", "stroke-linecap": "round", "stroke-linejoin": "round" })
2440
2382
  ] })
2441
2383
  }
2442
2384
  ),
2443
- /* @__PURE__ */ n("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: t("payment.popup_blocked_title", "Allow popups to continue") }),
2444
- /* @__PURE__ */ n("p", { class: "max-w-[18rem] text-xs leading-relaxed text-gray-500", children: t("payment.popup_blocked_message", "Your browser blocked the checkout tab. Click below to open it.") }),
2445
- /* @__PURE__ */ n(
2385
+ /* @__PURE__ */ a("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: t("payment.popup_blocked_title", "Allow popups to continue") }),
2386
+ /* @__PURE__ */ a("p", { class: "max-w-[18rem] text-xs leading-relaxed text-gray-500", children: t("payment.popup_blocked_message", "Your browser blocked the checkout tab. Click below to open it.") }),
2387
+ /* @__PURE__ */ a(
2446
2388
  "button",
2447
2389
  {
2448
2390
  type: "button",
@@ -2461,32 +2403,32 @@ function nr({
2461
2403
  client: e,
2462
2404
  onBack: t,
2463
2405
  onReopen: r,
2464
- onRetry: a
2406
+ onRetry: n
2465
2407
  }) {
2466
- const { t: i } = v(), [o, s] = b(!1), [l, u] = b(!1), h = F(null);
2467
- T(() => () => {
2468
- h.current !== null && clearTimeout(h.current);
2408
+ const { t: i } = v(), [o, s] = b(!1), [d, l] = b(!1), g = F(null);
2409
+ E(() => () => {
2410
+ g.current !== null && clearTimeout(g.current);
2469
2411
  }, []);
2470
- const d = async () => {
2412
+ const p = async () => {
2471
2413
  if (!o) {
2472
- s(!0), u(!1);
2414
+ s(!0), l(!1);
2473
2415
  try {
2474
2416
  if ((await e.getUser({ force: !0 })).has_active_subscription) {
2475
2417
  typeof window < "u" && window.postMessage({ type: "paywall_purchase" }, "*");
2476
2418
  return;
2477
2419
  }
2478
- u(!0), h.current !== null && clearTimeout(h.current), h.current = setTimeout(() => {
2479
- u(!1), h.current = null;
2420
+ l(!0), g.current !== null && clearTimeout(g.current), g.current = setTimeout(() => {
2421
+ l(!1), g.current = null;
2480
2422
  }, 5e3);
2481
2423
  } catch {
2482
- u(!0);
2424
+ l(!0);
2483
2425
  } finally {
2484
2426
  s(!1);
2485
2427
  }
2486
2428
  }
2487
2429
  };
2488
- return /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
2489
- /* @__PURE__ */ n(
2430
+ return /* @__PURE__ */ c("div", { class: "flex flex-col gap-3 px-6 pb-6 pt-4 sm:px-8 sm:pb-8 sm:pt-5", children: [
2431
+ /* @__PURE__ */ a(
2490
2432
  "button",
2491
2433
  {
2492
2434
  type: "button",
@@ -2497,7 +2439,7 @@ function nr({
2497
2439
  ),
2498
2440
  /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-6 text-center", children: [
2499
2441
  /* @__PURE__ */ c("div", { class: "relative flex h-12 w-12 items-center justify-center", children: [
2500
- /* @__PURE__ */ n(
2442
+ /* @__PURE__ */ a(
2501
2443
  "span",
2502
2444
  {
2503
2445
  class: "absolute inset-0 animate-ping rounded-full opacity-40",
@@ -2505,18 +2447,18 @@ function nr({
2505
2447
  "aria-hidden": "true"
2506
2448
  }
2507
2449
  ),
2508
- /* @__PURE__ */ n("span", { class: "relative inline-block h-7 w-7 animate-spin rounded-full border-[2.5px] border-gray-200 border-t-[var(--pw-accent)]" })
2450
+ /* @__PURE__ */ a("span", { class: "relative inline-block h-7 w-7 animate-spin rounded-full border-[2.5px] border-gray-200 border-t-[var(--pw-accent)]" })
2509
2451
  ] }),
2510
- /* @__PURE__ */ n("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: i("payment.awaiting_title", "Complete payment in the new tab") }),
2511
- /* @__PURE__ */ n("p", { class: "max-w-[20rem] text-xs leading-relaxed text-gray-500", children: i(
2452
+ /* @__PURE__ */ a("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: i("payment.awaiting_title", "Complete payment in the new tab") }),
2453
+ /* @__PURE__ */ a("p", { class: "max-w-[20rem] text-xs leading-relaxed text-gray-500", children: i(
2512
2454
  "payment.awaiting_subtitle",
2513
2455
  "We'll detect your payment automatically — or click below once you're done."
2514
2456
  ) }),
2515
- /* @__PURE__ */ n(
2457
+ /* @__PURE__ */ a(
2516
2458
  "button",
2517
2459
  {
2518
2460
  type: "button",
2519
- onClick: d,
2461
+ onClick: p,
2520
2462
  disabled: o,
2521
2463
  class: "mt-1 rounded-xl px-5 py-2.5 text-sm font-semibold text-white transition-all hover:-translate-y-px hover:brightness-105 disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:translate-y-0 disabled:hover:brightness-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
2522
2464
  style: {
@@ -2526,11 +2468,11 @@ function nr({
2526
2468
  children: o ? i("payment.checking", "Checking…") : i("payment.ive_paid", "I've paid")
2527
2469
  }
2528
2470
  ),
2529
- l ? /* @__PURE__ */ n("p", { class: "text-xs leading-relaxed text-gray-500", children: i("payment.still_processing", "Payment is still being processed. Please try again in a moment.") }) : null
2471
+ d ? /* @__PURE__ */ a("p", { class: "text-xs leading-relaxed text-gray-500", children: i("payment.still_processing", "Payment is still being processed. Please try again in a moment.") }) : null
2530
2472
  ] }),
2531
2473
  /* @__PURE__ */ c("div", { class: "rounded-2xl border border-gray-200 bg-gray-50/60 p-3.5", children: [
2532
- /* @__PURE__ */ n("p", { class: "text-xs leading-relaxed text-gray-600", children: i("payment.popup_help_text", "Checkout window didn't open or got blocked? Click here to open it again.") }),
2533
- /* @__PURE__ */ n(
2474
+ /* @__PURE__ */ a("p", { class: "text-xs leading-relaxed text-gray-600", children: i("payment.popup_help_text", "Checkout window didn't open or got blocked? Click here to open it again.") }),
2475
+ /* @__PURE__ */ a(
2534
2476
  "button",
2535
2477
  {
2536
2478
  type: "button",
@@ -2540,11 +2482,11 @@ function nr({
2540
2482
  }
2541
2483
  )
2542
2484
  ] }),
2543
- /* @__PURE__ */ n(
2485
+ /* @__PURE__ */ a(
2544
2486
  "button",
2545
2487
  {
2546
2488
  type: "button",
2547
- onClick: a,
2489
+ onClick: n,
2548
2490
  class: "self-center rounded-md px-2 py-1 text-xs text-gray-500 underline-offset-2 hover:text-gray-900 hover:underline focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
2549
2491
  children: i("payment.tab_closed_retry", "Tab closed? Try again")
2550
2492
  }
@@ -2557,7 +2499,7 @@ function _t({
2557
2499
  }) {
2558
2500
  const { t: r } = v();
2559
2501
  return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
2560
- /* @__PURE__ */ n(
2502
+ /* @__PURE__ */ a(
2561
2503
  "div",
2562
2504
  {
2563
2505
  class: "flex h-14 w-14 items-center justify-center rounded-full ring-8",
@@ -2568,7 +2510,7 @@ function _t({
2568
2510
  boxShadow: "0 0 0 8px rgba(74,222,128,0.12), 0 8px 20px -6px rgba(22,163,74,0.45)"
2569
2511
  },
2570
2512
  "aria-hidden": "true",
2571
- children: /* @__PURE__ */ n("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ n(
2513
+ children: /* @__PURE__ */ a("svg", { width: "28", height: "28", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ a(
2572
2514
  "path",
2573
2515
  {
2574
2516
  d: "M5 13l4 4L19 7",
@@ -2580,12 +2522,12 @@ function _t({
2580
2522
  ) })
2581
2523
  }
2582
2524
  ),
2583
- /* @__PURE__ */ n("p", { id: "pw-title", class: "mt-1 text-lg font-semibold tracking-tight text-gray-900", children: t ? r("modal.purchase_restored_title", "Subscription restored") : r("modal.purchase_success_title", "Payment received") }),
2584
- /* @__PURE__ */ n("p", { class: "text-sm leading-relaxed text-gray-500", children: t ? r(
2525
+ /* @__PURE__ */ a("p", { id: "pw-title", class: "mt-1 text-lg font-semibold tracking-tight text-gray-900", children: t ? r("modal.purchase_restored_title", "Subscription restored") : r("modal.purchase_success_title", "Payment received") }),
2526
+ /* @__PURE__ */ a("p", { class: "text-sm leading-relaxed text-gray-500", children: t ? r(
2585
2527
  "modal.purchase_restored_subtitle",
2586
2528
  "Welcome back — your subscription is already active."
2587
2529
  ) : r("modal.purchase_success_subtitle", "Your subscription is now active.") }),
2588
- /* @__PURE__ */ n(
2530
+ /* @__PURE__ */ a(
2589
2531
  "button",
2590
2532
  {
2591
2533
  type: "button",
@@ -2652,16 +2594,16 @@ class lr {
2652
2594
  function cr() {
2653
2595
  return !(typeof document > "u" || typeof window > "u" || typeof location < "u" && location.protocol === "chrome-extension:");
2654
2596
  }
2655
- const st = { open: !1, view: null, error: null }, H = {
2597
+ const at = { open: !1, view: null, error: null }, $ = {
2656
2598
  status: "paywall_status",
2657
2599
  priceId: "paywall_price_id",
2658
2600
  sessionId: "paywall_session_id"
2659
2601
  };
2660
2602
  class yr {
2661
2603
  constructor(t) {
2662
- 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 = st, this.stateListeners = /* @__PURE__ */ new Set();
2663
- const { auth: r, ownsAuth: a } = dr(t);
2664
- this.auth = r, this.ownsAuth = a, this.billing = t.client ?? new Dt({ ...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) => {
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) => {
2665
2607
  this.emit("userChange", i);
2666
2608
  }), this.auth && (this.authUnsub = this.auth.onAuthChange((i, o) => {
2667
2609
  this.emit("authChange", { event: i, session: o });
@@ -2671,9 +2613,9 @@ class yr {
2671
2613
  if (t === !1) return;
2672
2614
  const r = typeof t == "object" && t !== null ? t : {};
2673
2615
  if (r.enabled === !1) return;
2674
- const a = r.endpoint ?? `${this.billing.apiOrigin}/api/v1/paywall/${this.billing.paywallId}/events`;
2675
- this.tracker = new Nt({
2676
- endpoint: a,
2616
+ const n = r.endpoint ?? `${this.billing.apiOrigin}/api/v1/paywall/${this.billing.paywallId}/events`;
2617
+ this.tracker = new Dt({
2618
+ endpoint: n,
2677
2619
  paywallId: this.billing.paywallId,
2678
2620
  capabilities: this.billing.capabilities,
2679
2621
  getVisitorId: () => this.billing.getVisitorId(),
@@ -2772,17 +2714,17 @@ class yr {
2772
2714
  r !== this.forceLocale && (this.forceLocale = r, this.handle && this.handle.update({ locale: r }));
2773
2715
  }
2774
2716
  on(t, r) {
2775
- let a = this.listeners.get(t);
2776
- return a || (a = /* @__PURE__ */ new Set(), this.listeners.set(t, a)), a.add(r), () => a.delete(r);
2717
+ let n = this.listeners.get(t);
2718
+ return n || (n = /* @__PURE__ */ new Set(), this.listeners.set(t, n)), n.add(r), () => n.delete(r);
2777
2719
  }
2778
2720
  off(t, r) {
2779
2721
  this.listeners.get(t)?.delete(r);
2780
2722
  }
2781
2723
  emit(t, ...r) {
2782
- const a = this.listeners.get(t);
2783
- if (!a) return;
2724
+ const n = this.listeners.get(t);
2725
+ if (!n) return;
2784
2726
  const i = r[0];
2785
- for (const o of a)
2727
+ for (const o of n)
2786
2728
  try {
2787
2729
  o(i);
2788
2730
  } catch (s) {
@@ -2839,43 +2781,63 @@ class yr {
2839
2781
  this.auth && this.openInternal("auth", { ...t, skipTrial: !0 });
2840
2782
  }
2841
2783
  /**
2842
- * Открывает модалку с anonymous-gate. AnonGate сразу зовёт
2843
- * `auth.signInAnonymously()`:
2844
- * - если в storage есть `anonRefreshToken` silent resume через
2845
- * /auth/refresh, модалка схлопывается мгновенно (юзер видит лёгкий
2846
- * спиннер ~100мс);
2847
- * - иначе — fresh POST /auth/anonymous/signin без captcha (защита от
2848
- * abuse держится на Supabase per-real-IP rate-limit + CF Bot Fight Mode).
2849
- *
2850
- * После успешного signIn'а модалка закрывается; host подхватывает свежую
2851
- * session через `auth.onAuthChange` или `paywall.onUserChange`. Для UX
2852
- * "просто залогиниться чтобы api-gateway работал, без покупок".
2784
+ * Шорткат над `openAuth()` открывает модалку сразу на signin-форме.
2785
+ * Эквивалент `openAuth()` (signin — дефолт). Существует для симметрии с
2786
+ * `openSignup()` и читаемости host-кода:
2787
+ * - `paywall.openSignin()` «вход в существующий аккаунт»
2788
+ * - `paywall.openSignup()` — «новая регистрация»
2789
+ * Без managed-auth no-op.
2790
+ */
2791
+ openSignin(t = {}) {
2792
+ this.auth && this.openInternal("auth", { ...t, skipTrial: !0, authMode: "signin" });
2793
+ }
2794
+ /**
2795
+ * Открывает модалку с auth-gate сразу в режиме регистрации (signup-mode
2796
+ * AuthPanel'а — email/password/repeat). Если в paywall layout админ
2797
+ * отключил allow_signup, AuthPanel игнорит mode и стартует с signin —
2798
+ * соблюдается admin-конфиг.
2799
+ * Без managed-auth — no-op.
2800
+ */
2801
+ openSignup(t = {}) {
2802
+ this.auth && this.openInternal("auth", { ...t, skipTrial: !0, authMode: "signup" });
2803
+ }
2804
+ /**
2805
+ * Headless anonymous signin без открытия модалки. Внутри:
2806
+ * idempotent (если уже анон — instant return) → resume через сохранённый
2807
+ * refresh_token → fresh /auth/anonymous/signin. Дедуплицирует
2808
+ * параллельные вызовы внутри AuthClient'а.
2853
2809
  *
2854
- * Без managed-auth (`auth` не подключён) методno-op. Триал и
2855
- * visibility-таргетинг этот flow обходит: анон-логин не должен зависеть
2856
- * от страны юзера или trial-стейджа.
2810
+ * Удобно для host-кнопок типа «Continue as guest» host сам управляет
2811
+ * loading-стейтом на своей кнопке, без полупустой модалки со спиннером.
2812
+ * Без managed-auth резолвится rejected promise'ом (нет AuthClient'а
2813
+ * чтобы делать signin).
2857
2814
  */
2858
- openAnonGate(t = {}) {
2859
- this.auth && this.openInternal("anon", { ...t, skipTrial: !0, skipVisibility: !0 });
2815
+ signInAnonymously() {
2816
+ return this.auth ? this.auth.signInAnonymously() : Promise.reject(
2817
+ new O(
2818
+ "invalid_config",
2819
+ "signInAnonymously requires managed-auth. Pass `auth: true` to PaywallUI."
2820
+ )
2821
+ );
2860
2822
  }
2861
2823
  openInternal(t, r) {
2862
2824
  r.identity && this.billing.setIdentity(r.identity), this.purchased = !1;
2863
- const a = r.skipTrial === !0 || t === "support", i = r.skipVisibility === !0 || t === "support" || t === "auth" || t === "anon", o = r.renew === !0;
2864
- if (a && i) {
2865
- this.mountAndShow(t, { renew: o });
2825
+ const n = r.skipTrial === !0 || t === "support", i = r.skipVisibility === !0 || t === "support" || t === "auth", o = r.renew === !0;
2826
+ if (n && i) {
2827
+ this.mountAndShow(t, { renew: o, authMode: r.authMode });
2866
2828
  return;
2867
2829
  }
2868
2830
  const s = this.billing.getCachedBootstrap();
2869
2831
  if (s) {
2870
- this.runOpenGates(t, s, { skipTrial: a, skipVisibility: i, renew: o });
2832
+ this.runOpenGates(t, s, { skipTrial: n, skipVisibility: i, renew: o });
2871
2833
  return;
2872
2834
  }
2873
2835
  if (this.mountThenLoad) {
2874
- this.mountAndShow(t, { renew: o }), this.billing.bootstrap().then((l) => this.runDelayedGates(l, { skipTrial: a, skipVisibility: i })).catch(() => {
2836
+ this.mountAndShow(t, { renew: o }), this.billing.bootstrap().then((d) => this.runDelayedGates(d, { skipTrial: n, skipVisibility: i })).catch(() => {
2875
2837
  });
2876
2838
  return;
2877
2839
  }
2878
- this.billing.bootstrap().then((l) => this.runOpenGates(t, l, { skipTrial: a, skipVisibility: i, renew: o })).catch(() => {
2840
+ this.billing.bootstrap().then((d) => this.runOpenGates(t, d, { skipTrial: n, skipVisibility: i, renew: o })).catch(() => {
2879
2841
  this.mountAndShow(t, { renew: o });
2880
2842
  });
2881
2843
  }
@@ -2892,9 +2854,9 @@ class yr {
2892
2854
  }
2893
2855
  }
2894
2856
  if (r.skipTrial) return;
2895
- const a = t.settings.trial;
2896
- if (!a) return;
2897
- const i = this.ensureTrialStore(a);
2857
+ const n = t.settings.trial;
2858
+ if (!n) return;
2859
+ const i = this.ensureTrialStore(n);
2898
2860
  i.check().then(async (o) => {
2899
2861
  if (this.isOpen && (this.lastTrialStatus = o, o.mode !== "none")) {
2900
2862
  if (o.blocked) {
@@ -2913,40 +2875,40 @@ class yr {
2913
2875
  // вести trial-стейт «осталось N показов» под юзером, который вообще не
2914
2876
  // должен увидеть пейвол по таргетингу — бессмысленно: при возврате в
2915
2877
  // правильную страну он окажется со «слипшимся» триал-счётчиком.
2916
- runOpenGates(t, r, a) {
2917
- if (!a.skipVisibility) {
2878
+ runOpenGates(t, r, n) {
2879
+ if (!n.skipVisibility) {
2918
2880
  const i = r.settings.visibility;
2919
2881
  if (i && (this.lastVisibility = i, !i.visible)) {
2920
2882
  this.emit("visibility_blocked", i);
2921
2883
  return;
2922
2884
  }
2923
2885
  }
2924
- if (a.skipTrial) {
2925
- this.mountAndShow(t, { renew: a.renew });
2886
+ if (n.skipTrial) {
2887
+ this.mountAndShow(t, { renew: n.renew });
2926
2888
  return;
2927
2889
  }
2928
- this.gateThroughTrial(t, r, a.renew);
2890
+ this.gateThroughTrial(t, r, n.renew);
2929
2891
  }
2930
- gateThroughTrial(t, r, a) {
2892
+ gateThroughTrial(t, r, n) {
2931
2893
  const i = r.settings.trial;
2932
2894
  if (!i) {
2933
- this.mountAndShow(t, { renew: a });
2895
+ this.mountAndShow(t, { renew: n });
2934
2896
  return;
2935
2897
  }
2936
2898
  const o = this.ensureTrialStore(i);
2937
2899
  o.check().then(async (s) => {
2938
2900
  if (this.lastTrialStatus = s, s.mode === "none") {
2939
- this.mountAndShow(t, { renew: a });
2901
+ this.mountAndShow(t, { renew: n });
2940
2902
  return;
2941
2903
  }
2942
2904
  if (s.blocked) {
2943
- const l = await o.recordBlock();
2944
- this.lastTrialStatus = l, this.emit("trial_blocked", l);
2905
+ const d = await o.recordBlock();
2906
+ this.lastTrialStatus = d, this.emit("trial_blocked", d);
2945
2907
  return;
2946
2908
  }
2947
- this.trialExpiredFired || (this.trialExpiredFired = !0, this.emit("trial_expired")), this.mountAndShow(t, { renew: a });
2909
+ this.trialExpiredFired || (this.trialExpiredFired = !0, this.emit("trial_expired")), this.mountAndShow(t, { renew: n });
2948
2910
  }).catch((s) => {
2949
- typeof console < "u" && console.warn("[paywall] trial check failed", s), this.mountAndShow(t, { renew: a });
2911
+ typeof console < "u" && console.warn("[paywall] trial check failed", s), this.mountAndShow(t, { renew: n });
2950
2912
  });
2951
2913
  }
2952
2914
  ensureTrialStore(t) {
@@ -2957,9 +2919,15 @@ class yr {
2957
2919
  return this.trialStore = typeof r == "function" ? r.call(this.billing, t) : qt(this.billing.getStorage(), this.billing.paywallId, t), this.trialStore;
2958
2920
  }
2959
2921
  mountAndShow(t, r = {}) {
2960
- const a = r.renew === !0;
2922
+ const n = r.renew === !0, i = r.authMode;
2961
2923
  if (this.handle) {
2962
- this.isOpen = !0, this.handle.update({ open: !0, initialView: t, purchased: !1, renew: a }), this.emit("open");
2924
+ this.isOpen = !0, this.handle.update({
2925
+ open: !0,
2926
+ initialView: t,
2927
+ initialAuthMode: i,
2928
+ purchased: !1,
2929
+ renew: n
2930
+ }), this.emit("open");
2963
2931
  return;
2964
2932
  }
2965
2933
  this.isOpen = !0, this.handle = Zt(
@@ -2968,13 +2936,14 @@ class yr {
2968
2936
  client: this.billing,
2969
2937
  open: !0,
2970
2938
  initialView: t,
2939
+ initialAuthMode: i,
2971
2940
  purchased: !1,
2972
- renew: a,
2941
+ renew: n,
2973
2942
  onClose: () => this.close(),
2974
- onEvent: (i, o) => {
2975
- this.emit(i, o), i === "checkout_started" && this.startUserWatcher();
2943
+ onEvent: (o, s) => {
2944
+ this.emit(o, s), o === "checkout_started" && this.startUserWatcher();
2976
2945
  },
2977
- onState: (i) => this.applyState(i),
2946
+ onState: (o) => this.applyState(o),
2978
2947
  inline: this.inline,
2979
2948
  locale: this.forceLocale
2980
2949
  },
@@ -2987,8 +2956,8 @@ class yr {
2987
2956
  for (const r of this.stateListeners)
2988
2957
  try {
2989
2958
  r(t);
2990
- } catch (a) {
2991
- console.warn("[paywall] onStateChange listener threw", a);
2959
+ } catch (n) {
2960
+ console.warn("[paywall] onStateChange listener threw", n);
2992
2961
  }
2993
2962
  }
2994
2963
  }
@@ -3015,10 +2984,10 @@ class yr {
3015
2984
  */
3016
2985
  onStateChange(t, r = {}) {
3017
2986
  this.stateListeners.add(t);
3018
- const a = r.immediate ?? "microtask";
3019
- if (a !== "none") {
2987
+ const n = r.immediate ?? "microtask";
2988
+ if (n !== "none") {
3020
2989
  const i = this.currentState;
3021
- if (a === "sync")
2990
+ if (n === "sync")
3022
2991
  try {
3023
2992
  t(i);
3024
2993
  } catch (o) {
@@ -3108,20 +3077,20 @@ class yr {
3108
3077
  user: s
3109
3078
  };
3110
3079
  }
3111
- const a = r.user ?? null;
3112
- if (a?.has_active_subscription)
3080
+ const n = r.user ?? null;
3081
+ if (n?.has_active_subscription)
3113
3082
  return {
3114
3083
  access: "granted",
3115
3084
  reason: "has_subscription",
3116
3085
  visibility: r.settings.visibility ?? null,
3117
3086
  trial: null,
3118
- user: a
3087
+ user: n
3119
3088
  };
3120
3089
  let i = null;
3121
3090
  if (!t.skipVisibility) {
3122
3091
  const s = r.settings.visibility;
3123
3092
  if (s && (i = s, this.lastVisibility = s, !s.visible))
3124
- return { access: "granted", reason: "visibility_blocked", visibility: i, trial: null, user: a };
3093
+ return { access: "granted", reason: "visibility_blocked", visibility: i, trial: null, user: n };
3125
3094
  }
3126
3095
  let o = null;
3127
3096
  if (!t.skipTrial) {
@@ -3129,12 +3098,12 @@ class yr {
3129
3098
  if (s)
3130
3099
  try {
3131
3100
  if (o = await this.ensureTrialStore(s).check(), this.lastTrialStatus = o, o.blocked)
3132
- return { access: "granted", reason: "trial_blocked", visibility: i, trial: o, user: a };
3133
- } catch (l) {
3134
- typeof console < "u" && console.warn("[paywall] getAccess: trial check failed", l);
3101
+ return { access: "granted", reason: "trial_blocked", visibility: i, trial: o, user: n };
3102
+ } catch (d) {
3103
+ typeof console < "u" && console.warn("[paywall] getAccess: trial check failed", d);
3135
3104
  }
3136
3105
  }
3137
- return { access: "blocked", reason: "no_subscription", visibility: i, trial: o, user: a };
3106
+ return { access: "blocked", reason: "no_subscription", visibility: i, trial: o, user: n };
3138
3107
  }
3139
3108
  /** Сбросить состояние триала в storage. Полезно для дев-режима / админ-кнопки
3140
3109
  * «прогнать сценарий заново». В проде хост обычно не дёргает. */
@@ -3167,7 +3136,7 @@ class yr {
3167
3136
  }), this.watcher.start());
3168
3137
  }
3169
3138
  close() {
3170
- !this.isOpen || !this.handle || (this.isOpen = !1, this.purchased = !1, this.handle.update({ open: !1, purchased: !1 }), this.applyState(st), this.emit("close"));
3139
+ !this.isOpen || !this.handle || (this.isOpen = !1, this.purchased = !1, this.handle.update({ open: !1, purchased: !1 }), this.applyState(at), this.emit("close"));
3171
3140
  }
3172
3141
  /**
3173
3142
  * Сканирует текущий URL на маркеры возврата с checkout и эмитит
@@ -3177,23 +3146,23 @@ class yr {
3177
3146
  */
3178
3147
  checkReturn() {
3179
3148
  if (typeof window > "u") return;
3180
- const t = new URL(window.location.href), r = St(t.hash.replace(/^#/, "")), a = St(t.search.replace(/^\?/, "")), i = r ?? a;
3149
+ const t = new URL(window.location.href), r = St(t.hash.replace(/^#/, "")), n = St(t.search.replace(/^\?/, "")), i = r ?? n;
3181
3150
  i && (i.status === "paid" ? (this.emit("purchase_completed", {
3182
3151
  priceId: i.priceId,
3183
3152
  sessionId: i.sessionId
3184
3153
  }), gr(i)) : (i.status === "failed" || i.status === "cancelled") && this.emit("purchase_failed", { reason: i.status }), fr(t));
3185
3154
  }
3186
3155
  destroy() {
3187
- 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 = st;
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;
3188
3157
  }
3189
3158
  }
3190
3159
  function dr(e) {
3191
3160
  if (!e.auth) return { auth: void 0, ownsAuth: !1 };
3192
- if (e.auth instanceof dt || ur(e.auth))
3161
+ if (e.auth instanceof ct || ur(e.auth))
3193
3162
  return { auth: e.auth, ownsAuth: !1 };
3194
3163
  const t = e.auth === !0 ? {} : e.auth;
3195
3164
  return {
3196
- auth: new dt({
3165
+ auth: new ct({
3197
3166
  paywallId: e.paywallId,
3198
3167
  apiOrigin: t.apiOrigin ?? e.apiOrigin,
3199
3168
  storage: t.storage ?? e.storage,
@@ -3216,11 +3185,11 @@ function hr(e, t) {
3216
3185
  }
3217
3186
  function St(e) {
3218
3187
  if (!e) return null;
3219
- const t = new URLSearchParams(e), r = t.get(H.status);
3188
+ const t = new URLSearchParams(e), r = t.get($.status);
3220
3189
  return r ? {
3221
3190
  status: r,
3222
- priceId: t.get(H.priceId),
3223
- sessionId: t.get(H.sessionId)
3191
+ priceId: t.get($.priceId),
3192
+ sessionId: t.get($.sessionId)
3224
3193
  } : null;
3225
3194
  }
3226
3195
  function gr(e) {
@@ -3239,10 +3208,10 @@ function gr(e) {
3239
3208
  }
3240
3209
  }
3241
3210
  function fr(e) {
3242
- const t = (a, i) => {
3243
- if (!a) return "";
3244
- const o = new URLSearchParams(a.replace(/^[?#]/, ""));
3245
- o.delete(H.status), o.delete(H.priceId), o.delete(H.sessionId);
3211
+ const t = (n, i) => {
3212
+ if (!n) return "";
3213
+ const o = new URLSearchParams(n.replace(/^[?#]/, ""));
3214
+ o.delete($.status), o.delete($.priceId), o.delete($.sessionId);
3246
3215
  const s = o.toString();
3247
3216
  return s ? i + s : "";
3248
3217
  }, r = e.pathname + t(e.search, "?") + t(e.hash, "#");
@@ -3252,4 +3221,4 @@ export {
3252
3221
  yr as P,
3253
3222
  Ye as b
3254
3223
  };
3255
- //# sourceMappingURL=PaywallUI-BYquPomD.js.map
3224
+ //# sourceMappingURL=PaywallUI-BhQpWSWN.js.map