@slyxup/ui 2.5.4 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +24 -12
  2. package/dist/components/AdminPanel/AdminPanel.d.ts +1 -1
  3. package/dist/components/AdminPanel/AdminPanel.d.ts.map +1 -1
  4. package/dist/components/BillingPortal/BillingPortal.d.ts +2 -1
  5. package/dist/components/BillingPortal/BillingPortal.d.ts.map +1 -1
  6. package/dist/components/BillingPortal/BillingPortal.js +2 -2
  7. package/dist/components/BillingPortal/BillingPortal.js.map +1 -1
  8. package/dist/components/EmailVerification/EmailVerification.d.ts.map +1 -1
  9. package/dist/components/EmailVerification/EmailVerification.js +3 -2
  10. package/dist/components/EmailVerification/EmailVerification.js.map +1 -1
  11. package/dist/components/ForgotPassword/ForgotPassword.js +2 -2
  12. package/dist/components/ForgotPassword/ForgotPassword.js.map +1 -1
  13. package/dist/components/InvoicesTable/InvoicesTable.d.ts.map +1 -1
  14. package/dist/components/InvoicesTable/InvoicesTable.js +9 -7
  15. package/dist/components/InvoicesTable/InvoicesTable.js.map +1 -1
  16. package/dist/components/PlanCard/PlanCard.js +1 -1
  17. package/dist/components/PlanCard/PlanCard.js.map +1 -1
  18. package/dist/components/PricingTable/PricingTable.d.ts +2 -2
  19. package/dist/components/PricingTable/PricingTable.d.ts.map +1 -1
  20. package/dist/components/PricingTable/PricingTable.js +8 -1
  21. package/dist/components/PricingTable/PricingTable.js.map +1 -1
  22. package/dist/components/ResetPassword/ResetPassword.d.ts.map +1 -1
  23. package/dist/components/ResetPassword/ResetPassword.js +3 -2
  24. package/dist/components/ResetPassword/ResetPassword.js.map +1 -1
  25. package/dist/components/SignIn/SignIn.d.ts.map +1 -1
  26. package/dist/components/SignIn/SignIn.js +43 -14
  27. package/dist/components/SignIn/SignIn.js.map +1 -1
  28. package/dist/components/SignUp/SignUp.d.ts.map +1 -1
  29. package/dist/components/SignUp/SignUp.js +15 -5
  30. package/dist/components/SignUp/SignUp.js.map +1 -1
  31. package/dist/components/SocialButtons/SocialButtons.d.ts.map +1 -1
  32. package/dist/components/SocialButtons/SocialButtons.js +16 -7
  33. package/dist/components/SocialButtons/SocialButtons.js.map +1 -1
  34. package/dist/components/UserProfile/UserProfile.d.ts.map +1 -1
  35. package/dist/components/UserProfile/UserProfile.js +5 -6
  36. package/dist/components/UserProfile/UserProfile.js.map +1 -1
  37. package/dist/lib/paddle.d.ts.map +1 -1
  38. package/dist/lib/paddle.js +4 -3
  39. package/dist/lib/paddle.js.map +1 -1
  40. package/dist/react/context/auth-context.d.ts +4 -0
  41. package/dist/react/context/auth-context.d.ts.map +1 -1
  42. package/dist/react/context/auth-context.js.map +1 -1
  43. package/dist/react/hooks/useAuth.d.ts +3 -0
  44. package/dist/react/hooks/useAuth.d.ts.map +1 -1
  45. package/dist/react/hooks/useAuth.js +4 -0
  46. package/dist/react/hooks/useAuth.js.map +1 -1
  47. package/dist/react/hooks/useBilling.d.ts +2 -0
  48. package/dist/react/hooks/useBilling.d.ts.map +1 -1
  49. package/dist/react/hooks/useBilling.js +56 -13
  50. package/dist/react/hooks/useBilling.js.map +1 -1
  51. package/dist/react/provider/SlyxUpProvider.d.ts +4 -1
  52. package/dist/react/provider/SlyxUpProvider.d.ts.map +1 -1
  53. package/dist/react/provider/SlyxUpProvider.js +31 -5
  54. package/dist/react/provider/SlyxUpProvider.js.map +1 -1
  55. package/dist/styles.d.ts +2 -2
  56. package/dist/styles.d.ts.map +1 -1
  57. package/dist/styles.js +47 -30
  58. package/dist/styles.js.map +1 -1
  59. package/package.json +3 -3
package/README.md CHANGED
@@ -12,20 +12,27 @@ npm install @slyxup/ui @slyxup/core
12
12
 
13
13
  ## Setup
14
14
 
15
- Inject the stylesheet once at your app root:
15
+ Wrap auth and billing UI in a provider at your app root:
16
16
 
17
17
  ```tsx
18
- import { SlyxupClient } from '@slyxup/core';
19
- import { SlyxUpStyles } from '@slyxup/ui';
20
-
21
- const client = new SlyxupClient({ publishableKey: 'pk_test_xxx', apiUrl: '...' });
18
+ import { SlyxUpProvider, SlyxUpStyles } from '@slyxup/ui';
22
19
 
23
- <SlyxUpStyles />
24
- <App />
20
+ <SlyxUpProvider
21
+ publishableKey="pk_test_your_project_key"
22
+ apiUrl="https://your-auth-worker.example.workers.dev"
23
+ billingApiUrl="https://your-billing-worker.example.workers.dev"
24
+ >
25
+ <SlyxUpStyles />
26
+ <App />
27
+ </SlyxUpProvider>
25
28
  ```
26
29
 
27
30
  (Components also auto-inject on first mount if you skip this.)
28
31
 
