@frontegg/types 4.42.2 → 4.43.0-dashboard

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 (35) hide show
  1. package/Common.d.ts +3 -0
  2. package/ContextOptions.d.ts +1 -1
  3. package/FronteggAppInstance.d.ts +1 -0
  4. package/FronteggAppOptions.d.ts +4 -0
  5. package/FronteggMetadata.d.ts +5 -0
  6. package/Localizations/AdminPortalLocalizations/navigation.d.ts +4 -0
  7. package/Localizations/AdminPortalLocalizations/sso.d.ts +27 -0
  8. package/Localizations/LocalizationOverrides.d.ts +1 -0
  9. package/Localizations/LocalizationType.d.ts +1 -0
  10. package/Localizations/LoginBoxLocalization/acceptInvitation.d.ts +4 -0
  11. package/Localizations/LoginBoxLocalization/activateAccount.d.ts +4 -0
  12. package/Localizations/LoginBoxLocalization/forgetPassword.d.ts +8 -0
  13. package/Localizations/LoginBoxLocalization/index.d.ts +8 -0
  14. package/Localizations/LoginBoxLocalization/login.d.ts +16 -0
  15. package/Localizations/LoginBoxLocalization/resetPassword.d.ts +8 -0
  16. package/Localizations/LoginBoxLocalization/signup.d.ts +8 -0
  17. package/Metadata/index.d.ts +2 -0
  18. package/ThemeOptions/ComponentsOptions.d.ts +63 -0
  19. package/ThemeOptions/LoginBoxTheme/AcceptInvitationTheme.d.ts +21 -0
  20. package/ThemeOptions/LoginBoxTheme/ActivateAccountPageTheme.d.ts +52 -0
  21. package/ThemeOptions/LoginBoxTheme/CustomLoginComponents.d.ts +12 -0
  22. package/ThemeOptions/LoginBoxTheme/ForgotPasswordTheme.d.ts +46 -0
  23. package/ThemeOptions/LoginBoxTheme/LoaderTheme.d.ts +7 -0
  24. package/ThemeOptions/LoginBoxTheme/LoginBoxCommon.d.ts +171 -0
  25. package/ThemeOptions/LoginBoxTheme/LoginPageTheme.d.ts +119 -0
  26. package/ThemeOptions/LoginBoxTheme/ResetPasswordTheme.d.ts +48 -0
  27. package/ThemeOptions/LoginBoxTheme/SignupPageTheme.d.ts +46 -0
  28. package/ThemeOptions/LoginBoxTheme/SocialLoginsTheme.d.ts +36 -0
  29. package/ThemeOptions/LoginBoxTheme/index.d.ts +51 -0
  30. package/ThemeOptions/LoginBoxThemeOptions.d.ts +3 -8
  31. package/ThemeOptions/helpers.d.ts +0 -0
  32. package/ThemeOptions/index.d.ts +6 -190
  33. package/index.js +16 -5
  34. package/node/index.js +16 -5
  35. package/package.json +2 -2
package/Common.d.ts CHANGED
@@ -1,3 +1,6 @@
1
1
  import * as CSS from 'csstype';
2
2
  export declare type CSSProperties = CSS.Properties;
3
3
  export declare type Color = CSSProperties['color'];
