@asgardeo/react 0.2.4 → 0.3.0

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 (91) hide show
  1. package/README.md +108 -6
  2. package/dist/AsgardeoReactClient.d.ts +37 -0
  3. package/dist/__temp__/api.d.ts +229 -0
  4. package/dist/__temp__/models.d.ts +105 -0
  5. package/dist/api/scim2/getMeProfile.d.ts +39 -0
  6. package/dist/api/scim2/getSchemas.d.ts +39 -0
  7. package/dist/api/scim2/updateMeProfile.d.ts +38 -0
  8. package/dist/cjs/index.js +1955 -0
  9. package/dist/cjs/index.js.map +7 -0
  10. package/dist/components/actions/SignInButton/BaseSignInButton.d.ts +65 -0
  11. package/dist/components/actions/SignInButton/SignInButton.d.ts +46 -0
  12. package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts +65 -0
  13. package/dist/components/actions/SignOutButton/SignOutButton.d.ts +44 -0
  14. package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts +65 -0
  15. package/dist/components/actions/SignUpButton/SignUpButton.d.ts +45 -0
  16. package/dist/components/control/SignedIn.d.ts +45 -0
  17. package/dist/components/control/SignedOut.d.ts +45 -0
  18. package/dist/components/presentation/User.d.ts +57 -0
  19. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts +76 -0
  20. package/dist/components/presentation/UserDropdown/UserDropdown.d.ts +49 -0
  21. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +42 -0
  22. package/dist/components/presentation/UserProfile/UserProfile.d.ts +49 -0
  23. package/dist/{esm/types/components/SignIn/SignIn.d.ts → components/primitives/Avatar/Avatar.d.ts} +25 -14
  24. package/dist/{esm/types/oxygen-ui-react-auth-components/models/component.d.ts → components/primitives/Checkbox/Checkbox.d.ts} +22 -7
  25. package/dist/components/primitives/DatePicker/DatePicker.d.ts +50 -0
  26. package/dist/components/primitives/Popover/Popover.d.ts +59 -0
  27. package/dist/components/primitives/Select/Select.d.ts +60 -0
  28. package/dist/components/primitives/TextField/TextField.d.ts +46 -0
  29. package/dist/contexts/AsgardeoContext.d.ts +56 -0
  30. package/dist/{esm/types/contexts/i18n-context.d.ts → hooks/useAsgardeo.d.ts} +4 -5
  31. package/dist/hooks/useBrowserUrl.d.ts +47 -0
  32. package/dist/index.d.ts +36 -348
  33. package/dist/index.js +1935 -0
  34. package/dist/index.js.map +7 -0
  35. package/dist/{esm/types/oxygen-ui-react-auth-components/index.d.ts → models/config.d.ts} +3 -3
  36. package/dist/{esm/types/hooks/use-config.d.ts → providers/AsgardeoProvider.d.ts} +7 -5
  37. package/dist/{esm/types/models/asgardeo-provider-props.d.ts → theme/ThemeContext.d.ts} +8 -7
  38. package/dist/{esm/types/models/branding-preference-provider-props.d.ts → theme/ThemeProvider.d.ts} +7 -5
  39. package/dist/{esm/types/models/use-on.d.ts → theme/types.d.ts} +22 -12
  40. package/dist/{esm/types/models/public-models.d.ts → theme/useTheme.d.ts} +3 -3
  41. package/dist/{esm/types/models/signed-props.d.ts → utils/getMappedUserProfileValue.d.ts} +3 -6
  42. package/dist/utils/getUserProfile.d.ts +59 -0
  43. package/package.json +55 -60
  44. package/dist/esm/index.js +0 -45278
  45. package/dist/esm/index.js.map +0 -1
  46. package/dist/esm/types/components/SignIn/fragments/BasicAuth.d.ts +0 -35
  47. package/dist/esm/types/components/SignIn/fragments/EmailOtp.d.ts +0 -32
  48. package/dist/esm/types/components/SignIn/fragments/IdentifierFirst.d.ts +0 -35
  49. package/dist/esm/types/components/SignIn/fragments/LoginOptionsBox.d.ts +0 -30
  50. package/dist/esm/types/components/SignIn/fragments/SmsOtp.d.ts +0 -21
  51. package/dist/esm/types/components/SignIn/fragments/Totp.d.ts +0 -33
  52. package/dist/esm/types/components/SignInButton/SignInButton.d.ts +0 -29
  53. package/dist/esm/types/components/SignOutButton/SignOutButton.d.ts +0 -27
  54. package/dist/esm/types/components/SignedIn/SignedIn.d.ts +0 -29
  55. package/dist/esm/types/components/SignedOut/SignedOut.d.ts +0 -29
  56. package/dist/esm/types/components/public-components.d.ts +0 -22
  57. package/dist/esm/types/contexts/asgardeo-context.d.ts +0 -21
  58. package/dist/esm/types/contexts/branding-preference-context.d.ts +0 -21
  59. package/dist/esm/types/hooks/use-authentication.d.ts +0 -27
  60. package/dist/esm/types/hooks/use-on.d.ts +0 -20
  61. package/dist/esm/types/hooks/use-translations.d.ts +0 -33
  62. package/dist/esm/types/index.d.ts +0 -22
  63. package/dist/esm/types/models/auth-context.d.ts +0 -43
  64. package/dist/esm/types/models/basic-auth-props.d.ts +0 -29
  65. package/dist/esm/types/models/email-otp-props.d.ts +0 -26
  66. package/dist/esm/types/models/i18n.d.ts +0 -34
  67. package/dist/esm/types/models/jwt-verify-options.d.ts +0 -25
  68. package/dist/esm/types/models/login-options-box-props.d.ts +0 -24
  69. package/dist/esm/types/models/sign-in.d.ts +0 -49
  70. package/dist/esm/types/models/totp-props.d.ts +0 -26
  71. package/dist/esm/types/models/use-authentication.d.ts +0 -29
  72. package/dist/esm/types/models/use-config.d.ts +0 -22
  73. package/dist/esm/types/models/use-translations.d.ts +0 -22
  74. package/dist/esm/types/oxygen-ui-react-auth-components/SignIn/SignIn.d.ts +0 -79
  75. package/dist/esm/types/oxygen-ui-react-auth-components/SignInAlert/SignInAlert.d.ts +0 -37
  76. package/dist/esm/types/oxygen-ui-react-auth-components/SignInButton/SignInButton.d.ts +0 -27
  77. package/dist/esm/types/oxygen-ui-react-auth-components/SignInDivider/SignInDivider.d.ts +0 -26
  78. package/dist/esm/types/oxygen-ui-react-auth-components/SignInFooter/SignInFooter.d.ts +0 -29
  79. package/dist/esm/types/oxygen-ui-react-auth-components/SignInImage/SignInImage.d.ts +0 -23
  80. package/dist/esm/types/oxygen-ui-react-auth-components/SignInLink/SignInLink.d.ts +0 -25
  81. package/dist/esm/types/oxygen-ui-react-auth-components/SignInPaper/SignInPaper.d.ts +0 -26
  82. package/dist/esm/types/oxygen-ui-react-auth-components/SignInPinInput/SignInPinInput.d.ts +0 -30
  83. package/dist/esm/types/oxygen-ui-react-auth-components/SignInTextField/SignInTextField.d.ts +0 -26
  84. package/dist/esm/types/oxygen-ui-react-auth-components/SignInTypography/SignInTypography.d.ts +0 -32
  85. package/dist/esm/types/providers/AsgardeoProvider.d.ts +0 -34
  86. package/dist/esm/types/providers/BrandingPreferenceProvider.d.ts +0 -32
  87. package/dist/esm/types/providers/I18nProvider.d.ts +0 -33
  88. package/dist/esm/types/theme/generate-theme-sign-in.d.ts +0 -28
  89. package/dist/esm/types/theme/generate-theme.d.ts +0 -30
  90. package/dist/esm/types/utils/crypto-utils.d.ts +0 -52
  91. package/dist/esm/types/utils/session-store.d.ts +0 -25
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
19
+ import { BaseSignOutButtonProps } from './BaseSignOutButton';
20
+ /**
21
+ * Props interface of {@link SignOutButton}
22
+ */
23
+ export type SignOutButtonProps = BaseSignOutButtonProps;
24
+ /**
25
+ * SignOutButton component that supports both render props and traditional props patterns.
26
+ *
27
+ * @example Using render props pattern
28
+ * ```tsx
29
+ * <SignOutButton>
30
+ * {({ signOut, isLoading }) => (
31
+ * <button onClick={signOut} disabled={isLoading}>
32
+ * {isLoading ? 'Signing out...' : 'Sign Out'}
33
+ * </button>
34
+ * )}
35
+ * </SignOutButton>
36
+ * ```
37
+ *
38
+ * @example Using traditional props pattern
39
+ * ```tsx
40
+ * <SignOutButton className="custom-button">Sign Out</SignOutButton>
41
+ * ```
42
+ */
43
+ declare const SignOutButton: ForwardRefExoticComponent<SignOutButtonProps & RefAttributes<HTMLButtonElement>>;
44
+ export default SignOutButton;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { ForwardRefExoticComponent, ButtonHTMLAttributes, ReactNode, RefAttributes } from 'react';
19
+ /**
20
+ * Common props shared by all {@link BaseSignUpButton} components.
21
+ */
22
+ export interface CommonBaseSignUpButtonProps {
23
+ /**
24
+ * Function to initiate the sign-up process
25
+ */
26
+ signUp?: () => Promise<void>;
27
+ /**
28
+ * Loading state during sign-up process
29
+ */
30
+ isLoading?: boolean;
31
+ }
32
+ /**
33
+ * Props passed to the render function of {@link BaseSignUpButton}
34
+ */
35
+ export type BaseSignUpButtonRenderProps = CommonBaseSignUpButtonProps;
36
+ /**
37
+ * Props interface of {@link BaseSignUpButton}
38
+ */
39
+ export interface BaseSignUpButtonProps extends CommonBaseSignUpButtonProps, Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
40
+ /**
41
+ * Render prop function that receives sign-up props, or traditional ReactNode children
42
+ */
43
+ children?: ((props: BaseSignUpButtonRenderProps) => ReactNode) | ReactNode;
44
+ }
45
+ /**
46
+ * Base SignUpButton component that supports both render props and traditional props patterns.
47
+ *
48
+ * @example Using render props
49
+ * ```tsx
50
+ * <BaseSignUpButton>
51
+ * {({ signUp, isLoading }) => (
52
+ * <button onClick={signUp} disabled={isLoading}>
53
+ * {isLoading ? 'Creating account...' : 'Create Account'}
54
+ * </button>
55
+ * )}
56
+ * </BaseSignUpButton>
57
+ * ```
58
+ *
59
+ * @example Using traditional props
60
+ * ```tsx
61
+ * <BaseSignUpButton className="custom-button">Create Account</BaseSignUpButton>
62
+ * ```
63
+ */
64
+ declare const BaseSignUpButton: ForwardRefExoticComponent<BaseSignUpButtonProps & RefAttributes<HTMLButtonElement>>;
65
+ export default BaseSignUpButton;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
19
+ import { BaseSignUpButtonProps } from './BaseSignUpButton';
20
+ /**
21
+ * Props interface of {@link SignUpButton}
22
+ */
23
+ export type SignUpButtonProps = BaseSignUpButtonProps;
24
+ /**
25
+ * SignUpButton component that supports both render props and traditional props patterns.
26
+ * It redirects the user to the Asgardeo sign-up page configured for the application.
27
+ *
28
+ * @example Using render props pattern
29
+ * ```tsx
30
+ * <SignUpButton>
31
+ * {({ signUp, isLoading }) => (
32
+ * <button onClick={signUp} disabled={isLoading}>
33
+ * {isLoading ? 'Creating Account...' : 'Create Account'}
34
+ * </button>
35
+ * )}
36
+ * </SignUpButton>
37
+ * ```
38
+ *
39
+ * @example Using traditional props pattern
40
+ * ```tsx
41
+ * <SignUpButton className="custom-button">Create Account</SignUpButton>
42
+ * ```
43
+ */
44
+ declare const SignUpButton: ForwardRefExoticComponent<SignUpButtonProps & RefAttributes<HTMLButtonElement>>;
45
+ export default SignUpButton;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC, PropsWithChildren, ReactNode } from 'react';
19
+ /**
20
+ * Props for the SignedIn component.
21
+ */
22
+ export interface SignedInProps {
23
+ /**
24
+ * Content to show when the user is not signed in.
25
+ */
26
+ fallback?: ReactNode;
27
+ }
28
+ /**
29
+ * A component that only renders its children when the user is signed in.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * import { SignedIn } from '@asgardeo/auth-react';
34
+ *
35
+ * const App = () => {
36
+ * return (
37
+ * <SignedIn fallback={<p>Please sign in to continue</p>}>
38
+ * <p>Welcome! You are signed in.</p>
39
+ * </SignedIn>
40
+ * );
41
+ * }
42
+ * ```
43
+ */
44
+ declare const SignedIn: FC<PropsWithChildren<SignedInProps>>;
45
+ export default SignedIn;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC, PropsWithChildren, ReactNode } from 'react';
19
+ /**
20
+ * Props for the SignedOut component.
21
+ */
22
+ export interface SignedOutProps {
23
+ /**
24
+ * Content to show when the user is signed in.
25
+ */
26
+ fallback?: ReactNode;
27
+ }
28
+ /**
29
+ * A component that only renders its children when the user is signed out.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * import { SignedOut } from '@asgardeo/auth-react';
34
+ *
35
+ * const App = () => {
36
+ * return (
37
+ * <SignedOut fallback={<p>You are already signed in</p>}>
38
+ * <p>Please sign in to continue</p>
39
+ * </SignedOut>
40
+ * );
41
+ * }
42
+ * ```
43
+ */
44
+ declare const SignedOut: FC<PropsWithChildren<SignedOutProps>>;
45
+ export default SignedOut;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { User as AsgardeoUser } from '@asgardeo/browser';
19
+ import { FC, ReactNode } from 'react';
20
+ /**
21
+ * Props for the User component.
22
+ */
23
+ export interface UserProps {
24
+ /**
25
+ * Render prop that takes the user object and returns a ReactNode.
26
+ * @param user - The authenticated user object from Asgardeo.
27
+ * @returns A ReactNode to render.
28
+ */
29
+ children: (user: AsgardeoUser | null) => ReactNode;
30
+ /**
31
+ * Optional element to render when no user is signed in.
32
+ */
33
+ fallback?: ReactNode;
34
+ }
35
+ /**
36
+ * A component that uses render props to expose the authenticated user object.
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * import { User } from '@asgardeo/auth-react';
41
+ *
42
+ * const App = () => {
43
+ * return (
44
+ * <User fallback={<p>Please sign in</p>}>
45
+ * {(user) => (
46
+ * <div>
47
+ * <h1>Welcome, {user.displayName}!</h1>
48
+ * <p>Email: {user.email}</p>
49
+ * </div>
50
+ * )}
51
+ * </User>
52
+ * );
53
+ * }
54
+ * ```
55
+ */
56
+ declare const User: FC<UserProps>;
57
+ export default User;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC, ReactElement, ReactNode } from 'react';
19
+ export interface MenuItem {
20
+ label: string;
21
+ icon?: ReactNode;
22
+ onClick?: () => void;
23
+ href?: string;
24
+ }
25
+ export interface BaseUserDropdownProps {
26
+ /**
27
+ * Optional element to render when no user is signed in.
28
+ */
29
+ fallback?: ReactElement;
30
+ /**
31
+ * Optional className for the dropdown container.
32
+ */
33
+ className?: string;
34
+ /**
35
+ * The user object containing profile information
36
+ */
37
+ user: any;
38
+ /**
39
+ * The HTML element ID where the portal should be mounted
40
+ */
41
+ portalId?: string;
42
+ /**
43
+ * Menu items to display in the dropdown
44
+ */
45
+ menuItems?: MenuItem[];
46
+ /**
47
+ * Show user's display name next to avatar in the trigger button
48
+ */
49
+ showTriggerLable?: boolean;
50
+ /**
51
+ * Show dropdown header with user information
52
+ */
53
+ showDropdownHeader?: boolean;
54
+ /**
55
+ * Optional size for the avatar
56
+ */
57
+ avatarSize?: number;
58
+ /**
59
+ * Mapping of component attribute names to identity provider field names.
60
+ * Allows customizing which user profile fields should be used for each attribute.
61
+ */
62
+ attributeMapping?: {
63
+ picture?: string | string[];
64
+ firstName?: string | string[];
65
+ lastName?: string | string[];
66
+ username?: string | string[];
67
+ [key: string]: string | string[] | undefined;
68
+ };
69
+ }
70
+ /**
71
+ * BaseUserDropdown component displays a user avatar with a dropdown menu.
72
+ * When clicked, it shows a popover with customizable menu items.
73
+ * This component serves as the base for framework-specific implementations.
74
+ */
75
+ export declare const BaseUserDropdown: FC<BaseUserDropdownProps>;
76
+ export default BaseUserDropdown;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC } from 'react';
19
+ import { BaseUserDropdownProps } from './BaseUserDropdown';
20
+ /**
21
+ * Props for the UserDropdown component.
22
+ * Extends BaseUserDropdownProps but makes the user prop optional since it will be obtained from useAsgardeo
23
+ */
24
+ export type UserDropdownProps = Omit<BaseUserDropdownProps, 'user'>;
25
+ /**
26
+ * UserDropdown component displays a user avatar with a dropdown menu.
27
+ * When clicked, it shows a popover with customizable menu items.
28
+ * This component is the React-specific implementation that uses the BaseUserDropdown
29
+ * and automatically retrieves the user data from Asgardeo context.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * // Basic usage - will use user from Asgardeo context
34
+ * <UserDropdown menuItems={[
35
+ * { label: 'Profile', onClick: () => {} },
36
+ * { label: 'Settings', href: '/settings' },
37
+ * { label: 'Sign Out', onClick: () => {} }
38
+ * ]} />
39
+ *
40
+ * // With custom configuration
41
+ * <UserDropdown
42
+ * showUsername={false}
43
+ * avatarSize={40}
44
+ * fallback={<div>Please sign in</div>}
45
+ * />
46
+ * ```
47
+ */
48
+ declare const UserDropdown: FC<UserDropdownProps>;
49
+ export default UserDropdown;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC, ReactElement } from 'react';
19
+ export interface BaseUserProfileProps {
20
+ fallback?: ReactElement;
21
+ className?: string;
22
+ cardLayout?: boolean;
23
+ user: any;
24
+ mode?: 'inline' | 'popup';
25
+ portalId?: string;
26
+ title?: string;
27
+ attributeMapping?: {
28
+ picture?: string | string[];
29
+ firstName?: string | string[];
30
+ lastName?: string | string[];
31
+ username?: string | string[];
32
+ [key: string]: string | string[] | undefined;
33
+ };
34
+ editable?: boolean;
35
+ onChange?: (field: string, value: any) => void;
36
+ onSubmit?: (data: any) => void;
37
+ saveButtonText?: string;
38
+ cancelButtonText?: string;
39
+ onUpdate?: (payload: any) => Promise<void>;
40
+ }
41
+ declare const BaseUserProfile: FC<BaseUserProfileProps>;
42
+ export default BaseUserProfile;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC } from 'react';
19
+ import { BaseUserProfileProps } from './BaseUserProfile';
20
+ /**
21
+ * Props for the UserProfile component.
22
+ * Extends BaseUserProfileProps but makes the user prop optional since it will be obtained from useAsgardeo
23
+ */
24
+ export type UserProfileProps = Omit<BaseUserProfileProps, 'user'>;
25
+ /**
26
+ * UserProfile component displays the authenticated user's profile information in a
27
+ * structured and styled format. It shows user details such as display name, email,
28
+ * username, and other available profile information from Asgardeo.
29
+ *
30
+ * This component is the React-specific implementation that uses the BaseUserProfile
31
+ * and automatically retrieves the user data from Asgardeo context if not provided.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * // Basic usage - will use user from Asgardeo context
36
+ * <UserProfile />
37
+ *
38
+ * // With explicit user data
39
+ * <UserProfile user={specificUser} />
40
+ *
41
+ * // With card layout and custom fallback
42
+ * <UserProfile
43
+ * cardLayout={true}
44
+ * fallback={<div>Please sign in to view your profile</div>}
45
+ * />
46
+ * ```
47
+ */
48
+ declare const UserProfile: FC<UserProfileProps>;
49
+ export default UserProfile;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com).
2
+ * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
3
3
  *
