@inf-monkeys-tech/monkeys-design 0.4.43 → 0.4.45

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.
@@ -83,6 +83,16 @@ interface LoginPageCalloutConfig {
83
83
  onClick: () => void;
84
84
  };
85
85
  }
86
+ interface LoginPageExternalPanelConfig {
87
+ title?: React__default.ReactNode;
88
+ description?: React__default.ReactNode;
89
+ content: React__default.ReactNode;
90
+ footer?: React__default.ReactNode;
91
+ backAction?: {
92
+ label: React__default.ReactNode;
93
+ onClick: () => void;
94
+ };
95
+ }
86
96
  interface LoginPageProps {
87
97
  className?: string;
88
98
  style?: React__default.CSSProperties;
@@ -104,96 +114,10 @@ interface LoginPageProps {
104
114
  onMethodChange?: (methodId: string) => void;
105
115
  externalLabel?: React__default.ReactNode;
106
116
  externalMethods?: LoginPageExternalMethodConfig[];
117
+ externalPanel?: LoginPageExternalPanelConfig;
107
118
  callout?: LoginPageCalloutConfig;
108
119
  }
109
- interface LoginLayoutProps {
110
- className?: string;
111
- style?: React__default.CSSProperties;
112
- children?: React__default.ReactNode;
113
- /** Logo element or image URL */
114
- logo?: React__default.ReactNode | string;
115
- /** Title text */
116
- title?: string;
117
- /** Subtitle text */
118
- subtitle?: string;
119
- /** Footer text */
120
- footer?: string;
121
- }
122
- interface EmailAuthProps {
123
- className?: string;
124
- /** Controlled email value */
125
- email: string;
126
- onEmailChange: (value: string) => void;
127
- /** Controlled password value */
128
- password: string;
129
- onPasswordChange: (value: string) => void;
130
- /** Submit handler */
131
- onSubmit: () => void;
132
- /** Loading state */
133
- isLoading?: boolean;
134
- /** Disable the form */
135
- disabled?: boolean;
136
- /** Labels */
137
- emailLabel?: string;
138
- emailPlaceholder?: string;
139
- passwordLabel?: string;
140
- passwordPlaceholder?: string;
141
- submitText?: string;
142
- loadingText?: string;
143
- /** Error message to display */
144
- error?: string;
145
- }
146
- interface OIDCButtonProps {
147
- className?: string;
148
- /** Button label */
149
- label?: string;
150
- /** Click handler - should redirect to OIDC login URL */
151
- onClick: () => void;
152
- /** Optional icon */
153
- icon?: React__default.ReactNode;
154
- }
155
- interface OAuthButtonProps {
156
- className?: string;
157
- /** Provider name for display */
158
- providerName: string;
159
- /** Provider type identifier */
160
- providerType: 'feishu' | 'dingtalk' | 'wework' | string;
161
- /** Click handler */
162
- onClick: () => void;
163
- /** Optional icon */
164
- icon?: React__default.ReactNode;
165
- }
166
- interface AuthDividerProps {
167
- className?: string;
168
- /** Text to show in the divider */
169
- text?: string;
170
- }
171
- interface PendingApprovalProps {
172
- className?: string;
173
- /** Icon to display */
174
- icon?: React__default.ReactNode;
175
- /** Title text */
176
- title?: string;
177
- /** Description text */
178
- description?: string;
179
- /** Back button text */
180
- backText?: string;
181
- /** Back button handler */
182
- onBack?: () => void;
183
- }
184
-
185
- declare function LoginPage({ className, style, background, logo, primaryColor, radius, customCss, toolbar, title, backAction, methods, activeMethodId, defaultMethodId, onMethodChange, externalLabel, externalMethods, callout, }: LoginPageProps): react_jsx_runtime.JSX.Element;
186
-
187
- declare const LoginLayout: React__default.FC<LoginLayoutProps>;
188
-
189
- declare const EmailAuth: React__default.ForwardRefExoticComponent<EmailAuthProps & React__default.RefAttributes<HTMLFormElement>>;
190
-
191
- declare const OIDCButton: React__default.ForwardRefExoticComponent<OIDCButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
192
-
193
- declare const OAuthButton: React__default.ForwardRefExoticComponent<OAuthButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
194
-
195
- declare const AuthDivider: React__default.FC<AuthDividerProps>;
196
120
 
197
- declare const PendingApproval: React__default.FC<PendingApprovalProps>;
121
+ declare function LoginPage({ className, style, background, logo, primaryColor, radius, customCss, toolbar, title, backAction, methods, activeMethodId, defaultMethodId, onMethodChange, externalLabel, externalMethods, externalPanel, callout, }: LoginPageProps): react_jsx_runtime.JSX.Element;
198
122
 
199
- export { AuthDivider, type AuthDividerProps, EmailAuth, type EmailAuthProps, LoginLayout, type LoginLayoutProps, LoginPage, type LoginPageBackgroundConfig, type LoginPageCalloutConfig, type LoginPageCheckboxConfig, type LoginPageExternalMethodConfig, type LoginPageFieldConfig, type LoginPageLogoConfig, type LoginPageLogoLocation, type LoginPageMethodConfig, type LoginPageProps, OAuthButton, type OAuthButtonProps, OIDCButton, type OIDCButtonProps, PendingApproval, type PendingApprovalProps };
123
+ export { LoginPage, type LoginPageBackgroundConfig, type LoginPageCalloutConfig, type LoginPageCheckboxConfig, type LoginPageExternalMethodConfig, type LoginPageExternalPanelConfig, type LoginPageFieldConfig, type LoginPageLogoConfig, type LoginPageLogoLocation, type LoginPageMethodConfig, type LoginPageProps };
@@ -83,6 +83,16 @@ interface LoginPageCalloutConfig {
83
83
  onClick: () => void;
84
84
  };
85
85
  }