4
+ export declare type ExtendedCSSProperties = CSSProperties | {
5
+ [k in string]?: CSSProperties;
6
+ };
@@ -1,4 +1,4 @@
1
- import { KeyValuePair, LogLevel } from '@frontegg/rest-api/src/interfaces';
1
+ import { KeyValuePair, LogLevel } from '@frontegg/rest-api';
2
2
  export interface ContextOptions {
3
3
  /**
4
4
  * Backend API baseUrl, visit https://portal.frontegg.com/administration/domain to get your Frontegg baseUrl
@@ -2,6 +2,7 @@ import { EnhancedStore } from '@frontegg/redux-store';
2
2
  import { FronteggAppOptions } from './index';
3
3
  export interface FronteggAppInstance {
4
4
  name: string;
5
+ iframeRendering: boolean;
5
6
  loading: boolean;
6
7
  customElementName: string;
7
8
  store: EnhancedStore;
@@ -56,6 +56,10 @@ export interface FronteggAppOptions extends FronteggStoreOptions {
56
56
  * Option to open admin portal as Preview mode without HTTP requests for demo mode purpose
57
57
  */
58
58
  previewMode?: boolean;
59
+ /**
60
+ * Option to display login box as Preview mode without HTTP requests for builder customization mode purpose
61
+ */
62
+ builderMode?: boolean;
59
63
  /**
60
64
  * Connect AdminPortal redirects with the wrapper application router
61
65
  */
@@ -1,4 +1,5 @@
1
1
  import { PaletteColorOptions, PaletteGreyOptions } from './ThemeOptions/Palette';
2
+ import { FronteggThemeOptions } from './ThemeOptions';
2
3
  declare type PageMetadata = {
3
4
  visibility: 'hidden' | 'always' | 'byPermissions';
4
5
  featureFlag?: string;
@@ -24,6 +25,8 @@ interface SecurityMetadata extends PageMetadata {
24
25
  }
25
26
  interface SsoMetadata extends PageMetadata {
26
27
  }
28
+ interface MultipleSsoMetadata extends PageMetadata {
29
+ }
27
30
  interface AuditsMetadata extends PageMetadata {
28
31
  paginationMode?: 'virtual' | 'pages';
29
32
  }
@@ -42,6 +45,7 @@ export declare type NavigationMetadata = {
42
45
  roles?: RolesMetadata;
43
46
  security?: SecurityMetadata;
44
47
  sso?: SsoMetadata;
48
+ multipleSSO?: MultipleSsoMetadata;
45
49
  audits?: AuditsMetadata;
46
50
  webhooks?: WebhooksMetadata;
47
51
  apiTokens?: ApiTokensMetadata;
@@ -72,6 +76,7 @@ declare type ThemeMetadata = {
72
76
  };
73
77
  export declare type FronteggMetadata = {
74
78
  theme?: ThemeMetadata;
79
+ themeV2?: FronteggThemeOptions;
75
80
  navigation?: NavigationMetadata;
76
81
  };
77
82
  export declare type RolePermission = 'fe.connectivity.*' | 'fe.connectivity.delete.*' | 'fe.connectivity.delete.bellNotifications' | 'fe.connectivity.delete.emailConfig' | 'fe.connectivity.delete.slackAppRegistration' | 'fe.connectivity.delete.slackSubscriptionEvent' | 'fe.connectivity.delete.slackSubscriptions' | 'fe.connectivity.delete.smsConfig' | 'fe.connectivity.delete.webhook' | 'fe.connectivity.read.*' | 'fe.connectivity.read.emailConfig' | 'fe.connectivity.read.eventCategories' | 'fe.connectivity.read.events' | 'fe.connectivity.read.slackApp' | 'fe.connectivity.read.slackChannels' | 'fe.connectivity.read.slackSubscriptions' | 'fe.connectivity.read.slackUsers' | 'fe.connectivity.read.smsConfig' | 'fe.connectivity.read.userBellNotifications' | 'fe.connectivity.read.webhookLogs' | 'fe.connectivity.read.webhooks' | 'fe.connectivity.write.*' | 'fe.connectivity.write.emailConfig' | 'fe.connectivity.write.sendWebpushNotification' | 'fe.connectivity.write.slackAppRegistration' | 'fe.connectivity.write.slackSubscriptions' | 'fe.connectivity.write.smsConfig' | 'fe.connectivity.write.subscribeWebpush' | 'fe.connectivity.write.triggerEvent' | 'fe.connectivity.write.updateSlackSubscription' | 'fe.connectivity.write.updateUserBellNotification' | 'fe.connectivity.write.webhook' | 'fe.secure.*' | 'fe.secure.delete.*' | 'fe.secure.delete.role' | 'fe.secure.delete.samlConfiguration' | 'fe.secure.delete.securityPolicy' | 'fe.secure.delete.tenantApiTokens' | 'fe.secure.delete.userApiTokens' | 'fe.secure.delete.users' | 'fe.secure.delete.usersRoles' | 'fe.secure.read.*' | 'fe.secure.read.permissions' | 'fe.secure.read.roles' | 'fe.secure.read.samlConfiguration' | 'fe.secure.read.securityPolicy' | 'fe.secure.read.tenantApiTokens' | 'fe.secure.read.userApiTokens' | 'fe.secure.read.users' | 'fe.secure.write.*' | 'fe.secure.write.resendActivationEmail' | 'fe.secure.write.roles' | 'fe.secure.write.samlConfiguration' | 'fe.secure.write.securityPolicy' | 'fe.secure.write.tenantApiTokens' | 'fe.secure.write.updateRole' | 'fe.secure.write.updateUser' | 'fe.secure.write.userApiTokens' | 'fe.secure.write.users' | 'fe.secure.write.usersRoles' | 'fe.subscriptions.*' | 'fe.subscriptions.read.*' | 'fe.subscriptions.write.*' | 'fe.account-settings.delete.account';
@@ -48,6 +48,10 @@ export interface NavigationLocalization {
48
48
  * Sso navigation item text
49
49
  */
50
50
  sso: string;
51
+ /**
52
+ * Multiple sso navigation item text
53
+ */
54
+ multipleSSO: string;
51
55
  /**
52
56
  * Audits navigation item text
53
57
  */
@@ -112,6 +112,31 @@ export interface SsoLocalization {
112
112
  * Cancel button in dialogs
113
113
  */
114
114
  cancel: string;
115
+ /**
116
+ * Instruction to claim domain
117
+ */
118
+ claimDomainText: string;
119
+ };
120
+ sso_Header: {
121
+ title: string;
122
+ addNew: string;
123
+ };
124
+ sso_Table: {
125
+ editSSOConfig: string;
126
+ deleteSSOConfig: string;
127
+ areYouSureDeleteSSOConfig: string;
128
+ deleteSSOConfigTitle: string;
129
+ noSSOConfigsYet: string;
130
+ noSSOConfigsYetDescription: string;
131
+ cancel: string;
132
+ back: string;
133
+ done: string;
134
+ proceed: string;
135
+ skip: string;
136
+ rolesColumnName: string;
137
+ domainsColumnName: string;
138
+ idpColumnName: string;
139
+ statusColumnName: string;
115
140
  };
116
141
  /**
117
142
  * Configure IDP Dialog strings
@@ -303,6 +328,7 @@ export interface SsoLocalization {
303
328
  * SSO Authorizations Enabled status
304
329
  */
305
330
  enabled: string;
331
+ roles: string;
306
332
  /**
307
333
  * Select roles input label
308
334
  */
@@ -327,6 +353,7 @@ export interface SsoLocalization {
327
353
  * Manage roles grouping description message
328
354
  */
329
355
  rolesGroupsMappingDescription: string;
356
+ ssoAddMapping: string;
330
357
  /**
331
358
  * Error displayed if group does not have any role
332
359
  */
@@ -16,5 +16,6 @@ export interface LocalizationOverrides {
16
16
  validation?: ValidationLocalizationOverrides;
17
17
  loginBox?: LoginBoxLocalizationOverrides;
18
18
  adminPortal?: AdminPortalLocalizationOverrides;
19
+ custom?: Record<string, string>;
19
20
  }
20
21
  export {};
@@ -40,5 +40,6 @@ export interface Localization {
40
40
  validations: ValidationLocalization;
41
41
  loginBox: LoginBoxLocalization;
42
42
  adminPortal: AdminPortalLocalization;
43
+ custom: Record<string, string>;
43
44
  }
44
45
  export {};
@@ -3,6 +3,10 @@ export interface AcceptInvitationLocalization {
3
3
  * strings in accept invitation account page
4
4
  */
5
5
  acceptInvitation: {
6
+ /**
7
+ * Accept invitation page title
8
+ */
9
+ title: string;
6
10
  /**
7
11
  * Title to be displayed if accept invitation succeeded
8
12
  */
@@ -3,6 +3,10 @@ export interface ActivateAccountLocalization {
3
3
  * strings in activate account page
4
4
  */
5
5
  activateAccount: {
6
+ /**
7
+ * Activate account page title
8
+ */
9
+ title: string;
6
10
  /**
7
11
  * New password input label
8
12
  */
@@ -3,6 +3,14 @@ export interface ForgetPasswordLocalization {
3
3
  * strings in forget password page
4
4
  */
5
5
  forgetPassword: {
6
+ /**
7
+ * Forget password page title
8
+ */
9
+ title: string;
10
+ /**
11
+ * Text displayed in forget password form before email input
12
+ */
13
+ description: string;
6
14
  /**
7
15
  * Forget password form email input label
8
16
  */
@@ -6,4 +6,12 @@ import { SocialLoginsLocalization } from './socialLogins';
6
6
  import { AcceptInvitationLocalization } from './acceptInvitation';
7
7
  import { ActivateAccountLocalization } from './activateAccount';
8
8
  import { RecoveryMfaLocalization } from './recoveryMfa';
9
+ export * from './login';
10
+ export * from './signup';
11
+ export * from './forgetPassword';
12
+ export * from './resetPassword';
13
+ export * from './socialLogins';
14
+ export * from './acceptInvitation';
15
+ export * from './activateAccount';
16
+ export * from './recoveryMfa';
9
17
  export declare type LoginBoxLocalization = LoginLocalization & SignupLocalization & ForgetPasswordLocalization & ResetPasswordLocalization & SocialLoginsLocalization & AcceptInvitationLocalization & ActivateAccountLocalization & RecoveryMfaLocalization;
@@ -3,6 +3,10 @@ export interface LoginLocalization {
3
3
  * strings in login page
4
4
  */
5
5
  login: {
6
+ /**
7
+ * Login page title
8
+ */
9
+ title: string;
6
10
  /**
7
11
  * Go to signup message in Login page header
8
12
  */
@@ -56,10 +60,18 @@ export interface LoginLocalization {
56
60
  * Login page submit button if passwordless, sso or magicLink is enabled
57
61
  */
58
62
  continue: string;
63
+ /**
64
+ * String displayed as separator for sign in with social login
65
+ */
66
+ signInWithSocialLogin: string;
59
67
  /**
60
68
  * Button text to return to main login page
61
69
  */
62
70
  backToLogin: string;
71
+ /**
72
+ * Login with MFA title
73
+ */
74
+ mfaTitle: string;
63
75
  /**
64
76
  * Login with MFA six digits input label If MFA is enabled
65
77
  */
@@ -93,6 +105,10 @@ export interface LoginLocalization {
93
105
  * Disable MFA message in MFA section if it's enabled
94
106
  */
95
107
  disableMultiFactorMessage: string;
108
+ /**
109
+ * Disable MFA page title after choose to recover mfa from login screen
110
+ */
111
+ recoverMfaTitle: string;
96
112
  /**
97
113
  * Disable MFA button click here text in MFA section if it's enabled
98
114
  */
@@ -3,6 +3,14 @@ export interface ResetPasswordLocalization {
3
3
  * strings in forget password page
4
4
  */
5
5
  resetPassword: {
6
+ /**
7
+ * Reset password page title
8
+ */
9
+ title: string;
10
+ /**
11
+ * Text displayed in reset password form before password inputs
12
+ */
13
+ description: string;
6
14
  /**
7
15
  * New password input label
8
16
  */
@@ -3,6 +3,10 @@ export interface SignupLocalization {
3
3
  * strings in signup page
4
4
  */
5
5
  signup: {
6
+ /**
7
+ * Sign up page title
8
+ */
9
+ title: string;
6
10
  /**
7
11
  * Signup name input label
8
12
  */
@@ -65,6 +69,10 @@ export interface SignupLocalization {
65
69
  * error message displayed if name length less than 3
66
70
  */
67
71
  companyNameMinLengthIs3: string;
72
+ /**
73
+ * String displayed as separator for sign up with social login
74
+ */
75
+ signUpWithSocialLogin: string;
68
76
  /**
69
77
  * Go to login message in signup page header
70
78
  */
@@ -1,11 +1,13 @@
1
1
  import { FronteggMetadata } from '../FronteggMetadata';
2
2
  export declare class Metadata {
3
3
  private _theme;
4
+ private _themeV2;
4
5
  private _navigation;
5
6
  static _instances: Record<string, Metadata>;
6
7
  static getInstance(name?: string): Metadata;
7
8
  static set(metadata?: FronteggMetadata, name?: string): Metadata;
8
9
  get theme(): Required<FronteggMetadata>['theme'];
10
+ get themeV2(): Required<FronteggMetadata>['themeV2'];
9
11
  get navigation(): Required<FronteggMetadata>['navigation'];
10
12
  set(metadata?: FronteggMetadata): void;
11
13
  }
@@ -1,3 +1,66 @@
1
+ import { CSSProperties, ExtendedCSSProperties } from '../Common';
2
+ export declare type CustomComponent<T = {}> = null | string | ((props: T) => string | any);
3
+ export interface InputThemeOptions {
4
+ /**
5
+ * Input label style
6
+ */
7
+ label?: ExtendedCSSProperties;
8
+ /**
9
+ * Input base style for standard state
10
+ */
11
+ base?: ExtendedCSSProperties & {
12
+ placeholderColor?: string;
13
+ };
14
+ /**
15
+ * Input style for hover state
16
+ */
17
+ hover?: ExtendedCSSProperties;
18
+ /**
19
+ * Input style for active state
20
+ */
21
+ active?: ExtendedCSSProperties;
22
+ /**
23
+ * Input style for focus state
24
+ */
25
+ focus?: ExtendedCSSProperties;
26
+ /**
27
+ * Input style for disabled state
28
+ */
29
+ disabled?: ExtendedCSSProperties;
30
+ }
31
+ export interface ButtonThemeOptions {
32
+ /**
33
+ * Button base style for standard state
34
+ */
35
+ base?: ExtendedCSSProperties;
36
+ /**
37
+ * Button style for hover state
38
+ */
39
+ hover?: ExtendedCSSProperties;
40
+ /**
41
+ * Button style for active state
42
+ */
43
+ active?: ExtendedCSSProperties;
44
+ /**
45
+ * Button style for focus state
46
+ */
47
+ focus?: ExtendedCSSProperties;
48
+ /**
49
+ * Button style for disabled state
50
+ */
51
+ disabled?: ExtendedCSSProperties;
52
+ /**
53
+ * Icon style displayed inside the button element
54
+ */
55
+ icon?: ExtendedCSSProperties;
56
+ }
57
+ export interface LoginBoxBackgroundTheme {
58
+ backgroundColor?: CSSProperties['backgroundColor'];
59
+ backgroundImage?: CSSProperties['backgroundImage'];
60
+ backgroundSize?: CSSProperties['backgroundSize'];
61
+ backgroundRepeat?: CSSProperties['backgroundRepeat'];
62
+ backgroundPosition?: CSSProperties['backgroundPosition'];
63
+ }
1
64
  export interface ComponentsOptions {
2
65
  /**
3
66
  * Refer to Material UI theming guideline.
@@ -0,0 +1,21 @@
1
+ import { LoginBoxCommonTheme, LoginBoxCommonThemeOptions } from '../index';
2
+ import { ExtendedCSSProperties } from '../../Common';
3
+ interface AcceptInvitationComponentsTheme {
4
+ /**
5
+ * Accept invitation page container style
6
+ */
7
+ containerStyle?: ExtendedCSSProperties;
8
+ /**
9
+ * Accept invitation succeeded page container style
10
+ */
11
+ successContainerStyle?: ExtendedCSSProperties;
12
+ /**
13
+ * Accept invitation failed page container style
14
+ */
15
+ failedContainerStyle?: ExtendedCSSProperties;
16
+ }
17
+ export interface AcceptInvitationPageThemeOptions extends LoginBoxCommonThemeOptions, AcceptInvitationComponentsTheme {
18
+ }
19
+ export interface AcceptInvitationPageTheme extends LoginBoxCommonTheme, AcceptInvitationComponentsTheme {
20
+ }
21
+ export {};
@@ -0,0 +1,52 @@
1
+ import { CustomComponent, LoginBoxCommonTheme, LoginBoxCommonThemeOptions } from '../index';
2
+ import { ExtendedCSSProperties } from '../../Common';
3
+ import { ReactNode } from 'react';
4
+ interface TitleProps {
5
+ title: string;
6
+ }
7
+ interface MessageProps {
8
+ message: ReactNode;
9
+ }
10
+ interface ActivateAccountComponentsTheme {
11
+ /**
12
+ * Activate account page container style
13
+ */
14
+ containerStyle?: ExtendedCSSProperties;
15
+ /**
16
+ * Activate account form container style
17
+ */
18
+ formContainerStyle?: ExtendedCSSProperties;
19
+ /**
20
+ * Activate account succeeded page container style
21
+ */
22
+ successContainerStyle?: ExtendedCSSProperties;
23
+ /**
24
+ * Activate account failed page container style
25
+ */
26
+ failedContainerStyle?: ExtendedCSSProperties;
27
+ /**
28
+ * Activate account page title default is 'Activate Account'
29
+ * displayed in forgot password form screen
30
+ * passing 'null' will hide the title
31
+ */
32
+ title?: CustomComponent<TitleProps>;
33
+ /**
34
+ * Direct css style for Forgot password Page title
35
+ */
36
+ titleStyle?: ExtendedCSSProperties;
37
+ /**
38
+ * Activate account page message default is hidden
39
+ * displayed in forgot password form screen
40
+ * passing 'null' will hide the message
41
+ */
42
+ message?: CustomComponent<MessageProps>;
43
+ /**
44
+ * Direct css style for Forgot password Page message
45
+ */
46
+ messageStyle?: ExtendedCSSProperties;
47
+ }
48
+ export interface ActivateAccountPageThemeOptions extends LoginBoxCommonThemeOptions, ActivateAccountComponentsTheme {
49
+ }
50
+ export interface ActivateAccountPageTheme extends LoginBoxCommonTheme, ActivateAccountComponentsTheme {
51
+ }
52
+ export {};
@@ -0,0 +1,12 @@
1
+ export interface CustomLocalizationProps {
2
+ t: (key: string) => string;
3
+ }
4
+ export interface CustomContainerProps extends CustomLocalizationProps {
5
+ className: string;
6
+ }
7
+ export interface ComponentKeyRender {
8
+ 'pageHeader': CustomContainerProps;
9
+ 'pageFooter': CustomContainerProps;
10
+ 'boxHeader': CustomContainerProps;
11
+ 'boxFooter': CustomContainerProps;
12
+ }
@@ -0,0 +1,46 @@
1
+ import { CustomComponent, LoginBoxCommonTheme, LoginBoxCommonThemeOptions } from '../index';
2
+ import { ExtendedCSSProperties } from '../../Common';
3
+ import { ReactNode } from 'react';
4
+ interface TitleProps {
5
+ title: string;
6
+ }
7
+ interface MessageProps {
8
+ message: ReactNode;
9
+ }
10
+ interface ForgotPasswordComponentsTheme {
11
+ /**
12
+ * Forgot password page container style
13
+ */
14
+ containerStyle?: ExtendedCSSProperties;
15
+ /**
16
+ * Forgot password page form container style
17
+ */
18
+ formContainerStyle?: ExtendedCSSProperties;
19
+ successContainerStyle?: ExtendedCSSProperties;
20
+ /**
21
+ * Forgot password page title default is 'Forgot your password?'
22
+ * displayed in forgot password form screen
23
+ * passing 'null' will hide the title
24
+ */
25
+ title?: CustomComponent<TitleProps>;
26
+ /**
27
+ * Direct css style for Forgot password Page title
28
+ */
29
+ titleStyle?: ExtendedCSSProperties;
30
+ /**
31
+ * Forgot password page message default:
32
+ * 'Enter the email address associated with your account and we'll send you a link to reset your password'
33
+ * displayed in forgot password form screen
34
+ * passing 'null' will hide the message
35
+ */
36
+ message?: CustomComponent<MessageProps>;
37
+ /**
38
+ * Direct css style for Forgot password Page message
39
+ */
40
+ messageStyle?: ExtendedCSSProperties;
41
+ }
42
+ export interface ForgotPasswordPageThemeOptions extends LoginBoxCommonThemeOptions, ForgotPasswordComponentsTheme {
43
+ }
44
+ export interface ForgotPasswordPageTheme extends LoginBoxCommonTheme, ForgotPasswordComponentsTheme {
45
+ }
46
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ExtendedCSSProperties } from '../../Common';
2
+ export interface LoaderThemeOptions {
3
+ containerStyle?: ExtendedCSSProperties;
4
+ }
5
+ export interface LoaderTheme {
6
+ containerStyle?: ExtendedCSSProperties;
7
+ }
@@ -0,0 +1,171 @@
1
+ import { ExtendedCSSProperties } from '../../Common';
2
+ import { BaseTheme, BaseThemeOptions } from '../index';
3
+ import { ButtonThemeOptions, CustomComponent, InputThemeOptions } from '../ComponentsOptions';
4
+ /**
5
+ * @RootElement
6
+ * - @WrapperElement
7
+ * | - Header
8
+ * | - Box
9
+ * | | - Header
10
+ * | | - Content
11
+ * | | - SocialLogin
12
+ * | | | - Divider
13
+ * | | | - Google
14
+ * | | | - Microsoft
15
+ * | | | - Footer
16
+ * | | - Footer
17
+ * | - Footer
18
+ */
19
+ interface LogoComponent {
20
+ /**
21
+ * Company logo Url or native html element as string
22
+ */
23
+ image?: string | any | CustomComponent;
24
+ /**
25
+ * Company logo placement in Login Pages
26
+ * box = inside the login box element
27
+ * page = displayed at the top of the page
28
+ */
29
+ placement?: 'box' | 'page';
30
+ alignment?: 'left' | 'right' | 'center';
31
+ /**
32
+ * Direct css styling for Company Logo container component
33
+ */
34
+ style?: ExtendedCSSProperties;
35
+ }
36
+ interface LayoutOptions {
37
+ /**
38
+ * Layout type for login box page, Default is Center login box elements
39
+ * By choosing Side type you can provide HTML element for the other
40
+ * side, floating right will display login box at the right element
41
+ * with default width equal to 50% of the window width
42
+ */
43
+ type: 'float-right' | 'center' | 'float-left';
44
+ /**
45
+ * Will be displayed if type is 'float-right' or 'float-left',
46
+ * Accepts:
47
+ * - html element as string
48
+ * - function that return html element as string
49
+ * - ReactElement will be rendered inside LoginBox VirtualTree
50
+ */
51
+ sideElement?: CustomComponent;
52
+ sideElementStyle?: ExtendedCSSProperties;
53
+ }
54
+ interface LoginBoxOptionalCommon {
55
+ /**
56
+ * Options to specify the login box page structure
57
+ * Ex. split screen and display login in the left/right side
58
+ */
59
+ layout?: LayoutOptions;
60
+ /**
61
+ * Header component placed in before section content.
62
+ * Mostly used for Company Logo or Page title
63
+ * Accepts:
64
+ * - string as url for rendering image element with src='url'
65
+ * - string as base64 for rendering image as base64 content
66
+ * - ReactElement will be rendered inside LoginBox VirtualTree
67
+ */
68
+ pageHeader?: CustomComponent;
69
+ /**
70
+ * Footer component placed in before section content
71
+ * Mostly used for Disclaimers or Back buttons
72
+ * Accepts:
73
+ * - string as url for rendering image element with src='url'
74
+ * - string as base64 for rendering image as base64 content
75
+ * - ReactElement will be rendered inside LoginBox VirtualTree
76
+ */
77
+ pageFooter?: CustomComponent;
78
+ /**
79
+ * Company logo Url or native html element as string
80
+ */
81
+ logo?: LogoComponent;
82
+ /**
83
+ * Powered by frontegg placement
84
+ * box = inside the login box element
85
+ * page = displayed at the bottom of the page
86
+ */
87
+ poweredByPlacement?: 'box' | 'page';
88
+ /**
89
+ * BoxElement
90
+ * It is a Card component placed inside the [WrapperElement]{@link pageStyle}
91
+ * The purpose of this element is to contain page field
92
+ * By default it's have flex display and justify content center
93
+ */
94
+ boxStyle?: ExtendedCSSProperties;
95
+ /**
96
+ * Header component placed in inside the login box and before login inputs.
97
+ * Accepts:
98
+ * - string as url for rendering image element with src='url'
99
+ * - string as base64 for rendering image as base64 content
100
+ * - ReactElement will be rendered inside LoginBox VirtualTree (should be pure component without hooks and HOC)
101
+ */
102
+ boxHeader?: CustomComponent;
103
+ /**
104
+ * Direct css styling for applying css for all (Box title) in LoginBox pages
105
+ */
106
+ boxTitleStyle?: ExtendedCSSProperties;
107
+ /**
108
+ * Direct css styling for applying css for all (Box message or Box subtitle) in LoginBox pages
109
+ */
110
+ boxMessageStyle?: ExtendedCSSProperties;
111
+ /**
112
+ * Footer component placed in inside the login box and after login inputs.
113
+ * Mostly used for Disclaimers or Back buttons
114
+ * Accepts:
115
+ * - string as url for rendering image element with src='url'
116
+ * - string as base64 for rendering image as base64 content
117
+ * - ReactElement will be rendered inside LoginBox VirtualTree
118
+ */
119
+ boxFooter?: CustomComponent;
120
+ /**
121
+ * Option to customize login box inputs by providing
122
+ * css style for every state (base, hover, focus, disabled, etc...)
123
+ */
124
+ inputTheme?: InputThemeOptions;
125
+ /**
126
+ * Option to customize login box standard buttons by providing
127
+ * css style for every state (base, hover, focus, disabled, etc...)
128
+ */
129
+ buttonTheme?: ButtonThemeOptions;
130
+ /**
131
+ * Option to customize login box link buttons by providing
132
+ * css style for every state (base, hover, focus, disabled, etc...)
133
+ */
134
+ linkButtonTheme?: ButtonThemeOptions;
135
+ /**
136
+ * Option to customize login box submit buttons by providing
137
+ * css style for every state (base, hover, focus, disabled, etc...)
138
+ */
139
+ submitButtonTheme?: ButtonThemeOptions;
140
+ }
141
+ export interface LoginBoxCommonTheme extends BaseTheme, LoginBoxOptionalCommon {
142
+ /**
143
+ * RootElement
144
+ * The root DIV element of specific login box page
145
+ * By default it's have fixed and full width/height size
146
+ */
147
+ rootStyle: ExtendedCSSProperties;
148
+ /**
149
+ * PageElement
150
+ * It is DIV element placed inside the [RootElement]{@link rootStyle}
151
+ * The purpose of this element is to wrapper the Box Component and other custom components
152
+ * By default it's have flex display and justify content center
153
+ */
154
+ pageStyle: ExtendedCSSProperties;
155
+ }
156
+ export interface LoginBoxCommonThemeOptions extends BaseThemeOptions, LoginBoxOptionalCommon {
157
+ /**
158
+ * RootElement
159
+ * The root DIV element of specific login box page
160
+ * By default it's have fixed and full width/height size
161
+ */
162
+ rootStyle?: ExtendedCSSProperties;
163
+ /**
164
+ * PageElement
165
+ * It is DIV element placed inside the [RootElement]{@link rootStyle}
166
+ * The purpose of this element is to wrapper the Box Component and other custom components
167
+ * By default it's have flex display and justify content center
168
+ */
169
+ pageStyle?: ExtendedCSSProperties;
170
+ }
171
+ export {};