@monetize.software/sdk 3.0.0-alpha.3 → 3.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
- import { PaywallError as E, BillingClient as ut, EventTracker as ht, AuthClient as G } from "../core.js";
2
- import { render as U, h as q } from "preact";
3
- import { jsxs as d, jsx as r, Fragment as nt } from "preact/jsx-runtime";
4
- import { useRef as z, useEffect as T, useState as b, useMemo as ot } from "preact/hooks";
5
- const W = 3600 * 1e3;
1
+ import { PaywallError as z, BillingClient as dt, EventTracker as ut, AuthClient as q } from "../core.js";
2
+ import { render as F, h as W } from "preact";
3
+ import { jsxs as c, jsx as r, Fragment as at } from "preact/jsx-runtime";
4
+ import { useRef as L, useEffect as T, useState as v, useMemo as nt } from "preact/hooks";
5
+ const Z = 3600 * 1e3;
6
6
  function R(e) {
7
7
  return `paywall-${e}-trial-time-first-open`;
8
8
  }
9
- function F(e) {
9
+ function N(e) {
10
10
  return `paywall-${e}-skip-times`;
11
11
  }
12
- class st {
12
+ class ot {
13
13
  constructor(t, i, n) {
14
14
  this.storage = t, this.paywallId = i, 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" ? R(this.paywallId) : F(this.paywallId));
23
+ await this.storage.removeItem(this.config.mode === "time" ? R(this.paywallId) : N(this.paywallId));
24
24
  }
25
25
  async checkTime() {
26
- const t = this.config.payload * W, i = await this.storage.getItem(R(this.paywallId)), n = i ? Number(i) : null;
26
+ const t = this.config.payload * Z, i = await this.storage.getItem(R(this.paywallId)), n = i ? Number(i) : 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, i = await this.storage.getItem(F(this.paywallId)), n = i ? Number(i) : 0, a = Number.isFinite(n) ? n : 0, o = a < t, s = Math.max(0, t - a);
47
+ const t = this.config.payload, i = await this.storage.getItem(N(this.paywallId)), n = i ? Number(i) : 0, a = Number.isFinite(n) ? n : 0, o = a < t, s = Math.max(0, t - a);
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 * W, i = R(this.paywallId), n = await this.storage.getItem(i);
56
+ const t = this.config.payload * Z, i = R(this.paywallId), n = await this.storage.getItem(i);
57
57
  let a = n ? Number(n) : null;
58
58
  (!a || !Number.isFinite(a)) && (a = Date.now(), await this.storage.setItem(i, String(a)));
59
59
  const o = a + 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, i = F(this.paywallId), n = await this.storage.getItem(i), a = n ? Number(n) : 0, o = Number.isFinite(a) ? a : 0, s = Math.min(t, o + 1);
70
+ const t = this.config.payload, i = N(this.paywallId), n = await this.storage.getItem(i), a = n ? Number(n) : 0, o = Number.isFinite(a) ? a : 0, s = Math.min(t, o + 1);
71
71
  await this.storage.setItem(i, String(s));
72
72
  const l = Math.max(0, t - s);
73
73
  return {
@@ -78,12 +78,12 @@ class st {
78
78
  };
79
79
  }
80
80
  }
81
- let Z = !1;
82
- class pt {
81
+ let Y = !1;
82
+ class ht {
83
83
  constructor(t, i, n) {
84
- Z || (Z = !0, console.warn(
84
+ Y || (Y = !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, i, n);
86
+ )), this.fallback = new ot(t, i, n);
87
87
  }
88
88
  check() {
89
89
  return this.fallback.check();
@@ -95,17 +95,17 @@ class pt {
95
95
  return this.fallback.reset();
96
96
  }
97
97
  }
98
- function gt(e, t, i) {
99
- return i.storage === "server" ? new pt(e, t, i) : new st(e, t, i);
98
+ function pt(e, t, i) {
99
+ return i.storage === "server" ? new ht(e, t, i) : new ot(e, t, i);
100
100
  }
101
- const lt = '/*! tailwindcss v4.2.4 | 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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@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-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-950:oklch(27.9% .077 45.635);--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;--container-md:28rem;--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);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{all:initial;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{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{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.-top-2\\.5{top:calc(var(--spacing) * -2.5)}.top-3{top:calc(var(--spacing) * 3)}.top-10{top:calc(var(--spacing) * 10)}.right-3{right:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.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}}.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)}.mt-px{margin-top:1px}.-ml-1{margin-left:calc(var(--spacing) * -1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.h-1{height:calc(var(--spacing) * 1)}.h-1\\.5{height:calc(var(--spacing) * 1.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 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-px{height:1px}.max-h-\\[calc\\(100dvh-1rem\\)\\]{max-height:calc(100dvh - 1rem)}.min-h-\\[104px\\]{min-height:104px}.w-1{width:calc(var(--spacing) * 1)}.w-1\\.5{width:calc(var(--spacing) * 1.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 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-\\[320px\\]{max-width:320px}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.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-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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-x-3{column-gap:calc(var(--spacing) * 3)}.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-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{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-dashed{--tw-border-style:dashed;border-style:dashed}.border-\\[var\\(--pw-accent\\)\\]{border-color:var(--pw-accent)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-red-400{border-color:var(--color-red-400)}.border-white\\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\\/40{border-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.border-t-\\[var\\(--pw-accent\\)\\]{border-top-color:var(--pw-accent)}.border-t-gray-700{border-top-color:var(--color-gray-700)}.border-t-white{border-top-color:var(--color-white)}.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:var(--pw-accent)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:color-mix(in srgb,var(--pw-accent) 6%,white)}}.bg-\\[var\\(--pw-accent\\)\\]{background-color:var(--pw-accent)}.bg-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-300{background-color:var(--color-gray-300)}.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-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)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-300{--tw-gradient-from:var(--color-amber-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-gray-200{--tw-gradient-from:var(--color-gray-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-amber-400{--tw-gradient-to:var(--color-amber-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-200{--tw-gradient-to:var(--color-gray-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-2{padding:calc(var(--spacing) * 2)}.p-3\\.5{padding:calc(var(--spacing) * 3.5)}.p-7{padding:calc(var(--spacing) * 7)}.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-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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-\\[1\\.625rem\\]{font-size:1.625rem}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.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-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[-0\\.02em\\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\\[0\\.14em\\]{--tw-tracking:.14em;letter-spacing:.14em}.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-\\[var\\(--pw-accent\\)\\]{color:var(--pw-accent)}.text-amber-950{color:var(--color-amber-950)}.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-900{color:var(--color-gray-900)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.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_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_12\\%\\,transparent\\)\\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--pw-accent))}@supports (color:color-mix(in lab,red,red)){.shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_12\\%\\,transparent\\)\\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,color-mix(in srgb,var(--pw-accent) 12%,transparent))}}.shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_12\\%\\,transparent\\)\\]{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_1px_0_rgba\\(15\\,23\\,42\\,0\\.02\\)\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a05);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_1px_0_rgba\\(15\\,23\\,42\\,0\\.04\\)\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a0a);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,.ring-1{--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)}.ring-black\\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.ring-black\\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.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))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.group-hover\\:border-gray-400:is(:where(.group):hover *){border-color:var(--color-gray-400)}}.placeholder\\:text-gray-400::placeholder{color:var(--color-gray-400)}@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-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-90:hover{opacity:.9}.hover\\:shadow-sm:hover{--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)}.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\\:border-\\[var\\(--pw-accent\\)\\]:focus{border-color:var(--pw-accent)}.focus\\:border-red-500:focus{border-color:var(--color-red-500)}.focus\\:shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_18\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--pw-accent))}@supports (color:color-mix(in lab,red,red)){.focus\\:shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_18\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,color-mix(in srgb,var(--pw-accent) 18%,transparent))}}.focus\\:shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_18\\%\\,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\\:shadow-\\[0_0_0_3px_rgba\\(239\\,68\\,68\\,0\\.18\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#ef44442e);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\\:underline:focus-visible{text-decoration-line:underline}.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)}.active\\:translate-y-0:active{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.active\\:brightness-95:active{--tw-brightness:brightness(95%);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,)}.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\\:shadow-\\[0_1px_0_rgba\\(15\\,23\\,42\\,0\\.04\\)\\]:disabled:hover{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a0a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}}}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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}@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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}';
102
- let X = !1;
103
- function ft() {
104
- if (X || (X = !0, typeof CSS > "u" || typeof CSS.registerProperty != "function")) return;
101
+ const st = '/*! 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-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-500:oklch(69.6% .17 162.48);--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;--container-md:28rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{all:initial;color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,:before,:after{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{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.-top-2\\.5{top:calc(var(--spacing) * -2.5)}.top-0{top:calc(var(--spacing) * 0)}.top-3{top:calc(var(--spacing) * 3)}.right-3{right:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.z-10{z-index:10}.z-20{z-index:20}.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}}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-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)}.mt-px{margin-top:1px}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-1{margin-left:calc(var(--spacing) * 1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.h-1{height:calc(var(--spacing) * 1)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-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-px{height:1px}.max-h-\\[calc\\(100dvh-1rem\\)\\]{max-height:calc(100dvh - 1rem)}.min-h-\\[104px\\]{min-height:104px}.w-1{width:calc(var(--spacing) * 1)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-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-\\[320px\\]{max-width:320px}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.-translate-y-\\[calc\\(100\\%\\+6px\\)\\]{--tw-translate-y: calc((100% + 6px)*-1) ;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-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.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-x-3{column-gap:calc(var(--spacing) * 3)}.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-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{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-b{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-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-red-400{border-color:var(--color-red-400)}.border-white\\/40{border-color:#fff6}@supports (color:color-mix(in lab,red,red)){.border-white\\/40{border-color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.border-t-\\[var\\(--pw-accent\\)\\]{border-top-color:var(--pw-accent)}.border-t-gray-700{border-top-color:var(--color-gray-700)}.border-t-white{border-top-color:var(--color-white)}.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:var(--pw-accent)}@supports (color:color-mix(in lab,red,red)){.bg-\\[color-mix\\(in_srgb\\,var\\(--pw-accent\\)_6\\%\\,white\\)\\]{background-color:color-mix(in srgb,var(--pw-accent) 6%,white)}}.bg-\\[var\\(--pw-accent\\)\\]{background-color:var(--pw-accent)}.bg-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-300{background-color:var(--color-gray-300)}.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-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)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-300{--tw-gradient-from:var(--color-amber-300);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-gray-200{--tw-gradient-from:var(--color-gray-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-amber-400{--tw-gradient-to:var(--color-amber-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-200{--tw-gradient-to:var(--color-gray-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-2{padding:calc(var(--spacing) * 2)}.p-3\\.5{padding:calc(var(--spacing) * 3.5)}.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-3\\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-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)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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-\\[1\\.875rem\\]{font-size:1.875rem}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[14px\\]{font-size:14px}.text-\\[24px\\]{font-size:24px}.text-\\[34px\\]{font-size:34px}.leading-\\[1\\.15\\]{--tw-leading:1.15;line-height:1.15}.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)}.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-\\[-0\\.02em\\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\\[0\\.08em\\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\\[0\\.14em\\]{--tw-tracking:.14em;letter-spacing:.14em}.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}.text-\\[var\\(--pw-accent\\)\\]{color:var(--pw-accent)}.text-amber-950{color:var(--color-amber-950)}.text-emerald-500{color:var(--color-emerald-500)}.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-900{color:var(--color-gray-900)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.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_1px_var\\(--pw-accent\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--pw-accent));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_1px_0_rgba\\(15\\,23\\,42\\,0\\.02\\)\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a05);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_1px_0_rgba\\(15\\,23\\,42\\,0\\.04\\)\\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a0a);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_4px_12px_-2px_rgba\\(245\\,158\\,11\\,0\\.45\\)\\,0_0_0_1px_rgba\\(255\\,255\\,255\\,0\\.6\\)\\]{--tw-shadow:0 4px 12px -2px var(--tw-shadow-color,#f59e0b73), 0 0 0 1px var(--tw-shadow-color,#fff9);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,.ring-1{--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)}.ring-black\\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.ring-black\\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.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}@media(hover:hover){.group-hover\\:border-gray-400:is(:where(.group):hover *){border-color:var(--color-gray-400)}}.placeholder\\:text-gray-400::placeholder{color:var(--color-gray-400)}@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-white:hover{background-color:var(--color-white)}.hover\\:text-gray-700:hover{color:var(--color-gray-700)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-red-600:hover{color:var(--color-red-600)}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-80:hover{opacity:.8}.hover\\:opacity-90:hover{opacity:.9}.hover\\:shadow-sm:hover{--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)}.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\\:border-\\[var\\(--pw-accent\\)\\]:focus{border-color:var(--pw-accent)}.focus\\:border-red-500:focus{border-color:var(--color-red-500)}.focus\\:shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_18\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--pw-accent))}@supports (color:color-mix(in lab,red,red)){.focus\\:shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_18\\%\\,transparent\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,color-mix(in srgb,var(--pw-accent) 18%,transparent))}}.focus\\:shadow-\\[0_0_0_3px_color-mix\\(in_srgb\\,var\\(--pw-accent\\)_18\\%\\,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\\:shadow-\\[0_0_0_3px_rgba\\(239\\,68\\,68\\,0\\.18\\)\\]:focus{--tw-shadow:0 0 0 3px var(--tw-shadow-color,#ef44442e);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)}.active\\:translate-y-0:active{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.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\\:shadow-\\[0_1px_0_rgba\\(15\\,23\\,42\\,0\\.04\\)\\]:disabled:hover{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a0a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}}}.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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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 K = !1;
103
+ function gt() {
104
+ if (K || (K = !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(lt), e = t.cssRules;
108
+ t.replaceSync(st), e = t.cssRules;
109
109
  } catch {
110
110
  return;
111
111
  }
@@ -123,10 +123,10 @@ function ft() {
123
123
  }
124
124
  }
125
125
  }
126
- function wt(e, t, i = {}) {
126
+ function ft(e, t, i = {}) {
127
127
  if (typeof document > "u")
128
128
  throw new Error("mountShadow called in non-DOM environment");
129
- ft();
129
+ gt();
130
130
  const n = i.host ?? document.createElement("div");
131
131
  n.setAttribute("data-paywall-host", ""), n.style.cssText = i.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 && !i.inline && document.body.appendChild(n);
132
132
  const a = n.attachShadow({ mode: i.shadowMode ?? "closed" }), o = `
@@ -148,22 +148,22 @@ function wt(e, t, i = {}) {
148
148
  visibility: visible !important;
149
149
  }
150
150
  `, s = document.createElement("style");
151
- s.textContent = o + lt + (i.injectCss ?? ""), a.appendChild(s);
151
+ s.textContent = o + st + (i.injectCss ?? ""), a.appendChild(s);
152
152
  const l = document.createElement("div");
153
153
  l.style.pointerEvents = "auto", a.appendChild(l);
154
154
  let h = t;
155
- return U(q(e, h), l), {
155
+ return F(W(e, h), l), {
156
156
  shadowRoot: a,
157
- update(c) {
158
- h = { ...h, ...c }, U(q(e, h), l);
157
+ update(d) {
158
+ h = { ...h, ...d }, F(W(e, h), l);
159
159
  },
160
160
  unmount() {
161
- U(null, l), n.remove();
161
+ F(null, l), n.remove();
162
162
  }
163
163
  };
164
164
  }
165
- const K = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
166
- function bt({
165
+ const X = 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])';
166
+ function wt({
167
167
  open: e,
168
168
  onClose: t,
169
169
  labelledBy: i,
@@ -173,12 +173,12 @@ function bt({
173
173
  inline: s = !1,
174
174
  children: l
175
175
  }) {
176
- const h = z(null), c = z(null);
176
+ const h = L(null), d = L(null);
177
177
  return T(() => {
178
178
  if (!e) return;
179
- c.current = document.activeElement ?? null;
179
+ d.current = document.activeElement ?? null;
180
180
  const g = h.current;
181
- g && (g.querySelector(K) ?? g).focus({ preventScroll: !0 });
181
+ g && (g.querySelector(X) ?? g).focus({ preventScroll: !0 });
182
182
  const f = (k) => {
183
183
  if (k.key === "Escape") {
184
184
  if (!o) return;
@@ -187,8 +187,8 @@ function bt({
187
187
  }
188
188
  if (k.key !== "Tab" || !h.current) return;
189
189
  const m = Array.from(
190
- h.current.querySelectorAll(K)
191
- ).filter((j) => !j.hasAttribute("disabled") && j.tabIndex !== -1);
190
+ h.current.querySelectorAll(X)
191
+ ).filter((E) => !E.hasAttribute("disabled") && E.tabIndex !== -1);
192
192
  if (m.length === 0) {
193
193
  k.preventDefault();
194
194
  return;
@@ -199,9 +199,9 @@ function bt({
199
199
  document.addEventListener("keydown", f, !0);
200
200
  const _ = document.body.style.overflow;
201
201
  return s || (document.body.style.overflow = "hidden"), () => {
202
- document.removeEventListener("keydown", f, !0), s || (document.body.style.overflow = _), c.current?.focus?.({ preventScroll: !0 });
202
+ document.removeEventListener("keydown", f, !0), s || (document.body.style.overflow = _), d.current?.focus?.({ preventScroll: !0 });
203
203
  };
204
- }, [e, t, o, s]), e ? /* @__PURE__ */ d(
204
+ }, [e, t, o, s]), e ? /* @__PURE__ */ c(
205
205
  "div",
206
206
  {
207
207
  class: `${s ? "absolute z-[1]" : "fixed z-[2147483647]"} inset-0 flex items-center justify-center bg-slate-950/50 p-2 sm:p-4 backdrop-blur-md animate-[pw-fade-in_180ms_ease-out]`,
@@ -210,65 +210,67 @@ function bt({
210
210
  },
211
211
  "data-pw-root": !0,
212
212
  children: [
213
- /* @__PURE__ */ d(
214
- "div",
215
- {
216
- ref: h,
217
- role: "dialog",
218
- "aria-modal": "true",
219
- "aria-labelledby": i,
220
- tabIndex: -1,
221
- class: "relative flex max-h-[calc(100dvh-1rem)] sm:max-h-[calc(100dvh-2rem)] w-full max-w-md flex-col overflow-hidden rounded-3xl bg-white outline-none ring-1 ring-black/5 animate-[pw-scale-in_220ms_cubic-bezier(0.16,1,0.3,1)]",
222
- style: {
223
- "--pw-accent": n ?? "#3b82f6",
224
- boxShadow: "0 1px 2px rgba(15,23,42,0.04), 0 12px 32px -8px rgba(15,23,42,0.18), 0 24px 64px -16px rgba(15,23,42,0.22)"
225
- },
226
- children: [
227
- a && /* @__PURE__ */ d(
228
- "div",
229
- {
230
- class: "flex items-center justify-center gap-1.5 bg-gradient-to-r from-amber-300 to-amber-400 px-3 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-amber-950",
231
- role: "status",
232
- children: [
233
- /* @__PURE__ */ d("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
234
- /* @__PURE__ */ r(
235
- "path",
236
- {
237
- d: "M8 1L15 14H1L8 1Z",
238
- stroke: "currentColor",
239
- "stroke-width": "1.5",
240
- "stroke-linejoin": "round"
241
- }
242
- ),
243
- /* @__PURE__ */ r("path", { d: "M8 6v3", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round" }),
244
- /* @__PURE__ */ r("circle", { cx: "8", cy: "11.5", r: "0.5", fill: "currentColor" })
245
- ] }),
246
- "Test mode — no real charge"
247
- ]
248
- }
249
- ),
250
- /* @__PURE__ */ r("div", { class: "flex-1 overflow-y-auto p-7", children: l }),
251
- o ? /* @__PURE__ */ r(
252
- "button",
253
- {
254
- type: "button",
255
- onClick: t,
256
- "aria-label": "Close",
257
- class: `absolute right-3 ${a ? "top-10" : "top-3"} z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white/80 text-gray-400 backdrop-blur-sm transition-colors hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]`,
258
- children: /* @__PURE__ */ r("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ r(
213
+ /* @__PURE__ */ c("div", { class: "relative w-full max-w-md animate-[pw-scale-in_220ms_cubic-bezier(0.16,1,0.3,1)]", children: [
214
+ a && /* @__PURE__ */ c(
215
+ "div",
216
+ {
217
+ class: "absolute right-3 top-0 z-20 flex -translate-y-[calc(100%+6px)] items-center gap-1.5 rounded-full bg-gradient-to-r from-amber-300 to-amber-400 px-3 py-1 text-[11px] font-semibold uppercase tracking-wider text-amber-950 shadow-[0_4px_12px_-2px_rgba(245,158,11,0.45),0_0_0_1px_rgba(255,255,255,0.6)]",
218
+ role: "status",
219
+ children: [
220
+ /* @__PURE__ */ c("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
221
+ /* @__PURE__ */ r(
259
222
  "path",
260
223
  {
261
- d: "M3 3l10 10M13 3L3 13",
224
+ d: "M8 1L15 14H1L8 1Z",
262
225
  stroke: "currentColor",
263
- "stroke-width": "1.75",
264
- "stroke-linecap": "round"
226
+ "stroke-width": "1.5",
227
+ "stroke-linejoin": "round"
265
228
  }
266
- ) })
267
- }
268
- ) : null
269
- ]
270
- }
271
- ),
229
+ ),
230
+ /* @__PURE__ */ r("path", { d: "M8 6v3", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round" }),
231
+ /* @__PURE__ */ r("circle", { cx: "8", cy: "11.5", r: "0.5", fill: "currentColor" })
232
+ ] }),
233
+ "Test mode — no real charge"
234
+ ]
235
+ }
236
+ ),
237
+ /* @__PURE__ */ c(
238
+ "div",
239
+ {
240
+ ref: h,
241
+ role: "dialog",
242
+ "aria-modal": "true",
243
+ "aria-labelledby": i,
244
+ tabIndex: -1,
245
+ class: "relative flex max-h-[calc(100dvh-1rem)] sm:max-h-[calc(100dvh-2rem)] w-full flex-col overflow-hidden rounded-3xl bg-white outline-none ring-1 ring-black/5",
246
+ style: {
247
+ "--pw-accent": n ?? "#3b82f6",
248
+ boxShadow: "0 1px 2px rgba(15,23,42,0.04), 0 12px 32px -8px rgba(15,23,42,0.18), 0 24px 64px -16px rgba(15,23,42,0.22)"
249
+ },
250
+ children: [
251
+ /* @__PURE__ */ r("div", { class: "flex-1 overflow-y-auto p-8", children: l }),
252
+ o ? /* @__PURE__ */ r(
253
+ "button",
254
+ {
255
+ type: "button",
256
+ onClick: t,
257
+ "aria-label": "Close",
258
+ class: "absolute right-3 top-3 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white/80 text-gray-400 backdrop-blur-sm transition-colors hover:bg-gray-100 hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
259
+ children: /* @__PURE__ */ r("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ r(
260
+ "path",
261
+ {
262
+ d: "M3 3l10 10M13 3L3 13",
263
+ stroke: "currentColor",
264
+ "stroke-width": "1.75",
265
+ "stroke-linecap": "round"
266
+ }
267
+ ) })
268
+ }
269
+ ) : null
270
+ ]
271
+ }
272
+ )
273
+ ] }),
272
274
  /* @__PURE__ */ r("style", { children: `
273
275
  @keyframes pw-fade-in { from { opacity: 0 } to { opacity: 1 } }
274
276
  @keyframes pw-scale-in {
@@ -286,14 +288,14 @@ const vt = {
286
288
  github: "Continue with GitHub",
287
289
  facebook: "Continue with Facebook"
288
290
  };
289
- function ct({ block: e, ctx: t }) {
291
+ function lt({ block: e, ctx: t }) {
290
292
  const i = t.auth, n = t.authSession, a = e.allow_signup !== !1, o = e.allow_password_reset !== !1, s = e.hide_when_authenticated !== !1;
291
293
  if (!i)
292
294
  return typeof console < "u" && console.warn("[paywall] auth_panel rendered without AuthClient — pass `auth: true` to PaywallUI"), null;
293
295
  const l = n && !n.user.is_anonymous ? n : null;
294
- return l && s ? null : l ? /* @__PURE__ */ r(mt, { email: l.user.email ?? "", onSignOut: () => i.signOut().catch(() => {
296
+ return l && s ? null : l ? /* @__PURE__ */ r(bt, { email: l.user.email ?? "", onSignOut: () => i.signOut().catch(() => {
295
297
  }) }) : /* @__PURE__ */ r(
296
- xt,
298
+ mt,
297
299
  {
298
300
  block: e,
299
301
  allowSignup: a,
@@ -302,9 +304,9 @@ function ct({ block: e, ctx: t }) {
302
304
  }
303
305
  );
304
306
  }
305
- function mt({ email: e, onSignOut: t }) {
306
- return /* @__PURE__ */ d("div", { class: "flex items-center justify-between gap-3 rounded-2xl border border-gray-200 bg-gray-50/60 px-4 py-3", children: [
307
- /* @__PURE__ */ d("div", { class: "flex flex-col", children: [
307
+ function bt({ email: e, onSignOut: t }) {
308
+ return /* @__PURE__ */ c("div", { class: "flex items-center justify-between gap-3 rounded-2xl border border-gray-200 bg-gray-50/60 px-4 py-3", children: [
309
+ /* @__PURE__ */ c("div", { class: "flex flex-col", children: [
308
310
  /* @__PURE__ */ r("span", { class: "text-[10px] font-semibold uppercase tracking-wider text-gray-500", children: "Signed in" }),
309
311
  /* @__PURE__ */ r("span", { class: "text-sm font-medium text-gray-900", children: e })
310
312
  ] }),
@@ -319,8 +321,8 @@ function mt({ email: e, onSignOut: t }) {
319
321
  )
320
322
  ] });
321
323
  }
322
- function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
323
- const a = n.auth, o = e.providers ?? [], [s, l] = b("signin"), [h, c] = b(""), [w, v] = b(""), [A, g] = b(""), [f, _] = b(null), [k, m] = b(null), [S, y] = b(null), P = async (I) => {
324
+ function mt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
325
+ const a = n.auth, o = e.providers ?? [], [s, l] = v("signin"), [h, d] = v(""), [w, b] = v(""), [A, g] = v(""), [f, _] = v(null), [k, m] = v(null), [S, y] = v(null), P = async (I) => {
324
326
  if (I.preventDefault(), !f) {
325
327
  _("email"), m(null), y(null);
326
328
  try {
@@ -330,13 +332,13 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
330
332
  type: w ? "recovery" : "email"
331
333
  }), w && await a.updatePassword({ password: w }));
332
334
  } catch (M) {
333
- const C = M instanceof E ? M.message : "Something went wrong";
335
+ const C = M instanceof z ? M.message : "Something went wrong";
334
336
  m(C);
335
337
  } finally {
336
338
  _(null);
337
339
  }
338
340
  }
339
- }, j = async (I) => {
341
+ }, E = async (I) => {
340
342
  if (!f) {
341
343
  _(I), m(null), y(null);
342
344
  try {
@@ -345,7 +347,7 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
345
347
  onPopupOpened: () => _(null)
346
348
  });
347
349
  } catch (M) {
348
- if (M instanceof E) {
350
+ if (M instanceof z) {
349
351
  if (M.code === "oauth_cancelled" || M.code === "oauth_timeout") return;
350
352
  m(M.message);
351
353
  } else
@@ -355,33 +357,33 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
355
357
  }
356
358
  }
357
359
  };
358
- return /* @__PURE__ */ d("div", { class: "flex flex-col gap-3", children: [
360
+ return /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
359
361
  e.heading ? /* @__PURE__ */ r("h2", { class: "text-lg font-semibold tracking-tight text-gray-900", children: e.heading }) : null,
360
- o.length > 0 && (s === "signin" || s === "signup") ? /* @__PURE__ */ d("div", { class: "flex flex-col gap-2", children: [
361
- o.map((I) => /* @__PURE__ */ d(
362
+ o.length > 0 && (s === "signin" || s === "signup") ? /* @__PURE__ */ c("div", { class: "flex flex-col gap-2", children: [
363
+ o.map((I) => /* @__PURE__ */ c(
362
364
  "button",
363
365
  {
364
366
  type: "button",
365
- onClick: () => j(I),
367
+ onClick: () => E(I),
366
368
  disabled: f !== null,
367
369
  class: "flex h-11 w-full items-center justify-center gap-2 rounded-xl border border-gray-200 bg-white px-4 text-sm font-medium text-gray-900 shadow-[0_1px_0_rgba(15,23,42,0.04)] transition-all hover:-translate-y-px hover:border-gray-300 hover:bg-gray-50 hover:shadow-sm disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:translate-y-0 disabled:hover:shadow-[0_1px_0_rgba(15,23,42,0.04)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--pw-accent)]",
368
370
  children: [
369
- f === I ? /* @__PURE__ */ r("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-gray-300 border-t-gray-700" }) : /* @__PURE__ */ r(_t, { provider: I }),
371
+ f === I ? /* @__PURE__ */ r("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-gray-300 border-t-gray-700" }) : /* @__PURE__ */ r(kt, { provider: I }),
370
372
  /* @__PURE__ */ r("span", { children: vt[I] })
371
373
  ]
372
374
  },
373
375
  I
374
376
  )),
375
- /* @__PURE__ */ r(kt, {})
377
+ /* @__PURE__ */ r(yt, {})
376
378
  ] }) : null,
377
- /* @__PURE__ */ d("form", { onSubmit: P, class: "flex flex-col gap-2", children: [
379
+ /* @__PURE__ */ c("form", { onSubmit: P, class: "flex flex-col gap-2", children: [
378
380
  (s === "signin" || s === "signup" || s === "forgot") && /* @__PURE__ */ r(
379
381
  O,
380
382
  {
381
383
  type: "email",
382
384
  label: "Email",
383
385
  value: h,
384
- onInput: c,
386
+ onInput: d,
385
387
  autocomplete: "email",
386
388
  required: !0
387
389
  }
@@ -392,12 +394,12 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
392
394
  type: "password",
393
395
  label: "Password",
394
396
  value: w,
395
- onInput: v,
397
+ onInput: b,
396
398
  autocomplete: s === "signin" ? "current-password" : "new-password",
397
399
  required: !0
398
400
  }
399
401
  ),
400
- s === "reset_verify" && /* @__PURE__ */ d(nt, { children: [
402
+ s === "reset_verify" && /* @__PURE__ */ c(at, { children: [
401
403
  /* @__PURE__ */ r(
402
404
  O,
403
405
  {
@@ -416,7 +418,7 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
416
418
  type: "password",
417
419
  label: "New password (optional — only for password reset)",
418
420
  value: w,
419
- onInput: v,
421
+ onInput: b,
420
422
  autocomplete: "new-password"
421
423
  }
422
424
  )
@@ -434,11 +436,11 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
434
436
  background: "linear-gradient(180deg, color-mix(in srgb, var(--pw-accent) 92%, white), var(--pw-accent))",
435
437
  boxShadow: "0 1px 2px rgba(15,23,42,0.08), 0 6px 14px -4px color-mix(in srgb, var(--pw-accent) 50%, transparent)"
436
438
  },
437
- children: f === "email" ? /* @__PURE__ */ r("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : yt(s)
439
+ children: f === "email" ? /* @__PURE__ */ r("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : xt(s)
438
440
  }
439
441
  )
440
442
  ] }),
441
- /* @__PURE__ */ d("div", { class: "flex flex-wrap items-center justify-between gap-x-3 gap-y-1 text-xs text-gray-500", children: [
443
+ /* @__PURE__ */ c("div", { class: "flex flex-wrap items-center justify-between gap-x-3 gap-y-1 text-xs text-gray-500", children: [
442
444
  s === "signin" && t && /* @__PURE__ */ r("button", { type: "button", onClick: () => B(l, m, y, "signup"), class: "font-medium text-gray-700 hover:underline", children: "Create account" }),
443
445
  s === "signup" && /* @__PURE__ */ r("button", { type: "button", onClick: () => B(l, m, y, "signin"), class: "font-medium text-gray-700 hover:underline", children: "I already have an account" }),
444
446
  s === "signin" && i && /* @__PURE__ */ r("button", { type: "button", onClick: () => B(l, m, y, "forgot"), class: "hover:underline", children: "Forgot password?" }),
@@ -447,7 +449,7 @@ function xt({ block: e, allowSignup: t, allowReset: i, ctx: n }) {
447
449
  ] })
448
450
  ] });
449
451
  }
450
- function yt(e) {
452
+ function xt(e) {
451
453
  switch (e) {
452
454
  case "signin":
453
455
  return "Sign in";
@@ -465,7 +467,7 @@ function B(e, t, i, n) {
465
467
  e(n), t(null), i(null);
466
468
  }
467
469
  function O({ type: e, label: t, value: i, onInput: n, autocomplete: a, inputMode: o, required: s }) {
468
- return /* @__PURE__ */ d("label", { class: "flex flex-col gap-1.5", children: [
470
+ return /* @__PURE__ */ c("label", { class: "flex flex-col gap-1.5", children: [
469
471
  /* @__PURE__ */ r("span", { class: "text-xs font-medium text-gray-700", children: t }),
470
472
  /* @__PURE__ */ r(
471
473
  "input",
@@ -481,22 +483,22 @@ function O({ type: e, label: t, value: i, onInput: n, autocomplete: a, inputMode
481
483
  )
482
484
  ] });
483
485
  }
484
- function kt() {
485
- return /* @__PURE__ */ d("div", { class: "flex items-center gap-2 py-1 text-[10px] uppercase tracking-[0.14em] text-gray-400", children: [
486
+ function yt() {
487
+ return /* @__PURE__ */ c("div", { class: "flex items-center gap-2 py-1 text-[10px] uppercase tracking-[0.14em] text-gray-400", children: [
486
488
  /* @__PURE__ */ r("div", { class: "h-px flex-1 bg-gradient-to-r from-gray-200 to-transparent" }),
487
489
  /* @__PURE__ */ r("span", { children: "or" }),
488
490
  /* @__PURE__ */ r("div", { class: "h-px flex-1 bg-gradient-to-r from-transparent to-gray-200" })
489
491
  ] });
490
492
  }
491
- function _t({ provider: e }) {
492
- return e === "google" ? /* @__PURE__ */ d("svg", { width: "16", height: "16", viewBox: "0 0 18 18", "aria-hidden": "true", children: [
493
+ function kt({ provider: e }) {
494
+ return e === "google" ? /* @__PURE__ */ c("svg", { width: "16", height: "16", viewBox: "0 0 18 18", "aria-hidden": "true", children: [
493
495
  /* @__PURE__ */ r("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" }),
494
496
  /* @__PURE__ */ r("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" }),
495
497
  /* @__PURE__ */ r("path", { fill: "#FBBC05", d: "M3.93 10.68a5.4 5.4 0 0 1 0-3.36V4.99H.92a9 9 0 0 0 0 8.02l3-2.33Z" }),
496
498
  /* @__PURE__ */ r("path", { fill: "#EA4335", d: "M9 3.58c1.32 0 2.5.45 3.44 1.34l2.58-2.58A9 9 0 0 0 .92 4.99l3.01 2.33C4.64 5.17 6.64 3.58 9 3.58Z" })
497
499
  ] }) : e === "apple" ? /* @__PURE__ */ r("svg", { width: "14", height: "16", viewBox: "0 0 14 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ r("path", { d: "M11.4 8.5c0-2 1.6-3 1.7-3-.9-1.3-2.4-1.5-2.9-1.5-1.2-.1-2.4.7-3 .7-.6 0-1.6-.7-2.6-.7-1.3 0-2.6.8-3.3 2C-.4 8.4.7 12.5 2.2 14.7c.7 1.1 1.6 2.3 2.7 2.3 1.1 0 1.5-.7 2.8-.7 1.3 0 1.7.7 2.8.7 1.2 0 1.9-1.1 2.6-2.2.6-.9 1-1.8 1.1-2.7-1.4-.5-2.8-1.7-2.8-3.6Zm-2-6.5C10 1.3 10.4.4 10.3 0c-.7 0-1.6.5-2.1 1.1-.5.5-1 1.4-.9 2.2.7 0 1.5-.4 2.1-1.3Z" }) }) : e === "github" ? /* @__PURE__ */ r("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ r("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__ */ r("svg", { width: "14", height: "16", viewBox: "0 0 14 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ r("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" }) });
498
500
  }
499
- function St({
501
+ function _t({
500
502
  block: e,
501
503
  bootstrap: t,
502
504
  auth: i,
@@ -504,7 +506,7 @@ function St({
504
506
  onBack: a,
505
507
  showBack: o = !0
506
508
  }) {
507
- return /* @__PURE__ */ d("div", { class: "flex flex-col gap-3", children: [
509
+ return /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
508
510
  o ? /* @__PURE__ */ r(
509
511
  "button",
510
512
  {
@@ -514,7 +516,7 @@ function St({
514
516
  children: "← Back"
515
517
  }
516
518
  ) : null,
517
- /* @__PURE__ */ r(ct, { block: e, ctx: {
519
+ /* @__PURE__ */ r(lt, { block: e, ctx: {
518
520
  bootstrap: t,
519
521
  selectedPriceId: null,
520
522
  setSelectedPriceId: () => {
@@ -526,35 +528,35 @@ function St({
526
528
  } })
527
529
  ] });
528
530
  }
529
- function Ct({
531
+ function St({
530
532
  auth: e,
531
533
  onSuccess: t,
532
534
  onBack: i,
533
535
  heading: n = "Continue as guest",
534
536
  description: a = "Setting up your guest session…"
535
537
  }) {
536
- const [o, s] = b({ kind: "signing-in" }), l = z(!0);
538
+ const [o, s] = v({ kind: "signing-in" }), l = L(!0);
537
539
  T(() => () => {
538
540
  l.current = !1;
539
541
  }, []);
540
542
  const h = () => {
541
543
  s({ kind: "signing-in" }), (async () => {
542
544
  try {
543
- const c = await e.signInAnonymously();
545
+ const d = await e.signInAnonymously();
544
546
  if (!l.current) return;
545
- t(c);
546
- } catch (c) {
547
+ t(d);
548
+ } catch (d) {
547
549
  if (!l.current) return;
548
550
  s({
549
551
  kind: "error",
550
- message: c instanceof Error ? c.message : "Anonymous sign-in failed"
552
+ message: d instanceof Error ? d.message : "Anonymous sign-in failed"
551
553
  });
552
554
  }
553
555
  })();
554
556
  };
555
557
  return T(() => {
556
558
  h();
557
- }, []), /* @__PURE__ */ d("div", { class: "flex flex-col gap-3", children: [
559
+ }, []), /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
558
560
  i ? /* @__PURE__ */ r(
559
561
  "button",
560
562
  {
@@ -564,12 +566,12 @@ function Ct({
564
566
  children: "← Back"
565
567
  }
566
568
  ) : null,
567
- /* @__PURE__ */ d("div", { class: "flex flex-col gap-1", children: [
569
+ /* @__PURE__ */ c("div", { class: "flex flex-col gap-1", children: [
568
570
  /* @__PURE__ */ r("h2", { class: "text-xl font-semibold text-gray-900", children: n }),
569
571
  /* @__PURE__ */ r("p", { class: "text-sm text-gray-500", children: a })
570
572
  ] }),
571
- o.kind === "signing-in" ? /* @__PURE__ */ r("div", { class: "flex items-center justify-center py-6", children: /* @__PURE__ */ r(It, {}) }) : null,
572
- o.kind === "error" ? /* @__PURE__ */ d("div", { class: "flex flex-col gap-3", children: [
573
+ o.kind === "signing-in" ? /* @__PURE__ */ r("div", { class: "flex items-center justify-center py-6", children: /* @__PURE__ */ r(Ct, {}) }) : null,
574
+ o.kind === "error" ? /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
573
575
  /* @__PURE__ */ r("div", { class: "rounded-lg bg-red-50 px-3 py-2 text-sm text-red-700", children: o.message }),
574
576
  /* @__PURE__ */ r(
575
577
  "button",
@@ -583,22 +585,22 @@ function Ct({
583
585
  ] }) : null
584
586
  ] });
585
587
  }
586
- function It() {
587
- return /* @__PURE__ */ d("svg", { class: "h-5 w-5 animate-spin text-[var(--pw-accent)]", viewBox: "0 0 24 24", fill: "none", children: [
588
+ function Ct() {
589
+ return /* @__PURE__ */ c("svg", { class: "h-5 w-5 animate-spin text-[var(--pw-accent)]", viewBox: "0 0 24 24", fill: "none", children: [
588
590
  /* @__PURE__ */ r("circle", { cx: "12", cy: "12", r: "10", stroke: "currentColor", "stroke-width": "3", "stroke-opacity": "0.2" }),
589
591
  /* @__PURE__ */ r("path", { d: "M22 12a10 10 0 0 0-10-10", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round" })
590
592
  ] });
591
593
  }
592
- const N = 3, V = 200, H = 5e3, D = 5, At = 10 * 1024 * 1024, J = ["image/jpeg", "image/png", "image/webp"], Y = /.+@.+\..+/;
593
- function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
594
- const a = t?.user.email ?? "", o = a || null, [s, l] = b(a), [h, c] = b(""), [w, v] = b(""), [A, g] = b([]), [f, _] = b(!1), [k, m] = b(null), [S, y] = b({}), P = ot(() => {
594
+ const D = 3, H = 200, V = 5e3, $ = 5, It = 10 * 1024 * 1024, J = ["image/jpeg", "image/png", "image/webp"], Q = /.+@.+\..+/;
595
+ function At({ client: e, authSession: t, origin: i, onBack: n }) {
596
+ const a = t?.user.email ?? "", o = a || null, [s, l] = v(a), [h, d] = v(""), [w, b] = v(""), [A, g] = v([]), [f, _] = v(!1), [k, m] = v(null), [S, y] = v({}), P = nt(() => {
595
597
  const C = (o ?? s).trim().toLowerCase(), u = h.trim(), p = w.trim();
596
- return Y.test(C) && u.length >= N && u.length <= V && p.length >= 1 && p.length <= H;
597
- }, [o, s, h, w]), j = () => {
598
+ return Q.test(C) && u.length >= D && u.length <= H && p.length >= 1 && p.length <= V;
599
+ }, [o, s, h, w]), E = () => {
598
600
  const C = {}, u = (o ?? s).trim(), p = h.trim(), x = w.trim();
599
- return u ? Y.test(u.toLowerCase()) || (C.email = "Invalid email") : C.email = "Required", (p.length < N || p.length > V) && (C.subject = `${N}–${V} characters`), (x.length < 1 || x.length > H) && (C.message = `1–${H} characters`), y(C), Object.keys(C).length === 0;
601
+ return u ? Q.test(u.toLowerCase()) || (C.email = "Invalid email") : C.email = "Required", (p.length < D || p.length > H) && (C.subject = `${D}–${H} characters`), (x.length < 1 || x.length > V) && (C.message = `1–${V} characters`), y(C), Object.keys(C).length === 0;
600
602
  }, I = async (C) => {
601
- if (C.preventDefault(), !f && j()) {
603
+ if (C.preventDefault(), !f && E()) {
602
604
  _(!0), y((u) => ({ ...u, submit: void 0 }));
603
605
  try {
604
606
  const u = (o ?? s).trim();
@@ -609,16 +611,16 @@ function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
609
611
  files: A.length > 0 ? A : void 0
610
612
  }), m(u);
611
613
  } catch (u) {
612
- const p = u instanceof E && u.message || "Failed to send. Please try again.";
614
+ const p = u instanceof z && u.message || "Failed to send. Please try again.";
613
615
  y((x) => ({ ...x, submit: p }));
614
616
  } finally {
615
617
  _(!1);
616
618
  }
617
619
  }
618
620
  }, M = () => {
619
- c(""), v(""), g([]), y({}), m(null);
621
+ d(""), b(""), g([]), y({}), m(null);
620
622
  };
621
- return k ? /* @__PURE__ */ d("div", { class: "flex flex-col items-center gap-4 py-2 text-center", children: [
623
+ return k ? /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-4 py-2 text-center", children: [
622
624
  /* @__PURE__ */ r(
623
625
  "div",
624
626
  {
@@ -639,13 +641,13 @@ function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
639
641
  }
640
642
  ),
641
643
  /* @__PURE__ */ r("div", { class: "text-lg font-semibold tracking-tight text-gray-900", children: "Request submitted" }),
642
- /* @__PURE__ */ d("div", { class: "max-w-[320px] text-sm leading-relaxed text-gray-500", children: [
644
+ /* @__PURE__ */ c("div", { class: "max-w-[320px] text-sm leading-relaxed text-gray-500", children: [
643
645
  "We've received your message and will respond to",
644
646
  " ",
645
647
  /* @__PURE__ */ r("b", { class: "text-gray-700", children: k }),
646
648
  "."
647
649
  ] }),
648
- /* @__PURE__ */ d("div", { class: "mt-2 flex items-center justify-center gap-3", children: [
650
+ /* @__PURE__ */ c("div", { class: "mt-2 flex items-center justify-center gap-3", children: [
649
651
  /* @__PURE__ */ r(
650
652
  "button",
651
653
  {
@@ -669,8 +671,8 @@ function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
669
671
  }
670
672
  )
671
673
  ] })
672
- ] }) : /* @__PURE__ */ d("div", { class: "flex flex-col gap-3", children: [
673
- /* @__PURE__ */ r("div", { class: "flex items-center justify-between", children: /* @__PURE__ */ d(
674
+ ] }) : /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
675
+ /* @__PURE__ */ r("div", { class: "flex items-center justify-between", children: /* @__PURE__ */ c(
674
676
  "button",
675
677
  {
676
678
  type: "button",
@@ -684,12 +686,12 @@ function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
684
686
  ) }),
685
687
  /* @__PURE__ */ r("h2", { class: "text-lg font-semibold tracking-tight text-gray-900", children: "Contact Support" }),
686
688
  /* @__PURE__ */ r("p", { class: "text-xs leading-relaxed text-gray-500", children: "Fill out the form below and we'll get back to you." }),
687
- /* @__PURE__ */ d("form", { onSubmit: I, class: "flex flex-col gap-3", children: [
688
- o ? /* @__PURE__ */ d("div", { class: "rounded-xl border border-gray-200 bg-gray-50/60 px-3 py-2 text-xs text-gray-500", children: [
689
+ /* @__PURE__ */ c("form", { onSubmit: I, class: "flex flex-col gap-3", children: [
690
+ o ? /* @__PURE__ */ c("div", { class: "rounded-xl border border-gray-200 bg-gray-50/60 px-3 py-2 text-xs text-gray-500", children: [
689
691
  "Sending as ",
690
692
  /* @__PURE__ */ r("b", { class: "font-medium text-gray-700", children: o })
691
693
  ] }) : /* @__PURE__ */ r(
692
- Q,
694
+ tt,
693
695
  {
694
696
  type: "email",
695
697
  label: "Your email",
@@ -701,29 +703,29 @@ function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
701
703
  }
702
704
  ),
703
705
  /* @__PURE__ */ r(
704
- Q,
706
+ tt,
705
707
  {
706
708
  type: "text",
707
709
  label: "Subject",
708
710
  value: h,
709
- onInput: c,
711
+ onInput: d,
710
712
  error: S.subject,
711
713
  required: !0
712
714
  }
713
715
  ),
714
716
  /* @__PURE__ */ r(
715
- Tt,
717
+ Mt,
716
718
  {
717
719
  label: "Message",
718
720
  value: w,
719
- onInput: v,
721
+ onInput: b,
720
722
  error: S.message,
721
723
  required: !0
722
724
  }
723
725
  ),
724
- /* @__PURE__ */ r(Et, { files: A, onChange: g, disabled: f }),
726
+ /* @__PURE__ */ r(Tt, { files: A, onChange: g, disabled: f }),
725
727
  S.submit && /* @__PURE__ */ r("p", { class: "text-xs text-red-600", children: S.submit }),
726
- /* @__PURE__ */ d("div", { class: "mt-1 flex items-center justify-end gap-2", children: [
728
+ /* @__PURE__ */ c("div", { class: "mt-1 flex items-center justify-end gap-2", children: [
727
729
  /* @__PURE__ */ r(
728
730
  "button",
729
731
  {
@@ -751,8 +753,8 @@ function Mt({ client: e, authSession: t, origin: i, onBack: n }) {
751
753
  ] })
752
754
  ] });
753
755
  }
754
- function Q({ type: e, label: t, value: i, onInput: n, error: a, autocomplete: o, required: s }) {
755
- return /* @__PURE__ */ d("label", { class: "flex flex-col gap-1.5", children: [
756
+ function tt({ type: e, label: t, value: i, onInput: n, error: a, autocomplete: o, required: s }) {
757
+ return /* @__PURE__ */ c("label", { class: "flex flex-col gap-1.5", children: [
756
758
  /* @__PURE__ */ r("span", { class: "text-xs font-medium text-gray-700", children: t }),
757
759
  /* @__PURE__ */ r(
758
760
  "input",
@@ -768,8 +770,8 @@ function Q({ type: e, label: t, value: i, onInput: n, error: a, autocomplete: o,
768
770
  a && /* @__PURE__ */ r("span", { class: "text-xs text-red-600", children: a })
769
771
  ] });
770
772
  }
771
- function Tt({ label: e, value: t, onInput: i, error: n, required: a }) {
772
- return /* @__PURE__ */ d("label", { class: "flex flex-col gap-1.5", children: [
773
+ function Mt({ label: e, value: t, onInput: i, error: n, required: a }) {
774
+ return /* @__PURE__ */ c("label", { class: "flex flex-col gap-1.5", children: [
773
775
  /* @__PURE__ */ r("span", { class: "text-xs font-medium text-gray-700", children: e }),
774
776
  /* @__PURE__ */ r(
775
777
  "textarea",
@@ -784,46 +786,46 @@ function Tt({ label: e, value: t, onInput: i, error: n, required: a }) {
784
786
  n && /* @__PURE__ */ r("span", { class: "text-xs text-red-600", children: n })
785
787
  ] });
786
788
  }
787
- function Et({ files: e, onChange: t, disabled: i }) {
788
- const n = z(null), [a, o] = b(!1), [s, l] = b(null), h = (c) => {
789
- if (!c || i) return;
789
+ function Tt({ files: e, onChange: t, disabled: i }) {
790
+ const n = L(null), [a, o] = v(!1), [s, l] = v(null), h = (d) => {
791
+ if (!d || i) return;
790
792
  l(null);
791
- const w = Array.from(c);
792
- if (e.length + w.length > D) {
793
- l(`Up to ${D} files`);
793
+ const w = Array.from(d);
794
+ if (e.length + w.length > $) {
795
+ l(`Up to ${$} files`);
794
796
  return;
795
797
  }
796
- const v = w.filter(
797
- (A) => J.includes(A.type) && A.size <= At
798
+ const b = w.filter(
799
+ (A) => J.includes(A.type) && A.size <= It
798
800
  );
799
- if (v.length !== w.length) {
801
+ if (b.length !== w.length) {
800
802
  l("Only JPEG/PNG/WebP, ≤ 10MB each");
801
803
  return;
802
804
  }
803
- t([...e, ...v]);
805
+ t([...e, ...b]);
804
806
  };
805
- return /* @__PURE__ */ d("div", { children: [
807
+ return /* @__PURE__ */ c("div", { children: [
806
808
  /* @__PURE__ */ r("span", { class: "text-xs font-medium text-gray-700", children: "Attachments (optional)" }),
807
- /* @__PURE__ */ d(
809
+ /* @__PURE__ */ c(
808
810
  "div",
809
811
  {
810
812
  role: "button",
811
813
  tabIndex: 0,
812
814
  "aria-label": "Attachments upload",
813
815
  onClick: () => !i && n.current?.click(),
814
- onDragOver: (c) => {
815
- c.preventDefault(), i || o(!0);
816
+ onDragOver: (d) => {
817
+ d.preventDefault(), i || o(!0);
816
818
  },
817
819
  onDragLeave: () => o(!1),
818
- onDrop: (c) => {
819
- c.preventDefault(), o(!1), h(c.dataTransfer?.files ?? null);
820
+ onDrop: (d) => {
821
+ d.preventDefault(), o(!1), h(d.dataTransfer?.files ?? null);
820
822
  },
821
823
  class: `mt-1.5 cursor-pointer rounded-2xl border border-dashed p-3.5 text-center transition-all ${a ? "border-[var(--pw-accent)] bg-[color-mix(in_srgb,var(--pw-accent)_6%,white)]" : "border-gray-300 hover:border-gray-400 hover:bg-gray-50/60"} ${i ? "cursor-not-allowed opacity-60" : ""}`,
822
824
  children: [
823
825
  /* @__PURE__ */ r("div", { class: "text-xs text-gray-500", children: "Drop images here or click to select" }),
824
- /* @__PURE__ */ d("div", { class: "mt-0.5 text-[11px] text-gray-400", children: [
826
+ /* @__PURE__ */ c("div", { class: "mt-0.5 text-[11px] text-gray-400", children: [
825
827
  "JPEG/PNG/WebP, up to ",
826
- D,
828
+ $,
827
829
  " files, ≤ 10MB each"
828
830
  ] })
829
831
  ]
@@ -837,40 +839,40 @@ function Et({ files: e, onChange: t, disabled: i }) {
837
839
  multiple: !0,
838
840
  accept: J.join(","),
839
841
  class: "hidden",
840
- onChange: (c) => {
841
- h(c.target.files), c.currentTarget.value = "";
842
+ onChange: (d) => {
843
+ h(d.target.files), d.currentTarget.value = "";
842
844
  }
843
845
  }
844
846
  ),
845
847
  s && /* @__PURE__ */ r("p", { class: "mt-1 text-xs text-red-600", children: s }),
846
- e.length > 0 && /* @__PURE__ */ r("ul", { class: "mt-2 flex flex-col gap-1", children: e.map((c, w) => /* @__PURE__ */ d(
848
+ e.length > 0 && /* @__PURE__ */ r("ul", { class: "mt-2 flex flex-col gap-1", children: e.map((d, w) => /* @__PURE__ */ c(
847
849
  "li",
848
850
  {
849
851
  class: "flex items-center justify-between gap-2 rounded bg-gray-50 px-2 py-1 text-xs",
850
852
  children: [
851
- /* @__PURE__ */ r("span", { class: "truncate text-gray-700", children: c.name }),
853
+ /* @__PURE__ */ r("span", { class: "truncate text-gray-700", children: d.name }),
852
854
  /* @__PURE__ */ r(
853
855
  "button",
854
856
  {
855
857
  type: "button",
856
858
  onClick: () => {
857
- const v = [...e];
858
- v.splice(w, 1), t(v);
859
+ const b = [...e];
860
+ b.splice(w, 1), t(b);
859
861
  },
860
862
  disabled: i,
861
863
  class: "text-gray-500 hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-60",
862
- "aria-label": `Remove ${c.name}`,
864
+ "aria-label": `Remove ${d.name}`,
863
865
  children: "✕"
864
866
  }
865
867
  )
866
868
  ]
867
869
  },
868
- `${c.name}-${c.size}-${w}`
870
+ `${d.name}-${d.size}-${w}`
869
871
  )) })
870
872
  ] });
871
873
  }
872
- function Pt({ block: e, ctx: t }) {
873
- const [i, n] = b(!1), a = e.priceId ?? t.selectedPriceId, o = i || e.action === "checkout" && !a;
874
+ function zt({ block: e, ctx: t }) {
875
+ const [i, n] = v(!1), a = e.priceId ?? t.selectedPriceId, o = i || e.action === "checkout" && !a;
874
876
  return /* @__PURE__ */ r(
875
877
  "button",
876
878
  {
@@ -886,17 +888,17 @@ function Pt({ block: e, ctx: t }) {
886
888
  }
887
889
  }
888
890
  },
889
- class: "relative flex h-12 w-full items-center justify-center overflow-hidden rounded-2xl px-4 text-sm font-semibold tracking-tight text-white transition-all duration-150 hover:-translate-y-px hover:brightness-105 active:translate-y-0 active:brightness-95 disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:translate-y-0 disabled:hover:brightness-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
891
+ class: "pw-cta-shimmer relative mt-1 flex h-14 w-full items-center justify-center overflow-hidden rounded-full px-6 text-base font-semibold tracking-tight text-white transition-transform duration-150 hover:-translate-y-px active:scale-[0.98] active:translate-y-0 disabled:cursor-not-allowed disabled:opacity-60 disabled:hover:translate-y-0 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
890
892
  style: {
891
- background: "linear-gradient(180deg, color-mix(in srgb, var(--pw-accent) 92%, white), var(--pw-accent))",
892
- boxShadow: "0 1px 0 rgba(255,255,255,0.25) inset, 0 1px 2px rgba(15,23,42,0.08), 0 8px 20px -6px color-mix(in srgb, var(--pw-accent) 50%, transparent)"
893
+ background: "linear-gradient(135deg, color-mix(in srgb, var(--pw-accent) 55%, white) 0%, var(--pw-accent) 55%, color-mix(in srgb, var(--pw-accent) 90%, black) 100%)",
894
+ boxShadow: "0 0 24px 0 color-mix(in srgb, var(--pw-accent) 35%, transparent), inset 0 0 8px 0 color-mix(in srgb, white 25%, transparent), 0 1px 2px rgba(15,23,42,0.08)"
893
895
  },
894
- children: i ? /* @__PURE__ */ r("span", { class: "inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : e.label
896
+ children: i ? /* @__PURE__ */ r("span", { class: "relative z-10 inline-block h-4 w-4 animate-spin rounded-full border-2 border-white/40 border-t-white" }) : /* @__PURE__ */ r("span", { class: "relative z-10", children: e.label })
895
897
  }
896
898
  );
897
899
  }
898
- function jt({ ctx: e }) {
899
- const t = e.authSession, i = e.auth, [n, a] = b(!1), o = () => e.onAction("support");
900
+ function Pt({ ctx: e }) {
901
+ const t = e.authSession, i = e.auth, [n, a] = v(!1), o = () => e.onAction("support");
900
902
  if (t && !t.user.is_anonymous) {
901
903
  const s = async () => {
902
904
  if (!(!i || n)) {
@@ -909,55 +911,47 @@ function jt({ ctx: e }) {
909
911
  }
910
912
  }
911
913
  };
912
- return /* @__PURE__ */ d("div", { class: "mt-2 text-center text-xs text-gray-500", children: [
913
- /* @__PURE__ */ r("span", { children: "Signed in as " }),
914
- /* @__PURE__ */ r("b", { class: "font-medium text-gray-700", children: t.user.email }),
915
- /* @__PURE__ */ d("div", { class: "mt-1 flex items-center justify-center gap-3", children: [
916
- /* @__PURE__ */ r(
917
- "button",
918
- {
919
- type: "button",
920
- onClick: s,
921
- disabled: !i || n,
922
- class: "font-medium text-gray-600 underline-offset-2 hover:underline disabled:cursor-not-allowed disabled:opacity-60 focus:outline-none focus-visible:underline",
923
- children: n ? "Signing out…" : "Sign out"
924
- }
925
- ),
914
+ return /* @__PURE__ */ c("div", { class: "-mt-3 flex flex-col items-center gap-1.5 pt-1 text-center text-[13px] text-gray-500", children: [
915
+ /* @__PURE__ */ c("span", { children: [
916
+ "Signed in as",
917
+ " ",
918
+ /* @__PURE__ */ r("b", { class: "font-medium text-gray-700", children: t.user.email })
919
+ ] }),
920
+ /* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-3", children: [
921
+ /* @__PURE__ */ r(U, { onClick: s, disabled: !i || n, children: n ? "Signing out…" : "Sign Out" }),
926
922
  /* @__PURE__ */ r(et, {}),
927
- /* @__PURE__ */ r(tt, { onClick: o })
923
+ /* @__PURE__ */ r(U, { onClick: o, children: "Contact Support" })
928
924
  ] })
929
925
  ] });
930
926
  }
931
- return /* @__PURE__ */ d("div", { class: "mt-2 flex items-center justify-center gap-3 text-center text-xs text-gray-500", children: [
932
- /* @__PURE__ */ r(
933
- "button",
934
- {
935
- type: "button",
936
- onClick: () => e.onAction("restore"),
937
- class: "font-medium text-gray-600 underline-offset-2 hover:underline focus:outline-none focus-visible:underline",
938
- children: "Restore purchases"
939
- }
940
- ),
927
+ return /* @__PURE__ */ c("div", { class: "-mt-3 flex items-center justify-center gap-3 pt-1 text-center text-[13px]", children: [
928
+ /* @__PURE__ */ r(U, { onClick: () => e.onAction("restore"), children: "Restore purchases" }),
941
929
  /* @__PURE__ */ r(et, {}),
942
- /* @__PURE__ */ r(tt, { onClick: o })
930
+ /* @__PURE__ */ r(U, { onClick: o, children: "Contact Support" })
943
931
  ] });
944
932
  }
945
- function tt({ onClick: e }) {
933
+ function U({
934
+ onClick: e,
935
+ disabled: t,
936
+ children: i
937
+ }) {
946
938
  return /* @__PURE__ */ r(
947
939
  "button",
948
940
  {
949
941
  type: "button",
950
942
  onClick: e,
951
- class: "font-medium text-gray-600 underline-offset-2 hover:underline focus:outline-none focus-visible:underline",
952
- children: "Contact Support"
943
+ disabled: t,
944
+ class: "font-semibold underline underline-offset-2 transition-opacity hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-60 focus:outline-none focus-visible:opacity-80",
945
+ style: { color: "var(--pw-accent)" },
946
+ children: i
953
947
  }
954
948
  );
955
949
  }
956
950
  function et() {
957
951
  return /* @__PURE__ */ r("span", { class: "h-1 w-1 rounded-full bg-gray-300", "aria-hidden": "true" });
958
952
  }
959
- function zt({ block: e }) {
960
- return e.items.length ? /* @__PURE__ */ r("ul", { class: "flex flex-col gap-2.5", role: "list", children: e.items.map((t) => /* @__PURE__ */ d("li", { class: "flex items-start gap-3 text-sm text-gray-700", children: [
953
+ function Et({ block: e }) {
954
+ return e.items.length ? /* @__PURE__ */ r("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: [
961
955
  /* @__PURE__ */ r(
962
956
  "span",
963
957
  {
@@ -979,45 +973,84 @@ function zt({ block: e }) {
979
973
  ) })
980
974
  }
981
975
  ),
982
- /* @__PURE__ */ d("div", { class: "flex flex-col gap-0.5", children: [
976
+ /* @__PURE__ */ c("div", { class: "flex flex-col gap-0.5", children: [
983
977
  /* @__PURE__ */ r("span", { class: "font-medium leading-snug text-gray-900", children: t.name }),
984
978
  t.desc ? /* @__PURE__ */ r("span", { class: "text-xs leading-relaxed text-gray-500", children: t.desc }) : null
985
979
  ] })
986
980
  ] }, t.id)) }) : null;
987
981
  }
988
- const dt = 26, Lt = 14, Bt = 2;
989
- function Ot(e, t) {
990
- const i = t * Bt;
991
- let n = dt;
992
- for (e.style.fontSize = `${n}px`; e.scrollHeight > i && n > Lt; )
982
+ function Lt({ block: e }) {
983
+ const t = e.title ?? "100% Money-Back Guarantee", i = e.subtitle ?? "Not satisfied? We'll refund you — no questions asked.", n = (e.icon ?? "dollar_shield") !== "none";
984
+ return /* @__PURE__ */ c("div", { class: "-mt-1 flex flex-col items-center gap-1 border-b border-gray-200 pb-4 text-center", children: [
985
+ /* @__PURE__ */ c("div", { class: "flex items-center justify-center gap-1.5", children: [
986
+ n ? /* @__PURE__ */ r(jt, {}) : null,
987
+ /* @__PURE__ */ r("b", { class: "text-[14px] font-semibold text-gray-700", children: t })
988
+ ] }),
989
+ i ? /* @__PURE__ */ r("span", { class: "text-[12px] leading-relaxed text-gray-500", children: i }) : null
990
+ ] });
991
+ }
992
+ function jt() {
993
+ return /* @__PURE__ */ r(
994
+ "svg",
995
+ {
996
+ xmlns: "http://www.w3.org/2000/svg",
997
+ viewBox: "0 0 512 512",
998
+ fill: "currentColor",
999
+ width: "18",
1000
+ height: "18",
1001
+ class: "text-emerald-500",
1002
+ "aria-hidden": "true",
1003
+ children: /* @__PURE__ */ r("path", { d: "M257.5 .1l3.1 .4 192 42.7c4.3 1 8.2 3.2 11.2 6.5s4.8 7.4 5.3 11.8l.2 2.5 0 234.7C469.3 416.5 373.8 512 256 512C140.1 512 45.9 419.7 42.7 304.6l-.1-6L42.7 64c0-4.4 1.4-8.8 3.9-12.4s6.2-6.3 10.4-7.8l2.4-.7L251.4 .5c2-.4 4.1-.6 6.2-.4zM256 85.3c-12.8 0-21.3 8.5-21.3 21.3l0 23.5c-36.3 4.3-64 34.1-64 72.5c0 44.8 34.1 61.9 64 70.4l0 66.1c-11.9-4-20.1-15.3-21.2-27.1l-.1-2.7c0-12.8-8.5-21.3-21.3-21.3s-21.3 8.5-21.3 21.3c0 38.4 27.7 68.3 64 72.5l0 23.5c0 12.8 8.5 21.3 21.3 21.3s21.3-8.5 21.3-21.3l0-23.5c36.3-4.3 64-36.3 64-72.5c0-44.8-34.1-61.9-64-70.4l0-66.1c11.9 4 20.1 15.3 21.2 27.1l.1 2.7c0 12.8 8.5 21.3 21.3 21.3s21.3-8.5 21.3-21.3c0-38.4-27.7-68.3-64-72.5l0-23.5c0-12.8-8.5-21.3-21.3-21.3zm21.3 198.4c14.9 6.4 21.3 12.8 21.3 25.6c0 14.9-8.5 25.6-21.3 29.9l0-55.5zM234.7 172.8l0 55.5c-14.9-6.4-21.3-12.8-21.3-25.6c0-14.9 8.5-25.6 21.3-29.9z" })
1004
+ }
1005
+ );
1006
+ }
1007
+ const ct = 30, Bt = 16, Ot = 2;
1008
+ function Ut(e, t) {
1009
+ const i = t * Ot;
1010
+ let n = ct;
1011
+ for (e.style.fontSize = `${n}px`; e.scrollHeight > i && n > Bt; )
993
1012
  n -= 1, e.style.fontSize = `${n}px`;
994
1013
  }
995
- function Ut({ block: e, ctx: t }) {
996
- const i = e.level ?? 1, n = `h${i}`, a = i === 1 ? "text-[1.625rem] font-semibold leading-tight text-gray-900 tracking-[-0.02em]" : i === 2 ? "text-xl font-semibold leading-snug text-gray-900 tracking-tight" : "text-base font-medium text-gray-900", o = z(null), s = i === 1 && !!t.bootstrap.settings.title_auto_fit;
1014
+ function Ft({ block: e, ctx: t }) {
1015
+ const i = e.level ?? 1, n = `h${i}`, a = i === 1 ? "text-[1.875rem] font-bold leading-[1.15] text-center text-balance text-gray-900 tracking-[-0.02em]" : i === 2 ? "text-xl font-semibold leading-snug text-gray-900 tracking-tight" : "text-base font-medium text-gray-900", o = L(null), s = i === 1 && !!t.bootstrap.settings.title_auto_fit;
997
1016
  return T(() => {
998
1017
  if (!s || !o.current) return;
999
- const l = getComputedStyle(o.current), h = parseFloat(l.lineHeight) || dt * 1.5;
1000
- Ot(o.current, h);
1018
+ const l = getComputedStyle(o.current), h = parseFloat(l.lineHeight) || ct * 1.5;
1019
+ Ut(o.current, h);
1001
1020
  }, [s, e.text]), /* @__PURE__ */ r(n, { ref: o, class: a, children: e.text });
1002
1021
  }
1003
1022
  function Rt(e) {
1004
1023
  const t = e.local ?? { currency: e.currency, amount: e.amount };
1005
1024
  try {
1006
- return new Intl.NumberFormat(void 0, {
1025
+ const i = new Intl.NumberFormat(void 0, {
1007
1026
  style: "currency",
1008
1027
  currency: t.currency,
1009
- maximumFractionDigits: t.amount % 1 === 0 ? 0 : 2
1010
- }).format(t.amount);
1028
+ currencyDisplay: "narrowSymbol",
1029
+ maximumFractionDigits: t.amount % 1 === 0 ? 0 : 2,
1030
+ minimumFractionDigits: t.amount % 1 === 0 ? 0 : 2
1031
+ }).formatToParts(t.amount);
1032
+ let n = "", a = "";
1033
+ for (const o of i)
1034
+ o.type === "currency" ? n = o.value : o.type !== "literal" && (a += o.value);
1035
+ return { currency: n || t.currency, amount: a.trim() };
1011
1036
  } catch {
1012
- return `${t.amount} ${t.currency}`;
1037
+ return { currency: t.currency, amount: String(t.amount) };
1013
1038
  }
1014
1039
  }
1015
- function rt(e) {
1016
- if (!e.interval || e.interval === "lifetime") return "one-time";
1040
+ function Nt(e) {
1041
+ return e.label ? e.label.toUpperCase() : !e.interval || e.interval === "lifetime" ? "LIFETIME" : {
1042
+ day: "DAILY PLAN",
1043
+ week: "WEEKLY PLAN",
1044
+ month: "MONTHLY PLAN",
1045
+ year: "YEARLY PLAN"
1046
+ }[e.interval] ?? `${e.interval.toUpperCase()} PLAN`;
1047
+ }
1048
+ function Dt(e) {
1049
+ if (!e.interval || e.interval === "lifetime") return "lifetime";
1017
1050
  const t = e.interval_count ?? 1;
1018
- return t === 1 ? `per ${e.interval}` : `every ${t} ${e.interval}s`;
1051
+ return t === 1 ? e.interval : `${t} ${e.interval}s`;
1019
1052
  }
1020
- function Ft({ block: e, ctx: t }) {
1053
+ function Ht({ block: e, ctx: t }) {
1021
1054
  const i = e.priceIds && e.priceIds.length > 0 ? new Set(e.priceIds) : null, n = t.bootstrap.prices.filter((l) => !i || i.has(l.id));
1022
1055
  if (n.length === 0)
1023
1056
  return /* @__PURE__ */ r("p", { class: "text-sm text-gray-500", children: "No prices available." });
@@ -1030,8 +1063,8 @@ function Ft({ block: e, ctx: t }) {
1030
1063
  role: "radiogroup",
1031
1064
  "aria-label": "Plans",
1032
1065
  children: n.map((l) => {
1033
- const h = t.selectedPriceId === l.id, c = e.popular_price_id === l.id;
1034
- return /* @__PURE__ */ d(
1066
+ const h = t.selectedPriceId === l.id, d = e.popular_price_id === l.id, { currency: w, amount: b } = Rt(l);
1067
+ return /* @__PURE__ */ c(
1035
1068
  "button",
1036
1069
  {
1037
1070
  type: "button",
@@ -1041,13 +1074,12 @@ function Ft({ block: e, ctx: t }) {
1041
1074
  t.setSelectedPriceId(l.id), t.onAction("price_selected", { priceId: l.id, price: l });
1042
1075
  },
1043
1076
  class: [
1044
- "group relative rounded-2xl border px-4 py-3.5 text-left transition-all duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
1045
- a ? "flex w-full flex-col items-start gap-1" : "flex w-full items-center justify-between gap-3",
1046
- h ? "border-[var(--pw-accent)] bg-[color-mix(in_srgb,var(--pw-accent)_6%,white)] shadow-[0_0_0_3px_color-mix(in_srgb,var(--pw-accent)_12%,transparent)]" : "border-gray-200 bg-white hover:border-gray-300 hover:shadow-sm",
1047
- c ? "mt-2.5" : ""
1077
+ "group relative flex w-full items-center gap-3 rounded-2xl border px-4 py-3 text-left transition-all duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--pw-accent)]",
1078
+ h ? "border-[var(--pw-accent)] shadow-[0_0_0_1px_var(--pw-accent)]" : "border-gray-200 bg-white hover:border-gray-300 hover:shadow-sm",
1079
+ d ? "mt-2.5" : ""
1048
1080
  ].join(" "),
1049
1081
  children: [
1050
- c ? /* @__PURE__ */ r(
1082
+ d ? /* @__PURE__ */ r(
1051
1083
  "span",
1052
1084
  {
1053
1085
  class: "absolute -top-2.5 left-4 rounded-full px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-white shadow-sm",
@@ -1057,31 +1089,42 @@ function Ft({ block: e, ctx: t }) {
1057
1089
  children: o
1058
1090
  }
1059
1091
  ) : null,
1060
- /* @__PURE__ */ d("div", { class: a ? "flex w-full items-start gap-2.5" : "flex flex-1 items-start gap-2.5", children: [
1061
- /* @__PURE__ */ r(
1062
- "span",
1063
- {
1064
- class: [
1065
- "mt-0.5 flex h-4 w-4 flex-shrink-0 items-center justify-center rounded-full border transition-colors",
1066
- h ? "border-[var(--pw-accent)] bg-[var(--pw-accent)]" : "border-gray-300 bg-white group-hover:border-gray-400"
1067
- ].join(" "),
1068
- "aria-hidden": "true",
1069
- children: h ? /* @__PURE__ */ r("span", { class: "h-1.5 w-1.5 rounded-full bg-white" }) : null
1070
- }
1071
- ),
1072
- /* @__PURE__ */ d("div", { class: "flex flex-col", children: [
1073
- /* @__PURE__ */ r("span", { class: "text-sm font-semibold text-gray-900", children: l.label ?? rt(l) }),
1074
- l.description ? /* @__PURE__ */ r("span", { class: "text-xs leading-relaxed text-gray-500", children: l.description }) : null,
1075
- l.trial_days ? /* @__PURE__ */ d("span", { class: "text-xs font-medium text-[var(--pw-accent)]", children: [
1076
- l.trial_days,
1077
- "-day free trial"
1078
- ] }) : null
1079
- ] })
1092
+ /* @__PURE__ */ c("div", { class: "flex flex-1 flex-col gap-0.5", children: [
1093
+ /* @__PURE__ */ r("span", { class: "text-[11px] font-medium uppercase tracking-[0.08em] text-gray-500", children: Nt(l) }),
1094
+ /* @__PURE__ */ c("div", { class: "flex items-baseline gap-1.5 leading-none", children: [
1095
+ /* @__PURE__ */ r("span", { class: "text-[24px] font-normal text-gray-400", children: w }),
1096
+ /* @__PURE__ */ r("span", { class: "text-[34px] font-semibold tracking-tight text-gray-900", children: b }),
1097
+ /* @__PURE__ */ c("span", { class: "ml-1 text-sm font-medium text-gray-400", children: [
1098
+ "/ ",
1099
+ Dt(l)
1100
+ ] })
1101
+ ] }),
1102
+ l.description ? /* @__PURE__ */ r("span", { class: "mt-1 text-xs leading-relaxed text-gray-500", children: l.description }) : null,
1103
+ l.trial_days ? /* @__PURE__ */ c("span", { class: "mt-1 text-xs font-medium text-[var(--pw-accent)]", children: [
1104
+ l.trial_days,
1105
+ "-day free trial"
1106
+ ] }) : null
1080
1107
  ] }),
1081
- /* @__PURE__ */ d("div", { class: a ? "mt-1 flex flex-col items-start" : "flex flex-col items-end", children: [
1082
- /* @__PURE__ */ r("span", { class: "text-base font-semibold tracking-tight text-gray-900", children: Rt(l) }),
1083
- /* @__PURE__ */ r("span", { class: "text-[11px] text-gray-500", children: rt(l) })
1084
- ] })
1108
+ /* @__PURE__ */ r(
1109
+ "span",
1110
+ {
1111
+ class: [
1112
+ "flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full border transition-colors",
1113
+ h ? "border-[var(--pw-accent)] bg-[var(--pw-accent)] text-white" : "border-gray-300 bg-white text-transparent group-hover:border-gray-400"
1114
+ ].join(" "),
1115
+ "aria-hidden": "true",
1116
+ children: /* @__PURE__ */ r("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ r(
1117
+ "path",
1118
+ {
1119
+ d: "M3.5 8.5l3 3 6-7",
1120
+ stroke: "currentColor",
1121
+ "stroke-width": "2",
1122
+ "stroke-linecap": "round",
1123
+ "stroke-linejoin": "round"
1124
+ }
1125
+ ) })
1126
+ }
1127
+ )
1085
1128
  ]
1086
1129
  },
1087
1130
  l.id
@@ -1090,36 +1133,36 @@ function Ft({ block: e, ctx: t }) {
1090
1133
  }
1091
1134
  );
1092
1135
  }
1093
- function Nt({ block: e }) {
1136
+ function Vt({ block: e }) {
1094
1137
  return /* @__PURE__ */ r("p", { class: "text-[0.9375rem] leading-relaxed text-gray-600", children: e.text });
1095
1138
  }
1096
- const Vt = {
1139
+ const $t = {
1097
1140
  week: 0.25,
1098
1141
  month: 1,
1099
1142
  year: 12
1100
1143
  };
1101
- function Ht(e) {
1144
+ function Gt(e) {
1102
1145
  return e || "period";
1103
1146
  }
1104
- function Dt({ block: e, ctx: t }) {
1147
+ function qt({ block: e, ctx: t }) {
1105
1148
  if (!e.queries.length) return null;
1106
- const n = t.bootstrap.prices.find((o) => o.id === t.selectedPriceId)?.interval ?? null, a = n ? Vt[n] : void 0;
1107
- return /* @__PURE__ */ d("div", { class: "flex flex-col gap-2", children: [
1108
- /* @__PURE__ */ d("div", { class: "text-sm font-semibold text-gray-800", children: [
1149
+ const n = t.bootstrap.prices.find((o) => o.id === t.selectedPriceId)?.interval ?? null, a = n ? $t[n] : void 0;
1150
+ return /* @__PURE__ */ c("div", { class: "flex flex-col gap-2", children: [
1151
+ /* @__PURE__ */ c("div", { class: "text-sm font-semibold text-gray-800", children: [
1109
1152
  "Included per ",
1110
- /* @__PURE__ */ r("span", { children: Ht(n) }),
1153
+ /* @__PURE__ */ r("span", { children: Gt(n) }),
1111
1154
  ":"
1112
1155
  ] }),
1113
1156
  /* @__PURE__ */ r("ul", { class: "flex flex-col gap-2", role: "list", children: e.queries.map((o) => {
1114
1157
  const s = Number.isFinite(o.count) ? o.count : 0, l = a !== void 0 ? Math.round(s * a) : s;
1115
- return /* @__PURE__ */ d("li", { class: `flex gap-2 ${o.desc ? "" : "items-center"}`, children: [
1158
+ return /* @__PURE__ */ c("li", { class: `flex gap-2 ${o.desc ? "" : "items-center"}`, children: [
1116
1159
  /* @__PURE__ */ r(
1117
1160
  "span",
1118
1161
  {
1119
1162
  class: `flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full ${o.desc ? "mt-0.5" : ""}`,
1120
1163
  style: {
1121
- background: "color-mix(in srgb, var(--pw-accent) 12%, white)",
1122
- color: "var(--pw-accent)"
1164
+ background: "var(--pw-accent)",
1165
+ color: "#ffffff"
1123
1166
  },
1124
1167
  "aria-hidden": "true",
1125
1168
  children: /* @__PURE__ */ r("svg", { width: "12", height: "12", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ r(
@@ -1127,18 +1170,18 @@ function Dt({ block: e, ctx: t }) {
1127
1170
  {
1128
1171
  d: "M5 10l3 3 7-7",
1129
1172
  stroke: "currentColor",
1130
- "stroke-width": "2.5",
1173
+ "stroke-width": "2.75",
1131
1174
  "stroke-linecap": "round",
1132
1175
  "stroke-linejoin": "round"
1133
1176
  }
1134
1177
  ) })
1135
1178
  }
1136
1179
  ),
1137
- /* @__PURE__ */ d("div", { children: [
1180
+ /* @__PURE__ */ c("div", { children: [
1138
1181
  /* @__PURE__ */ r("span", { class: "font-semibold text-gray-900 text-sm", children: l }),
1139
1182
  " ",
1140
1183
  /* @__PURE__ */ r("span", { class: "text-sm text-gray-800", children: o.name }),
1141
- o.desc ? /* @__PURE__ */ d(nt, { children: [
1184
+ o.desc ? /* @__PURE__ */ c(at, { children: [
1142
1185
  /* @__PURE__ */ r("br", {}),
1143
1186
  /* @__PURE__ */ r("span", { class: "text-xs text-gray-500", children: o.desc })
1144
1187
  ] }) : null
@@ -1147,18 +1190,19 @@ function Dt({ block: e, ctx: t }) {
1147
1190
  }) })
1148
1191
  ] });
1149
1192
  }
1150
- const $t = {
1151
- heading: Ut,
1152
- text: Nt,
1153
- price_grid: Ft,
1154
- cta_button: Pt,
1155
- auth_panel: ct,
1156
- current_session: jt,
1157
- features_list: zt,
1158
- tokenization_gate: Dt
1193
+ const Wt = {
1194
+ heading: Ft,
1195
+ text: Vt,
1196
+ price_grid: Ht,
1197
+ cta_button: zt,
1198
+ auth_panel: lt,
1199
+ current_session: Pt,
1200
+ features_list: Et,
1201
+ tokenization_gate: qt,
1202
+ guarantee_badge: Lt
1159
1203
  };
1160
- function Gt({ layout: e, bootstrap: t, onAction: i, auth: n, authSession: a }) {
1161
- const o = ot(() => t.prices[0]?.id ?? null, [t.prices]), [s, l] = b(o), h = {
1204
+ function Zt({ layout: e, bootstrap: t, onAction: i, auth: n, authSession: a }) {
1205
+ const o = nt(() => t.prices[0]?.id ?? null, [t.prices]), [s, l] = v(o), h = {
1162
1206
  bootstrap: t,
1163
1207
  selectedPriceId: s,
1164
1208
  setSelectedPriceId: l,
@@ -1166,18 +1210,18 @@ function Gt({ layout: e, bootstrap: t, onAction: i, auth: n, authSession: a }) {
1166
1210
  auth: n,
1167
1211
  authSession: a
1168
1212
  };
1169
- return /* @__PURE__ */ r("div", { class: "flex flex-col gap-4", children: e.blocks.map((c, w) => {
1170
- const v = $t[c.type];
1171
- return v ? /* @__PURE__ */ r(v, { block: c, ctx: h }, w) : (typeof console < "u" && console.warn(`[paywall] unknown block type: ${c.type}`), null);
1213
+ return /* @__PURE__ */ r("div", { class: "flex flex-col gap-4", children: e.blocks.map((d, w) => {
1214
+ const b = Wt[d.type];
1215
+ return b ? /* @__PURE__ */ r(b, { block: d, ctx: h }, w) : (typeof console < "u" && console.warn(`[paywall] unknown block type: ${d.type}`), null);
1172
1216
  }) });
1173
1217
  }
1174
- function qt(e, t, i, n) {
1218
+ function Yt(e, t, i, n) {
1175
1219
  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 } : i.kind === "support" ? { open: !0, view: "support", error: null } : i.kind === "auth_gate" ? { open: !0, view: "auth", error: null } : i.kind === "anon_gate" ? { open: !0, view: "anon", error: null } : i.kind === "awaiting_payment" ? { open: !0, view: "awaiting_payment", error: null } : i.kind === "popup_blocked" ? { open: !0, view: "popup_blocked", error: null } : i.kind === "purchase_success" ? { open: !0, view: "purchased", error: null } : i.kind === "verifying" ? { open: !0, view: "loading", error: null } : { open: !0, view: "layout", error: null } : { open: !1, view: null, error: null };
1176
1220
  }
1177
- function Wt(e, t) {
1221
+ function Kt(e, t) {
1178
1222
  return e.open === t.open && e.view === t.view && e.error === t.error;
1179
1223
  }
1180
- function Zt({
1224
+ function Xt({
1181
1225
  client: e,
1182
1226
  open: t,
1183
1227
  onClose: i,
@@ -1188,16 +1232,16 @@ function Zt({
1188
1232
  onState: l,
1189
1233
  inline: h
1190
1234
  }) {
1191
- const [c, w] = b({ status: "idle" }), [v, A] = b(
1235
+ const [d, w] = v({ status: "idle" }), [b, A] = v(
1192
1236
  () => e.auth?.getCachedSession() ?? null
1193
- ), [g, f] = b(() => a === "support" ? { kind: "support", origin: "standalone" } : a === "auth" ? { kind: "auth_gate", origin: "standalone" } : a === "anon" ? { kind: "anon_gate", origin: "standalone" } : { kind: "layout" }), _ = z(!1), k = z(null);
1237
+ ), [g, f] = v(() => a === "support" ? { kind: "support", origin: "standalone" } : a === "auth" ? { kind: "auth_gate", origin: "standalone" } : a === "anon" ? { kind: "anon_gate", origin: "standalone" } : { kind: "layout" }), _ = L(!1), k = L(null);
1194
1238
  T(() => {
1195
1239
  if (!l) return;
1196
- const u = qt(t, c, g, o), p = k.current;
1197
- p && Wt(p, u) || (k.current = u, l(u));
1198
- }, [t, c, g, o, l]), T(() => {
1240
+ const u = Yt(t, d, g, o), p = k.current;
1241
+ p && Kt(p, u) || (k.current = u, l(u));
1242
+ }, [t, d, g, o, l]), T(() => {
1199
1243
  if (e.auth)
1200
- return e.auth.onAuthChange((u) => A(u));
1244
+ return e.auth.onAuthChange((u, p) => A(p));
1201
1245
  }, [e.auth]), T(() => {
1202
1246
  if (typeof e.onBootstrapChange == "function")
1203
1247
  return e.onBootstrapChange((u) => {
@@ -1206,7 +1250,7 @@ function Zt({
1206
1250
  );
1207
1251
  });
1208
1252
  }, [e]), T(() => {
1209
- if (!t || c.status === "ready" || c.status === "loading") return;
1253
+ if (!t || d.status === "ready" || d.status === "loading") return;
1210
1254
  let u = !1;
1211
1255
  return w({ status: "loading" }), e.bootstrap().then((p) => {
1212
1256
  u || (w({ status: "ready", data: p }), n("ready", p), p.user?.has_active_subscription && !s && (n("purchase_completed", {
@@ -1216,7 +1260,7 @@ function Zt({
1216
1260
  }), f({ kind: "purchase_success", restored: !0 })));
1217
1261
  }).catch((p) => {
1218
1262
  if (u) return;
1219
- const x = p instanceof E ? p : new E("unknown", "Failed to load paywall", { cause: p });
1263
+ const x = p instanceof z ? p : new z("unknown", "Failed to load paywall", { cause: p });
1220
1264
  w({ status: "error", error: x }), n("error", x);
1221
1265
  }), () => {
1222
1266
  u = !0;
@@ -1245,7 +1289,7 @@ function Zt({
1245
1289
  } else
1246
1290
  f({ kind: "popup_blocked", priceId: u, url: p.url });
1247
1291
  } catch (p) {
1248
- if (p instanceof E && p.code === "already_purchased") {
1292
+ if (p instanceof z && p.code === "already_purchased") {
1249
1293
  try {
1250
1294
  await e.getUser({ force: !0 });
1251
1295
  } catch {
@@ -1253,7 +1297,7 @@ function Zt({
1253
1297
  n("purchase_completed", { priceId: u, sessionId: null, restored: !0 }), f({ kind: "purchase_success", restored: !0 });
1254
1298
  return;
1255
1299
  }
1256
- const x = p instanceof E ? p : new E("checkout_failed", "Checkout failed", { cause: p });
1300
+ const x = p instanceof z ? p : new z("checkout_failed", "Checkout failed", { cause: p });
1257
1301
  n("error", x), f({ kind: "layout" });
1258
1302
  }
1259
1303
  }, S = (u, p) => {
@@ -1268,7 +1312,7 @@ function Zt({
1268
1312
  }
1269
1313
  };
1270
1314
  T(() => {
1271
- if (g.kind !== "auth_gate" || !v || v.user.is_anonymous || _.current) return;
1315
+ if (g.kind !== "auth_gate" || !b || b.user.is_anonymous || _.current) return;
1272
1316
  _.current = !0;
1273
1317
  const u = g.pendingCheckout, p = g.origin;
1274
1318
  f({ kind: "verifying" }), (async () => {
@@ -1292,7 +1336,7 @@ function Zt({
1292
1336
  })().finally(() => {
1293
1337
  _.current = !1;
1294
1338
  });
1295
- }, [v, g]);
1339
+ }, [b, g]);
1296
1340
  const y = async (u, p) => {
1297
1341
  if (u === "close") {
1298
1342
  i();
@@ -1311,19 +1355,19 @@ function Zt({
1311
1355
  f({ kind: "support", origin: "layout" });
1312
1356
  return;
1313
1357
  }
1314
- if (u === "checkout" && c.status === "ready") {
1358
+ if (u === "checkout" && d.status === "ready") {
1315
1359
  const x = p?.priceId;
1316
1360
  if (!x) {
1317
- n("error", new E("no_price", "No price selected"));
1361
+ n("error", new z("no_price", "No price selected"));
1318
1362
  return;
1319
1363
  }
1320
- if ((c.data.settings.checkout_mode ?? "guest") === "preauth" && !!e.auth && !e.auth.getCachedSession()) {
1364
+ if ((d.data.settings.checkout_mode ?? "guest") === "preauth" && !!e.auth && !e.auth.getCachedSession()) {
1321
1365
  f({ kind: "auth_gate", pendingCheckout: { priceId: x } });
1322
1366
  return;
1323
1367
  }
1324
1368
  await m(x);
1325
1369
  }
1326
- }, P = c.status === "ready" ? c.data.settings.brand_color : null, j = c.status === "ready" ? !!c.data.settings.is_test_mode : !1, I = c.status === "ready" ? c.data.settings.allow_close !== !1 : !0, M = {
1370
+ }, P = d.status === "ready" ? d.data.settings.brand_color : null, E = d.status === "ready" ? !!d.data.settings.is_test_mode : !1, I = d.status === "ready" ? d.data.settings.allow_close !== !1 : !0, M = {
1327
1371
  type: "auth_panel",
1328
1372
  heading: "Sign in to continue",
1329
1373
  allow_signup: !0,
@@ -1331,12 +1375,12 @@ function Zt({
1331
1375
  // Не скрываем при наличии сессии — auto-resume useEffect отрабатывает быстрее,
1332
1376
  // чем хотим показывать "Signed in as ..." промежуточным экраном.
1333
1377
  hide_when_authenticated: !1,
1334
- providers: c.status === "ready" ? c.data.settings.auth_providers : void 0
1378
+ providers: d.status === "ready" ? d.data.settings.auth_providers : void 0
1335
1379
  }, C = g.kind === "support" ? /* @__PURE__ */ r(
1336
- Mt,
1380
+ At,
1337
1381
  {
1338
1382
  client: e,
1339
- authSession: v,
1383
+ authSession: b,
1340
1384
  origin: g.origin,
1341
1385
  onBack: () => {
1342
1386
  g.origin === "standalone" ? i() : f({ kind: "layout" });
@@ -1344,20 +1388,20 @@ function Zt({
1344
1388
  }
1345
1389
  ) : null;
1346
1390
  return /* @__PURE__ */ r(
1347
- bt,
1391
+ wt,
1348
1392
  {
1349
1393
  open: t,
1350
1394
  onClose: i,
1351
1395
  brandColor: P,
1352
- testMode: j,
1396
+ testMode: E,
1353
1397
  allowClose: I,
1354
1398
  inline: h,
1355
1399
  labelledBy: "pw-title",
1356
- children: o ? /* @__PURE__ */ r(it, { onContinue: i }) : g.kind === "purchase_success" ? /* @__PURE__ */ r(it, { restored: g.restored, onContinue: i }) : C || (c.status === "loading" || c.status === "idle" || g.kind === "verifying" ? /* @__PURE__ */ d("div", { class: "flex flex-col items-center justify-center gap-3 py-12", children: [
1400
+ children: o ? /* @__PURE__ */ r(rt, { onContinue: i }) : g.kind === "purchase_success" ? /* @__PURE__ */ r(rt, { restored: g.restored, onContinue: i }) : C || (d.status === "loading" || d.status === "idle" || g.kind === "verifying" ? /* @__PURE__ */ c("div", { class: "flex flex-col items-center justify-center gap-3 py-12", children: [
1357
1401
  /* @__PURE__ */ r("span", { class: "inline-block h-7 w-7 animate-spin rounded-full border-[2.5px] border-gray-200 border-t-[var(--pw-accent)]" }),
1358
1402
  /* @__PURE__ */ r("span", { class: "text-xs font-medium tracking-wide text-gray-500", children: g.kind === "verifying" ? "Checking your subscription…" : "Loading…" })
1359
- ] }) : c.status === "error" ? /* @__PURE__ */ d("div", { class: "flex flex-col items-center gap-2 py-8 text-center", children: [
1360
- /* @__PURE__ */ r("div", { class: "flex h-11 w-11 items-center justify-center rounded-full bg-red-50", children: /* @__PURE__ */ d("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
1403
+ ] }) : d.status === "error" ? /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-2 py-8 text-center", children: [
1404
+ /* @__PURE__ */ r("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: [
1361
1405
  /* @__PURE__ */ r(
1362
1406
  "path",
1363
1407
  {
@@ -1370,21 +1414,21 @@ function Zt({
1370
1414
  /* @__PURE__ */ r("circle", { cx: "10", cy: "10", r: "8", stroke: "#dc2626", "stroke-width": "1.75" })
1371
1415
  ] }) }),
1372
1416
  /* @__PURE__ */ r("p", { class: "text-sm font-semibold tracking-tight text-gray-900", children: "Something went wrong" }),
1373
- /* @__PURE__ */ r("p", { class: "text-xs leading-relaxed text-gray-500", children: c.error.message })
1417
+ /* @__PURE__ */ r("p", { class: "text-xs leading-relaxed text-gray-500", children: d.error.message })
1374
1418
  ] }) : g.kind === "auth_gate" && e.auth ? /* @__PURE__ */ r(
1375
- St,
1419
+ _t,
1376
1420
  {
1377
1421
  block: M,
1378
- bootstrap: c.data,
1422
+ bootstrap: d.data,
1379
1423
  auth: e.auth,
1380
- authSession: v,
1424
+ authSession: b,
1381
1425
  showBack: g.origin !== "standalone",
1382
1426
  onBack: () => {
1383
1427
  g.origin === "standalone" ? i() : f({ kind: "layout" });
1384
1428
  }
1385
1429
  }
1386
1430
  ) : g.kind === "anon_gate" && e.auth ? /* @__PURE__ */ r(
1387
- Ct,
1431
+ St,
1388
1432
  {
1389
1433
  auth: e.auth,
1390
1434
  onSuccess: () => {
@@ -1393,7 +1437,7 @@ function Zt({
1393
1437
  onBack: g.origin === "standalone" ? void 0 : () => f({ kind: "layout" })
1394
1438
  }
1395
1439
  ) : g.kind === "awaiting_payment" ? /* @__PURE__ */ r(
1396
- Xt,
1440
+ Jt,
1397
1441
  {
1398
1442
  client: e,
1399
1443
  onBack: () => f({ kind: "layout" }),
@@ -1408,14 +1452,14 @@ function Zt({
1408
1452
  },
1409
1453
  onRetry: () => m(g.priceId)
1410
1454
  }
1411
- ) : g.kind === "popup_blocked" ? /* @__PURE__ */ d("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
1455
+ ) : g.kind === "popup_blocked" ? /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
1412
1456
  /* @__PURE__ */ r(
1413
1457
  "div",
1414
1458
  {
1415
1459
  class: "flex h-11 w-11 items-center justify-center rounded-full",
1416
1460
  style: { background: "color-mix(in srgb, var(--pw-accent) 12%, white)", color: "var(--pw-accent)" },
1417
1461
  "aria-hidden": "true",
1418
- children: /* @__PURE__ */ d("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: [
1462
+ children: /* @__PURE__ */ c("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: [
1419
1463
  /* @__PURE__ */ r(
1420
1464
  "path",
1421
1465
  {
@@ -1445,28 +1489,28 @@ function Zt({
1445
1489
  }
1446
1490
  )
1447
1491
  ] }) : /* @__PURE__ */ r(
1448
- Gt,
1492
+ Zt,
1449
1493
  {
1450
- layout: c.data.layout,
1451
- bootstrap: c.data,
1494
+ layout: d.data.layout,
1495
+ bootstrap: d.data,
1452
1496
  onAction: y,
1453
1497
  auth: e.auth,
1454
- authSession: v
1498
+ authSession: b
1455
1499
  }
1456
1500
  ))
1457
1501
  }
1458
1502
  );
1459
1503
  }
1460
- function Xt({
1504
+ function Jt({
1461
1505
  client: e,
1462
1506
  onBack: t,
1463
1507
  onReopen: i,
1464
1508
  onRetry: n
1465
1509
  }) {
1466
- const [a, o] = b(!1), [s, l] = b(!1), h = z(null);
1510
+ const [a, o] = v(!1), [s, l] = v(!1), h = L(null);
1467
1511
  return T(() => () => {
1468
1512
  h.current !== null && clearTimeout(h.current);
1469
- }, []), /* @__PURE__ */ d("div", { class: "flex flex-col gap-3", children: [
1513
+ }, []), /* @__PURE__ */ c("div", { class: "flex flex-col gap-3", children: [
1470
1514
  /* @__PURE__ */ r(
1471
1515
  "button",
1472
1516
  {
@@ -1476,8 +1520,8 @@ function Xt({
1476
1520
  children: "← Back"
1477
1521
  }
1478
1522
  ),
1479
- /* @__PURE__ */ d("div", { class: "flex flex-col items-center gap-3 py-6 text-center", children: [
1480
- /* @__PURE__ */ d("div", { class: "relative flex h-12 w-12 items-center justify-center", children: [
1523
+ /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-6 text-center", children: [
1524
+ /* @__PURE__ */ c("div", { class: "relative flex h-12 w-12 items-center justify-center", children: [
1481
1525
  /* @__PURE__ */ r(
1482
1526
  "span",
1483
1527
  {
@@ -1523,7 +1567,7 @@ function Xt({
1523
1567
  ),
1524
1568
  s ? /* @__PURE__ */ r("p", { class: "text-xs leading-relaxed text-gray-500", children: "Payment is still being processed. Please try again in a moment." }) : null
1525
1569
  ] }),
1526
- /* @__PURE__ */ d("div", { class: "rounded-2xl border border-gray-200 bg-gray-50/60 p-3.5", children: [
1570
+ /* @__PURE__ */ c("div", { class: "rounded-2xl border border-gray-200 bg-gray-50/60 p-3.5", children: [
1527
1571
  /* @__PURE__ */ r("p", { class: "text-xs leading-relaxed text-gray-600", children: "Checkout window didn't open or got blocked? Click here to open it again." }),
1528
1572
  /* @__PURE__ */ r(
1529
1573
  "button",
@@ -1546,11 +1590,11 @@ function Xt({
1546
1590
  )
1547
1591
  ] });
1548
1592
  }
1549
- function it({
1593
+ function rt({
1550
1594
  onContinue: e,
1551
1595
  restored: t = !1
1552
1596
  }) {
1553
- return /* @__PURE__ */ d("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
1597
+ return /* @__PURE__ */ c("div", { class: "flex flex-col items-center gap-3 py-8 text-center", children: [
1554
1598
  /* @__PURE__ */ r(
1555
1599
  "div",
1556
1600
  {
@@ -1591,17 +1635,17 @@ function it({
1591
1635
  )
1592
1636
  ] });
1593
1637
  }
1594
- const Kt = 10 * 6e4, Jt = 5e3, Yt = 3e4;
1595
- class Qt {
1638
+ const Qt = 10 * 6e4, te = 5e3, ee = 3e4;
1639
+ class re {
1596
1640
  constructor(t) {
1597
1641
  this.timer = null, this.timeoutTimer = null, this.visibilityHandler = null, this.focusHandler = null, this.messageHandler = null, this.stopped = !1, this.checking = !1, this.opts = {
1598
1642
  client: t.client,
1599
1643
  onActive: t.onActive,
1600
1644
  onTimeout: t.onTimeout ?? (() => {
1601
1645
  }),
1602
- timeoutMs: t.timeoutMs ?? Kt,
1603
- visibleIntervalMs: t.visibleIntervalMs ?? Jt,
1604
- hiddenIntervalMs: t.hiddenIntervalMs ?? Yt
1646
+ timeoutMs: t.timeoutMs ?? Qt,
1647
+ visibleIntervalMs: t.visibleIntervalMs ?? te,
1648
+ hiddenIntervalMs: t.hiddenIntervalMs ?? ee
1605
1649
  };
1606
1650
  }
1607
1651
  start() {
@@ -1640,22 +1684,22 @@ class Qt {
1640
1684
  !i || typeof i != "object" || i.type === "paywall_purchase" && this.check();
1641
1685
  }
1642
1686
  }
1643
- function te() {
1687
+ function ie() {
1644
1688
  return !(typeof document > "u" || typeof window > "u" || typeof location < "u" && location.protocol === "chrome-extension:");
1645
1689
  }
1646
- const $ = { open: !1, view: null, error: null }, L = {
1690
+ const G = { open: !1, view: null, error: null }, j = {
1647
1691
  status: "paywall_status",
1648
1692
  priceId: "paywall_price_id",
1649
1693
  sessionId: "paywall_session_id"
1650
1694
  };
1651
- class pe {
1695
+ class we {
1652
1696
  constructor(t) {
1653
- 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 = $, this.stateListeners = /* @__PURE__ */ new Set();
1654
- const { auth: i, ownsAuth: n } = ee(t);
1655
- this.auth = i, 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.userUnsub = this.billing.onUserChange((a) => {
1697
+ 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 = G, this.stateListeners = /* @__PURE__ */ new Set();
1698
+ const { auth: i, ownsAuth: n } = ae(t);
1699
+ this.auth = i, this.ownsAuth = n, this.billing = t.client ?? new dt({ ...t, auth: this.auth }), this.host = t.host, this.shadowMode = t.shadowMode ?? "closed", this.mountThenLoad = t.mountThenLoad ?? !0, this.inline = t.inline === !0, this.userUnsub = this.billing.onUserChange((a) => {
1656
1700
  this.emit("userChange", a);
1657
- }), this.auth && (this.authUnsub = this.auth.onAuthChange((a) => {
1658
- this.emit("authChange", a);
1701
+ }), this.auth && (this.authUnsub = this.auth.onAuthChange((a, o) => {
1702
+ this.emit("authChange", { event: a, session: o });
1659
1703
  })), this.initTracker(t.analytics), t.autoDetectReturn !== !1 && typeof window < "u" && queueMicrotask(() => this.checkReturn());
1660
1704
  }
1661
1705
  initTracker(t) {
@@ -1663,7 +1707,7 @@ class pe {
1663
1707
  const i = typeof t == "object" && t !== null ? t : {};
1664
1708
  if (i.enabled === !1) return;
1665
1709
  const n = i.endpoint ?? `${this.billing.apiOrigin}/api/v1/paywall/${this.billing.paywallId}/events`;
1666
- this.tracker = new ht({
1710
+ this.tracker = new ut({
1667
1711
  endpoint: n,
1668
1712
  paywallId: this.billing.paywallId,
1669
1713
  capabilities: this.billing.capabilities,
@@ -1929,11 +1973,11 @@ class pe {
1929
1973
  });
1930
1974
  }
1931
1975
  ensureTrialStore(t) {
1932
- if (this.trialStore && this.trialStoreConfig && ae(this.trialStoreConfig, t))
1976
+ if (this.trialStore && this.trialStoreConfig && se(this.trialStoreConfig, t))
1933
1977
  return this.trialStore;
1934
1978
  this.trialStoreConfig = t;
1935
1979
  const i = this.billing.createTrialStore;
1936
- return this.trialStore = typeof i == "function" ? i.call(this.billing, t) : gt(this.billing.getStorage(), this.billing.paywallId, t), this.trialStore;
1980
+ return this.trialStore = typeof i == "function" ? i.call(this.billing, t) : pt(this.billing.getStorage(), this.billing.paywallId, t), this.trialStore;
1937
1981
  }
1938
1982
  mountAndShow(t, i = {}) {
1939
1983
  const n = i.renew === !0;
@@ -1941,8 +1985,8 @@ class pe {
1941
1985
  this.isOpen = !0, this.handle.update({ open: !0, initialView: t, purchased: !1, renew: n }), this.emit("open");
1942
1986
  return;
1943
1987
  }
1944
- this.isOpen = !0, this.handle = wt(
1945
- Zt,
1988
+ this.isOpen = !0, this.handle = ft(
1989
+ Xt,
1946
1990
  {
1947
1991
  client: this.billing,
1948
1992
  open: !0,
@@ -1960,7 +2004,7 @@ class pe {
1960
2004
  ), this.emit("open");
1961
2005
  }
1962
2006
  applyState(t) {
1963
- if (!ie(this.currentState, t)) {
2007
+ if (!oe(this.currentState, t)) {
1964
2008
  this.currentState = t;
1965
2009
  for (const i of this.stateListeners)
1966
2010
  try {
@@ -2126,7 +2170,7 @@ class pe {
2126
2170
  // В extension popup runtime — no-op (popup не доживёт). Там полагаемся на
2127
2171
  // bootstrap при следующем открытии.
2128
2172
  startUserWatcher() {
2129
- this.watcher || te() && (this.watcher = new Qt({
2173
+ this.watcher || ie() && (this.watcher = new re({
2130
2174
  client: this.billing,
2131
2175
  onActive: (t) => {
2132
2176
  this.watcher = null, this.emit("purchase_completed", { priceId: null, sessionId: null });
@@ -2145,7 +2189,7 @@ class pe {
2145
2189
  }), this.watcher.start());
2146
2190
  }
2147
2191
  close() {
2148
- !this.isOpen || !this.handle || (this.isOpen = !1, this.purchased = !1, this.handle.update({ open: !1, purchased: !1 }), this.applyState($), this.emit("close"));
2192
+ !this.isOpen || !this.handle || (this.isOpen = !1, this.purchased = !1, this.handle.update({ open: !1, purchased: !1 }), this.applyState(G), this.emit("close"));
2149
2193
  }
2150
2194
  /**
2151
2195
  * Сканирует текущий URL на маркеры возврата с checkout и эмитит
@@ -2155,23 +2199,23 @@ class pe {
2155
2199
  */
2156
2200
  checkReturn() {
2157
2201
  if (typeof window > "u") return;
2158
- const t = new URL(window.location.href), i = at(t.hash.replace(/^#/, "")), n = at(t.search.replace(/^\?/, "")), a = i ?? n;
2202
+ const t = new URL(window.location.href), i = it(t.hash.replace(/^#/, "")), n = it(t.search.replace(/^\?/, "")), a = i ?? n;
2159
2203
  a && (a.status === "paid" ? (this.emit("purchase_completed", {
2160
2204
  priceId: a.priceId,
2161
2205
  sessionId: a.sessionId
2162
- }), ne(a)) : (a.status === "failed" || a.status === "cancelled") && this.emit("purchase_failed", { reason: a.status }), oe(t));
2206
+ }), le(a)) : (a.status === "failed" || a.status === "cancelled") && this.emit("purchase_failed", { reason: a.status }), ce(t));
2163
2207
  }
2164
2208
  destroy() {
2165
- 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 = $;
2209
+ 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 = G;
2166
2210
  }
2167
2211
  }
2168
- function ee(e) {
2212
+ function ae(e) {
2169
2213
  if (!e.auth) return { auth: void 0, ownsAuth: !1 };
2170
- if (e.auth instanceof G || re(e.auth))
2214
+ if (e.auth instanceof q || ne(e.auth))
2171
2215
  return { auth: e.auth, ownsAuth: !1 };
2172
2216
  const t = e.auth === !0 ? {} : e.auth;
2173
2217
  return {
2174
- auth: new G({
2218
+ auth: new q({
2175
2219
  paywallId: e.paywallId,
2176
2220
  apiOrigin: t.apiOrigin ?? e.apiOrigin,
2177
2221
  storage: t.storage ?? e.storage,
@@ -2181,27 +2225,27 @@ function ee(e) {
2181
2225
  ownsAuth: !0
2182
2226
  };
2183
2227
  }
2184
- function re(e) {
2228
+ function ne(e) {
2185
2229
  if (typeof e != "object" || e === null) return !1;
2186
2230
  const t = e;
2187
2231
  return typeof t.onAuthChange == "function" && typeof t.getCachedSession == "function" && typeof t.signOut == "function";
2188
2232
  }
2189
- function ie(e, t) {
2233
+ function oe(e, t) {
2190
2234
  return e.open === t.open && e.view === t.view && e.error === t.error;
2191
2235
  }
2192
- function ae(e, t) {
2236
+ function se(e, t) {
2193
2237
  return e.mode === t.mode && e.payload === t.payload && e.storage === t.storage;
2194
2238
  }
2195
- function at(e) {
2239
+ function it(e) {
2196
2240
  if (!e) return null;
2197
- const t = new URLSearchParams(e), i = t.get(L.status);
2241
+ const t = new URLSearchParams(e), i = t.get(j.status);
2198
2242
  return i ? {
2199
2243
  status: i,
2200
- priceId: t.get(L.priceId),
2201
- sessionId: t.get(L.sessionId)
2244
+ priceId: t.get(j.priceId),
2245
+ sessionId: t.get(j.sessionId)
2202
2246
  } : null;
2203
2247
  }
2204
- function ne(e) {
2248
+ function le(e) {
2205
2249
  if (!(typeof window > "u" || !window.opener))
2206
2250
  try {
2207
2251
  window.opener.postMessage(
@@ -2216,18 +2260,18 @@ function ne(e) {
2216
2260
  } catch {
2217
2261
  }
2218
2262
  }
2219
- function oe(e) {
2263
+ function ce(e) {
2220
2264
  const t = (n, a) => {
2221
2265
  if (!n) return "";
2222
2266
  const o = new URLSearchParams(n.replace(/^[?#]/, ""));
2223
- o.delete(L.status), o.delete(L.priceId), o.delete(L.sessionId);
2267
+ o.delete(j.status), o.delete(j.priceId), o.delete(j.sessionId);
2224
2268
  const s = o.toString();
2225
2269
  return s ? a + s : "";
2226
2270
  }, i = e.pathname + t(e.search, "?") + t(e.hash, "#");
2227
2271
  window.history.replaceState(null, "", i);
2228
2272
  }
2229
2273
  export {
2230
- pe as P,
2231
- $t as b
2274
+ we as P,
2275
+ Wt as b
2232
2276
  };
2233
- //# sourceMappingURL=PaywallUI-C3W0eKDo.js.map
2277
+ //# sourceMappingURL=PaywallUI-2bwf2scV.js.map