@ipulsehq/auth-ui 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,15 @@
1
1
  import * as React from 'react';
2
- import type { LucideIcon } from 'lucide-react';
3
- export interface IPulseRedirectSignInFeature {
4
- icon: LucideIcon;
5
- title: string;
6
- description: string;
7
- }
8
2
  export interface IPulseRedirectSignInProps {
9
3
  /** Callback URL after sign-in */
10
4
  callbackUrl?: string;
11
- /** Features to show while redirecting */
12
- features: IPulseRedirectSignInFeature[];
13
- /** Loading text (default: "Doorverwijzen naar iPulse om in te loggen...") */
14
- loadingText?: string;
5
+ /** Button text (default: "Inloggen via iPulse") */
6
+ buttonText?: string;
7
+ /** Subtext below the button (default: "Je wordt doorgestuurd naar iPulse om in te loggen.") */
8
+ subText?: string;
15
9
  }
16
10
  /**
17
- * Sign-in page for iPulse OAuth clients. Redirects to iPulse login.
18
- * Use in PulseFiles, PulseSync, etc.
11
+ * Generic sign-in page for iPulse OAuth clients.
12
+ * Shows a button to sign in via iPulse. Use in PulseFiles, PulseSync, PulseGuard, etc.
19
13
  */
20
14
  export declare const IPulseRedirectSignIn: React.FC<IPulseRedirectSignInProps>;
21
15
  //# sourceMappingURL=IPulseRedirectSignIn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPulseRedirectSignIn.d.ts","sourceRoot":"","sources":["../src/IPulseRedirectSignIn.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,2BAA2B,EAAE,CAAC;IACxC,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAqDpE,CAAC"}
1
+ {"version":3,"file":"IPulseRedirectSignIn.d.ts","sourceRoot":"","sources":["../src/IPulseRedirectSignIn.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA8GpE,CAAC"}
@@ -39,27 +39,61 @@ const jsx_runtime_1 = require("react/jsx-runtime");
39
39
  const React = __importStar(require("react"));
40
40
  const react_1 = require("next-auth/react");
41
41
  /**
42
- * Sign-in page for iPulse OAuth clients. Redirects to iPulse login.
43
- * Use in PulseFiles, PulseSync, etc.
42
+ * Generic sign-in page for iPulse OAuth clients.
43
+ * Shows a button to sign in via iPulse. Use in PulseFiles, PulseSync, PulseGuard, etc.
44
44
  */
45
- const IPulseRedirectSignIn = ({ callbackUrl = '/', features, loadingText = 'Doorverwijzen naar iPulse om in te loggen...', }) => {
46
- React.useEffect(() => {
45
+ const IPulseRedirectSignIn = ({ callbackUrl = '/', buttonText = 'Inloggen via iPulse', subText = 'Je wordt doorgestuurd naar iPulse om in te loggen.', }) => {
46
+ const [loading, setLoading] = React.useState(false);
47
+ const handleSignIn = () => {
48
+ setLoading(true);
47
49
  (0, react_1.signIn)('ipulse', { callbackUrl });
48
- }, [callbackUrl]);
49
- return ((0, jsx_runtime_1.jsx)("div", { style: {
50
+ };
51
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
50
52
  minHeight: '100vh',
51
53
  display: 'flex',
52
54
  alignItems: 'center',
53
55
  justifyContent: 'center',
54
56
  padding: '1rem',
55
- }, children: (0, jsx_runtime_1.jsxs)("div", { style: { textAlign: 'center', maxWidth: '28rem', padding: '0 1rem' }, children: [(0, jsx_runtime_1.jsx)("div", { className: "animate-spin", style: {
56
- width: '3rem',
57
- height: '3rem',
58
- border: '2px solid var(--color-primary, oklch(0.52 0.19 238.36))',
59
- borderTopColor: 'transparent',
60
- borderRadius: '50%',
61
- margin: '0 auto 1.5rem auto',
62
- } }), (0, jsx_runtime_1.jsx)("p", { style: { color: 'var(--color-muted-foreground, #71717a)', marginBottom: '2rem' }, children: loadingText }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: '1rem', textAlign: 'left' }, children: features.map((feature, i) => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'flex-start', gap: '0.75rem' }, children: [(0, jsx_runtime_1.jsx)(feature.icon, { size: 20, style: { color: 'var(--color-primary)', flexShrink: 0, marginTop: 2 } }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("h3", { style: { fontWeight: 500, margin: 0 }, children: feature.title }), (0, jsx_runtime_1.jsx)("p", { style: { fontSize: '0.875rem', color: 'var(--color-muted-foreground)', margin: '0.25rem 0 0 0' }, children: feature.description })] })] }, i))) })] }) }));
57
+ backgroundColor: 'var(--background, #fff)',
58
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { textAlign: 'center', maxWidth: '20rem', width: '100%' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { marginBottom: '2rem' }, children: [(0, jsx_runtime_1.jsxs)("svg", { width: "40", height: "40", viewBox: "0 0 40 40", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { margin: '0 auto 1rem auto', display: 'block' }, children: [(0, jsx_runtime_1.jsx)("rect", { width: "40", height: "40", rx: "10", fill: "var(--color-primary, oklch(0.52 0.19 238.36))" }), (0, jsx_runtime_1.jsx)("path", { d: "M13 20a7 7 0 1 1 14 0 7 7 0 0 1-14 0z", fill: "white", opacity: "0.3" }), (0, jsx_runtime_1.jsx)("path", { d: "M20 14v12M14 20h12", stroke: "white", strokeWidth: "2.5", strokeLinecap: "round" })] }), (0, jsx_runtime_1.jsx)("h1", { style: {
59
+ fontSize: '1.25rem',
60
+ fontWeight: 600,
61
+ margin: '0 0 0.5rem 0',
62
+ color: 'var(--foreground, #111)',
63
+ }, children: "Welkom" }), (0, jsx_runtime_1.jsx)("p", { style: {
64
+ fontSize: '0.875rem',
65
+ color: 'var(--color-muted-foreground, #71717a)',
66
+ margin: 0,
67
+ }, children: subText })] }), (0, jsx_runtime_1.jsxs)("button", { onClick: handleSignIn, disabled: loading, style: {
68
+ width: '100%',
69
+ padding: '0.75rem 1.5rem',
70
+ backgroundColor: loading
71
+ ? 'var(--color-muted, #e4e4e7)'
72
+ : 'var(--color-primary, oklch(0.52 0.19 238.36))',
73
+ color: loading ? 'var(--color-muted-foreground, #71717a)' : '#fff',
74
+ border: 'none',
75
+ borderRadius: '0.5rem',
76
+ fontSize: '0.9375rem',
77
+ fontWeight: 500,
78
+ cursor: loading ? 'not-allowed' : 'pointer',
79
+ display: 'flex',
80
+ alignItems: 'center',
81
+ justifyContent: 'center',
82
+ gap: '0.5rem',
83
+ transition: 'opacity 0.15s',
84
+ }, children: [loading && ((0, jsx_runtime_1.jsx)("span", { style: {
85
+ width: '1rem',
86
+ height: '1rem',
87
+ border: '2px solid currentColor',
88
+ borderTopColor: 'transparent',
89
+ borderRadius: '50%',
90
+ display: 'inline-block',
91
+ animation: 'spin 0.6s linear infinite',
92
+ } })), loading ? 'Doorsturen...' : buttonText] }), (0, jsx_runtime_1.jsx)("p", { style: {
93
+ marginTop: '1.5rem',
94
+ fontSize: '0.75rem',
95
+ color: 'var(--color-muted-foreground, #71717a)',
96
+ }, children: "Beveiligd door iPulse Auth" })] }), (0, jsx_runtime_1.jsx)("style", { children: `@keyframes spin { to { transform: rotate(360deg); } }` })] }));
63
97
  };