86
+ interface LoginPageExternalPanelConfig {
87
+ title?: React__default.ReactNode;
88
+ description?: React__default.ReactNode;
89
+ content: React__default.ReactNode;
90
+ footer?: React__default.ReactNode;
91
+ backAction?: {
92
+ label: React__default.ReactNode;
93
+ onClick: () => void;
94
+ };
95
+ }
86
96
  interface LoginPageProps {
87
97
  className?: string;
88
98
  style?: React__default.CSSProperties;
@@ -104,96 +114,10 @@ interface LoginPageProps {
104
114
  onMethodChange?: (methodId: string) => void;
105
115
  externalLabel?: React__default.ReactNode;
106
116
  externalMethods?: LoginPageExternalMethodConfig[];
117
+ externalPanel?: LoginPageExternalPanelConfig;
107
118
  callout?: LoginPageCalloutConfig;
108
119
  }
109
- interface LoginLayoutProps {
110
- className?: string;
111
- style?: React__default.CSSProperties;
112
- children?: React__default.ReactNode;
113
- /** Logo element or image URL */
114
- logo?: React__default.ReactNode | string;
115
- /** Title text */
116
- title?: string;
117
- /** Subtitle text */
118
- subtitle?: string;
119
- /** Footer text */
120
- footer?: string;
121
- }
122
- interface EmailAuthProps {
123
- className?: string;
124
- /** Controlled email value */
125
- email: string;
126
- onEmailChange: (value: string) => void;
127
- /** Controlled password value */
128
- password: string;
129
- onPasswordChange: (value: string) => void;
130
- /** Submit handler */
131
- onSubmit: () => void;
132
- /** Loading state */
133
- isLoading?: boolean;
134
- /** Disable the form */
135
- disabled?: boolean;
136
- /** Labels */
137
- emailLabel?: string;
138
- emailPlaceholder?: string;
139
- passwordLabel?: string;
140
- passwordPlaceholder?: string;
141
- submitText?: string;
142
- loadingText?: string;
143
- /** Error message to display */
144
- error?: string;
145
- }
146
- interface OIDCButtonProps {
147
- className?: string;
148
- /** Button label */
149
- label?: string;
150
- /** Click handler - should redirect to OIDC login URL */
151
- onClick: () => void;
152
- /** Optional icon */
153
- icon?: React__default.ReactNode;
154
- }
155
- interface OAuthButtonProps {
156
- className?: string;
157
- /** Provider name for display */
158
- providerName: string;
159
- /** Provider type identifier */
160
- providerType: 'feishu' | 'dingtalk' | 'wework' | string;
161
- /** Click handler */
162
- onClick: () => void;
163
- /** Optional icon */
164
- icon?: React__default.ReactNode;
165
- }
166
- interface AuthDividerProps {
167
- className?: string;
168
- /** Text to show in the divider */
169
- text?: string;
170
- }
171
- interface PendingApprovalProps {
172
- className?: string;
173
- /** Icon to display */
174
- icon?: React__default.ReactNode;
175
- /** Title text */
176
- title?: string;
177
- /** Description text */
178
- description?: string;
179
- /** Back button text */
180
- backText?: string;
181
- /** Back button handler */
182
- onBack?: () => void;
183
- }
184
-
185
- declare function LoginPage({ className, style, background, logo, primaryColor, radius, customCss, toolbar, title, backAction, methods, activeMethodId, defaultMethodId, onMethodChange, externalLabel, externalMethods, callout, }: LoginPageProps): react_jsx_runtime.JSX.Element;
186
-
187
- declare const LoginLayout: React__default.FC<LoginLayoutProps>;
188
-
189
- declare const EmailAuth: React__default.ForwardRefExoticComponent<EmailAuthProps & React__default.RefAttributes<HTMLFormElement>>;
190
-
191
- declare const OIDCButton: React__default.ForwardRefExoticComponent<OIDCButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
192
-
193
- declare const OAuthButton: React__default.ForwardRefExoticComponent<OAuthButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
194
-
195
- declare const AuthDivider: React__default.FC<AuthDividerProps>;
196
120
 
197
- declare const PendingApproval: React__default.FC<PendingApprovalProps>;
121
+ declare function LoginPage({ className, style, background, logo, primaryColor, radius, customCss, toolbar, title, backAction, methods, activeMethodId, defaultMethodId, onMethodChange, externalLabel, externalMethods, externalPanel, callout, }: LoginPageProps): react_jsx_runtime.JSX.Element;
198
122
 
199
- export { AuthDivider, type AuthDividerProps, EmailAuth, type EmailAuthProps, LoginLayout, type LoginLayoutProps, LoginPage, type LoginPageBackgroundConfig, type LoginPageCalloutConfig, type LoginPageCheckboxConfig, type LoginPageExternalMethodConfig, type LoginPageFieldConfig, type LoginPageLogoConfig, type LoginPageLogoLocation, type LoginPageMethodConfig, type LoginPageProps, OAuthButton, type OAuthButtonProps, OIDCButton, type OIDCButtonProps, PendingApproval, type PendingApprovalProps };
123
+ export { LoginPage, type LoginPageBackgroundConfig, type LoginPageCalloutConfig, type LoginPageCheckboxConfig, type LoginPageExternalMethodConfig, type LoginPageExternalPanelConfig, type LoginPageFieldConfig, type LoginPageLogoConfig, type LoginPageLogoLocation, type LoginPageMethodConfig, type LoginPageProps };
@@ -179,6 +179,7 @@ function LoginPage({
179
179
  onMethodChange,
180
180
  externalLabel,
181
181
  externalMethods = [],
182
+ externalPanel,
182
183
  callout
183
184
  }) {
184
185
  const availableMethods = React.useMemo(() => methods.filter((method) => !method.hidden), [methods]);
@@ -187,6 +188,7 @@ function LoginPage({
187
188
  const currentMethodId = activeMethodId ?? internalMethodId;
188
189
  const activeMethod = availableMethods.find((method) => method.id === currentMethodId) ?? availableMethods[0];
189
190
  const hasTabs = availableMethods.length > 1;
191
+ const showAuthMethods = !externalPanel;
190
192
  const backgroundImage = createBackgroundImage(background?.gradient, background?.imageUrl);
191
193
  const backgroundMode = backgroundImage ? "custom" : "default";
192
194
  const logoPosition = normalizeLogoPosition(logo?.position);
@@ -310,7 +312,7 @@ function LoginPage({
310
312
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: backAction.label })
311
313
  ] }) : null,
312
314
  title ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "login-page__title", "data-login-part": "title", children: title }) : null,
