@ipulsehq/auth-ui 1.3.2

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 (86) hide show
  1. package/README.md +35 -0
  2. package/dist/AuthError.d.ts +14 -0
  3. package/dist/AuthError.d.ts.map +1 -0
  4. package/dist/AuthError.js +92 -0
  5. package/dist/AuthError.js.map +1 -0
  6. package/dist/AuthLayout.d.ts +18 -0
  7. package/dist/AuthLayout.d.ts.map +1 -0
  8. package/dist/AuthLayout.js +72 -0
  9. package/dist/AuthLayout.js.map +1 -0
  10. package/dist/IPulseClientAuthError.d.ts +21 -0
  11. package/dist/IPulseClientAuthError.d.ts.map +1 -0
  12. package/dist/IPulseClientAuthError.js +48 -0
  13. package/dist/IPulseClientAuthError.js.map +1 -0
  14. package/dist/IPulseRedirectSignIn.d.ts +21 -0
  15. package/dist/IPulseRedirectSignIn.d.ts.map +1 -0
  16. package/dist/IPulseRedirectSignIn.js +65 -0
  17. package/dist/IPulseRedirectSignIn.js.map +1 -0
  18. package/dist/SignIn.d.ts +24 -0
  19. package/dist/SignIn.d.ts.map +1 -0
  20. package/dist/SignIn.js +132 -0
  21. package/dist/SignIn.js.map +1 -0
  22. package/dist/SignUp.d.ts +26 -0
  23. package/dist/SignUp.d.ts.map +1 -0
  24. package/dist/SignUp.js +96 -0
  25. package/dist/SignUp.js.map +1 -0
  26. package/dist/UserButton.d.ts +24 -0
  27. package/dist/UserButton.d.ts.map +1 -0
  28. package/dist/UserButton.js +141 -0
  29. package/dist/UserButton.js.map +1 -0
  30. package/dist/VerifyRequest.d.ts +11 -0
  31. package/dist/VerifyRequest.d.ts.map +1 -0
  32. package/dist/VerifyRequest.js +73 -0
  33. package/dist/VerifyRequest.js.map +1 -0
  34. package/dist/auth-config.d.ts +63 -0
  35. package/dist/auth-config.d.ts.map +1 -0
  36. package/dist/auth-config.js +234 -0
  37. package/dist/auth-config.js.map +1 -0
  38. package/dist/index.d.ts +20 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +45 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/shared/AuthAlert.d.ts +11 -0
  43. package/dist/shared/AuthAlert.d.ts.map +1 -0
  44. package/dist/shared/AuthAlert.js +34 -0
  45. package/dist/shared/AuthAlert.js.map +1 -0
  46. package/dist/shared/AuthButton.d.ts +20 -0
  47. package/dist/shared/AuthButton.d.ts.map +1 -0
  48. package/dist/shared/AuthButton.js +84 -0
  49. package/dist/shared/AuthButton.js.map +1 -0
  50. package/dist/shared/AuthCard.d.ts +12 -0
  51. package/dist/shared/AuthCard.d.ts.map +1 -0
  52. package/dist/shared/AuthCard.js +30 -0
  53. package/dist/shared/AuthCard.js.map +1 -0
  54. package/dist/shared/AuthDivider.d.ts +10 -0
  55. package/dist/shared/AuthDivider.d.ts.map +1 -0
  56. package/dist/shared/AuthDivider.js +17 -0
  57. package/dist/shared/AuthDivider.js.map +1 -0
  58. package/dist/shared/AuthEmailInput.d.ts +17 -0
  59. package/dist/shared/AuthEmailInput.d.ts.map +1 -0
  60. package/dist/shared/AuthEmailInput.js +81 -0
  61. package/dist/shared/AuthEmailInput.js.map +1 -0
  62. package/dist/shared/AuthFooter.d.ts +14 -0
  63. package/dist/shared/AuthFooter.d.ts.map +1 -0
  64. package/dist/shared/AuthFooter.js +21 -0
  65. package/dist/shared/AuthFooter.js.map +1 -0
  66. package/dist/shared/AuthHeader.d.ts +13 -0
  67. package/dist/shared/AuthHeader.d.ts.map +1 -0
  68. package/dist/shared/AuthHeader.js +38 -0
  69. package/dist/shared/AuthHeader.js.map +1 -0
  70. package/dist/shared/AuthTextInput.d.ts +19 -0
  71. package/dist/shared/AuthTextInput.d.ts.map +1 -0
  72. package/dist/shared/AuthTextInput.js +81 -0
  73. package/dist/shared/AuthTextInput.js.map +1 -0
  74. package/dist/shared/styles.d.ts +6 -0
  75. package/dist/shared/styles.d.ts.map +1 -0
  76. package/dist/shared/styles.js +21 -0
  77. package/dist/shared/styles.js.map +1 -0
  78. package/dist/types.d.ts +119 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +3 -0
  81. package/dist/types.js.map +1 -0
  82. package/dist/utils.d.ts +32 -0
  83. package/dist/utils.d.ts.map +1 -0
  84. package/dist/utils.js +50 -0
  85. package/dist/utils.js.map +1 -0
  86. package/package.json +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignIn.js","sourceRoot":"","sources":["../src/SignIn.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import type { AuthBranding, AuthTranslations } from './types';
