@braintwopoint0/playback-commons 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui/index.js CHANGED
@@ -2969,45 +2969,6 @@ import {
2969
2969
  Mail
2970
2970
  } from "lucide-react";
2971
2971
 
2972
- // src/auth/context.tsx
2973
- import {
2974
- createContext as createContext2,
2975
- useContext as useContext2,
2976
- useEffect as useEffect6,
2977
- useState as useState14,
2978
- useMemo as useMemo2,
2979
- useCallback as useCallback2,
2980
- useRef as useRef6
2981
- } from "react";
2982
- import { useRouter } from "next/navigation";
2983
-
2984
- // src/supabase/client.ts
2985
- import { createBrowserClient } from "@supabase/ssr";
2986
- function createClient() {
2987
- const cookieDomain = process.env.NEXT_PUBLIC_COOKIE_DOMAIN;
2988
- return createBrowserClient(
2989
- process.env.NEXT_PUBLIC_SUPABASE_URL,
2990
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
2991
- {
2992
- ...cookieDomain && {
2993
- cookieOptions: { domain: cookieDomain }
2994
- }
2995
- }
2996
- );
2997
- }
2998
-
2999
- // src/auth/context.tsx
3000
- import { jsx as jsx39 } from "react/jsx-runtime";
3001
- var AuthContext = createContext2(void 0);
3002
- var CACHE_TIMEOUT = 5 * 60 * 1e3;
3003
- function useAuth() {
3004
- const context = useContext2(AuthContext);
3005
- if (context === void 0) {
3006
- throw new Error("useAuth must be used within an AuthProvider");
3007
- }
3008
- return context;
3009
- }
3010
-
3011
2972
  // src/auth/shared.ts