32
+ The default stylesheet inherits host typography and does not load external fonts. Webfonts are loaded only when you explicitly select a font theme that has a stylesheet URL.
33
+
34
+ Pass configuration explicitly through your app's environment/configuration. Tokens are memory-only by default. Browser apps can opt into `tokenStorage="sessionStorage"` for same-tab reload persistence, scoped by auth URL and project key. This remains script-readable; a same-origin server with HttpOnly cookies is the preferred sensitive-app integration. Billing hooks inherit the provider's key, current token, and `billingApiUrl`; they do not use a global localStorage token. `useInvoices()` returns `{ invoices, loading, error, reload }`, so failures can be shown with a retry action instead of an empty invoice history.
35
+
29
36
  ## Components
30
37
 
31
38
  ### `<SignIn />` / `<SignUp />`
@@ -35,7 +42,7 @@ import { SignIn, SignUp } from '@slyxup/ui';
35
42
 
36
43
  <SignIn
37
44
  social // show Google/GitHub buttons (default true)
38
- onSuccess={() => router.push('/dashboard')}
45
+ onSuccess={() => window.location.assign('/account')}
39
46
  onSignUpClick={() => setMode('sign-up')}
40
47
  onForgotPasswordClick={() => setMode('forgot')}
41
48
  />
@@ -44,8 +51,8 @@ import { SignIn, SignUp } from '@slyxup/ui';
44
51
  ```
45
52
 
46
53
  Notes:
47
- - `SignIn` accepts **either an email or a username** in the identifier field.
48
- - When the account has 2FA enabled, `SignIn` auto-detects the `2FA_REQUIRED` response and swaps to an authenticator-code step, then completes the sign-in with `completeSignIn`.
54
+ - `SignIn username` accepts **either an email or a username** and sends the corresponding field. Without this prop the field validates an email address.
55
+ - When the account has 2FA enabled, `SignIn` swaps to an authenticator-code step with a **Use a recovery code** alternative. Errors remain visible until the next attempt. Each instance has unique input IDs for accessible labels.
49
56
  - `SignUp` includes an optional **username** field (used for password sign-in as an alternative to email).
50
57
 
51
58
  ### `<UserButton />` — avatar + dropdown
@@ -112,6 +119,10 @@ Requires the endpoints shipped in the auth worker (`POST /v1/user/password`, `GE
112
119
 
113
120
  Redirects to the hosted OAuth flow.
114
121
 
122
+ **Release update:** project-scoped OAuth is now implemented. SignIn/SignUp call `client.auth.startOAuth`; the provider exchanges the callback code using the initiating tab's verifier. `useAuth()` exposes `oauthChallenge` and `authError`; SignIn displays the second-factor step when OAuth requires it. Register the return hostname on the project; test projects also allow localhost. Use the current SDK flow rather than hand-built OAuth links.
123
+
124
+ `SocialButtons` uses the same proof-key flow and displays start errors. For custom servers configure the provider `apiUrl`; a conflicting legacy `basePath` is rejected rather than bypassing the callback exchange.
125
+
115
126
  ### `<PricingTable />` — billing plans grid
116
127
 
117
128
  ```tsx
@@ -162,10 +173,11 @@ const client = new SlyxupClient({ publishableKey: 'pk_test_xxx', apiUrl: '...' }
162
173
  subscription={subscription}
163
174
  invoices={invoices}
164
175
  onCancel={cancelSubscription}
176
+ onResume={resumeSubscription}
165
177
  />
166
178
  ```
167
179
 
168
- Shows current plan, status, renewal date, invoice history, and an optional cancel action.
180
+ Shows current plan, status, renewal date, invoice history, and optional cancel/resume actions. Invoice amounts use currency-aware formatting; totals are grouped by currency rather than adding unrelated currencies together.
169
181
 
170
182
  ### Granular billing parts — compose your own layouts
171
183
 
@@ -287,7 +299,7 @@ import { AdminPanel } from '@slyxup/ui';
287
299
  // Full-page admin dashboard
288
300
  <AdminPanel
289
301
  secretKey="sk_test_xxx"
290
- apiUrl="https://auth.slyxup.online" // optional; defaults to production
302
+ apiUrl="https://your-auth-worker.example.workers.dev" // optional; set your Auth Worker URL
291
303
  />
292
304
 
293
305
  // Inline (card-style, no full-page wrapper)