313
- hasTabs ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "login-page__tabs", "data-login-part": "tabs", role: "tablist", children: availableMethods.map((method) => {
315
+ showAuthMethods && hasTabs ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "login-page__tabs", "data-login-part": "tabs", role: "tablist", children: availableMethods.map((method) => {
314
316
  const selected = method.id === activeMethod?.id;
315
317
  return /* @__PURE__ */ jsxRuntime.jsxs(
316
318
  "button",
@@ -331,7 +333,24 @@ function LoginPage({
331
333
  method.id
332
334
  );
333
335
  }) }) : null,
334
- activeMethod ? /* @__PURE__ */ jsxRuntime.jsxs(
336
+ externalPanel ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "login-page__external-panel", "data-login-part": "external-panel", children: [
337
+ externalPanel.title ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "login-page__external-panel-title", "data-login-part": "external-panel-title", children: externalPanel.title }) : null,
338
+ externalPanel.description ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "login-page__external-panel-description", "data-login-part": "external-panel-description", children: externalPanel.description }) : null,
339
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "login-page__external-panel-content", "data-login-part": "external-panel-content", children: externalPanel.content }),
340
+ externalPanel.footer || externalPanel.backAction ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "login-page__external-panel-footer", "data-login-part": "external-panel-footer", children: [
341
+ externalPanel.footer,
342
+ externalPanel.backAction ? /* @__PURE__ */ jsxRuntime.jsx(
343
+ "button",
344
+ {
345
+ type: "button",
346
+ className: "login-page__external-panel-back",
347
+ "data-login-part": "external-panel-back",
348
+ onClick: externalPanel.backAction.onClick,
349
+ children: externalPanel.backAction.label
350
+ }
351
+ ) : null
352
+ ] }) : null
353
+ ] }) : showAuthMethods && activeMethod ? /* @__PURE__ */ jsxRuntime.jsxs(
335
354
  "form",
336
355
  {
337
356
  className: "login-page__form-fields",
@@ -425,7 +444,7 @@ function LoginPage({
425
444
  ]
426
445
  }
427
446
  ) : null,
428
- externalMethods.length ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "login-page__oauth-section", "data-login-part": "external-methods", children: [
447
+ !externalPanel && externalMethods.length ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "login-page__oauth-section", "data-login-part": "external-methods", children: [
429
448
  externalLabel ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "login-page__oauth-label", "data-login-part": "external-label", children: externalLabel }) : null,
430
449
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "login-page__oauth-list", "data-login-part": "external-list", children: externalMethods.map(renderExternalMethod) })
431
450
  ] }) : null
