@ipulsehq/auth-ui 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,16 @@
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 title (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 branded iPulse card with a button to initiate the OAuth redirect.
13
+ * Use in PulseFiles, PulseSync, PulseGuard, etc.
19
14
  */
20
15
  export declare const IPulseRedirectSignIn: React.FC<IPulseRedirectSignInProps>;
21
16
  //# 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;AAQ/B,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuHpE,CAAC"}
@@ -38,28 +38,67 @@ exports.IPulseRedirectSignIn = void 0;
38
38
  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
+ const AuthCard_1 = require("./shared/AuthCard");
42
+ const AuthFooter_1 = require("./shared/AuthFooter");
43
+ const AuthButton_1 = require("./shared/AuthButton");
44
+ const utils_1 = require("./utils");
45
+ const styles_1 = require("./shared/styles");
41
46
  /**
42
- * Sign-in page for iPulse OAuth clients. Redirects to iPulse login.
43
- * Use in PulseFiles, PulseSync, etc.
47
+ * Generic sign-in page for iPulse OAuth clients.
48
+ * Shows a branded iPulse card with a button to initiate the OAuth redirect.
49
+ * Use in PulseFiles, PulseSync, PulseGuard, etc.
44
50
  */
45
- const IPulseRedirectSignIn = ({ callbackUrl = '/', features, loadingText = 'Doorverwijzen naar iPulse om in te loggen...', }) => {
46
- React.useEffect(() => {
51
+ const IPulseRedirectSignIn = ({ callbackUrl = '/', buttonText = 'Inloggen via iPulse', subText = 'Je wordt doorgestuurd naar iPulse om in te loggen.', }) => {
52
+ const [loading, setLoading] = React.useState(false);
53
+ const handleSignIn = () => {
54
+ setLoading(true);
47
55
  (0, react_1.signIn)('ipulse', { callbackUrl });
48
- }, [callbackUrl]);
49
- return ((0, jsx_runtime_1.jsx)("div", { style: {
56
+ };
57
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
50
58
  minHeight: '100vh',
51
59
  display: 'flex',
52
60
  alignItems: 'center',
53
61
  justifyContent: 'center',
54
- 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))) })] }) }));
62
+ padding: '1.5rem',
63
+ backgroundColor: 'var(--color-background, #f9fafb)',
64
+ fontFamily: 'inherit',
65
+ }, children: [(0, jsx_runtime_1.jsxs)(AuthCard_1.AuthCard, { children: [(0, jsx_runtime_1.jsxs)("div", { style: { textAlign: 'center', marginBottom: '2rem' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', justifyContent: 'center', marginBottom: '1.125rem' }, children: (0, jsx_runtime_1.jsx)("div", { style: {
66
+ width: 52,
67
+ height: 52,
68
+ borderRadius: utils_1.cssVars.radius.lg,
69
+ overflow: 'hidden',
70
+ display: 'flex',
71
+ alignItems: 'center',
72
+ justifyContent: 'center',
73
+ background: utils_1.cssVars.muted,
74
+ border: `1px solid ${utils_1.cssVars.borderMuted}`,
75
+ flexShrink: 0,
76
+ }, children: (0, jsx_runtime_1.jsx)("img", { src: "https://ipulse.one/favicon-32x32.png", alt: "iPulse", width: 32, height: 32, style: { display: 'block', imageRendering: 'auto' } }) }) }), (0, jsx_runtime_1.jsx)("h1", { style: {
77
+ fontSize: '1.5rem',
78
+ fontWeight: 700,
79
+ margin: '0 0 0.375rem 0',
80
+ letterSpacing: '-0.025em',
81
+ lineHeight: 1.2,
82
+ color: utils_1.cssVars.fg,
83
+ }, children: "Welkom" }), (0, jsx_runtime_1.jsx)("p", { style: {
84
+ margin: 0,
85
+ fontSize: '0.9375rem',
86
+ color: utils_1.cssVars.mutedFg,
87
+ lineHeight: 1.55,
88
+ }, children: subText })] }), (0, jsx_runtime_1.jsxs)(AuthButton_1.AuthPrimaryButton, { type: "button", onClick: handleSignIn, loading: loading, loadingText: "Doorsturen...", children: [!loading && ((0, jsx_runtime_1.jsx)("span", { style: {
89
+ display: 'flex',
90
+ alignItems: 'center',
91
+ justifyContent: 'center',
92
+ width: 18,
93
+ height: 18,
94
+ flexShrink: 0,
95
+ }, children: (0, jsx_runtime_1.jsx)("img", { src: "https://ipulse.one/favicon-32x32.png", alt: "", "aria-hidden": "true", width: 18, height: 18, style: { display: 'block', borderRadius: 3, imageRendering: 'auto' } }) })), buttonText] }), (0, jsx_runtime_1.jsx)(AuthFooter_1.AuthFooter, { text: "Beveiligd door iPulse Auth" })] }), (0, jsx_runtime_1.jsx)("style", { children: `
96
+ ${styles_1.AUTH_KEYFRAMES}
97
+ @keyframes ipulse-redirect-pulse {
98
+ 0%, 100% { opacity: 1; }
99
+ 50% { opacity: 0.55; }
100
+ }
101
+ ` })] }));
63
102
  };