4
4
  * WSO2 LLC. licenses this file to you under the Apache License,
5
5
  * Version 2.0 (the "License"); you may not use this file except
@@ -16,16 +16,27 @@
16
16
  * under the License.
17
17
  */
18
18
  import { FC } from 'react';
19
- import { SignInProps } from '../../models/sign-in';
20
- import './sign-in.scss';
21
- /**
22
- * This component provides the sign-in functionality.
23
- *
24
- * @param {SignInProps} props - Props injected to the component.
25
- * @param {BrandingProps} props.brandingProps - Branding related props.
26
- * @param {boolean} props.showSignUp - Show sign-up.
27
- *
28
- * @returns {ReactElement} - React element.
29
- */
30
- declare const SignIn: FC<SignInProps>;
31
- export default SignIn;
19
+ export interface AvatarProps {
20
+ /**
21
+ * The URL of the avatar image
22
+ */
23
+ imageUrl?: string;
24
+ /**
25
+ * Alternative text for the avatar image
26
+ */
27
+ alt?: string;
28
+ /**
29
+ * The size of the avatar in pixels
30
+ */
31
+ size?: number;
32
+ /**
33
+ * The name to use for generating initials when no image is provided
34
+ */
35
+ name?: string;
36
+ /**
37
+ * Optional className for the avatar
38
+ */
39
+ className?: string;
40
+ }
41
+ export declare const Avatar: FC<AvatarProps>;
42
+ export default Avatar;
@@ -15,13 +15,28 @@
15
15
  * specific language governing permissions and limitations