@@ -1,7 +1,7 @@
1
1
  export interface AdminPanelProps {
2
2
  /** Secret key — sk_test_xxx / sk_live_xxx */
3
3
  secretKey: string;
4
- /** API base URL (default: https://auth.slyxup.online) */
4
+ /** API base URL (set this to the Auth Worker URL) */
5
5
  apiUrl?: string;
6
6
  /** Render as full-page (default) or inline */
7
7
  fullPage?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"AdminPanel.d.ts","sourceRoot":"","sources":["../../../src/components/AdminPanel/AdminPanel.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkHD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,MAAM,EACN,QAAe,GAChB,EAAE,eAAe,+BAq7BjB"}
1
+ {"version":3,"file":"AdminPanel.d.ts","sourceRoot":"","sources":["../../../src/components/AdminPanel/AdminPanel.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkHD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,MAAM,EACN,QAAe,GAChB,EAAE,eAAe,+BAq7BjB"}
@@ -10,6 +10,7 @@ export interface BillingPortalProps {
10
10
  subscription: PortalSubscription | null;
11
11
  invoices: InvoiceRow[];
12
12
  onCancel?: () => void;
13
+ onResume?: () => void;
13
14
  /** Per-component theme (accent, mode, radius…) — scoped, never global. */
14
15
  theme?: SlyxUpTheme;
15
16
  style?: CSSProperties;
@@ -20,5 +21,5 @@ export interface BillingPortalProps {
20
21
  * Composes CurrentPlanCard + InvoicesTable — use those directly for
21
22
  * finer-grained layouts.
22
23
  */
23
- export declare function BillingPortal({ subscription, invoices, onCancel, theme, style, className, }: BillingPortalProps): import("react").JSX.Element;
24
+ export declare function BillingPortal({ subscription, invoices, onCancel, onResume, theme, style, className, }: BillingPortalProps): import("react").JSX.Element;
24
25
  //# sourceMappingURL=BillingPortal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BillingPortal.d.ts","sourceRoot":"","sources":["../../../src/components/BillingPortal/BillingPortal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,gCAAgC,CAAC;AAEhF,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,+BAepB"}
1
+ {"version":3,"file":"BillingPortal.d.ts","sourceRoot":"","sources":["../../../src/components/BillingPortal/BillingPortal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,gCAAgC,CAAC;AAEhF,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,+BAgBpB"}
@@ -8,8 +8,8 @@ import { InvoicesTable } from '../InvoicesTable/InvoicesTable';
8
8
  * Composes CurrentPlanCard + InvoicesTable — use those directly for
9
9
  * finer-grained layouts.
10
10
  */
11
- export function BillingPortal({ subscription, invoices, onCancel, theme, style, className, }) {
11
+ export function BillingPortal({ subscription, invoices, onCancel, onResume, theme, style, className, }) {
12
12
  injectStyles();
13
- return (_jsxs("div", { className: className, style: { display: 'flex', flexDirection: 'column', gap: 18, ...style }, children: [_jsx(CurrentPlanCard, { subscription: subscription, onCancel: onCancel, theme: theme }), _jsx(InvoicesTable, { invoices: invoices, theme: theme })] }));
13
+ return (_jsxs("div", { className: className, style: { display: 'flex', flexDirection: 'column', gap: 18, ...style }, children: [_jsx(CurrentPlanCard, { subscription: subscription, onCancel: onCancel, onResume: onResume, theme: theme }), _jsx(InvoicesTable, { invoices: invoices, theme: theme })] }));
14
14
  }
15
15
  //# sourceMappingURL=BillingPortal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BillingPortal.js","sourceRoot":"","sources":["../../../src/components/BillingPortal/BillingPortal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAmB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAiBhF;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACU;IACnB,YAAY,EAAE,CAAC;IACf,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,aAEtE,KAAC,eAAe,IACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,GACZ,EACF,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAI,IAC/C,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"BillingPortal.js","sourceRoot":"","sources":["../../../src/components/BillingPortal/BillingPortal.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAmB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAkBhF;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,GACU;IACnB,YAAY,EAAE,CAAC;IACf,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,aAEtE,KAAC,eAAe,IACd,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,GACZ,EACF,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAI,IAC/C,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmailVerification.d.ts","sourceRoot":"","sources":["../../../src/components/EmailVerification/EmailVerification.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE,sBAAsB,+BAqKxB"}
1
+ {"version":3,"file":"EmailVerification.d.ts","sourceRoot":"","sources":["../../../src/components/EmailVerification/EmailVerification.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,sBAAsB;IACrC,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE,sBAAsB,+BAqKxB"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
+ import { DEFAULT_AUTH_API_URL } from '@slyxup/core';
3
4
  import { CheckIcon, KeyholeMark } from '../../icons';
4
5
  import { injectStyles } from '../../styles';
5
6
  /** Verify an email with the emailed token, or request a new link. */
@@ -17,7 +18,7 @@ export function EmailVerification({ token, apiUrl, onSuccess, }) {
17
18
  try {
18
19
  const base = (apiUrl ??
19
20
  process.env.NEXT_PUBLIC_SLYXUP_API_URL ??
20
- 'https://auth.slyxup.online').replace(/\/$/, '');
21
+ DEFAULT_AUTH_API_URL).replace(/\/$/, '');
21
22
  const res = await fetch(`${base}/v1/verification/verify`, {
22
23
  method: 'POST',
23
24
  headers: { 'Content-Type': 'application/json' },
@@ -54,7 +55,7 @@ export function EmailVerification({ token, apiUrl, onSuccess, }) {
54
55
  try {
55
56
  const base = (apiUrl ??
56
57
  process.env.NEXT_PUBLIC_SLYXUP_API_URL ??
57
- 'https://auth.slyxup.online').replace(/\/$/, '');
58
+ DEFAULT_AUTH_API_URL).replace(/\/$/, '');
58
59
  await fetch(`${base}/v1/verification/resend`, {
59
60
  method: 'POST',
60
61
  headers: { 'Content-Type': 'application/json' },
@@ -1 +1 @@
1
- {"version":3,"file":"EmailVerification.js","sourceRoot":"","sources":["../../../src/components/EmailVerification/EmailVerification.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailVerification.js","sourceRoot":"","sources":["../../../src/components/EmailVerification/EmailVerification.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { SlyxupClient } from '@slyxup/core';
2
+ import { DEFAULT_AUTH_API_URL, SlyxupClient } from '@slyxup/core';
3
3
  import { useEffect, useState } from 'react';
4
4
  import { CheckIcon, KeyholeMark } from '../../icons';
5
5
  import { injectStyles } from '../../styles';
@@ -21,7 +21,7 @@ export function ForgotPassword({ apiUrl, onSuccess, onBackToSignIn, }) {
21
21
  setBusy(true);
22
22
  setError(null);
23
23
  try {
24
- await fetch(`${(apiUrl ?? process.env.NEXT_PUBLIC_SLYXUP_API_URL ?? 'https://auth.slyxup.online').replace(/\/$/, '')}/v1/verification/password/forgot`, {
24
+ await fetch(`${(apiUrl ?? process.env.VITE_SLYXUP_API_URL ?? DEFAULT_AUTH_API_URL).replace(/\/$/, '')}/v1/verification/password/forgot`, {
25
25
  method: 'POST',
26
26
  headers: { 'Content-Type': 'application/json' },
27
27
  body: JSON.stringify({ email }),
@@ -1 +1 @@
1
- {"version":3,"file":"ForgotPassword.js","sourceRoot":"","sources":["../../../src/components/ForgotPassword/ForgotPassword.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ForgotPassword.js","sourceRoot":"","sources":["../../../src/components/ForgotPassword/ForgotPassword.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InvoicesTable.d.ts","sourceRoot":"","sources":["../../../src/components/InvoicesTable/InvoicesTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAkB,EAClB,SAAgB,EAChB,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,sCAiFpB"}
1
+ {"version":3,"file":"InvoicesTable.d.ts","sourceRoot":"","sources":["../../../src/components/InvoicesTable/InvoicesTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACpD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAkB,EAClB,SAAgB,EAChB,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,sCA4FpB"}
@@ -9,16 +9,18 @@ export function InvoicesTable({ invoices, title = 'Invoices', showTotal = true,
9
9
  const ref = useScopedTheme(theme);
10
10
  if (invoices.length === 0)
11
11
  return null;
12
- const paidTotal = invoices
13
- .filter((inv) => inv.status === 'paid')
14
- .reduce((sum, inv) => sum + inv.amount, 0);
15
- const currency = invoices[0]?.currency ?? 'USD';
16
- return (_jsxs("div", { ref: ref, className: `slx-card ${className ?? ''}`, style: style, children: [_jsx("h3", { style: { fontSize: 15, fontWeight: 600, marginBottom: 12 }, children: title }), _jsxs("table", { style: { width: '100%', fontSize: 13, borderCollapse: 'collapse' }, children: [_jsx("thead", { children: _jsxs("tr", { style: {
12
+ const totals = new Map();
13
+ for (const invoice of invoices) {
14
+ if (invoice.status === 'paid')
15
+ totals.set(invoice.currency, (totals.get(invoice.currency) ?? 0) + invoice.amount);
16
+ }
17
+ const money = (amount, currency) => new Intl.NumberFormat(undefined, { style: 'currency', currency }).format(amount / 100);
18
+ return (_jsxs("div", { ref: ref, className: `slx-card ${className ?? ''}`, style: style, children: [_jsx("h3", { style: { fontSize: 15, fontWeight: 600, marginBottom: 12 }, children: title }), _jsxs("table", { "aria-label": title, style: { width: '100%', fontSize: 13, borderCollapse: 'collapse' }, children: [_jsx("thead", { children: _jsxs("tr", { style: {
17
19
  borderBottom: '1px solid var(--slx-border)',
18
20
  textAlign: 'left',
19
21
  }, children: [_jsx("th", { style: { padding: '6px 0', fontWeight: 550 }, children: "Date" }), _jsx("th", { style: { padding: '6px 0', fontWeight: 550 }, children: "Amount" }), _jsx("th", { style: { padding: '6px 0', fontWeight: 550 }, children: "Status" })] }) }), _jsx("tbody", { children: invoices.map((inv) => (_jsxs("tr", { className: "slx-row-hover", style: { borderBottom: '1px solid var(--slx-border)' }, children: [_jsx("td", { style: { padding: '8px 0' }, children: inv.billedAt
20
22
  ? new Date(inv.billedAt).toLocaleDateString()
21
- : '—' }), _jsxs("td", { style: { padding: '8px 0' }, children: ["$", (inv.amount / 100).toFixed(2), " ", inv.currency] }), _jsx("td", { style: { padding: '8px 0' }, children: _jsx(SubscriptionStatus, { status: inv.status }) })] }, inv.id))) }), showTotal && paidTotal > 0 && (_jsx("tfoot", { children: _jsxs("tr", { children: [_jsx("td", { colSpan: 2, style: {
23
+ : '—' }), _jsxs("td", { style: { padding: '8px 0' }, children: [money(inv.amount, inv.currency), " ", inv.currency] }), _jsx("td", { style: { padding: '8px 0' }, children: _jsx(SubscriptionStatus, { status: inv.status }) })] }, inv.id))) }), showTotal && totals.size > 0 && (_jsx("tfoot", { children: Array.from(totals, ([currency, paidTotal]) => (_jsxs("tr", { children: [_jsx("td", { colSpan: 2, style: {
22
24
  padding: '10px 0 2px',
23
25
  fontSize: 12,
24
26
  fontWeight: 600,
@@ -30,6 +32,6 @@ export function InvoicesTable({ invoices, title = 'Invoices', showTotal = true,
30
32
  fontSize: 14,
31
33
  fontWeight: 750,
32
34
  fontFamily: 'var(--slx-display)',
33
- }, children: ["$", (paidTotal / 100).toFixed(2), " ", currency] })] }) }))] })] }));
35
+ }, children: [money(paidTotal, currency), " ", currency] })] }, currency))) }))] })] }));
34
36
  }
35
37
  //# sourceMappingURL=InvoicesTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvoicesTable.js","sourceRoot":"","sources":["../../../src/components/InvoicesTable/InvoicesTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InvoicesTable.js","sourceRoot":"","sources":["../../../src/components/InvoicesTable/InvoicesTable.tsx"],"names":[],"mappings":"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"}
@@ -25,6 +25,6 @@ export function PlanCard({ plan, current = false, currentLabel = 'Current plan',
25
25
  left: 0,
26
26
  color: '#34d399',
27
27
  fontWeight: 700,
28
- }, children: "\u2713" }), ' ', f] }, f))) }), _jsx("button", { type: "button", className: "slx-btn", onClick: () => (current ? undefined : onSelect?.(plan)), disabled: loading || current, style: current ? { opacity: 0.65, cursor: 'default' } : undefined, children: current ? currentLabel : ctaLabel })] }));
28
+ }, children: "\u2713" }), ' ', f] }, f))) }), _jsx("button", { type: "button", className: current ? 'slx-btn-current' : 'slx-btn', onClick: () => (current ? undefined : onSelect?.(plan)), disabled: loading || current, style: current ? { opacity: 1, cursor: 'default' } : undefined, children: current ? currentLabel : ctaLabel })] }));
29
29
  }