3012
2973
  function validateEmail(email) {
3013
2974
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
@@ -3048,8 +3009,23 @@ function getAuthErrorMessage(error) {
3048
3009
  return errorMappings[message] || message;
3049
3010
  }
3050
3011
 
3012
+ // src/supabase/client.ts
3013
+ import { createBrowserClient } from "@supabase/ssr";
3014
+ function createClient() {
3015
+ const cookieDomain = process.env.NEXT_PUBLIC_COOKIE_DOMAIN;
3016
+ return createBrowserClient(
3017
+ process.env.NEXT_PUBLIC_SUPABASE_URL,
3018
+ process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
3019
+ {
3020
+ ...cookieDomain && {
3021
+ cookieOptions: { domain: cookieDomain }
3022
+ }
3023
+ }
3024
+ );
3025
+ }
3026
+
3051
3027
  // src/ui/sign-in-form.tsx
3052
- import { Fragment as Fragment6, jsx as jsx40, jsxs as jsxs23 } from "react/jsx-runtime";
3028
+ import { Fragment as Fragment6, jsx as jsx39, jsxs as jsxs23 } from "react/jsx-runtime";
3053
3029
  var COOLDOWN_THRESHOLD = 3;
3054
3030
  var COOLDOWN_DURATION_MS = 3e4;
3055
3031
  function SignInForm({
@@ -3068,7 +3044,7 @@ function SignInForm({
3068
3044
  const [loading, setLoading] = React28.useState(false);
3069
3045
  const [consecutiveErrors, setConsecutiveErrors] = React28.useState(0);
3070
3046
  const [cooldownUntil, setCooldownUntil] = React28.useState(null);
3071
- const { signIn } = useAuth();
3047
+ const [supabase] = React28.useState(() => createClient());
3072
3048
  React28.useEffect(() => {
3073
3049
  if (initialError) setError(initialError);
3074
3050
  }, [initialError]);
@@ -3090,7 +3066,10 @@ function SignInForm({
3090
3066
  }
3091
3067
  setLoading(true);
3092
3068
  try {
3093
- const { error: signInError } = await signIn(email, password);
3069
+ const { error: signInError } = await supabase.auth.signInWithPassword({
3070
+ email,
3071
+ password
3072
+ });
3094
3073
  if (signInError) {
3095
3074
  setError(getAuthErrorMessage(signInError));
3096
3075
  const newCount = consecutiveErrors + 1;
@@ -3112,11 +3091,11 @@ function SignInForm({
3112
3091
  };
3113
3092
  return /* @__PURE__ */ jsxs23("div", { className: "bg-card border border-border rounded-xl p-8 space-y-6", children: [
3114
3093
  /* @__PURE__ */ jsxs23("div", { className: "text-center", children: [
3115
- /* @__PURE__ */ jsx40("h1", { className: "text-2xl font-bold text-[var(--timberwolf)] mb-2", children: title }),
3116
- /* @__PURE__ */ jsx40("p", { className: "text-sm text-muted-foreground", children: subtitle })
3094
+ /* @__PURE__ */ jsx39("h1", { className: "text-2xl font-bold text-[var(--timberwolf)] mb-2", children: title }),
3095
+ /* @__PURE__ */ jsx39("p", { className: "text-sm text-muted-foreground", children: subtitle })
3117
3096
  ] }),
3118
3097
  /* @__PURE__ */ jsxs23("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
3119
- error && /* @__PURE__ */ jsx40(
3098
+ error && /* @__PURE__ */ jsx39(
3120
3099
  "div",
3121
3100
  {
3122
3101
  id: "signin-error",
@@ -3124,15 +3103,15 @@ function SignInForm({
3124
3103
  "aria-live": "polite",
3125
3104
  className: "bg-red-900/20 border border-red-700/30 rounded-lg p-3",
3126
3105
  children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2 text-red-400 text-sm", children: [
3127
- /* @__PURE__ */ jsx40(AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
3128
- /* @__PURE__ */ jsx40("span", { children: error })
3106
+ /* @__PURE__ */ jsx39(AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
3107
+ /* @__PURE__ */ jsx39("span", { children: error })
3129
3108
  ] })
3130
3109
  }
3131
3110
  ),
3132
3111
  /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
3133
- /* @__PURE__ */ jsx40(Label, { htmlFor: "email", className: "text-[var(--timberwolf)]", children: "Email" }),
3112
+ /* @__PURE__ */ jsx39(Label, { htmlFor: "email", className: "text-[var(--timberwolf)]", children: "Email" }),
3134
3113
  /* @__PURE__ */ jsxs23("div", { className: "relative", children: [
3135
- /* @__PURE__ */ jsx40(
3114
+ /* @__PURE__ */ jsx39(
3136
3115
  Input,
3137
3116
  {
3138
3117
  id: "email",
@@ -3147,13 +3126,13 @@ function SignInForm({
3147
3126
  "aria-describedby": error ? "signin-error" : void 0
3148
3127
  }
3149
3128
  ),
3150
- /* @__PURE__ */ jsx40(Mail, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" })
3129
+ /* @__PURE__ */ jsx39(Mail, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" })
3151
3130
  ] })
3152
3131
  ] }),
3153
3132
  /* @__PURE__ */ jsxs23("div", { className: "space-y-2", children: [
3154
- /* @__PURE__ */ jsx40(Label, { htmlFor: "password", className: "text-[var(--timberwolf)]", children: "Password" }),
3133
+ /* @__PURE__ */ jsx39(Label, { htmlFor: "password", className: "text-[var(--timberwolf)]", children: "Password" }),
3155
3134
  /* @__PURE__ */ jsxs23("div", { className: "relative", children: [
3156
- /* @__PURE__ */ jsx40(
3135
+ /* @__PURE__ */ jsx39(
3157
3136
  Input,
3158
3137
  {
3159
3138
  id: "password",
@@ -3168,8 +3147,8 @@ function SignInForm({
3168
3147
  "aria-describedby": error ? "signin-error" : void 0
3169
3148
  }
3170
3149
  ),
3171
- /* @__PURE__ */ jsx40(Lock, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" }),
3172
- /* @__PURE__ */ jsx40(
3150
+ /* @__PURE__ */ jsx39(Lock, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" }),
3151
+ /* @__PURE__ */ jsx39(
3173
3152
  "button",
3174
3153
  {
3175
3154
  type: "button",
@@ -3178,12 +3157,12 @@ function SignInForm({
3178
3157
  disabled: loading,
3179
3158
  "aria-label": showPassword ? "Hide password" : "Show password",
3180
3159
  "aria-pressed": showPassword,
3181
- children: showPassword ? /* @__PURE__ */ jsx40(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx40(Eye, { className: "h-4 w-4" })
3160
+ children: showPassword ? /* @__PURE__ */ jsx39(EyeOff, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx39(Eye, { className: "h-4 w-4" })
3182
3161
  }
3183
3162
  )
3184
3163
  ] })
3185
3164
  ] }),
3186
- forgotPasswordHref ? /* @__PURE__ */ jsx40("div", { className: "flex justify-end -mt-1", children: /* @__PURE__ */ jsx40(
3165
+ forgotPasswordHref ? /* @__PURE__ */ jsx39("div", { className: "flex justify-end -mt-1", children: /* @__PURE__ */ jsx39(
3187
3166
  Link4,
3188
3167
  {
3189
3168
  href: forgotPasswordHref,
@@ -3191,23 +3170,23 @@ function SignInForm({
3191
3170
  children: "Forgot your password?"
3192
3171
  }
3193
3172
  ) }) : null,
3194
- /* @__PURE__ */ jsx40(
3173
+ /* @__PURE__ */ jsx39(
3195
3174
  Button,
3196
3175
  {
3197
3176
  type: "submit",
3198
3177
  className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]",
3199
3178
  disabled: loading,
3200
3179
  children: loading ? /* @__PURE__ */ jsxs23(Fragment6, { children: [
3201
- /* @__PURE__ */ jsx40(Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
3180
+ /* @__PURE__ */ jsx39(Loader2, { className: "h-4 w-4 mr-2 animate-spin" }),
3202
3181
  "Signing in..."
3203
3182
  ] }) : "Sign in"
3204
3183
  }
3205
3184
  )
3206
3185
  ] }),
3207
- signUpHref ? /* @__PURE__ */ jsx40("div", { className: "text-center text-sm", children: /* @__PURE__ */ jsxs23("p", { className: "text-muted-foreground", children: [
3186
+ signUpHref ? /* @__PURE__ */ jsx39("div", { className: "text-center text-sm", children: /* @__PURE__ */ jsxs23("p", { className: "text-muted-foreground", children: [
3208
3187
  "Don't have an account?",
3209
3188
  " ",
3210
- /* @__PURE__ */ jsx40(
3189
+ /* @__PURE__ */ jsx39(
3211
3190
  Link4,
3212
3191
  {
3213
3192
  href: signUpHref,
@@ -3229,7 +3208,7 @@ import {
3229
3208
  Loader2 as Loader22,
3230
3209
  Mail as Mail2
3231
3210
  } from "lucide-react";
3232
- import { Fragment as Fragment7, jsx as jsx41, jsxs as jsxs24 } from "react/jsx-runtime";
3211
+ import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
3233
3212
  var RESEND_COOLDOWN_MS = 3e4;
3234
3213
  var COOLDOWN_STORAGE_KEY = "playback:pwreset-cooldown-until";
3235
3214
  function ForgotPasswordForm({
@@ -3308,18 +3287,18 @@ function ForgotPasswordForm({
3308
3287
  };
3309
3288
  if (emailSent) {
3310
3289
  return /* @__PURE__ */ jsxs24("div", { className: "bg-card border border-border rounded-xl p-8 space-y-6 text-center", children: [
3311
- /* @__PURE__ */ jsx41("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx41("div", { className: "h-12 w-12 rounded-full bg-[var(--timberwolf)]/10 border border-[var(--timberwolf)]/20 flex items-center justify-center", children: /* @__PURE__ */ jsx41(CheckCircle, { className: "h-6 w-6 text-[var(--timberwolf)]" }) }) }),
3290
+ /* @__PURE__ */ jsx40("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx40("div", { className: "h-12 w-12 rounded-full bg-[var(--timberwolf)]/10 border border-[var(--timberwolf)]/20 flex items-center justify-center", children: /* @__PURE__ */ jsx40(CheckCircle, { className: "h-6 w-6 text-[var(--timberwolf)]" }) }) }),
3312
3291
  /* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
3313
- /* @__PURE__ */ jsx41("h1", { className: "text-2xl font-bold text-[var(--timberwolf)]", children: "Check your email" }),
3292
+ /* @__PURE__ */ jsx40("h1", { className: "text-2xl font-bold text-[var(--timberwolf)]", children: "Check your email" }),
3314
3293
  /* @__PURE__ */ jsxs24("p", { className: "text-sm text-muted-foreground", children: [
3315
3294
  "We sent a reset link to",
3316
3295
  " ",
3317
- /* @__PURE__ */ jsx41("span", { className: "text-[var(--timberwolf)] font-medium", children: email }),
3296
+ /* @__PURE__ */ jsx40("span", { className: "text-[var(--timberwolf)] font-medium", children: email }),
3318
3297
  ". If it's not in your inbox, check spam."
3319
3298
  ] })
3320
3299
  ] }),
3321
3300
  /* @__PURE__ */ jsxs24("div", { className: "space-y-3 pt-2", children: [
3322
- /* @__PURE__ */ jsx41(
3301
+ /* @__PURE__ */ jsx40(
3323
3302
  Button,
3324
3303
  {
3325
3304
  onClick: () => {
@@ -3333,8 +3312,8 @@ function ForgotPasswordForm({
3333
3312
  children: cooldownSecondsLeft > 0 ? `Send another email in ${cooldownSecondsLeft}s` : "Send another email"
3334
3313
  }
3335
3314
  ),
3336
- /* @__PURE__ */ jsx41(Link5, { href: loginHref, className: "block", children: /* @__PURE__ */ jsxs24(Button, { className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]", children: [
3337
- /* @__PURE__ */ jsx41(ArrowLeft, { className: "h-4 w-4 mr-2" }),
3315
+ /* @__PURE__ */ jsx40(Link5, { href: loginHref, className: "block", children: /* @__PURE__ */ jsxs24(Button, { className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]", children: [
3316
+ /* @__PURE__ */ jsx40(ArrowLeft, { className: "h-4 w-4 mr-2" }),
3338
3317
  "Back to sign in"
3339
3318
  ] }) })
3340
3319
  ] })
@@ -3342,11 +3321,11 @@ function ForgotPasswordForm({
3342
3321
  }
3343
3322
  return /* @__PURE__ */ jsxs24("div", { className: "bg-card border border-border rounded-xl p-8 space-y-6", children: [
3344
3323
  /* @__PURE__ */ jsxs24("div", { className: "text-center", children: [
3345
- /* @__PURE__ */ jsx41("h1", { className: "text-2xl font-bold text-[var(--timberwolf)] mb-2", children: title }),
3346
- /* @__PURE__ */ jsx41("p", { className: "text-sm text-muted-foreground", children: subtitle })
3324
+ /* @__PURE__ */ jsx40("h1", { className: "text-2xl font-bold text-[var(--timberwolf)] mb-2", children: title }),
3325
+ /* @__PURE__ */ jsx40("p", { className: "text-sm text-muted-foreground", children: subtitle })
3347
3326
  ] }),
3348
3327
  /* @__PURE__ */ jsxs24("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
3349
- error && /* @__PURE__ */ jsx41(
3328
+ error && /* @__PURE__ */ jsx40(
3350
3329
  "div",
3351
3330
  {
3352
3331
  id: "forgot-error",
@@ -3354,15 +3333,15 @@ function ForgotPasswordForm({
3354
3333
  "aria-live": "polite",
3355
3334
  className: "bg-red-900/20 border border-red-700/30 rounded-lg p-3",
3356
3335
  children: /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-2 text-red-400 text-sm", children: [
3357
- /* @__PURE__ */ jsx41(AlertCircle2, { className: "h-4 w-4 flex-shrink-0" }),
3358
- /* @__PURE__ */ jsx41("span", { children: error })
3336
+ /* @__PURE__ */ jsx40(AlertCircle2, { className: "h-4 w-4 flex-shrink-0" }),
3337
+ /* @__PURE__ */ jsx40("span", { children: error })
3359
3338
  ] })
3360
3339
  }
3361
3340
  ),
3362
3341
  /* @__PURE__ */ jsxs24("div", { className: "space-y-2", children: [
3363
- /* @__PURE__ */ jsx41(Label, { htmlFor: "email", className: "text-[var(--timberwolf)]", children: "Email" }),
3342
+ /* @__PURE__ */ jsx40(Label, { htmlFor: "email", className: "text-[var(--timberwolf)]", children: "Email" }),
3364
3343
  /* @__PURE__ */ jsxs24("div", { className: "relative", children: [
3365
- /* @__PURE__ */ jsx41(
3344
+ /* @__PURE__ */ jsx40(
3366
3345
  Input,
3367
3346
  {
3368
3347
  id: "email",
@@ -3378,29 +3357,29 @@ function ForgotPasswordForm({
3378
3357
  "aria-describedby": error ? "forgot-error" : void 0
3379
3358
  }
3380
3359
  ),
3381
- /* @__PURE__ */ jsx41(Mail2, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" })
3360
+ /* @__PURE__ */ jsx40(Mail2, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" })
3382
3361
  ] })
3383
3362
  ] }),
3384
- /* @__PURE__ */ jsx41(
3363
+ /* @__PURE__ */ jsx40(
3385
3364
  Button,
3386
3365
  {
3387
3366
  type: "submit",
3388
3367
  className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]",
3389
3368
  disabled: loading || cooldownSecondsLeft > 0,
3390
3369
  children: loading ? /* @__PURE__ */ jsxs24(Fragment7, { children: [
3391
- /* @__PURE__ */ jsx41(Loader22, { className: "h-4 w-4 mr-2 animate-spin" }),
3370
+ /* @__PURE__ */ jsx40(Loader22, { className: "h-4 w-4 mr-2 animate-spin" }),
3392
3371
  "Sending email..."
3393
3372
  ] }) : cooldownSecondsLeft > 0 ? `Try again in ${cooldownSecondsLeft}s` : "Send reset link"
3394
3373
  }
3395
3374
  )
3396
3375
  ] }),
3397
- /* @__PURE__ */ jsx41("div", { className: "text-center text-sm", children: /* @__PURE__ */ jsxs24(
3376
+ /* @__PURE__ */ jsx40("div", { className: "text-center text-sm", children: /* @__PURE__ */ jsxs24(
3398
3377
  Link5,
3399
3378
  {
3400
3379
  href: loginHref,
3401
3380
  className: "inline-flex items-center gap-1.5 text-muted-foreground hover:text-[var(--timberwolf)] transition-colors",
3402
3381
  children: [
3403
- /* @__PURE__ */ jsx41(ArrowLeft, { className: "h-3.5 w-3.5" }),
3382
+ /* @__PURE__ */ jsx40(ArrowLeft, { className: "h-3.5 w-3.5" }),
3404
3383
  "Back to sign in"
3405
3384
  ]
3406
3385
  }
@@ -3411,7 +3390,7 @@ function ForgotPasswordForm({
3411
3390
  // src/ui/reset-password-form.tsx
3412
3391
  import * as React30 from "react";
3413
3392
  import Link6 from "next/link";
3414
- import { useRouter as useRouter2 } from "next/navigation";
3393
+ import { useRouter } from "next/navigation";
3415
3394
  import {
3416
3395
  AlertCircle as AlertCircle3,
3417
3396
  CheckCircle as CheckCircle2,
@@ -3420,7 +3399,7 @@ import {
3420
3399
  Loader2 as Loader23,
3421
3400
  Lock as Lock2
3422
3401
  } from "lucide-react";
3423
- import { Fragment as Fragment8, jsx as jsx42, jsxs as jsxs25 } from "react/jsx-runtime";
3402
+ import { Fragment as Fragment8, jsx as jsx41, jsxs as jsxs25 } from "react/jsx-runtime";
3424
3403
  function ResetPasswordForm({
3425
3404
  loginHref = "/auth/login",
3426
3405
  initialError,
@@ -3435,7 +3414,7 @@ function ResetPasswordForm({
3435
3414
  const [error, setError] = React30.useState(initialError ?? "");
3436
3415
  const [loading, setLoading] = React30.useState(false);
3437
3416
  const [passwordReset, setPasswordReset] = React30.useState(false);
3438
- const router = useRouter2();
3417
+ const router = useRouter();
3439
3418
  const [supabase] = React30.useState(() => createClient());
3440
3419
  React30.useEffect(() => {
3441
3420
  if (initialError) setError(initialError);
@@ -3489,21 +3468,21 @@ function ResetPasswordForm({
3489
3468
  };
3490
3469
  if (passwordReset) {
3491
3470
  return /* @__PURE__ */ jsxs25("div", { className: "bg-card border border-border rounded-xl p-8 space-y-6 text-center", children: [
3492
- /* @__PURE__ */ jsx42("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx42("div", { className: "h-12 w-12 rounded-full bg-[var(--timberwolf)]/10 border border-[var(--timberwolf)]/20 flex items-center justify-center", children: /* @__PURE__ */ jsx42(CheckCircle2, { className: "h-6 w-6 text-[var(--timberwolf)]" }) }) }),
3471
+ /* @__PURE__ */ jsx41("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx41("div", { className: "h-12 w-12 rounded-full bg-[var(--timberwolf)]/10 border border-[var(--timberwolf)]/20 flex items-center justify-center", children: /* @__PURE__ */ jsx41(CheckCircle2, { className: "h-6 w-6 text-[var(--timberwolf)]" }) }) }),
3493
3472
  /* @__PURE__ */ jsxs25("div", { className: "space-y-2", children: [
3494
- /* @__PURE__ */ jsx42("h1", { className: "text-2xl font-bold text-[var(--timberwolf)]", children: "Password updated" }),
3495
- /* @__PURE__ */ jsx42("p", { className: "text-sm text-muted-foreground", children: "Redirecting you to sign in\u2026" })
3473
+ /* @__PURE__ */ jsx41("h1", { className: "text-2xl font-bold text-[var(--timberwolf)]", children: "Password updated" }),
3474
+ /* @__PURE__ */ jsx41("p", { className: "text-sm text-muted-foreground", children: "Redirecting you to sign in\u2026" })
3496
3475
  ] }),
3497
- /* @__PURE__ */ jsx42(Link6, { href: loginHref, className: "block pt-2", children: /* @__PURE__ */ jsx42(Button, { className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]", children: "Continue to sign in" }) })
3476
+ /* @__PURE__ */ jsx41(Link6, { href: loginHref, className: "block pt-2", children: /* @__PURE__ */ jsx41(Button, { className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]", children: "Continue to sign in" }) })
3498
3477
  ] });
3499
3478
  }
3500
3479
  return /* @__PURE__ */ jsxs25("div", { className: "bg-card border border-border rounded-xl p-8 space-y-6", children: [
3501
3480
  /* @__PURE__ */ jsxs25("div", { className: "text-center", children: [
3502
- /* @__PURE__ */ jsx42("h1", { className: "text-2xl font-bold text-[var(--timberwolf)] mb-2", children: title }),
3503
- /* @__PURE__ */ jsx42("p", { className: "text-sm text-muted-foreground", children: subtitle })
3481
+ /* @__PURE__ */ jsx41("h1", { className: "text-2xl font-bold text-[var(--timberwolf)] mb-2", children: title }),
3482
+ /* @__PURE__ */ jsx41("p", { className: "text-sm text-muted-foreground", children: subtitle })
3504
3483
  ] }),
3505
3484
  /* @__PURE__ */ jsxs25("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
3506
- error && /* @__PURE__ */ jsx42(
3485
+ error && /* @__PURE__ */ jsx41(
3507
3486
  "div",
3508
3487
  {
3509
3488
  id: "reset-error",
@@ -3511,15 +3490,15 @@ function ResetPasswordForm({
3511
3490
  "aria-live": "polite",
3512
3491
  className: "bg-red-900/20 border border-red-700/30 rounded-lg p-3",
3513
3492
  children: /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-2 text-red-400 text-sm", children: [
3514
- /* @__PURE__ */ jsx42(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
3515
- /* @__PURE__ */ jsx42("span", { children: error })
3493
+ /* @__PURE__ */ jsx41(AlertCircle3, { className: "h-4 w-4 flex-shrink-0" }),
3494
+ /* @__PURE__ */ jsx41("span", { children: error })
3516
3495
  ] })
3517
3496
  }
3518
3497
  ),
3519
3498
  /* @__PURE__ */ jsxs25("div", { className: "space-y-2", children: [
3520
- /* @__PURE__ */ jsx42(Label, { htmlFor: "password", className: "text-[var(--timberwolf)]", children: "New password" }),
3499
+ /* @__PURE__ */ jsx41(Label, { htmlFor: "password", className: "text-[var(--timberwolf)]", children: "New password" }),
3521
3500
  /* @__PURE__ */ jsxs25("div", { className: "relative", children: [
3522
- /* @__PURE__ */ jsx42(
3501
+ /* @__PURE__ */ jsx41(
3523
3502
  Input,
3524
3503
  {
3525
3504
  id: "password",
@@ -3535,8 +3514,8 @@ function ResetPasswordForm({
3535
3514
  "aria-describedby": error ? "reset-error" : void 0
3536
3515
  }
3537
3516
  ),
3538
- /* @__PURE__ */ jsx42(Lock2, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" }),
3539
- /* @__PURE__ */ jsx42(
3517
+ /* @__PURE__ */ jsx41(Lock2, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" }),
3518
+ /* @__PURE__ */ jsx41(
3540
3519
  "button",
3541
3520
  {
3542
3521
  type: "button",
@@ -3545,13 +3524,13 @@ function ResetPasswordForm({
3545
3524
  disabled: loading,
3546
3525
  "aria-label": showPassword ? "Hide password" : "Show password",
3547
3526
  "aria-pressed": showPassword,
3548
- children: showPassword ? /* @__PURE__ */ jsx42(EyeOff2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx42(Eye2, { className: "h-4 w-4" })
3527
+ children: showPassword ? /* @__PURE__ */ jsx41(EyeOff2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx41(Eye2, { className: "h-4 w-4" })
3549
3528
  }
3550
3529
  )
3551
3530
  ] })
3552
3531
  ] }),
3553
3532
  /* @__PURE__ */ jsxs25("div", { className: "space-y-2", children: [
3554
- /* @__PURE__ */ jsx42(
3533
+ /* @__PURE__ */ jsx41(
3555
3534
  Label,
3556
3535
  {
3557
3536
  htmlFor: "confirmPassword",
@@ -3560,7 +3539,7 @@ function ResetPasswordForm({
3560
3539
  }
3561
3540
  ),
3562
3541
  /* @__PURE__ */ jsxs25("div", { className: "relative", children: [
3563
- /* @__PURE__ */ jsx42(
3542
+ /* @__PURE__ */ jsx41(
3564
3543
  Input,
3565
3544
  {
3566
3545
  id: "confirmPassword",
@@ -3575,8 +3554,8 @@ function ResetPasswordForm({
3575
3554
  "aria-describedby": error ? "reset-error" : void 0
3576
3555
  }
3577
3556
  ),
3578
- /* @__PURE__ */ jsx42(Lock2, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" }),
3579
- /* @__PURE__ */ jsx42(
3557
+ /* @__PURE__ */ jsx41(Lock2, { className: "h-4 w-4 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground" }),
3558
+ /* @__PURE__ */ jsx41(
3580
3559
  "button",
3581
3560
  {
3582
3561
  type: "button",
@@ -3585,26 +3564,26 @@ function ResetPasswordForm({
3585
3564
  disabled: loading,
3586
3565
  "aria-label": showConfirmPassword ? "Hide password" : "Show password",
3587
3566
  "aria-pressed": showConfirmPassword,
3588
- children: showConfirmPassword ? /* @__PURE__ */ jsx42(EyeOff2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx42(Eye2, { className: "h-4 w-4" })
3567
+ children: showConfirmPassword ? /* @__PURE__ */ jsx41(EyeOff2, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx41(Eye2, { className: "h-4 w-4" })
3589
3568
  }
3590
3569
  )
3591
3570
  ] })
3592
3571
  ] }),
3593
- /* @__PURE__ */ jsx42("p", { className: "text-xs text-muted-foreground", children: "At least 8 characters with an uppercase letter, a lowercase letter, and a number." }),
3594
- /* @__PURE__ */ jsx42(
3572
+ /* @__PURE__ */ jsx41("p", { className: "text-xs text-muted-foreground", children: "At least 8 characters with an uppercase letter, a lowercase letter, and a number." }),
3573
+ /* @__PURE__ */ jsx41(
3595
3574
  Button,
3596
3575
  {
3597
3576
  type: "submit",
3598
3577
  className: "w-full h-11 bg-[var(--timberwolf)] text-[var(--night)] hover:bg-[var(--ash-grey)]",
3599
3578
  disabled: loading,
3600
3579
  children: loading ? /* @__PURE__ */ jsxs25(Fragment8, { children: [
3601
- /* @__PURE__ */ jsx42(Loader23, { className: "h-4 w-4 mr-2 animate-spin" }),
3580
+ /* @__PURE__ */ jsx41(Loader23, { className: "h-4 w-4 mr-2 animate-spin" }),
3602
3581
  "Updating password..."
3603
3582
  ] }) : "Update password"
3604
3583
  }
3605
3584
  )
3606
3585
  ] }),
3607
- /* @__PURE__ */ jsx42("div", { className: "text-center text-sm", children: /* @__PURE__ */ jsx42(
3586
+ /* @__PURE__ */ jsx41("div", { className: "text-center text-sm", children: /* @__PURE__ */ jsx41(
3608
3587
  Link6,
3609
3588
  {
3610
3589
  href: loginHref,