64
98
  exports.IPulseRedirectSignIn = IPulseRedirectSignIn;
65
99
  //# sourceMappingURL=IPulseRedirectSignIn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPulseRedirectSignIn.js","sourceRoot":"","sources":["../src/IPulseRedirectSignIn.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,6CAA+B;AAC/B,2CAAyC;AAkBzC;;;GAGG;AACI,MAAM,oBAAoB,GAAwC,CAAC,EACxE,WAAW,GAAG,GAAG,EACjB,QAAQ,EACR,WAAW,GAAG,8CAA8C,GAC7D,EAAE,EAAE;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAA,cAAM,EAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,gCACE,KAAK,EAAE;YACL,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,MAAM;SAChB,YAED,iCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aACvE,gCACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE;wBACL,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,yDAAyD;wBACjE,cAAc,EAAE,aAAa;wBAC7B,YAAY,EAAE,KAAK;wBACnB,MAAM,EAAE,oBAAoB;qBAC7B,GACD,EACF,8BAAG,KAAK,EAAE,EAAE,KAAK,EAAE,wCAAwC,EAAE,YAAY,EAAE,MAAM,EAAE,YAChF,WAAW,GACV,EACJ,gCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YACrF,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,iCAAa,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,aAC/E,uBAAC,OAAO,CAAC,IAAI,IACX,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GACrE,EACF,4CACE,+BAAI,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAG,OAAO,CAAC,KAAK,GAAM,EAC/D,8BAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,EAAE,eAAe,EAAE,YAChG,OAAO,CAAC,WAAW,GAClB,IACA,KAVE,CAAC,CAWL,CACP,CAAC,GACE,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,oBAAoB,wBAqD/B"}
1
+ {"version":3,"file":"IPulseRedirectSignIn.js","sourceRoot":"","sources":["../src/IPulseRedirectSignIn.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ipulsehq/auth-ui",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "iPulse auth: OAuth config, components en utilities voor NextAuth",
5
5
  "repository": "https://github.com/iPulseHQ/iPulse",
6
6
  "publishConfig": {