30
30
  //# sourceMappingURL=PlanCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlanCard.js","sourceRoot":"","sources":["../../../src/components/PlanCard/PlanCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlanCard.js","sourceRoot":"","sources":["../../../src/components/PlanCard/PlanCard.tsx"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ export interface PricingTableProps {
10
10
  * `currentLabel` disabled instead of "Get started". Pass the active
11
11
  * subscription's planId, or the $0 plan's id when on the free tier. */
12
12
  currentPlanId?: string | null;
13
- currentLabel?: string;
14
- ctaLabel?: string;
13
+ currentLabel?: string | ((plan: PricingPlan) => string);
14
+ ctaLabel?: string | ((plan: PricingPlan) => string);
15
15
  /** Per-component theme (accent, mode, radius…) — scoped, never global. */
16
16
  theme?: SlyxUpTheme;
17
17
  style?: CSSProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"PricingTable.d.ts","sourceRoot":"","sources":["../../../src/components/PricingTable/PricingTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC;AAQvC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;4EAEwE;IACxE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,aAAoB,EACpB,YAA6B,EAC7B,QAAwB,EACxB,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,iBAAiB,+BA+DnB"}
1
+ {"version":3,"file":"PricingTable.d.ts","sourceRoot":"","sources":["../../../src/components/PricingTable/PricingTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC;AAQvC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;4EAEwE;IACxE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC;IACpD,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,aAAoB,EACpB,YAA6B,EAC7B,QAAwB,EACxB,KAAK,EACL,KAAK,EACL,SAAS,GACV,EAAE,iBAAiB,+BAwEnB"}
@@ -18,6 +18,13 @@ export function PricingTable({ plans, onSelect, loading, currentPlanId = null, c
18
18
  if (loading) {
19
19
  return (_jsxs(_Fragment, { children: [_jsx("style", { children: PRICING_GRID_CSS }), _jsx("div", { ref: ref, className: gridClass, style: style, "aria-busy": "true", children: [1, 2, 3].map((i) => (_jsxs("div", { className: "slx-card", style: { minHeight: 320 }, children: [_jsx("div", { className: "slx-skeleton", style: { height: 18, width: '45%' } }), _jsx("div", { className: "slx-skeleton", style: { height: 40, width: '60%', marginTop: 14 } }), _jsx("div", { className: "slx-skeleton", style: { height: 12, width: '80%', marginTop: 18 } }), _jsx("div", { className: "slx-skeleton", style: { height: 12, width: '70%', marginTop: 10 } }), _jsx("div", { className: "slx-skeleton", style: { height: 12, width: '75%', marginTop: 10 } }), _jsx("div", { className: "slx-skeleton", style: { height: 40, marginTop: 26 } })] }, i))) })] }));
20
20
  }
21
- return (_jsxs(_Fragment, { children: [_jsx("style", { children: PRICING_GRID_CSS }), _jsx("div", { ref: ref, className: gridClass, style: style, children: plans.map((plan, i) => (_jsx(PlanCard, { plan: plan, current: currentPlanId != null && plan.id === currentPlanId, currentLabel: currentLabel, ctaLabel: ctaLabel, onSelect: onSelect, loading: loading, className: i < 3 ? `slx-rise-${i + 1}` : undefined }, plan.id))) })] }));
21
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: PRICING_GRID_CSS }), _jsx("div", { ref: ref, className: gridClass, style: style, children: plans.map((plan, i) => {
22
+ const isCurrent = currentPlanId != null && plan.id === currentPlanId;
23
+ const resolvedCurrentLabel = typeof currentLabel === 'function'
24
+ ? currentLabel(plan)
25
+ : currentLabel;
26
+ const resolvedCtaLabel = typeof ctaLabel === 'function' ? ctaLabel(plan) : ctaLabel;
27
+ return (_jsx(PlanCard, { plan: plan, current: isCurrent, currentLabel: resolvedCurrentLabel, ctaLabel: resolvedCtaLabel, onSelect: onSelect, loading: loading, className: i < 3 ? `slx-rise-${i + 1}` : undefined }, plan.id));
28
+ }) })] }));
22
29
  }