@@ -436,309 +455,7 @@ function LoginPage({
436
455
  }
437
456
  );
438
457
  }
439
- var containerStyle = {
440
- display: "flex",
441
- alignItems: "center",
442
- justifyContent: "center",
443
- minHeight: "100vh",
444
- padding: "1rem"
445
- };
446
- var cardStyle = {
447
- width: "100%",
448
- maxWidth: "400px"
449
- };
450
- var logoContainerStyle = {
451
- display: "flex",
452
- justifyContent: "center",
453
- marginBottom: "1.5rem"
454
- };
455
- var logoImageStyle = {
456
- height: "48px",
457
- width: "auto"
458
- };
459
- var titleStyle = {
460
- fontSize: "1.5rem",
461
- fontWeight: 700,
462
- textAlign: "center",
463
- marginBottom: "0.5rem",
464
- lineHeight: 1.2
465
- };
466
- var subtitleStyle = {
467
- fontSize: "0.875rem",
468
- textAlign: "center",
469
- marginBottom: "1.5rem",
470
- opacity: 0.6
471
- };
472
- var footerStyle = {
473
- fontSize: "0.75rem",
474
- textAlign: "center",
475
- marginTop: "2rem",
476
- opacity: 0.4
477
- };
478
- var LoginLayout = ({
479
- className,
480
- style,
481
- children,
482
- logo,
483
- title,
484
- subtitle,
485
- footer
486
- }) => {
487
- const renderLogo = () => {
488
- if (!logo) return null;
489
- if (typeof logo === "string") {
490
- return /* @__PURE__ */ jsxRuntime.jsx("div", { style: logoContainerStyle, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: title || "Logo", style: logoImageStyle }) });
491
- }
492
- return /* @__PURE__ */ jsxRuntime.jsx("div", { style: logoContainerStyle, children: logo });
493
- };
494
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className, style: { ...containerStyle, ...style }, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: cardStyle, children: [
495
- renderLogo(),
496
- title && /* @__PURE__ */ jsxRuntime.jsx("h1", { style: titleStyle, children: title }),
497
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { style: subtitleStyle, children: subtitle }),
498
- children,
499
- footer && /* @__PURE__ */ jsxRuntime.jsx("p", { style: footerStyle, children: footer })
500
- ] }) });
501
- };
502
- var formStyle = {
503
- display: "flex",
504
- flexDirection: "column",
505
- gap: "1rem"
506
- };
507
- var labelStyle = {
508
- display: "block",
509
- fontSize: "0.875rem",
510
- fontWeight: 500,
511
- marginBottom: "0.375rem"
512
- };
513
- var inputStyle = {
514
- display: "block",
515
- width: "100%",
516
- padding: "0.5rem 0.75rem",
517
- fontSize: "0.875rem",
518
- lineHeight: 1.5,
519
- backgroundColor: "transparent",
520
- border: "1px solid #d1d5db",
521
- borderRadius: "0.375rem",
522
- outline: "none",
523
- boxSizing: "border-box"
524
- };
525
- var buttonStyle = {
526
- display: "inline-flex",
527
- alignItems: "center",
528
- justifyContent: "center",
529
- width: "100%",
530
- padding: "0.625rem 1rem",
531
- fontSize: "0.875rem",
532
- fontWeight: 500,
533
- color: "#ffffff",
534
- backgroundColor: "#111827",
535
- border: "none",
536
- borderRadius: "0.375rem",
537
- cursor: "pointer",
538
- lineHeight: 1.5
539
- };
540
- var buttonDisabledStyle = {
541
- ...buttonStyle,
542
- opacity: 0.6,
543
- cursor: "not-allowed"
544
- };
545
- var errorStyle = {
546
- fontSize: "0.875rem",
547
- color: "#dc2626",
548
- marginTop: "-0.25rem"
549
- };
550
- var EmailAuth = React__default.default.forwardRef(
551
- ({
552
- className,
553
- email,
554
- onEmailChange,
555
- password,
556
- onPasswordChange,
557
- onSubmit,
558
- isLoading = false,
559
- disabled = false,
560
- emailLabel = "Email",
561
- emailPlaceholder = "Enter your email",
562
- passwordLabel = "Password",
563
- passwordPlaceholder = "Enter your password",
564
- submitText = "Sign In",
565
- loadingText = "Signing in...",
566
- error
567
- }, ref) => {
568
- const handleSubmit = React.useCallback(
569
- (e) => {
570
- e.preventDefault();
571
- if (!isLoading && !disabled) {
572
- onSubmit();
573
- }
574
- },
575
- [onSubmit, isLoading, disabled]
576
- );
577
- const isDisabled = isLoading || disabled;
578
- return /* @__PURE__ */ jsxRuntime.jsxs("form", { ref, className, style: formStyle, onSubmit: handleSubmit, children: [
579
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
580
- /* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, children: emailLabel }),
581
- /* @__PURE__ */ jsxRuntime.jsx(
582
- "input",
583
- {
584
- type: "email",
585
- value: email,
586
- onChange: (e) => onEmailChange(e.target.value),
587
- placeholder: emailPlaceholder,
588
- disabled: isDisabled,
589
- required: true,
590
- autoComplete: "email",
591
- style: inputStyle
592
- }
593
- )
594
- ] }),
595
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
596
- /* @__PURE__ */ jsxRuntime.jsx("label", { style: labelStyle, children: passwordLabel }),
597
- /* @__PURE__ */ jsxRuntime.jsx(
598
- "input",
599
- {
600
- type: "password",
601
- value: password,
602
- onChange: (e) => onPasswordChange(e.target.value),
603
- placeholder: passwordPlaceholder,
604
- disabled: isDisabled,
605
- required: true,
606
- autoComplete: "current-password",
607
- style: inputStyle
608
- }
609
- )
610
- ] }),
611
- error && /* @__PURE__ */ jsxRuntime.jsx("p", { style: errorStyle, children: error }),
612
- /* @__PURE__ */ jsxRuntime.jsx("button", { type: "submit", disabled: isDisabled, style: isDisabled ? buttonDisabledStyle : buttonStyle, children: isLoading ? loadingText : submitText })
613
- ] });
614
- }
615
- );
616
- EmailAuth.displayName = "EmailAuth";
617
- var buttonStyle2 = {
618
- display: "inline-flex",
619
- alignItems: "center",
620
- justifyContent: "center",
621
- gap: "0.5rem",
622
- width: "100%",
623
- padding: "0.625rem 1rem",
624
- fontSize: "0.875rem",
625
- fontWeight: 500,
626
- backgroundColor: "transparent",
627
- border: "1px solid #d1d5db",
628
- borderRadius: "0.375rem",
629
- cursor: "pointer",
630
- lineHeight: 1.5
631
- };
632
- var OIDCButton = React__default.default.forwardRef(
633
- ({ className, label = "Sign in with SSO", onClick, icon }, ref) => {
634
- return /* @__PURE__ */ jsxRuntime.jsxs("button", { ref, type: "button", className, style: buttonStyle2, onClick, children: [
635
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-flex", alignItems: "center" }, children: icon }),
636
- label
637
- ] });
638
- }
639
- );
640
- OIDCButton.displayName = "OIDCButton";
641
- var buttonStyle3 = {
642
- display: "inline-flex",
643
- alignItems: "center",
644
- justifyContent: "center",
645
- gap: "0.5rem",
646
- width: "100%",
647
- padding: "0.625rem 1rem",
648
- fontSize: "0.875rem",
649
- fontWeight: 500,
650
- backgroundColor: "transparent",
651
- border: "1px solid #d1d5db",
652
- borderRadius: "0.375rem",
653
- cursor: "pointer",
654
- lineHeight: 1.5
655
- };
656
- var OAuthButton = React__default.default.forwardRef(
657
- ({ className, providerName, onClick, icon }, ref) => {
658
- return /* @__PURE__ */ jsxRuntime.jsxs("button", { ref, type: "button", className, style: buttonStyle3, onClick, children: [
659
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "inline-flex", alignItems: "center" }, children: icon }),
660
- providerName
661
- ] });
662
- }
663
- );
664
- OAuthButton.displayName = "OAuthButton";
665
- var containerStyle2 = {
666
- display: "flex",
667
- alignItems: "center",
668
- gap: "0.75rem",
669
- margin: "1rem 0"
670
- };
671
- var lineStyle = {
672
- flex: 1,
673
- height: "1px",
674
- backgroundColor: "#e5e7eb"
675
- };
676
- var textStyle = {
677
- fontSize: "0.75rem",
678
- opacity: 0.5,
679
- whiteSpace: "nowrap"
680
- };
681
- var AuthDivider = ({ className, text = "or" }) => {
682
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, style: containerStyle2, children: [
683
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: lineStyle }),
684
- /* @__PURE__ */ jsxRuntime.jsx("span", { style: textStyle, children: text }),
685
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: lineStyle })
686
- ] });
687
- };
688
- var containerStyle3 = {
689
- display: "flex",
690
- flexDirection: "column",
691
- alignItems: "center",
692
- textAlign: "center",
693
- padding: "1.5rem 0",
694
- gap: "1rem"
695
- };
696
- var titleStyle2 = {
697
- fontSize: "1.125rem",
698
- fontWeight: 600,
699
- margin: 0
700
- };
701
- var descriptionStyle = {
702
- fontSize: "0.875rem",
703
- opacity: 0.6,
704
- lineHeight: 1.5,
705
- margin: 0
706
- };
707
- var backButtonStyle = {
708
- display: "inline-flex",
709
- alignItems: "center",
710
- justifyContent: "center",
711
- padding: "0.5rem 1.5rem",
712
- fontSize: "0.875rem",
713
- fontWeight: 500,
714
- backgroundColor: "transparent",
715
- border: "1px solid #d1d5db",
716
- borderRadius: "0.375rem",
717
- cursor: "pointer",
718
- marginTop: "0.5rem"
719
- };
720
- var PendingApproval = ({
721
- className,
722
- icon,
723
- title = "Pending Approval",
724
- description = "Your account is awaiting administrator approval. Please check back later.",
725
- backText = "Go Back",
726
- onBack
727
- }) => {
728
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, style: containerStyle3, children: [
729
- icon,
730
- /* @__PURE__ */ jsxRuntime.jsx("h2", { style: titleStyle2, children: title }),
731
- /* @__PURE__ */ jsxRuntime.jsx("p", { style: descriptionStyle, children: description }),
732
- onBack && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", style: backButtonStyle, onClick: onBack, children: backText })
733
- ] });
734
- };
735
458
 
736
- exports.AuthDivider = AuthDivider;
737
- exports.EmailAuth = EmailAuth;
738
- exports.LoginLayout = LoginLayout;
739
459
  exports.LoginPage = LoginPage;
740
- exports.OAuthButton = OAuthButton;
741
- exports.OIDCButton = OIDCButton;
742
- exports.PendingApproval = PendingApproval;
743
460
  //# sourceMappingURL=index.js.map
744
461
  //# sourceMappingURL=index.js.map