64
103
  exports.IPulseRedirectSignIn = IPulseRedirectSignIn;
65
104
  //# 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":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEb,6CAA+B;AAC/B,2CAAyC;AACzC,gDAA6C;AAC7C,oDAAiD;AACjD,oDAAwD;AACxD,mCAAkC;AAClC,4CAAiD;AAWjD;;;;GAIG;AACI,MAAM,oBAAoB,GAAwC,CAAC,EACxE,WAAW,GAAG,GAAG,EACjB,UAAU,GAAG,qBAAqB,EAClC,OAAO,GAAG,oDAAoD,GAC/D,EAAE,EAAE;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,IAAA,cAAM,EAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO,CACL,iCACE,KAAK,EAAE;YACL,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,OAAO,EAAE,QAAQ;YACjB,eAAe,EAAE,kCAAkC;YACnD,UAAU,EAAE,SAAS;SACtB,aAED,wBAAC,mBAAQ,eAEP,iCAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,aACvD,gCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YACjF,gCACE,KAAK,EAAE;wCACL,KAAK,EAAE,EAAE;wCACT,MAAM,EAAE,EAAE;wCACV,YAAY,EAAE,eAAO,CAAC,MAAM,CAAC,EAAE;wCAC/B,QAAQ,EAAE,QAAQ;wCAClB,OAAO,EAAE,MAAM;wCACf,UAAU,EAAE,QAAQ;wCACpB,cAAc,EAAE,QAAQ;wCACxB,UAAU,EAAE,eAAO,CAAC,KAAK;wCACzB,MAAM,EAAE,aAAa,eAAO,CAAC,WAAW,EAAE;wCAC1C,UAAU,EAAE,CAAC;qCACd,YAED,gCACE,GAAG,EAAC,sCAAsC,EAC1C,GAAG,EAAC,QAAQ,EACZ,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GACnD,GACE,GACF,EAEN,+BACE,KAAK,EAAE;oCACL,QAAQ,EAAE,QAAQ;oCAClB,UAAU,EAAE,GAAG;oCACf,MAAM,EAAE,gBAAgB;oCACxB,aAAa,EAAE,UAAU;oCACzB,UAAU,EAAE,GAAG;oCACf,KAAK,EAAE,eAAO,CAAC,EAAE;iCAClB,uBAGE,EACL,8BACE,KAAK,EAAE;oCACL,MAAM,EAAE,CAAC;oCACT,QAAQ,EAAE,WAAW;oCACrB,KAAK,EAAE,eAAO,CAAC,OAAO;oCACtB,UAAU,EAAE,IAAI;iCACjB,YAEA,OAAO,GACN,IACA,EAGN,wBAAC,8BAAiB,IAChB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAC,eAAe,aAE1B,CAAC,OAAO,IAAI,CACX,iCACE,KAAK,EAAE;oCACL,OAAO,EAAE,MAAM;oCACf,UAAU,EAAE,QAAQ;oCACpB,cAAc,EAAE,QAAQ;oCACxB,KAAK,EAAE,EAAE;oCACT,MAAM,EAAE,EAAE;oCACV,UAAU,EAAE,CAAC;iCACd,YAED,gCACE,GAAG,EAAC,sCAAsC,EAC1C,GAAG,EAAC,EAAE,iBACM,MAAM,EAClB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GACpE,GACG,CACR,EACA,UAAU,IACO,EAEpB,uBAAC,uBAAU,IAAC,IAAI,EAAC,4BAA4B,GAAG,IACvC,EAEX,4CAAQ;UACJ,uBAAc;;;;;OAKjB,GAAS,IACN,CACP,CAAC;AACJ,CAAC,CAAC;AAvHW,QAAA,oBAAoB,wBAuH/B"}
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.4",
4
4
  "description": "iPulse auth: OAuth config, components en utilities voor NextAuth",
5
5
  "repository": "https://github.com/iPulseHQ/iPulse",
6
6
  "publishConfig": {