23
30
  //# sourceMappingURL=PricingTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PricingTable.js","sourceRoot":"","sources":["../../../src/components/PricingTable/PricingTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PricingTable.js","sourceRoot":"","sources":["../../../src/components/PricingTable/PricingTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAqB,MAAM,sBAAsB,CAAC;AAInE,MAAM,gBAAgB,GAAG;IACvB,oEAAoE;IACpE,qJAAqJ;IACrJ,gHAAgH;CACjH,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAkBX,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,IAAI,EACpB,YAAY,GAAG,cAAc,EAC7B,QAAQ,GAAG,aAAa,EACxB,KAAK,EACL,KAAK,EACL,SAAS,GACS;IAClB,YAAY,EAAE,CAAC;IACf,MAAM,GAAG,GAAG,cAAc,CAAiB,KAAK,CAAC,CAAC;IAClD,uEAAuE;IACvE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,sCAAsC,IAAI,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;IAClF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,8BACE,0BAAQ,gBAAgB,GAAS,EACjC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,eAAY,MAAM,YAChE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,eAAa,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,aACzD,cACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GACnC,EACF,cACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAClD,EACF,cACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAClD,EACF,cACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAClD,EACF,cACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,GAClD,EACF,cACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GACpC,KAxBM,CAAC,CAyBL,CACP,CAAC,GACE,IACL,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,CACL,8BACE,0BAAQ,gBAAgB,GAAS,EACjC,cAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,YAC9C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;oBACrB,MAAM,SAAS,GAAG,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,aAAa,CAAC;oBACrE,MAAM,oBAAoB,GACxB,OAAO,YAAY,KAAK,UAAU;wBAChC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;wBACpB,CAAC,CAAC,YAAY,CAAC;oBACnB,MAAM,gBAAgB,GACpB,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBAC7D,OAAO,CACL,KAAC,QAAQ,IAEP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,SAAS,EAClB,YAAY,EAAE,oBAAoB,EAClC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAP7C,IAAI,CAAC,EAAE,CAQZ,CACH,CAAC;gBACJ,CAAC,CAAC,GACE,IACL,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPassword.d.ts","sourceRoot":"","sources":["../../../src/components/ResetPassword/ResetPassword.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE,kBAAkB,+BAuGpB"}