16
16
  * under the License.
17
17
  */
18
- export type WithWrapperProps = MuiWrapperProps;
19
- export interface MuiWrapperProps {
18
+ import { FC, InputHTMLAttributes } from 'react';
19
+ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> {
20
20
  /**
21
- * Component name with `Mui` prefix.
22
- * To provide maximum flexibility and performance, MUI needs a way to know the nature
23
- * of the child elements a component receives.
24
- * @see {@link https://mui.com/material-ui/guides/composition/#wrapping-components}
21
+ * Label text to display next to the checkbox
25
22
  */
26
- muiName: string;
23
+ label?: string;
24
+ /**
25
+ * Error message to display below the checkbox
26
+ */
27
+ error?: string;
28
+ /**
29
+ * Additional CSS class names
30
+ */
31
+ className?: string;
32
+ /**
33
+ * Whether the field is required
34
+ */
35
+ required?: boolean;
36
+ /**
37
+ * Helper text to display below the checkbox
38
+ */
39
+ helperText?: string;
27
40
  }
41
+ export declare const Checkbox: FC<CheckboxProps>;
42
+ export default Checkbox;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com).
3
+ *
4
+ * WSO2 LLC. licenses this file to you under the Apache License,
5
+ * Version 2.0 (the "License"); you may not use this file except
6
+ * in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing,
12
+ * software distributed under the License is distributed on an
13
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ * KIND, either express or implied. See the License for the
15
+ * specific language governing permissions and limitations
16
+ * under the License.
17
+ */
18
+ import { FC, InputHTMLAttributes } from 'react';
19
+ export interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> {
20
+ /**
21
+ * Label text to display above the input
22
+ */
23
+ label?: string;
24
+ /**
25
+ * Error message to display below the input
26
+ */
27
+ error?: string;
28
+ /**
29
+ * Additional CSS class names
30
+ */
31
+ className?: string;
32
+ /**
33
+ * Whether the field is required
34
+ */
35
+ required?: boolean;
36
+ /**
37
+ * Whether the field is disabled
38
+ */
39
+ disabled?: boolean;
40
+ /**
41
+ * Helper text to display below the input
42
+ */
43
+ helperText?: string;
44
+ /**
45
+ * Custom date format for the regex pattern
46
+ */
47
+ dateFormat?: string;
48
+ }
49
+ export declare const DatePicker: FC<DatePickerProps>;
50
+ export default DatePicker;