3
+ export interface SignUpProps {
4
+ /** Called with name + email when user submits */
5
+ onEmailSubmit?: (email: string, name?: string) => void | Promise<void>;
6
+ /** Called when user clicks passkey button */
7
+ onPasskeyClick?: () => void | Promise<void>;
8
+ /** Whether auth is in progress */
9
+ isLoading?: boolean;
10
+ /** Custom branding */
11
+ branding?: AuthBranding;
12
+ /** Custom translations / labels */
13
+ translations?: AuthTranslations['signUp'];
14
+ /** URL to the sign-in page */
15
+ signInUrl?: string;
16
+ /** Error message to display */
17
+ error?: string | null;
18
+ /** Success message */
19
+ success?: string | null;
20
+ /** Show name field (default: true) */
21
+ showNameField?: boolean;
22
+ /** Pre-filled email (e.g. from sign-in redirect when account doesn't exist) */
23
+ initialEmail?: string;
24
+ }
25
+ export declare const SignUp: React.FC<SignUpProps>;
26
+ //# sourceMappingURL=SignUp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignUp.d.ts","sourceRoot":"","sources":["../src/SignUp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAW9D,MAAM,WAAW,WAAW;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,mCAAmC;IACnC,YAAY,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sCAAsC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAqBD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6HxC,CAAC"}
package/dist/SignUp.js ADDED
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SignUp = void 0;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const React = __importStar(require("react"));
39
+ const lucide_react_1 = require("lucide-react");
40
+ const AuthCard_1 = require("./shared/AuthCard");
41
+ const AuthAlert_1 = require("./shared/AuthAlert");
42
+ const AuthHeader_1 = require("./shared/AuthHeader");
43
+ const AuthFooter_1 = require("./shared/AuthFooter");
44
+ const AuthEmailInput_1 = require("./shared/AuthEmailInput");
45
+ const AuthTextInput_1 = require("./shared/AuthTextInput");
46
+ const AuthDivider_1 = require("./shared/AuthDivider");
47
+ const AuthButton_1 = require("./shared/AuthButton");
48
+ const utils_1 = require("./utils");
49
+ const DEFAULTS = {
50
+ title: 'Account aanmaken',
51
+ subtitle: 'Maak een gratis iPulse account aan',
52
+ nameLabel: 'Naam',
53
+ namePlaceholder: 'Voornaam achternaam',
54
+ emailLabel: 'E-mailadres',
55
+ emailPlaceholder: 'naam@bedrijf.nl',
56
+ emailButton: 'Registreren met e-mail',
57
+ passkeyButton: 'Registreren met Passkey',
58
+ orDivider: 'of',
59
+ loadingText: 'Bezig...',
60
+ footer: 'Gegarandeerd beveiligd door iPulse Auth',
61
+ haveAccount: 'Al een account?',
62
+ signInLink: 'Inloggen',
63
+ backLink: 'Terug naar inloggen',
64
+ termsLabel: 'Voorwaarden',
65
+ privacyLabel: 'Privacy',
66
+ };
67
+ const SignUp = ({ onEmailSubmit, onPasskeyClick, isLoading = false, branding, translations: t, signInUrl, error, success, showNameField = true, initialEmail = '', }) => {
68
+ const [name, setName] = React.useState('');
69
+ const [email, setEmail] = React.useState(initialEmail);
70
+ React.useEffect(() => {
71
+ if (initialEmail)
72
+ setEmail(initialEmail);
73
+ }, [initialEmail]);
74
+ const labels = { ...DEFAULTS, ...t };
75
+ const title = branding?.appName
76
+ ? `Account bij ${branding.appName}`
77
+ : labels.title;
78
+ const canSubmit = email.trim().length > 0;
79
+ const handleSubmit = async (e) => {
80
+ e.preventDefault();
81
+ if (onEmailSubmit && canSubmit && !isLoading) {
82
+ await onEmailSubmit(email.trim(), name.trim() || undefined);
83
+ }
84
+ };
85
+ const handleEmailKeyDown = (e) => {
86
+ if (e.key === 'Enter') {
87
+ e.preventDefault();
88
+ if (onEmailSubmit && canSubmit && !isLoading) {
89
+ onEmailSubmit(email.trim(), name.trim() || undefined);
90
+ }
91
+ }
92
+ };
93
+ return ((0, jsx_runtime_1.jsxs)(AuthCard_1.AuthCard, { children: [(0, jsx_runtime_1.jsx)(AuthHeader_1.AuthHeader, { branding: branding, title: title, subtitle: labels.subtitle }), error && (0, jsx_runtime_1.jsx)(AuthAlert_1.AuthAlert, { type: "error", message: error }), success && (0, jsx_runtime_1.jsx)(AuthAlert_1.AuthAlert, { type: "success", message: success }), (0, jsx_runtime_1.jsxs)("form", { onSubmit: handleSubmit, noValidate: true, style: { display: 'flex', flexDirection: 'column', gap: '1.25rem' }, children: [showNameField && ((0, jsx_runtime_1.jsx)(AuthTextInput_1.AuthTextInput, { id: "ipulse-signup-name", type: "text", value: name, onChange: setName, placeholder: labels.namePlaceholder, label: labels.nameLabel, autoComplete: "name", disabled: isLoading, autoFocus: true, icon: (0, jsx_runtime_1.jsx)(lucide_react_1.User, { size: 16 }) })), (0, jsx_runtime_1.jsx)(AuthEmailInput_1.AuthEmailInput, { id: "ipulse-signup-email", value: email, onChange: setEmail, placeholder: labels.emailPlaceholder, label: labels.emailLabel, disabled: isLoading, autoFocus: !showNameField, onKeyDown: handleEmailKeyDown }), (0, jsx_runtime_1.jsxs)(AuthButton_1.AuthPrimaryButton, { type: "submit", disabled: !canSubmit, loading: isLoading, loadingText: labels.loadingText, tabIndex: 0, children: [labels.emailButton, (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowRight, { size: 16, style: { flexShrink: 0 } })] }), onPasskeyClick && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(AuthDivider_1.AuthDivider, { label: labels.orDivider }), (0, jsx_runtime_1.jsxs)(AuthButton_1.AuthOutlineButton, { type: "button", onClick: () => !isLoading && onPasskeyClick(), disabled: isLoading, tabIndex: 0, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Fingerprint, { size: 18, style: { flexShrink: 0 } }), labels.passkeyButton] })] }))] }), signInUrl && ((0, jsx_runtime_1.jsxs)("p", { style: { textAlign: 'center', marginTop: '1.5rem', fontSize: '0.875rem', color: utils_1.cssVars.mutedFg }, children: [labels.haveAccount, ' ', (0, jsx_runtime_1.jsx)("a", { href: signInUrl, tabIndex: 0, style: { color: utils_1.cssVars.primary, fontWeight: 500, textDecoration: 'none' }, onMouseOver: (e) => (e.currentTarget.style.textDecoration = 'underline'), onMouseOut: (e) => (e.currentTarget.style.textDecoration = 'none'), children: labels.signInLink })] })), (0, jsx_runtime_1.jsx)(AuthFooter_1.AuthFooter, { branding: branding, text: labels.footer, termsLabel: labels.termsLabel, privacyLabel: labels.privacyLabel })] }));
94
+ };
95
+ exports.SignUp = SignUp;
96
+ //# sourceMappingURL=SignUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignUp.js","sourceRoot":"","sources":["../src/SignUp.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ export interface UserButtonProps {
3
+ user?: {
4
+ name?: string | null;
5
+ email?: string | null;
6
+ image?: string | null;
7
+ role?: string;
8
+ };
9
+ onSignOut?: () => void | Promise<void>;
10
+ onManageAccount?: () => void;
11
+ manageAccountUrl?: string;
12
+ /** Additional menu items */
13
+ extraItems?: Array<{
14
+ label: string;
15
+ icon?: React.ReactNode;
16
+ onClick?: () => void;
17
+ href?: string;
18
+ danger?: boolean;
19
+ }>;
20
+ /** Show role badge */
21
+ showRole?: boolean;
22
+ }
23
+ export declare const UserButton: React.FC<UserButtonProps>;
24
+ //# sourceMappingURL=UserButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserButton.d.ts","sourceRoot":"","sources":["../src/UserButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,WAAW,eAAe;IAC5B,IAAI,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,UAAU,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8KhD,CAAC"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.UserButton = void 0;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const React = __importStar(require("react"));
39
+ const lucide_react_1 = require("lucide-react");
40
+ const utils_1 = require("./utils");
41
+ const UserButton = ({ user, onSignOut, onManageAccount, manageAccountUrl, extraItems, showRole = false, }) => {
42
+ const [isOpen, setIsOpen] = React.useState(false);
43
+ const menuRef = React.useRef(null);
44
+ React.useEffect(() => {
45
+ function handleClickOutside(event) {
46
+ if (menuRef.current && !menuRef.current.contains(event.target)) {
47
+ setIsOpen(false);
48
+ }
49
+ }
50
+ function handleEscape(event) {
51
+ if (event.key === 'Escape')
52
+ setIsOpen(false);
53
+ }
54
+ document.addEventListener('mousedown', handleClickOutside);
55
+ document.addEventListener('keydown', handleEscape);
56
+ return () => {
57
+ document.removeEventListener('mousedown', handleClickOutside);
58
+ document.removeEventListener('keydown', handleEscape);
59
+ };
60
+ }, []);
61
+ if (!user)
62
+ return null;
63
+ const initials = (0, utils_1.getInitials)(user.name, user.email);
64
+ const isAdmin = user.role === 'ADMIN' || user.role === 'admin';
65
+ const Avatar = ({ size = 32 }) => (user.image ? ((0, jsx_runtime_1.jsx)("img", { src: user.image, alt: user.name || 'User', style: { width: size, height: size, borderRadius: '50%', objectFit: 'cover', flexShrink: 0 } })) : ((0, jsx_runtime_1.jsx)("div", { style: {
66
+ width: size, height: size, borderRadius: '50%',
67
+ backgroundColor: utils_1.cssVars.primary, color: utils_1.cssVars.primaryFg,
68
+ display: 'flex', alignItems: 'center', justifyContent: 'center',
69
+ fontWeight: 600, fontSize: size * 0.375, flexShrink: 0,
70
+ letterSpacing: '-0.02em',
71
+ }, children: initials })));
72
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative', fontFamily: 'inherit', display: 'inline-block' }, ref: menuRef, children: [(0, jsx_runtime_1.jsx)("button", { onClick: () => setIsOpen((o) => !o), "aria-expanded": isOpen, "aria-haspopup": "true", style: {
73
+ display: 'flex', alignItems: 'center', gap: '0.375rem',
74
+ background: utils_1.cssVars.bg,
75
+ border: `1px solid ${utils_1.cssVars.border}`,
76
+ cursor: 'pointer', padding: '3px',
77
+ borderRadius: utils_1.cssVars.radius.full,
78
+ transition: 'all 0.15s',
79
+ boxShadow: '0 1px 3px rgba(0,0,0,0.06)',
80
+ outline: 'none',
81
+ }, onMouseOver: (e) => { e.currentTarget.style.backgroundColor = utils_1.cssVars.muted; e.currentTarget.style.borderColor = utils_1.cssVars.mutedFg; }, onMouseOut: (e) => { e.currentTarget.style.backgroundColor = utils_1.cssVars.bg; e.currentTarget.style.borderColor = utils_1.cssVars.border; }, onFocus: (e) => { e.currentTarget.style.boxShadow = `0 0 0 2px ${utils_1.cssVars.primary}`; }, onBlur: (e) => { e.currentTarget.style.boxShadow = '0 1px 3px rgba(0,0,0,0.06)'; }, children: (0, jsx_runtime_1.jsx)(Avatar, { size: 30 }) }), isOpen && ((0, jsx_runtime_1.jsxs)("div", { role: "menu", style: {
82
+ position: 'absolute', top: 'calc(100% + 0.5rem)', right: 0,
83
+ width: '272px',
84
+ backgroundColor: utils_1.cssVars.card,
85
+ borderRadius: utils_1.cssVars.radius.lg,
86
+ boxShadow: '0 10px 40px -10px rgba(0,0,0,0.15), 0 4px 16px -4px rgba(0,0,0,0.08)',
87
+ border: `1px solid ${utils_1.cssVars.borderMuted}`,
88
+ overflow: 'hidden', zIndex: 100,
89
+ color: utils_1.cssVars.cardFg,
90
+ animation: 'ipulse-fadein 0.12s ease-out',
91
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
92
+ padding: '1rem',
93
+ borderBottom: `1px solid ${utils_1.cssVars.borderMuted}`,
94
+ display: 'flex', alignItems: 'center', gap: '0.75rem',
95
+ }, children: [(0, jsx_runtime_1.jsx)(Avatar, { size: 40 }), (0, jsx_runtime_1.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '0.375rem' }, children: [(0, jsx_runtime_1.jsx)("p", { style: {
96
+ margin: 0, fontWeight: 600, fontSize: '0.875rem',
97
+ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap',
98
+ }, children: user.name || 'Gebruiker' }), showRole && isAdmin && ((0, jsx_runtime_1.jsx)("span", { style: {
99
+ fontSize: '0.625rem', fontWeight: 700, letterSpacing: '0.04em',
100
+ textTransform: 'uppercase', padding: '1px 5px',
101
+ borderRadius: utils_1.cssVars.radius.sm,
102
+ backgroundColor: 'color-mix(in oklch, var(--color-primary, #0a0a0a) 12%, transparent)',
103
+ color: utils_1.cssVars.primary, flexShrink: 0,
104
+ }, children: "Admin" }))] }), (0, jsx_runtime_1.jsx)("p", { style: {
105
+ margin: 0, color: utils_1.cssVars.mutedFg, fontSize: '0.75rem',
106
+ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap',
107
+ }, children: user.email })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { padding: '0.375rem' }, children: [(onManageAccount || manageAccountUrl) && ((0, jsx_runtime_1.jsx)(MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Settings, { size: 15 }), label: "Account beheren", href: manageAccountUrl, onClick: () => { setIsOpen(false); onManageAccount?.(); } })), extraItems?.map((item, i) => ((0, jsx_runtime_1.jsx)(MenuItem, { icon: item.icon, label: item.label, href: item.href, onClick: () => { setIsOpen(false); item.onClick?.(); }, danger: item.danger }, i))), (onManageAccount || manageAccountUrl || extraItems?.length) && ((0, jsx_runtime_1.jsx)("div", { style: { height: '1px', backgroundColor: utils_1.cssVars.borderMuted, margin: '0.375rem 0' } })), onSignOut && ((0, jsx_runtime_1.jsx)(MenuItem, { icon: (0, jsx_runtime_1.jsx)(lucide_react_1.LogOut, { size: 15 }), label: "Uitloggen", onClick: () => { setIsOpen(false); onSignOut(); }, danger: true }))] })] })), (0, jsx_runtime_1.jsx)("style", { children: `
108
+ @keyframes ipulse-fadein {
109
+ from { opacity: 0; transform: translateY(-4px) scale(0.98); }
110
+ to { opacity: 1; transform: translateY(0) scale(1); }
111
+ }
112
+ ` })] }));
113
+ };
114
+ exports.UserButton = UserButton;
115
+ function MenuItem({ icon, label, onClick, href, danger = false, }) {
116
+ const style = {
117
+ width: '100%', textAlign: 'left',
118
+ padding: '0.5rem 0.625rem',
119
+ background: 'transparent', border: 'none',
120
+ fontSize: '0.875rem', cursor: 'pointer',
121
+ borderRadius: utils_1.cssVars.radius.sm,
122
+ display: 'flex', alignItems: 'center', gap: '0.5rem',
123
+ color: danger ? utils_1.cssVars.destructive : 'inherit',
124
+ transition: 'background-color 0.12s',
125
+ textDecoration: 'none',
126
+ };
127
+ const content = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [icon && (0, jsx_runtime_1.jsx)("span", { style: { opacity: 0.75, flexShrink: 0 }, children: icon }), (0, jsx_runtime_1.jsx)("span", { style: { flex: 1 }, children: label }), href && !onClick && (0, jsx_runtime_1.jsx)(lucide_react_1.ExternalLink, { size: 11, style: { opacity: 0.4 } })] }));
128
+ const hover = (e) => {
129
+ e.currentTarget.style.backgroundColor = danger
130
+ ? 'color-mix(in oklch, var(--color-destructive, #ef4444) 8%, transparent)'
131
+ : utils_1.cssVars.muted;
132
+ };
133
+ const unhover = (e) => {
134
+ e.currentTarget.style.backgroundColor = 'transparent';
135
+ };
136
+ if (href && !onClick) {
137
+ return ((0, jsx_runtime_1.jsx)("a", { href: href, style: style, onMouseOver: hover, onMouseOut: unhover, children: content }));
138
+ }
139
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", style: style, onClick: onClick, onMouseOver: hover, onMouseOut: unhover, children: content }));
140
+ }
141
+ //# sourceMappingURL=UserButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserButton.js","sourceRoot":"","sources":["../src/UserButton.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import type { AuthTranslations } from './types';
3
+ export interface VerifyRequestProps {
4
+ email?: string;
5
+ onResend?: () => void | Promise<void>;
6
+ onBack?: () => void;
7
+ isResending?: boolean;
8
+ translations?: AuthTranslations['verifyRequest'];
9
+ }
10
+ export declare const VerifyRequest: React.FC<VerifyRequestProps>;
11
+ //# sourceMappingURL=VerifyRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifyRequest.d.ts","sourceRoot":"","sources":["../src/VerifyRequest.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;CACpD;AAWD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAmItD,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VerifyRequest = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const lucide_react_1 = require("lucide-react");
6
+ const AuthCard_1 = require("./shared/AuthCard");
7
+ const utils_1 = require("./utils");
8
+ const DEFAULTS = {
9
+ title: 'Check je e-mail',
10
+ description: 'We hebben een inloglink gestuurd naar',
11
+ checkInbox: 'Klik op de link in de e-mail om in te loggen. Check ook je spamfolder als je de e-mail niet ziet.',
12
+ didNotReceive: 'Geen e-mail ontvangen?',
13
+ resendButton: 'Opnieuw versturen',
14
+ backToSignIn: 'Terug naar inloggen',
15
+ };
16
+ const VerifyRequest = ({ email, onResend, onBack, isResending = false, translations: t, }) => {
17
+ const labels = { ...DEFAULTS, ...t };
18
+ return ((0, jsx_runtime_1.jsx)(AuthCard_1.AuthCard, { children: (0, jsx_runtime_1.jsxs)("div", { style: { textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
19
+ width: '72px',
20
+ height: '72px',
21
+ borderRadius: '50%',
22
+ background: `color-mix(in oklch, ${utils_1.cssVars.primary} 10%, transparent)`,
23
+ display: 'flex',
24
+ alignItems: 'center',
25
+ justifyContent: 'center',
26
+ margin: '0 auto 1.75rem auto',
27
+ animation: 'ipulse-fadein 0.4s ease-out',
28
+ }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.Mail, { size: 32, style: { color: utils_1.cssVars.primary } }) }), (0, jsx_runtime_1.jsx)("h1", { style: {
29
+ fontSize: '1.5rem',
30
+ fontWeight: 700,
31
+ margin: '0 0 0.75rem 0',
32
+ letterSpacing: '-0.025em',
33
+ }, children: labels.title }), (0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 0.25rem 0', color: utils_1.cssVars.mutedFg, fontSize: '0.9375rem', lineHeight: 1.6 }, children: labels.description }), email && ((0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 1.25rem 0', fontWeight: 600, fontSize: '0.9375rem' }, children: email })), (0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 2rem 0', color: utils_1.cssVars.mutedFg, fontSize: '0.875rem', lineHeight: 1.65 }, children: labels.checkInbox }), onResend && ((0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '1.5rem' }, children: [(0, jsx_runtime_1.jsx)("p", { style: { fontSize: '0.875rem', color: utils_1.cssVars.mutedFg, marginBottom: '0.75rem', margin: '0 0 0.75rem 0' }, children: labels.didNotReceive }), (0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: () => !isResending && onResend(), disabled: isResending, tabIndex: 0, style: {
34
+ padding: '0.625rem 1.25rem',
35
+ borderRadius: utils_1.cssVars.radius.md,
36
+ border: `1.5px solid ${utils_1.cssVars.border}`,
37
+ backgroundColor: 'transparent',
38
+ color: utils_1.cssVars.fg,
39
+ cursor: isResending ? 'not-allowed' : 'pointer',
40
+ fontSize: '0.875rem',
41
+ fontWeight: 500,
42
+ display: 'inline-flex',
43
+ alignItems: 'center',
44
+ gap: '0.5rem',
45
+ transition: 'background-color 0.15s, box-shadow 0.15s',
46
+ opacity: isResending ? 0.6 : 1,
47
+ outline: 'none',
48
+ }, onMouseOver: (e) => {
49
+ if (!isResending)
50
+ e.currentTarget.style.backgroundColor = utils_1.cssVars.muted;
51
+ }, onMouseOut: (e) => {
52
+ e.currentTarget.style.backgroundColor = 'transparent';
53
+ }, onFocus: (e) => {
54
+ e.currentTarget.style.boxShadow = `0 0 0 3px color-mix(in oklch, ${utils_1.cssVars.primary} 15%, transparent)`;
55
+ }, onBlur: (e) => {
56
+ e.currentTarget.style.boxShadow = 'none';
57
+ }, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.RefreshCcw, { size: 14, style: isResending ? { animation: 'ipulse-spin 0.8s linear infinite' } : undefined }), labels.resendButton] })] })), onBack && ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: onBack, tabIndex: 0, style: {
58
+ background: 'none',
59
+ border: 'none',
60
+ cursor: 'pointer',
61
+ color: utils_1.cssVars.mutedFg,
62
+ fontSize: '0.875rem',
63
+ display: 'inline-flex',
64
+ alignItems: 'center',
65
+ gap: '0.375rem',
66
+ padding: '0.25rem 0.5rem',
67
+ borderRadius: utils_1.cssVars.radius.sm,
68
+ transition: 'color 0.15s',
69
+ outline: 'none',
70
+ }, onMouseOver: (e) => (e.currentTarget.style.color = utils_1.cssVars.fg), onMouseOut: (e) => (e.currentTarget.style.color = utils_1.cssVars.mutedFg), onFocus: (e) => (e.currentTarget.style.color = utils_1.cssVars.fg), onBlur: (e) => (e.currentTarget.style.color = utils_1.cssVars.mutedFg), children: [(0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 14 }), labels.backToSignIn] }))] }) }));
71
+ };
72
+ exports.VerifyRequest = VerifyRequest;
73
+ //# sourceMappingURL=VerifyRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerifyRequest.js","sourceRoot":"","sources":["../src/VerifyRequest.tsx"],"names":[],"mappings":";;;;AACA,+CAA2D;AAE3D,gDAA6C;AAC7C,mCAAkC;AAUlC,MAAM,QAAQ,GAAG;IACb,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,uCAAuC;IACpD,UAAU,EAAE,mGAAmG;IAC/G,aAAa,EAAE,wBAAwB;IACvC,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,qBAAqB;CAC7B,CAAC;AAEJ,MAAM,aAAa,GAAiC,CAAC,EACxD,KAAK,EACL,QAAQ,EACR,MAAM,EACN,WAAW,GAAG,KAAK,EACnB,YAAY,EAAE,CAAC,GAClB,EAAE,EAAE;IACD,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;IAErC,OAAO,CACH,uBAAC,mBAAQ,cACL,iCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAE/B,gCACI,KAAK,EAAE;wBACH,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,MAAM;wBACd,YAAY,EAAE,KAAK;wBACnB,UAAU,EAAE,uBAAuB,eAAO,CAAC,OAAO,oBAAoB;wBACtE,OAAO,EAAE,MAAM;wBACf,UAAU,EAAE,QAAQ;wBACpB,cAAc,EAAE,QAAQ;wBACxB,MAAM,EAAE,qBAAqB;wBAC7B,SAAS,EAAE,6BAA6B;qBAC3C,YAED,uBAAC,mBAAI,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,eAAO,CAAC,OAAO,EAAE,GAAI,GACnD,EAEN,+BACI,KAAK,EAAE;wBACH,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE,GAAG;wBACf,MAAM,EAAE,eAAe;wBACvB,aAAa,EAAE,UAAU;qBAC5B,YAEA,MAAM,CAAC,KAAK,GACZ,EAEL,8BAAG,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,eAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,YAChG,MAAM,CAAC,WAAW,GACnB,EACH,KAAK,IAAI,CACN,8BAAG,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,YACxE,KAAK,GACN,CACP,EACD,8BAAG,KAAK,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,eAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAC7F,MAAM,CAAC,UAAU,GAClB,EAEH,QAAQ,IAAI,CACT,iCAAK,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,aAClC,8BAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAO,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,YACvG,MAAM,CAAC,aAAa,GACrB,EACJ,oCACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW,IAAI,QAAQ,EAAE,EACzC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE;gCACH,OAAO,EAAE,kBAAkB;gCAC3B,YAAY,EAAE,eAAO,CAAC,MAAM,CAAC,EAAE;gCAC/B,MAAM,EAAE,eAAe,eAAO,CAAC,MAAM,EAAE;gCACvC,eAAe,EAAE,aAAa;gCAC9B,KAAK,EAAE,eAAO,CAAC,EAAE;gCACjB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;gCAC/C,QAAQ,EAAE,UAAU;gCACpB,UAAU,EAAE,GAAG;gCACf,OAAO,EAAE,aAAa;gCACtB,UAAU,EAAE,QAAQ;gCACpB,GAAG,EAAE,QAAQ;gCACb,UAAU,EAAE,0CAA0C;gCACtD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gCAC9B,OAAO,EAAE,MAAM;6BAClB,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,IAAI,CAAC,WAAW;oCAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,eAAO,CAAC,KAAK,CAAC;4BAC5E,CAAC,EACD,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;gCACd,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC;4BAC1D,CAAC,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gCACX,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,iCAAiC,eAAO,CAAC,OAAO,oBAAoB,CAAC;4BAC3G,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;gCACV,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;4BAC7C,CAAC,aAED,uBAAC,yBAAU,IACP,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAC,SAAS,GACpF,EACD,MAAM,CAAC,YAAY,IACf,IACP,CACT,EAEA,MAAM,IAAI,CACP,oCACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE;wBACH,UAAU,EAAE,MAAM;wBAClB,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,eAAO,CAAC,OAAO;wBACtB,QAAQ,EAAE,UAAU;wBACpB,OAAO,EAAE,aAAa;wBACtB,UAAU,EAAE,QAAQ;wBACpB,GAAG,EAAE,UAAU;wBACf,OAAO,EAAE,gBAAgB;wBACzB,YAAY,EAAE,eAAO,CAAC,MAAM,CAAC,EAAE;wBAC/B,UAAU,EAAE,aAAa;wBACzB,OAAO,EAAE,MAAM;qBAClB,EACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,eAAO,CAAC,EAAE,CAAC,EAC9D,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,eAAO,CAAC,OAAO,CAAC,EAClE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,eAAO,CAAC,EAAE,CAAC,EAC1D,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,eAAO,CAAC,OAAO,CAAC,aAE9D,uBAAC,wBAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACtB,MAAM,CAAC,YAAY,IACf,CACZ,IACC,GACC,CACd,CAAC;AACN,CAAC,CAAC;AAnIW,QAAA,aAAa,iBAmIxB"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Shared iPulse OAuth auth config for NextAuth.
3
+ * Use in PulseGuard, PulseFiles, PulseSync, etc.
4
+ *
5
+ * Required env: IPULSE_ISSUER, IPULSE_CLIENT_ID, IPULSE_CLIENT_SECRET
6
+ */
7
+ import type { NextAuthConfig } from 'next-auth';
8
+ export interface IPulseProviderOptions {
9
+ /** Extra OAuth scopes (default: 'openid email profile') */
10
+ scope?: string;
11
+ }
12
+ /** iPulse OIDC provider config for NextAuth providers array */
13
+ export declare function getIPulseProvider(options?: IPulseProviderOptions): {
14
+ id: string;
15
+ name: string;
16
+ type: "oidc";
17
+ issuer: string;
18
+ clientId: string;
19
+ clientSecret: string;
20
+ wellKnown: string;
21
+ authorization: {
22
+ params: {
23
+ scope: string;
24
+ };
25
+ };
26
+ profile(profile: {
27
+ sub?: string;
28
+ email?: string;
29
+ name?: string;
30
+ image?: string;
31
+ role?: string;
32
+ }): {
33
+ id: string | undefined;
34
+ email: string | undefined;
35
+ name: string | undefined;
36
+ image: string | undefined;
37
+ role: string | undefined;
38
+ };
39
+ checks: ("pkce" | "state")[];
40
+ };
41
+ export interface IPulseAuthConfigOptions {
42
+ /** Custom sign-in path (default: '/sign-in') */
43
+ signIn?: string;
44
+ /** Custom error path (default: '/auth-error') */
45
+ error?: string;
46
+ }
47
+ /**
48
+ * Returns NextAuth config for iPulse OAuth.
49
+ * Spread into NextAuth({ ...authConfig, providers: [...], cookies: {...} })
50
+ */
51
+ export declare function createIPulseAuthConfig(options?: IPulseAuthConfigOptions): NextAuthConfig;
52
+ export interface CreateIPulseNextAuthOptions {
53
+ /** App name for cookie prefix (e.g. pulseguard, pulsefiles, pulsesync) */
54
+ appName: string;
55
+ /** OAuth scope (default: 'openid email profile') */
56
+ scope?: string;
57
+ }
58
+ /**
59
+ * Creates full NextAuth instance for iPulse OAuth clients.
60
+ * Reduces auth.ts to a single call.
61
+ */
62
+ export declare function createIPulseNextAuth(options: CreateIPulseNextAuthOptions): import("next-auth").NextAuthResult;
63
+ //# sourceMappingURL=auth-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../src/auth-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAI/C,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,qBAAqB;;;;;;;;;;;;;qBAe5C;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;YASlE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;EAEpD;AAgED,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,cAAc,CAwFxF;AAED,MAAM,WAAW,2BAA2B;IAC1C,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,sCAiCxE"}