1
+ {"version":3,"file":"ResetPassword.d.ts","sourceRoot":"","sources":["../../../src/components/ResetPassword/ResetPassword.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE,kBAAkB,+BAuGpB"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
+ import { DEFAULT_AUTH_API_URL } from '@slyxup/core';
3
4
  import { CheckIcon, KeyholeMark } from '../../icons';
4
5
  import { injectStyles } from '../../styles';
5
6
  import { PasswordField } from '../PasswordField';
@@ -22,8 +23,8 @@ export function ResetPassword({ token, apiUrl, onSuccess, }) {
22
23
  setError(null);
23
24
  try {
24
25
  const base = (apiUrl ??
25
- process.env.NEXT_PUBLIC_SLYXUP_API_URL ??
26
- 'https://auth.slyxup.online').replace(/\/$/, '');
26
+ process.env.VITE_SLYXUP_API_URL ??
27
+ DEFAULT_AUTH_API_URL).replace(/\/$/, '');
27
28
  const res = await fetch(`${base}/v1/verification/password/reset`, {
28
29
  method: 'POST',
29
30
  headers: { 'Content-Type': 'application/json' },
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPassword.js","sourceRoot":"","sources":["../../../src/components/ResetPassword/ResetPassword.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResetPassword.js","sourceRoot":"","sources":["../../../src/components/ResetPassword/ResetPassword.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../../src/components/SignIn/SignIn.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,oGAAoG;IACpG,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,2CAA2C;AAC3C,wBAAgB,MAAM,CAAC,EACrB,MAAa,EACb,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,MAAmB,EACnB,QAAgB,EAChB,UAAmC,EACnC,aAA6E,EAC7E,WAAqH,GACtH,EAAE,WAAW,+BA8Ob"}
1
+ {"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../../src/components/SignIn/SignIn.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,oGAAoG;IACpG,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,2CAA2C;AAC3C,wBAAgB,MAAM,CAAC,EACrB,MAAa,EACb,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,MAAmB,EACnB,QAAgB,EAChB,UAAmC,EACnC,aAA6E,EAC7E,WAIC,GACF,EAAE,WAAW,+BAkSb"}
@@ -1,33 +1,44 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { SlyxupError } from '@slyxup/core';
3
- import { useEffect, useRef, useState } from 'react';
3
+ import { useEffect, useId, useRef, useState } from 'react';
4
4
  import { GitHubIcon, GoogleIcon, KeyholeMark } from '../../icons';
5
5
  import { useAuth } from '../../react/hooks/useAuth';
6
6
  import { injectStyles } from '../../styles';
7
7
  import { PasswordField } from '../PasswordField';
8
8
  /** Email/password + OAuth sign-in card. */
9
- export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswordClick, layout = 'centered', username = false, brandTitle = 'Ship auth in minutes', brandSubtitle = 'Email, OAuth and 2FA — one integration, secured by default.', brandPoints = ['Email + OAuth out of the box', 'HttpOnly sessions, secured by default', 'Billing ready when you are'], }) {
9
+ export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswordClick, layout = 'centered', username = false, brandTitle = 'Ship auth in minutes', brandSubtitle = 'Email, OAuth and 2FA — one integration, secured by default.', brandPoints = [
10
+ 'Email + OAuth out of the box',
11
+ 'HttpOnly sessions, secured by default',
12
+ 'Billing ready when you are',
13
+ ], }) {
10
14
  injectStyles();
11
- const { signIn, completeSignIn, client } = useAuth();
15
+ const { signIn, completeSignIn, client, oauthChallenge, authError } = useAuth();
16
+ const id = useId();
12
17
  const [email, setEmail] = useState('');
13
18
  const [password, setPassword] = useState('');
14
19
  const [busy, setBusy] = useState(false);
15
20
  const [error, setError] = useState(null);
16
21
  const [challengeToken, setChallengeToken] = useState(null);
17
22
  const [tfaCode, setTfaCode] = useState('');
23
+ const [recoveryMode, setRecoveryMode] = useState(false);
18
24
  const cardRef = useRef(null);
19
25
  useEffect(() => {
20
- if (error) {
21
- const t = setTimeout(() => setError(null), 4000);
22
- return () => clearTimeout(t);
23
- }
24
- }, [error]);
26
+ if (oauthChallenge)
27
+ setChallengeToken(oauthChallenge);
28
+ }, [oauthChallenge]);
29
+ useEffect(() => {
30
+ if (authError)
31
+ setError(authError);
32
+ }, [authError]);
25
33
  async function onSubmit(e) {
26
34
  e.preventDefault();
27
35
  setBusy(true);
28
36
  setError(null);
29
37
  try {
30
- const res = await signIn({ email, password });
38
+ const identity = email.trim();
39
+ const res = await signIn(username && !identity.includes('@')
40
+ ? { username: identity, password }
41
+ : { email: identity, password });
31
42
  if (res && 'challengeToken' in res) {
32
43
  setChallengeToken(res.challengeToken);
33
44
  return;
@@ -50,7 +61,12 @@ export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswo
50
61
  setBusy(true);
51
62
  setError(null);
52
63
  try {
53
- await completeSignIn({ challengeToken, code: tfaCode.trim() });
64
+ await completeSignIn({
65
+ challengeToken,
66
+ ...(recoveryMode
67
+ ? { recoveryCode: tfaCode.trim() }
68
+ : { code: tfaCode.trim() }),
69
+ });
54
70
  onSuccess?.();
55
71
  }
56
72
  catch (err) {
@@ -61,15 +77,28 @@ export function SignIn({ social = true, onSuccess, onSignUpClick, onForgotPasswo
61
77
  }
62
78
  }
63
79
  function oauth(provider) {
64
- const redirect = encodeURIComponent(window.location.href);
65
- window.location.href = `${client.apiUrl}/v1/oauth/${provider}?redirect_url=${redirect}`;
80
+ void client.auth
81
+ .startOAuth(provider)
82
+ .catch((error) => setError(error instanceof Error
83
+ ? error.message
84
+ : 'Unable to start social sign-in'));
66
85
  }
67
86
  const missingKey = !client.publishableKey ||
68
87
  client.publishableKey === 'pk_test_missing' ||
69
88
  client.publishableKey.includes('REPLACE');
70
- return (_jsxs("div", { ref: cardRef, className: `slx-card${error ? ' slx-card-error' : ''}${layout === 'centered' ? '' : ` slx-layout-${layout}`}`, children: [layout === 'split' && (_jsxs("div", { className: "slx-split-brand", children: [_jsx("div", { className: "slx-split-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h2", { className: "slx-split-title", children: brandTitle }), _jsx("p", { className: "slx-split-sub", children: brandSubtitle }), _jsx("ul", { className: "slx-split-points", children: brandPoints.map((pt) => (_jsx("li", { children: pt }, pt))) })] })), _jsxs("div", { className: layout === 'split' ? 'slx-split-form' : 'slx-form-full', children: [missingKey && (_jsxs("p", { className: "slx-setup-note", children: [_jsx("strong", { children: "Setup:" }), " Add", ' ', _jsx("code", { children: "NEXT_PUBLIC_SLYXUP_PUBLISHABLE_KEY" }), " to", ' ', _jsx("code", { children: ".env.local" }), " \u2014 run ", _jsx("code", { children: "npx @slyxup/cli keys create" })] })), _jsx("div", { className: "slx-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h1", { className: "slx-title", children: "Sign in" }), _jsx("p", { className: "slx-subtitle", children: "Welcome back. Enter your details to continue." }), social && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "slx-social", children: [_jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('google'), children: [_jsx(GoogleIcon, {}), " Continue with Google"] }), _jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('github'), children: [_jsx(GitHubIcon, {}), " Continue with GitHub"] })] }), _jsx("div", { className: "slx-divider", children: "or" })] })), error && (_jsx("p", { className: "slx-error-text", role: "alert", children: error })), challengeToken ? (_jsxs("form", { onSubmit: onSubmit2FA, noValidate: false, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signin-2fa", children: "Authenticator code" }), _jsx("input", { id: "slx-signin-2fa", className: "slx-input", type: "text", inputMode: "numeric", autoComplete: "off", maxLength: 6, pattern: "[0-9]*", placeholder: "000000", value: tfaCode, onChange: (e) => setTfaCode(e.target.value.replace(/\D/g, '')), required: true }), _jsx("p", { className: "slx-hint", children: "Enter the 6-digit code from your authenticator app." })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Verifying…' : 'Verify code'] }), _jsx("button", { type: "button", className: "slx-link", style: { marginTop: 8 }, onClick: () => {
89
+ return (_jsxs("div", { ref: cardRef, className: `slx-card${error ? ' slx-card-error' : ''}${layout === 'centered' ? '' : ` slx-layout-${layout}`}`, children: [layout === 'split' && (_jsxs("div", { className: "slx-split-brand", children: [_jsx("div", { className: "slx-split-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h2", { className: "slx-split-title", children: brandTitle }), _jsx("p", { className: "slx-split-sub", children: brandSubtitle }), _jsx("ul", { className: "slx-split-points", children: brandPoints.map((pt) => (_jsx("li", { children: pt }, pt))) })] })), _jsxs("div", { className: layout === 'split' ? 'slx-split-form' : 'slx-form-full', children: [missingKey && (_jsxs("p", { className: "slx-setup-note", children: [_jsx("strong", { children: "Setup:" }), " Add", ' ', _jsx("code", { children: "NEXT_PUBLIC_SLYXUP_PUBLISHABLE_KEY" }), " to", ' ', _jsx("code", { children: ".env.local" })] })), _jsx("div", { className: "slx-mark", children: _jsx(KeyholeMark, {}) }), _jsx("h1", { className: "slx-title", children: "Sign in" }), _jsx("p", { className: "slx-subtitle", children: "Welcome back. Enter your details to continue." }), social && !challengeToken && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "slx-social", children: [_jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('google'), children: [_jsx(GoogleIcon, {}), " Continue with Google"] }), _jsxs("button", { type: "button", className: "slx-social-btn", onClick: () => oauth('github'), children: [_jsx(GitHubIcon, {}), " Continue with GitHub"] })] }), _jsx("div", { className: "slx-divider", children: "or" })] })), error && (_jsx("p", { id: `${id}-error`, className: "slx-error-text", role: "alert", children: error })), challengeToken ? (_jsxs("form", { onSubmit: onSubmit2FA, "aria-busy": busy, "aria-describedby": error ? `${id}-error` : undefined, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: `${id}-2fa`, children: recoveryMode ? 'Recovery code' : 'Authenticator code' }), _jsx("input", { id: `${id}-2fa`, className: "slx-input", type: "text", inputMode: recoveryMode ? 'text' : 'numeric', autoComplete: "one-time-code", maxLength: recoveryMode ? 128 : 6, pattern: recoveryMode ? undefined : '[0-9]{6}', placeholder: recoveryMode ? 'Enter a saved recovery code' : '000000', value: tfaCode, onChange: (e) => setTfaCode(recoveryMode
90
+ ? e.target.value
91
+ : e.target.value.replace(/\D/g, '')), disabled: busy, required: true }), _jsx("p", { className: "slx-hint", children: recoveryMode
92
+ ? 'Each recovery code can be used once.'
93
+ : 'Enter the 6-digit code from your authenticator app.' })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Verifying…' : 'Verify code'] }), _jsx("button", { type: "button", className: "slx-link", disabled: busy, onClick: () => {
94
+ setRecoveryMode(!recoveryMode);
95
+ setTfaCode('');
96
+ setError(null);
97
+ }, children: recoveryMode ? 'Use authenticator app' : 'Use a recovery code' }), _jsx("button", { type: "button", className: "slx-link", style: { marginTop: 8 }, disabled: busy, onClick: () => {
71
98
  setChallengeToken(null);
72
99
  setTfaCode('');
73
- }, children: "\u2190 Back to sign in" })] })) : (_jsxs("form", { onSubmit: onSubmit, noValidate: false, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signin-email", children: username ? (_jsxs(_Fragment, { children: ["Username ", _jsx("span", { className: "slx-hint", children: "or email" })] })) : ('Email') }), _jsx("input", { id: "slx-signin-email", className: "slx-input", type: "text", autoComplete: "username", placeholder: "you@example.com or yourname", value: email, onChange: (e) => setEmail(e.target.value), required: true })] }), _jsxs("div", { className: "slx-field", children: [_jsxs("div", { className: "slx-row", children: [_jsx("label", { className: "slx-label", htmlFor: "slx-signin-password", children: "Password" }), onForgotPasswordClick && (_jsx("button", { type: "button", className: "slx-link slx-forgot", onClick: onForgotPasswordClick, children: "Forgot password?" }))] }), _jsx(PasswordField, { id: "slx-signin-password", value: password, onChange: setPassword, autoComplete: "current-password", placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", required: true })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Signing in…' : 'Sign in'] })] })), onSignUpClick && (_jsxs("p", { className: "slx-footer", children: ["Don't have an account?", ' ', _jsx("button", { type: "button", className: "slx-link", onClick: onSignUpClick, children: "Sign up" })] }))] })] }));
100
+ setError(null);
101
+ setRecoveryMode(false);
102
+ }, children: "\u2190 Back to sign in" })] })) : (_jsxs("form", { onSubmit: onSubmit, "aria-busy": busy, "aria-describedby": error ? `${id}-error` : undefined, children: [_jsxs("div", { className: "slx-field", children: [_jsx("label", { className: "slx-label", htmlFor: `${id}-email`, children: username ? (_jsxs(_Fragment, { children: ["Username ", _jsx("span", { className: "slx-hint", children: "or email" })] })) : ('Email') }), _jsx("input", { id: `${id}-email`, className: "slx-input", type: username ? 'text' : 'email', autoComplete: "username", placeholder: username ? 'you@example.com or yourname' : 'you@example.com', disabled: busy, value: email, onChange: (e) => setEmail(e.target.value), required: true })] }), _jsxs("div", { className: "slx-field", children: [_jsxs("div", { className: "slx-row", children: [_jsx("label", { className: "slx-label", htmlFor: `${id}-password`, children: "Password" }), onForgotPasswordClick && (_jsx("button", { type: "button", className: "slx-link slx-forgot", onClick: onForgotPasswordClick, children: "Forgot password?" }))] }), _jsx(PasswordField, { id: `${id}-password`, value: password, onChange: setPassword, autoComplete: "current-password", placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", required: true })] }), _jsxs("button", { className: "slx-btn", type: "submit", disabled: busy, children: [busy && _jsx("span", { className: "slx-spinner", "aria-hidden": "true" }), busy ? 'Signing in…' : 'Sign in'] })] })), onSignUpClick && (_jsxs("p", { className: "slx-footer", children: ["Don't have an account?", ' ', _jsx("button", { type: "button", className: "slx-link", onClick: onSignUpClick, children: "Sign up" })] }))] })] }));
74
103
  }
75
104
  //# sourceMappingURL=SignIn.js.map