@monetize.software/sdk 3.0.0-alpha.8 → 3.0.0-alpha.9

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