@thunderid/react 0.3.3 → 0.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.
- package/dist/ThunderIDReactClient.d.ts +1 -5
- package/dist/ThunderIDReactClient.d.ts.map +1 -1
- package/dist/ThunderIDReactClient.js +1 -68
- package/dist/ThunderIDReactClient.js.map +1 -1
- package/dist/cjs/ThunderIDReactClient.cjs +0 -67
- package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
- package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
- package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs +57 -0
- package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs.map +1 -0
- package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs +36 -0
- package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs.map +1 -0
- package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs +6 -5
- package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs.map +1 -1
- package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs +3 -15
- package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/ThemeContext.cjs.map +1 -1
- package/dist/cjs/contexts/Theme/ThemeProvider.cjs +2 -5
- package/dist/cjs/contexts/Theme/ThemeProvider.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +0 -2
- package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +14 -90
- package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
- package/dist/cjs/index.cjs +6 -51
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts +50 -0
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts.map +1 -0
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.js +55 -0
- package/dist/components/presentation/UserAvatar/BaseUserAvatar.js.map +1 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.d.ts +46 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.d.ts.map +1 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.js +34 -0
- package/dist/components/presentation/UserAvatar/UserAvatar.js.map +1 -0
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.js +6 -5
- package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
- package/dist/components/presentation/auth/AuthOptionFactory.d.ts +2 -2
- package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
- package/dist/components/presentation/auth/AuthOptionFactory.js +3 -15
- package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
- package/dist/contexts/Theme/ThemeContext.d.ts +0 -12
- package/dist/contexts/Theme/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/Theme/ThemeContext.js.map +1 -1
- package/dist/contexts/Theme/ThemeProvider.d.ts +0 -4
- package/dist/contexts/Theme/ThemeProvider.d.ts.map +1 -1
- package/dist/contexts/Theme/ThemeProvider.js +2 -5
- package/dist/contexts/Theme/ThemeProvider.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts +2 -3
- package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDContext.js +0 -2
- package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
- package/dist/contexts/ThunderID/ThunderIDProvider.js +15 -91
- package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
- package/dist/index.d.ts +4 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -27
- package/package.json +2 -2
- package/dist/api/createOrganization.d.ts +0 -86
- package/dist/api/createOrganization.d.ts.map +0 -1
- package/dist/api/createOrganization.js +0 -80
- package/dist/api/createOrganization.js.map +0 -1
- package/dist/api/getAllOrganizations.d.ts +0 -78
- package/dist/api/getAllOrganizations.d.ts.map +0 -1
- package/dist/api/getAllOrganizations.js +0 -71
- package/dist/api/getAllOrganizations.js.map +0 -1
- package/dist/api/getMeOrganizations.d.ts +0 -82
- package/dist/api/getMeOrganizations.d.ts.map +0 -1
- package/dist/api/getMeOrganizations.js +0 -75
- package/dist/api/getMeOrganizations.js.map +0 -1
- package/dist/api/getOrganization.d.ts +0 -74
- package/dist/api/getOrganization.d.ts.map +0 -1
- package/dist/api/getOrganization.js +0 -67
- package/dist/api/getOrganization.js.map +0 -1
- package/dist/api/getSchemas.d.ts +0 -72
- package/dist/api/getSchemas.d.ts.map +0 -1
- package/dist/api/getSchemas.js +0 -65
- package/dist/api/getSchemas.js.map +0 -1
- package/dist/api/updateOrganization.d.ts +0 -81
- package/dist/api/updateOrganization.d.ts.map +0 -1
- package/dist/api/updateOrganization.js +0 -74
- package/dist/api/updateOrganization.js.map +0 -1
- package/dist/cjs/api/createOrganization.cjs +0 -82
- package/dist/cjs/api/createOrganization.cjs.map +0 -1
- package/dist/cjs/api/getAllOrganizations.cjs +0 -73
- package/dist/cjs/api/getAllOrganizations.cjs.map +0 -1
- package/dist/cjs/api/getMeOrganizations.cjs +0 -77
- package/dist/cjs/api/getMeOrganizations.cjs.map +0 -1
- package/dist/cjs/api/getOrganization.cjs +0 -69
- package/dist/cjs/api/getOrganization.cjs.map +0 -1
- package/dist/cjs/api/getSchemas.cjs +0 -67
- package/dist/cjs/api/getSchemas.cjs.map +0 -1
- package/dist/cjs/api/updateOrganization.cjs +0 -76
- package/dist/cjs/api/updateOrganization.cjs.map +0 -1
- package/dist/cjs/components/control/OrganizationContext/OrganizationContext.cjs +0 -34
- package/dist/cjs/components/control/OrganizationContext/OrganizationContext.cjs.map +0 -1
- package/dist/cjs/components/control/OrganizationContext/OrganizationContextController.cjs +0 -58
- package/dist/cjs/components/control/OrganizationContext/OrganizationContextController.cjs.map +0 -1
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.cjs +0 -183
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.cjs.map +0 -1
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.styles.cjs +0 -150
- package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/CreateOrganization/CreateOrganization.cjs +0 -90
- package/dist/cjs/components/presentation/CreateOrganization/CreateOrganization.cjs.map +0 -1
- package/dist/cjs/components/presentation/Organization/BaseOrganization.cjs +0 -41
- package/dist/cjs/components/presentation/Organization/BaseOrganization.cjs.map +0 -1
- package/dist/cjs/components/presentation/Organization/Organization.cjs +0 -49
- package/dist/cjs/components/presentation/Organization/Organization.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.cjs +0 -257
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.styles.cjs +0 -236
- package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.cjs +0 -86
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.styles.cjs +0 -75
- package/dist/cjs/components/presentation/OrganizationList/OrganizationList.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.cjs +0 -328
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.cjs +0 -166
- package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationProfile/OrganizationProfile.cjs +0 -126
- package/dist/cjs/components/presentation/OrganizationProfile/OrganizationProfile.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.cjs +0 -288
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs +0 -237
- package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs.map +0 -1
- package/dist/cjs/components/presentation/OrganizationSwitcher/OrganizationSwitcher.cjs +0 -127
- package/dist/cjs/components/presentation/OrganizationSwitcher/OrganizationSwitcher.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.cjs +0 -183
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.cjs.map +0 -1
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.styles.cjs +0 -128
- package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.styles.cjs.map +0 -1
- package/dist/cjs/components/primitives/Icons/Building.cjs +0 -75
- package/dist/cjs/components/primitives/Icons/Building.cjs.map +0 -1
- package/dist/cjs/contexts/Branding/BrandingContext.cjs +0 -12
- package/dist/cjs/contexts/Branding/BrandingContext.cjs.map +0 -1
- package/dist/cjs/contexts/Branding/BrandingProvider.cjs +0 -96
- package/dist/cjs/contexts/Branding/BrandingProvider.cjs.map +0 -1
- package/dist/cjs/contexts/Branding/useBrandingContext.cjs +0 -40
- package/dist/cjs/contexts/Branding/useBrandingContext.cjs.map +0 -1
- package/dist/cjs/contexts/Organization/OrganizationContext.cjs +0 -27
- package/dist/cjs/contexts/Organization/OrganizationContext.cjs.map +0 -1
- package/dist/cjs/contexts/Organization/OrganizationProvider.cjs +0 -97
- package/dist/cjs/contexts/Organization/OrganizationProvider.cjs.map +0 -1
- package/dist/cjs/contexts/Organization/useOrganization.cjs +0 -100
- package/dist/cjs/contexts/Organization/useOrganization.cjs.map +0 -1
- package/dist/cjs/hooks/useBranding.cjs +0 -71
- package/dist/cjs/hooks/useBranding.cjs.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContext.d.ts +0 -40
- package/dist/components/control/OrganizationContext/OrganizationContext.d.ts.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContext.js +0 -32
- package/dist/components/control/OrganizationContext/OrganizationContext.js.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContextController.d.ts +0 -35
- package/dist/components/control/OrganizationContext/OrganizationContextController.d.ts.map +0 -1
- package/dist/components/control/OrganizationContext/OrganizationContextController.js +0 -55
- package/dist/components/control/OrganizationContext/OrganizationContextController.js.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts +0 -60
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.js +0 -178
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.js.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.d.ts +0 -27
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.d.ts.map +0 -1
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.js +0 -147
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.js.map +0 -1
- package/dist/components/presentation/CreateOrganization/CreateOrganization.d.ts +0 -68
- package/dist/components/presentation/CreateOrganization/CreateOrganization.d.ts.map +0 -1
- package/dist/components/presentation/CreateOrganization/CreateOrganization.js +0 -87
- package/dist/components/presentation/CreateOrganization/CreateOrganization.js.map +0 -1
- package/dist/components/presentation/Organization/BaseOrganization.d.ts +0 -67
- package/dist/components/presentation/Organization/BaseOrganization.d.ts.map +0 -1
- package/dist/components/presentation/Organization/BaseOrganization.js +0 -39
- package/dist/components/presentation/Organization/BaseOrganization.js.map +0 -1
- package/dist/components/presentation/Organization/Organization.d.ts +0 -67
- package/dist/components/presentation/Organization/Organization.d.ts.map +0 -1
- package/dist/components/presentation/Organization/Organization.js +0 -47
- package/dist/components/presentation/Organization/Organization.js.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts +0 -135
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.js +0 -252
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.js.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.js +0 -233
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.d.ts +0 -93
- package/dist/components/presentation/OrganizationList/OrganizationList.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.js +0 -82
- package/dist/components/presentation/OrganizationList/OrganizationList.js.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.js +0 -72
- package/dist/components/presentation/OrganizationList/OrganizationList.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts +0 -160
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.js +0 -323
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.js.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.js +0 -163
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.d.ts +0 -120
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.js +0 -122
- package/dist/components/presentation/OrganizationProfile/OrganizationProfile.js.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts +0 -149
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.js +0 -282
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.js.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.d.ts +0 -27
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.js +0 -234
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.js.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts +0 -71
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts.map +0 -1
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.js +0 -124
- package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.js.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.d.ts +0 -30
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.d.ts.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.js +0 -179
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.js.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.styles.d.ts +0 -21
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.styles.d.ts.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.styles.js +0 -125
- package/dist/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.styles.js.map +0 -1
- package/dist/components/presentation/auth/OrganizationUnitPicker/index.d.ts +0 -20
- package/dist/components/presentation/auth/OrganizationUnitPicker/index.d.ts.map +0 -1
- package/dist/components/primitives/Icons/Building.js +0 -73
- package/dist/components/primitives/Icons/Building.js.map +0 -1
- package/dist/contexts/Branding/BrandingContext.d.ts +0 -53
- package/dist/contexts/Branding/BrandingContext.d.ts.map +0 -1
- package/dist/contexts/Branding/BrandingContext.js +0 -10
- package/dist/contexts/Branding/BrandingContext.js.map +0 -1
- package/dist/contexts/Branding/BrandingProvider.d.ts +0 -89
- package/dist/contexts/Branding/BrandingProvider.d.ts.map +0 -1
- package/dist/contexts/Branding/BrandingProvider.js +0 -92
- package/dist/contexts/Branding/BrandingProvider.js.map +0 -1
- package/dist/contexts/Branding/useBrandingContext.d.ts +0 -45
- package/dist/contexts/Branding/useBrandingContext.d.ts.map +0 -1
- package/dist/contexts/Branding/useBrandingContext.js +0 -38
- package/dist/contexts/Branding/useBrandingContext.js.map +0 -1
- package/dist/contexts/Organization/OrganizationContext.d.ts +0 -41
- package/dist/contexts/Organization/OrganizationContext.d.ts.map +0 -1
- package/dist/contexts/Organization/OrganizationContext.js +0 -25
- package/dist/contexts/Organization/OrganizationContext.js.map +0 -1
- package/dist/contexts/Organization/OrganizationProvider.d.ts +0 -94
- package/dist/contexts/Organization/OrganizationProvider.d.ts.map +0 -1
- package/dist/contexts/Organization/OrganizationProvider.js +0 -93
- package/dist/contexts/Organization/OrganizationProvider.js.map +0 -1
- package/dist/contexts/Organization/useOrganization.d.ts +0 -105
- package/dist/contexts/Organization/useOrganization.d.ts.map +0 -1
- package/dist/contexts/Organization/useOrganization.js +0 -98
- package/dist/contexts/Organization/useOrganization.js.map +0 -1
- package/dist/hooks/useBranding.d.ts +0 -128
- package/dist/hooks/useBranding.d.ts.map +0 -1
- package/dist/hooks/useBranding.js +0 -69
- package/dist/hooks/useBranding.js.map +0 -1
package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
let react = require("react");
|
|
3
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
4
|
-
let __emotion_css = require("@emotion/css");
|
|
5
|
-
__emotion_css = require_rolldown_runtime.__toESM(__emotion_css);
|
|
6
|
-
|
|
7
|
-
//#region src/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.ts
|
|
8
|
-
/**
|
|
9
|
-
* Creates styles for the BaseOrganizationSwitcher component using BEM methodology
|
|
10
|
-
* @param theme - The theme object containing design tokens
|
|
11
|
-
* @param colorScheme - The current color scheme (used for memoization)
|
|
12
|
-
* @returns Object containing CSS class names for component styling
|
|
13
|
-
*/
|
|
14
|
-
const useStyles = (theme, colorScheme) => (0, react.useMemo)(() => {
|
|
15
|
-
const root = __emotion_css.css`
|
|
16
|
-
display: inline-block;
|
|
17
|
-
position: relative;
|
|
18
|
-
font-family: ${theme.vars.typography.fontFamily};
|
|
19
|
-
`;
|
|
20
|
-
const trigger = __emotion_css.css`
|
|
21
|
-
display: inline-flex;
|
|
22
|
-
align-items: center;
|
|
23
|
-
gap: ${theme.vars.spacing.unit};
|
|
24
|
-
padding: calc(${theme.vars.spacing.unit} * 0.75) ${theme.vars.spacing.unit};
|
|
25
|
-
border: 1px solid ${theme.vars.colors.border};
|
|
26
|
-
background: ${theme.vars.colors.background.surface};
|
|
27
|
-
cursor: pointer;
|
|
28
|
-
border-radius: ${theme.vars.borderRadius.medium};
|
|
29
|
-
min-width: 160px;
|
|
30
|
-
|
|
31
|
-
> span {
|
|
32
|
-
width: 100%;
|
|
33
|
-
gap: ${theme.vars.spacing.unit};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
&:hover {
|
|
37
|
-
background-color: ${theme.vars.colors.background.surface};
|
|
38
|
-
}
|
|
39
|
-
`;
|
|
40
|
-
const triggerLabel = __emotion_css.css`
|
|
41
|
-
color: ${theme.vars.colors.text.primary};
|
|
42
|
-
font-weight: 500;
|
|
43
|
-
overflow: hidden;
|
|
44
|
-
text-overflow: ellipsis;
|
|
45
|
-
white-space: nowrap;
|
|
46
|
-
flex: 1;
|
|
47
|
-
`;
|
|
48
|
-
const content = __emotion_css.css`
|
|
49
|
-
min-width: 280px;
|
|
50
|
-
max-width: 400px;
|
|
51
|
-
background-color: ${theme.vars.colors.background.surface};
|
|
52
|
-
border-radius: ${theme.vars.borderRadius.medium};
|
|
53
|
-
box-shadow: ${theme.vars.shadows.medium};
|
|
54
|
-
border: 1px solid ${theme.vars.colors.border};
|
|
55
|
-
outline: none;
|
|
56
|
-
z-index: 1000;
|
|
57
|
-
`;
|
|
58
|
-
const header = __emotion_css.css`
|
|
59
|
-
display: flex;
|
|
60
|
-
align-items: center;
|
|
61
|
-
gap: ${theme.vars.spacing.unit};
|
|
62
|
-
padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 2);
|
|
63
|
-
`;
|
|
64
|
-
const headerInfo = __emotion_css.css`
|
|
65
|
-
display: flex;
|
|
66
|
-
flex-direction: column;
|
|
67
|
-
gap: calc(${theme.vars.spacing.unit} / 4);
|
|
68
|
-
flex: 1;
|
|
69
|
-
min-width: 0;
|
|
70
|
-
overflow: hidden;
|
|
71
|
-
`;
|
|
72
|
-
const headerName = __emotion_css.css`
|
|
73
|
-
color: ${theme.vars.colors.text.primary};
|
|
74
|
-
font-size: 0.875rem;
|
|
75
|
-
font-weight: 500;
|
|
76
|
-
margin: 0;
|
|
77
|
-
overflow: hidden;
|
|
78
|
-
text-overflow: ellipsis;
|
|
79
|
-
white-space: nowrap;
|
|
80
|
-
`;
|
|
81
|
-
const headerMeta = __emotion_css.css`
|
|
82
|
-
color: ${theme.vars.colors.text.secondary};
|
|
83
|
-
font-size: 0.75rem;
|
|
84
|
-
margin: 0;
|
|
85
|
-
overflow: hidden;
|
|
86
|
-
text-overflow: ellipsis;
|
|
87
|
-
white-space: nowrap;
|
|
88
|
-
`;
|
|
89
|
-
const headerRole = __emotion_css.css`
|
|
90
|
-
color: ${theme.vars.colors.text.secondary};
|
|
91
|
-
font-size: 0.75rem;
|
|
92
|
-
margin: 0;
|
|
93
|
-
overflow: hidden;
|
|
94
|
-
text-overflow: ellipsis;
|
|
95
|
-
white-space: nowrap;
|
|
96
|
-
text-transform: capitalize;
|
|
97
|
-
`;
|
|
98
|
-
const manageButton = __emotion_css.css`
|
|
99
|
-
min-width: auto;
|
|
100
|
-
margin-inline-start: auto;
|
|
101
|
-
`;
|
|
102
|
-
const menu = __emotion_css.css`
|
|
103
|
-
display: flex;
|
|
104
|
-
flex-direction: column;
|
|
105
|
-
width: 100%;
|
|
106
|
-
`;
|
|
107
|
-
const menuItem = __emotion_css.css`
|
|
108
|
-
display: flex;
|
|
109
|
-
align-items: center;
|
|
110
|
-
justify-content: flex-start;
|
|
111
|
-
gap: ${theme.vars.spacing.unit};
|
|
112
|
-
padding: calc(${theme.vars.spacing.unit} * 1.5) calc(${theme.vars.spacing.unit} * 2);
|
|
113
|
-
width: 100%;
|
|
114
|
-
color: ${theme.vars.colors.text.primary};
|
|
115
|
-
text-decoration: none;
|
|
116
|
-
border: none;
|
|
117
|
-
background-color: transparent;
|
|
118
|
-
cursor: pointer;
|
|
119
|
-
font-size: 0.875rem;
|
|
120
|
-
text-align: start;
|
|
121
|
-
border-radius: ${theme.vars.borderRadius.medium};
|
|
122
|
-
transition: background-color 0.15s ease-in-out;
|
|
123
|
-
|
|
124
|
-
> span {
|
|
125
|
-
gap: ${theme.vars.spacing.unit};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
&:hover {
|
|
129
|
-
background-color: ${theme.vars.colors.action?.hover || "rgba(0, 0, 0, 0.04)"};
|
|
130
|
-
}
|
|
131
|
-
`;
|
|
132
|
-
const menuDivider = __emotion_css.css`
|
|
133
|
-
margin: calc(${theme.vars.spacing.unit} * 0.5) 0;
|
|
134
|
-
border-bottom: 1px solid ${theme.vars.colors.border};
|
|
135
|
-
`;
|
|
136
|
-
const organizationInfo = __emotion_css.css`
|
|
137
|
-
display: flex;
|
|
138
|
-
flex-direction: column;
|
|
139
|
-
gap: calc(${theme.vars.spacing.unit} / 4);
|
|
140
|
-
flex: 1;
|
|
141
|
-
min-width: 0;
|
|
142
|
-
overflow: hidden;
|
|
143
|
-
`;
|
|
144
|
-
const organizationName = __emotion_css.css`
|
|
145
|
-
color: ${theme.vars.colors.text.primary};
|
|
146
|
-
font-size: 0.875rem;
|
|
147
|
-
font-weight: 500;
|
|
148
|
-
margin: 0;
|
|
149
|
-
overflow: hidden;
|
|
150
|
-
text-overflow: ellipsis;
|
|
151
|
-
white-space: nowrap;
|
|
152
|
-
`;
|
|
153
|
-
const organizationMeta = __emotion_css.css`
|
|
154
|
-
color: ${theme.vars.colors.text.secondary};
|
|
155
|
-
font-size: 0.75rem;
|
|
156
|
-
margin: 0;
|
|
157
|
-
overflow: hidden;
|
|
158
|
-
text-overflow: ellipsis;
|
|
159
|
-
white-space: nowrap;
|
|
160
|
-
`;
|
|
161
|
-
const loadingContainer = __emotion_css.css`
|
|
162
|
-
display: flex;
|
|
163
|
-
align-items: center;
|
|
164
|
-
justify-content: center;
|
|
165
|
-
min-height: 80px;
|
|
166
|
-
gap: ${theme.vars.spacing.unit};
|
|
167
|
-
`;
|
|
168
|
-
const loadingText = __emotion_css.css`
|
|
169
|
-
color: ${theme.vars.colors.text.secondary};
|
|
170
|
-
font-size: 0.875rem;
|
|
171
|
-
`;
|
|
172
|
-
const errorContainer = __emotion_css.css`
|
|
173
|
-
display: flex;
|
|
174
|
-
align-items: center;
|
|
175
|
-
justify-content: center;
|
|
176
|
-
min-height: 80px;
|
|
177
|
-
padding: calc(${theme.vars.spacing.unit} * 2);
|
|
178
|
-
`;
|
|
179
|
-
const errorText = __emotion_css.css`
|
|
180
|
-
color: ${theme.vars.colors.text.secondary};
|
|
181
|
-
font-size: 0.875rem;
|
|
182
|
-
text-align: center;
|
|
183
|
-
`;
|
|
184
|
-
const sectionHeader = __emotion_css.css`
|
|
185
|
-
text-transform: uppercase;
|
|
186
|
-
letter-spacing: 0.05em;
|
|
187
|
-
color: ${theme.vars.colors.text.secondary};
|
|
188
|
-
`;
|
|
189
|
-
const sectionHeaderContainer = __emotion_css.css`
|
|
190
|
-
border-top: none;
|
|
191
|
-
border-bottom: none;
|
|
192
|
-
padding-bottom: calc(${theme.vars.spacing.unit} / 2);
|
|
193
|
-
`;
|
|
194
|
-
return {
|
|
195
|
-
content,
|
|
196
|
-
errorContainer,
|
|
197
|
-
errorText,
|
|
198
|
-
header,
|
|
199
|
-
headerInfo,
|
|
200
|
-
headerMeta,
|
|
201
|
-
headerName,
|
|
202
|
-
headerRole,
|
|
203
|
-
loadingContainer,
|
|
204
|
-
loadingText,
|
|
205
|
-
manageButton,
|
|
206
|
-
menu,
|
|
207
|
-
menuDivider,
|
|
208
|
-
menuItem,
|
|
209
|
-
organizationInfo,
|
|
210
|
-
organizationMeta,
|
|
211
|
-
organizationName,
|
|
212
|
-
roleCapitalized: __emotion_css.css`
|
|
213
|
-
text-transform: capitalize;
|
|
214
|
-
`,
|
|
215
|
-
root,
|
|
216
|
-
sectionHeader,
|
|
217
|
-
sectionHeaderContainer,
|
|
218
|
-
trigger,
|
|
219
|
-
triggerLabel
|
|
220
|
-
};
|
|
221
|
-
}, [
|
|
222
|
-
theme.vars.colors.background.surface,
|
|
223
|
-
theme.vars.colors.text.primary,
|
|
224
|
-
theme.vars.colors.text.secondary,
|
|
225
|
-
theme.vars.colors.border,
|
|
226
|
-
theme.vars.borderRadius.medium,
|
|
227
|
-
theme.vars.shadows.medium,
|
|
228
|
-
theme.vars.spacing.unit,
|
|
229
|
-
theme.vars.colors.action?.hover,
|
|
230
|
-
theme.vars.typography.fontFamily,
|
|
231
|
-
colorScheme
|
|
232
|
-
]);
|
|
233
|
-
var BaseOrganizationSwitcher_styles_default = useStyles;
|
|
234
|
-
|
|
235
|
-
//#endregion
|
|
236
|
-
exports.default = BaseOrganizationSwitcher_styles_default;
|
|
237
|
-
//# sourceMappingURL=BaseOrganizationSwitcher.styles.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseOrganizationSwitcher.styles.cjs","names":["root: string","trigger: string","triggerLabel: string","content: string","header: string","headerInfo: string","headerName: string","headerMeta: string","headerRole: string","manageButton: string","menu: string","menuItem: string","menuDivider: string","organizationInfo: string","organizationName: string","organizationMeta: string","loadingContainer: string","loadingText: string","errorContainer: string","errorText: string","sectionHeader: string","sectionHeaderContainer: string"],"sources":["../../../../../src/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.ts"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {css} from '@emotion/css';\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\n/**\n * Creates styles for the BaseOrganizationSwitcher component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @returns Object containing CSS class names for component styling\n */\n\nconst useStyles = (theme: Theme, colorScheme: string): Record<string, string> =>\n useMemo(() => {\n const root: string = css`\n display: inline-block;\n position: relative;\n font-family: ${theme.vars.typography.fontFamily};\n `;\n\n const trigger: string = css`\n display: inline-flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n padding: calc(${theme.vars.spacing.unit} * 0.75) ${theme.vars.spacing.unit};\n border: 1px solid ${theme.vars.colors.border};\n background: ${theme.vars.colors.background.surface};\n cursor: pointer;\n border-radius: ${theme.vars.borderRadius.medium};\n min-width: 160px;\n\n > span {\n width: 100%;\n gap: ${theme.vars.spacing.unit};\n }\n\n &:hover {\n background-color: ${theme.vars.colors.background.surface};\n }\n `;\n\n const triggerLabel: string = css`\n color: ${theme.vars.colors.text.primary};\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n `;\n\n const content: string = css`\n min-width: 280px;\n max-width: 400px;\n background-color: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.medium};\n box-shadow: ${theme.vars.shadows.medium};\n border: 1px solid ${theme.vars.colors.border};\n outline: none;\n z-index: 1000;\n `;\n\n const header: string = css`\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const headerInfo: string = css`\n display: flex;\n flex-direction: column;\n gap: calc(${theme.vars.spacing.unit} / 4);\n flex: 1;\n min-width: 0;\n overflow: hidden;\n `;\n\n const headerName: string = css`\n color: ${theme.vars.colors.text.primary};\n font-size: 0.875rem;\n font-weight: 500;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n\n const headerMeta: string = css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.75rem;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n\n const headerRole: string = css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.75rem;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-transform: capitalize;\n `;\n\n const manageButton: string = css`\n min-width: auto;\n margin-inline-start: auto;\n `;\n\n const menu: string = css`\n display: flex;\n flex-direction: column;\n width: 100%;\n `;\n\n const menuItem: string = css`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: ${theme.vars.spacing.unit};\n padding: calc(${theme.vars.spacing.unit} * 1.5) calc(${theme.vars.spacing.unit} * 2);\n width: 100%;\n color: ${theme.vars.colors.text.primary};\n text-decoration: none;\n border: none;\n background-color: transparent;\n cursor: pointer;\n font-size: 0.875rem;\n text-align: start;\n border-radius: ${theme.vars.borderRadius.medium};\n transition: background-color 0.15s ease-in-out;\n\n > span {\n gap: ${theme.vars.spacing.unit};\n }\n\n &:hover {\n background-color: ${theme.vars.colors.action?.hover || 'rgba(0, 0, 0, 0.04)'};\n }\n `;\n\n const menuDivider: string = css`\n margin: calc(${theme.vars.spacing.unit} * 0.5) 0;\n border-bottom: 1px solid ${theme.vars.colors.border};\n `;\n\n const organizationInfo: string = css`\n display: flex;\n flex-direction: column;\n gap: calc(${theme.vars.spacing.unit} / 4);\n flex: 1;\n min-width: 0;\n overflow: hidden;\n `;\n\n const organizationName: string = css`\n color: ${theme.vars.colors.text.primary};\n font-size: 0.875rem;\n font-weight: 500;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n\n const organizationMeta: string = css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.75rem;\n margin: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `;\n\n const loadingContainer: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 80px;\n gap: ${theme.vars.spacing.unit};\n `;\n\n const loadingText: string = css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.875rem;\n `;\n\n const errorContainer: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 80px;\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const errorText: string = css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.875rem;\n text-align: center;\n `;\n\n const sectionHeader: string = css`\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: ${theme.vars.colors.text.secondary};\n `;\n\n const sectionHeaderContainer: string = css`\n border-top: none;\n border-bottom: none;\n padding-bottom: calc(${theme.vars.spacing.unit} / 2);\n `;\n\n const roleCapitalized: string = css`\n text-transform: capitalize;\n `;\n\n return {\n content,\n errorContainer,\n errorText,\n header,\n headerInfo,\n headerMeta,\n headerName,\n headerRole,\n loadingContainer,\n loadingText,\n manageButton,\n menu,\n menuDivider,\n menuItem,\n organizationInfo,\n organizationMeta,\n organizationName,\n roleCapitalized,\n root,\n sectionHeader,\n sectionHeaderContainer,\n trigger,\n triggerLabel,\n };\n }, [\n theme.vars.colors.background.surface,\n theme.vars.colors.text.primary,\n theme.vars.colors.text.secondary,\n theme.vars.colors.border,\n theme.vars.borderRadius.medium,\n theme.vars.shadows.medium,\n theme.vars.spacing.unit,\n theme.vars.colors.action?.hover,\n theme.vars.typography.fontFamily,\n colorScheme,\n ]);\n\nexport default useStyles;\n"],"mappings":"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"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_useThunderID = require('../../../contexts/ThunderID/useThunderID.cjs');
|
|
3
|
-
const require_useOrganization = require('../../../contexts/Organization/useOrganization.cjs');
|
|
4
|
-
const require_useTranslation = require('../../../hooks/useTranslation.cjs');
|
|
5
|
-
const require_BaseOrganizationSwitcher = require('./BaseOrganizationSwitcher.cjs');
|
|
6
|
-
const require_BuildingAlt = require('../../primitives/Icons/BuildingAlt.cjs');
|
|
7
|
-
const require_CreateOrganization = require('../CreateOrganization/CreateOrganization.cjs');
|
|
8
|
-
const require_OrganizationList = require('../OrganizationList/OrganizationList.cjs');
|
|
9
|
-
const require_OrganizationProfile = require('../OrganizationProfile/OrganizationProfile.cjs');
|
|
10
|
-
let react = require("react");
|
|
11
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
12
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
13
|
-
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
14
|
-
|
|
15
|
-
//#region src/components/presentation/OrganizationSwitcher/OrganizationSwitcher.tsx
|
|
16
|
-
/**
|
|
17
|
-
* OrganizationSwitcher component that provides organization switching functionality.
|
|
18
|
-
* This component automatically retrieves organizations from the OrganizationContext.
|
|
19
|
-
* You can also override the organizations, currentOrganization, and onOrganizationSwitch
|
|
20
|
-
* by passing them as props.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```tsx
|
|
24
|
-
* import { OrganizationSwitcher } from '@thunderid/react';
|
|
25
|
-
*
|
|
26
|
-
* // Basic usage - uses OrganizationContext
|
|
27
|
-
* <OrganizationSwitcher />
|
|
28
|
-
*
|
|
29
|
-
* // With custom organization switch handler
|
|
30
|
-
* <OrganizationSwitcher
|
|
31
|
-
* onOrganizationSwitch={(org) => {
|
|
32
|
-
* console.log('Switching to:', org.name);
|
|
33
|
-
* // Custom logic here
|
|
34
|
-
* }}
|
|
35
|
-
* />
|
|
36
|
-
*
|
|
37
|
-
* // With fallback for unauthenticated users
|
|
38
|
-
* <OrganizationSwitcher
|
|
39
|
-
* fallback={<div>Please sign in to view organizations</div>}
|
|
40
|
-
* />
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
const OrganizationSwitcher = ({ currentOrganization: propCurrentOrganization, fallback = null, onOrganizationSwitch: propOnOrganizationSwitch, organizations: propOrganizations, preferences,...props }) => {
|
|
44
|
-
const { isSignedIn } = require_useThunderID.default();
|
|
45
|
-
const { currentOrganization: contextCurrentOrganization, myOrganizations: contextOrganizations, switchOrganization, isLoading, error } = require_useOrganization.default();
|
|
46
|
-
const [isCreateOrgOpen, setIsCreateOrgOpen] = (0, react.useState)(false);
|
|
47
|
-
const [isProfileOpen, setIsProfileOpen] = (0, react.useState)(false);
|
|
48
|
-
const [isOrganizationListOpen, setIsOrganizationListOpen] = (0, react.useState)(false);
|
|
49
|
-
const { t } = require_useTranslation.default(preferences?.i18n);
|
|
50
|
-
if (!isSignedIn && fallback) return fallback;
|
|
51
|
-
if (!isSignedIn) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
|
|
52
|
-
const organizations = propOrganizations || contextOrganizations || [];
|
|
53
|
-
const currentOrganization = propCurrentOrganization || contextCurrentOrganization || void 0;
|
|
54
|
-
const onOrganizationSwitch = propOnOrganizationSwitch || switchOrganization;
|
|
55
|
-
const handleManageOrganizations = () => {
|
|
56
|
-
setIsOrganizationListOpen(true);
|
|
57
|
-
};
|
|
58
|
-
const handleManageOrganization = () => {
|
|
59
|
-
setIsProfileOpen(true);
|
|
60
|
-
};
|
|
61
|
-
const defaultMenuItems = [];
|
|
62
|
-
if (currentOrganization) defaultMenuItems.push({
|
|
63
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BuildingAlt.default, {}),
|
|
64
|
-
label: t("organization.switcher.manage.organizations"),
|
|
65
|
-
onClick: handleManageOrganizations
|
|
66
|
-
});
|
|
67
|
-
defaultMenuItems.push({
|
|
68
|
-
icon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
69
|
-
width: "16",
|
|
70
|
-
height: "16",
|
|
71
|
-
viewBox: "0 0 24 24",
|
|
72
|
-
fill: "none",
|
|
73
|
-
stroke: "currentColor",
|
|
74
|
-
strokeWidth: "2",
|
|
75
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M12 5v14m-7-7h14" })
|
|
76
|
-
}),
|
|
77
|
-
label: t("organization.switcher.create.organization"),
|
|
78
|
-
onClick: () => setIsCreateOrgOpen(true)
|
|
79
|
-
});
|
|
80
|
-
const menuItems = props.menuItems ? [...defaultMenuItems, ...props.menuItems] : defaultMenuItems;
|
|
81
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
82
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BaseOrganizationSwitcher.BaseOrganizationSwitcher, {
|
|
83
|
-
organizations,
|
|
84
|
-
currentOrganization,
|
|
85
|
-
onOrganizationSwitch,
|
|
86
|
-
loading: isLoading,
|
|
87
|
-
error: error ?? void 0,
|
|
88
|
-
menuItems,
|
|
89
|
-
onManageProfile: handleManageOrganization,
|
|
90
|
-
preferences,
|
|
91
|
-
...props
|
|
92
|
-
}),
|
|
93
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CreateOrganization.CreateOrganization, {
|
|
94
|
-
mode: "popup",
|
|
95
|
-
open: isCreateOrgOpen,
|
|
96
|
-
onOpenChange: setIsCreateOrgOpen,
|
|
97
|
-
onSuccess: (org) => {
|
|
98
|
-
if (org && onOrganizationSwitch) onOrganizationSwitch(org);
|
|
99
|
-
setIsCreateOrgOpen(false);
|
|
100
|
-
}
|
|
101
|
-
}),
|
|
102
|
-
currentOrganization && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_OrganizationProfile.default, {
|
|
103
|
-
organizationId: currentOrganization.id,
|
|
104
|
-
mode: "popup",
|
|
105
|
-
open: isProfileOpen,
|
|
106
|
-
onOpenChange: setIsProfileOpen,
|
|
107
|
-
cardLayout: true,
|
|
108
|
-
loadingFallback: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: t("organization.profile.loading") }),
|
|
109
|
-
errorFallback: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: t("organization.profile.error") })
|
|
110
|
-
}),
|
|
111
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_OrganizationList.default, {
|
|
112
|
-
mode: "popup",
|
|
113
|
-
open: isOrganizationListOpen,
|
|
114
|
-
onOpenChange: setIsOrganizationListOpen,
|
|
115
|
-
title: t("organization.switcher.manage.organizations"),
|
|
116
|
-
onOrganizationSelect: (organization) => {
|
|
117
|
-
if (onOrganizationSwitch) onOrganizationSwitch(organization);
|
|
118
|
-
setIsOrganizationListOpen(false);
|
|
119
|
-
}
|
|
120
|
-
})
|
|
121
|
-
] });
|
|
122
|
-
};
|
|
123
|
-
var OrganizationSwitcher_default = OrganizationSwitcher;
|
|
124
|
-
|
|
125
|
-
//#endregion
|
|
126
|
-
exports.default = OrganizationSwitcher_default;
|
|
127
|
-
//# sourceMappingURL=OrganizationSwitcher.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationSwitcher.cjs","names":["OrganizationSwitcher: FC<OrganizationSwitcherProps>","useThunderID","useOrganization","useTranslation","organizations: Organization[]","currentOrganization: Organization | undefined","onOrganizationSwitch: (organization: Organization) => Promise<void> | void","defaultMenuItems: {icon?: ReactElement; label: string; onClick: () => void}[]","BuildingAlt","menuItems: any[]","BaseOrganizationSwitcherComponent","CreateOrganization","OrganizationProfile","OrganizationListComponent"],"sources":["../../../../../src/components/presentation/OrganizationSwitcher/OrganizationSwitcher.tsx"],"sourcesContent":["/**\n * Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {FC, ReactElement, useState} from 'react';\n\nimport {\n BaseOrganizationSwitcher as BaseOrganizationSwitcherComponent,\n BaseOrganizationSwitcherProps,\n Organization,\n} from './BaseOrganizationSwitcher';\nimport useOrganization from '../../../contexts/Organization/useOrganization';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useTranslation from '../../../hooks/useTranslation';\nimport BuildingAlt from '../../primitives/Icons/BuildingAlt';\nimport {CreateOrganization} from '../CreateOrganization/CreateOrganization';\nimport OrganizationListComponent from '../OrganizationList/OrganizationList';\nimport OrganizationProfile from '../OrganizationProfile/OrganizationProfile';\n\n/**\n * Props interface for the OrganizationSwitcher component.\n * Makes organizations optional since they'll be retrieved from OrganizationContext.\n */\nexport interface OrganizationSwitcherProps\n extends Omit<BaseOrganizationSwitcherProps, 'organizations' | 'currentOrganization' | 'onOrganizationSwitch'> {\n /**\n * Optional override for current organization (will use context if not provided)\n */\n currentOrganization?: Organization;\n /**\n * Fallback element to render when the user is not signed in.\n */\n fallback?: ReactElement | null;\n /**\n * Optional callback for organization switch (will use context if not provided)\n */\n onOrganizationSwitch?: (organization: Organization) => Promise<void> | void;\n /**\n * Optional override for organizations list (will use context if not provided)\n */\n organizations?: Organization[];\n}\n\n/**\n * OrganizationSwitcher component that provides organization switching functionality.\n * This component automatically retrieves organizations from the OrganizationContext.\n * You can also override the organizations, currentOrganization, and onOrganizationSwitch\n * by passing them as props.\n *\n * @example\n * ```tsx\n * import { OrganizationSwitcher } from '@thunderid/react';\n *\n * // Basic usage - uses OrganizationContext\n * <OrganizationSwitcher />\n *\n * // With custom organization switch handler\n * <OrganizationSwitcher\n * onOrganizationSwitch={(org) => {\n * console.log('Switching to:', org.name);\n * // Custom logic here\n * }}\n * />\n *\n * // With fallback for unauthenticated users\n * <OrganizationSwitcher\n * fallback={<div>Please sign in to view organizations</div>}\n * />\n * ```\n */\nexport const OrganizationSwitcher: FC<OrganizationSwitcherProps> = ({\n currentOrganization: propCurrentOrganization,\n fallback = null,\n onOrganizationSwitch: propOnOrganizationSwitch,\n organizations: propOrganizations,\n preferences,\n ...props\n}: OrganizationSwitcherProps): ReactElement | null => {\n const {isSignedIn} = useThunderID();\n const {\n currentOrganization: contextCurrentOrganization,\n myOrganizations: contextOrganizations,\n switchOrganization,\n isLoading,\n error,\n } = useOrganization();\n const [isCreateOrgOpen, setIsCreateOrgOpen] = useState(false);\n const [isProfileOpen, setIsProfileOpen] = useState(false);\n const [isOrganizationListOpen, setIsOrganizationListOpen] = useState(false);\n const {t} = useTranslation(preferences?.i18n);\n\n if (!isSignedIn && fallback) {\n return fallback;\n }\n\n if (!isSignedIn) {\n return <></>;\n }\n\n const organizations: Organization[] = propOrganizations || contextOrganizations || [];\n const currentOrganization: Organization | undefined =\n propCurrentOrganization || contextCurrentOrganization || undefined;\n const onOrganizationSwitch: (organization: Organization) => Promise<void> | void =\n propOnOrganizationSwitch || switchOrganization;\n\n const handleManageOrganizations = (): void => {\n setIsOrganizationListOpen(true);\n };\n\n const handleManageOrganization = (): void => {\n setIsProfileOpen(true);\n };\n\n const defaultMenuItems: {icon?: ReactElement; label: string; onClick: () => void}[] = [];\n\n if (currentOrganization) {\n defaultMenuItems.push({\n icon: <BuildingAlt />,\n label: t('organization.switcher.manage.organizations'),\n onClick: handleManageOrganizations,\n });\n }\n\n defaultMenuItems.push({\n icon: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M12 5v14m-7-7h14\" />\n </svg>\n ),\n label: t('organization.switcher.create.organization'),\n onClick: (): void => setIsCreateOrgOpen(true),\n });\n\n const menuItems: any[] = props.menuItems ? [...defaultMenuItems, ...props.menuItems] : defaultMenuItems;\n\n return (\n <>\n <BaseOrganizationSwitcherComponent\n organizations={organizations}\n currentOrganization={currentOrganization}\n onOrganizationSwitch={onOrganizationSwitch}\n loading={isLoading}\n error={error ?? undefined}\n menuItems={menuItems}\n onManageProfile={handleManageOrganization}\n preferences={preferences}\n {...props}\n />\n <CreateOrganization\n mode=\"popup\"\n open={isCreateOrgOpen}\n onOpenChange={setIsCreateOrgOpen}\n onSuccess={(org: Organization): void => {\n if (org && onOrganizationSwitch) {\n onOrganizationSwitch(org);\n }\n setIsCreateOrgOpen(false);\n }}\n />\n {currentOrganization && (\n <OrganizationProfile\n organizationId={currentOrganization.id}\n mode=\"popup\"\n open={isProfileOpen}\n onOpenChange={setIsProfileOpen}\n cardLayout={true}\n loadingFallback={<div>{t('organization.profile.loading')}</div>}\n errorFallback={<div>{t('organization.profile.error')}</div>}\n />\n )}\n <OrganizationListComponent\n mode=\"popup\"\n open={isOrganizationListOpen}\n onOpenChange={setIsOrganizationListOpen}\n title={t('organization.switcher.manage.organizations')}\n onOrganizationSelect={(organization: Organization): void => {\n if (onOrganizationSwitch) {\n onOrganizationSwitch(organization);\n }\n setIsOrganizationListOpen(false);\n }}\n />\n </>\n );\n};\n\nexport default OrganizationSwitcher;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,MAAaA,wBAAuD,EAClE,qBAAqB,yBACrB,WAAW,MACX,sBAAsB,0BACtB,eAAe,mBACf,YACA,GAAG,YACiD;CACpD,MAAM,EAAC,eAAcC,8BAAc;CACnC,MAAM,EACJ,qBAAqB,4BACrB,iBAAiB,sBACjB,oBACA,WACA,UACEC,iCAAiB;CACrB,MAAM,CAAC,iBAAiB,0CAA+B,MAAM;CAC7D,MAAM,CAAC,eAAe,wCAA6B,MAAM;CACzD,MAAM,CAAC,wBAAwB,iDAAsC,MAAM;CAC3E,MAAM,EAAC,MAAKC,+BAAe,aAAa,KAAK;AAE7C,KAAI,CAAC,cAAc,SACjB,QAAO;AAGT,KAAI,CAAC,WACH,QAAO,0EAAK;CAGd,MAAMC,gBAAgC,qBAAqB,wBAAwB,EAAE;CACrF,MAAMC,sBACJ,2BAA2B,8BAA8B;CAC3D,MAAMC,uBACJ,4BAA4B;CAE9B,MAAM,kCAAwC;AAC5C,4BAA0B,KAAK;;CAGjC,MAAM,iCAAuC;AAC3C,mBAAiB,KAAK;;CAGxB,MAAMC,mBAAgF,EAAE;AAExF,KAAI,oBACF,kBAAiB,KAAK;EACpB,MAAM,2CAACC,gCAAc;EACrB,OAAO,EAAE,6CAA6C;EACtD,SAAS;EACV,CAAC;AAGJ,kBAAiB,KAAK;EACpB,MACE,2CAAC;GAAI,OAAM;GAAK,QAAO;GAAK,SAAQ;GAAY,MAAK;GAAO,QAAO;GAAe,aAAY;aAC5F,2CAAC,UAAK,GAAE,qBAAqB;IACzB;EAER,OAAO,EAAE,4CAA4C;EACrD,eAAqB,mBAAmB,KAAK;EAC9C,CAAC;CAEF,MAAMC,YAAmB,MAAM,YAAY,CAAC,GAAG,kBAAkB,GAAG,MAAM,UAAU,GAAG;AAEvF,QACE;EACE,2CAACC;GACgB;GACM;GACC;GACtB,SAAS;GACT,OAAO,SAAS;GACL;GACX,iBAAiB;GACJ;GACb,GAAI;IACJ;EACF,2CAACC;GACC,MAAK;GACL,MAAM;GACN,cAAc;GACd,YAAY,QAA4B;AACtC,QAAI,OAAO,qBACT,sBAAqB,IAAI;AAE3B,uBAAmB,MAAM;;IAE3B;EACD,uBACC,2CAACC;GACC,gBAAgB,oBAAoB;GACpC,MAAK;GACL,MAAM;GACN,cAAc;GACd,YAAY;GACZ,iBAAiB,2CAAC,mBAAK,EAAE,+BAA+B,GAAO;GAC/D,eAAe,2CAAC,mBAAK,EAAE,6BAA6B,GAAO;IAC3D;EAEJ,2CAACC;GACC,MAAK;GACL,MAAM;GACN,cAAc;GACd,OAAO,EAAE,6CAA6C;GACtD,uBAAuB,iBAAqC;AAC1D,QAAI,qBACF,sBAAqB,aAAa;AAEpC,8BAA0B,MAAM;;IAElC;KACD;;AAIP,mCAAe"}
|
package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.cjs
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.cjs');
|
|
2
|
-
const require_useTheme = require('../../../../contexts/Theme/useTheme.cjs');
|
|
3
|
-
const require_OrganizationUnitPicker_styles = require('./OrganizationUnitPicker.styles.cjs');
|
|
4
|
-
let react = require("react");
|
|
5
|
-
react = require_rolldown_runtime.__toESM(react);
|
|
6
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime);
|
|
8
|
-
let __emotion_css = require("@emotion/css");
|
|
9
|
-
__emotion_css = require_rolldown_runtime.__toESM(__emotion_css);
|
|
10
|
-
|
|
11
|
-
//#region src/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.tsx
|
|
12
|
-
const OrganizationUnitPicker = ({ rootOuId, selectedOuId, onSelect, fetchChildren, pageSize = 10, className }) => {
|
|
13
|
-
const { theme } = require_useTheme.default();
|
|
14
|
-
const styles = require_OrganizationUnitPicker_styles.default(theme);
|
|
15
|
-
const [nodeStates, setNodeStates] = (0, react.useState)({});
|
|
16
|
-
const loadChildren = (0, react.useCallback)(async (parentId, offset = 0) => {
|
|
17
|
-
setNodeStates((prev) => ({
|
|
18
|
-
...prev,
|
|
19
|
-
[parentId]: {
|
|
20
|
-
...prev[parentId] || {
|
|
21
|
-
children: [],
|
|
22
|
-
expanded: true,
|
|
23
|
-
hasMore: false,
|
|
24
|
-
offset: 0,
|
|
25
|
-
totalResults: 0
|
|
26
|
-
},
|
|
27
|
-
loading: true
|
|
28
|
-
}
|
|
29
|
-
}));
|
|
30
|
-
try {
|
|
31
|
-
const response = await fetchChildren(parentId, pageSize, offset);
|
|
32
|
-
const newChildren = response.organizationUnits || [];
|
|
33
|
-
setNodeStates((prev) => {
|
|
34
|
-
const existing = prev[parentId] || {
|
|
35
|
-
children: [],
|
|
36
|
-
expanded: true,
|
|
37
|
-
hasMore: false,
|
|
38
|
-
loading: false,
|
|
39
|
-
offset: 0,
|
|
40
|
-
totalResults: 0
|
|
41
|
-
};
|
|
42
|
-
const mergedChildren = offset === 0 ? newChildren : [...existing.children, ...newChildren];
|
|
43
|
-
const newOffset = offset + newChildren.length;
|
|
44
|
-
return {
|
|
45
|
-
...prev,
|
|
46
|
-
[parentId]: {
|
|
47
|
-
children: mergedChildren,
|
|
48
|
-
expanded: true,
|
|
49
|
-
hasMore: newOffset < response.totalResults,
|
|
50
|
-
loading: false,
|
|
51
|
-
offset: newOffset,
|
|
52
|
-
totalResults: response.totalResults
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
} catch {
|
|
57
|
-
setNodeStates((prev) => ({
|
|
58
|
-
...prev,
|
|
59
|
-
[parentId]: {
|
|
60
|
-
...prev[parentId] || {
|
|
61
|
-
children: [],
|
|
62
|
-
expanded: true,
|
|
63
|
-
hasMore: false,
|
|
64
|
-
offset: 0,
|
|
65
|
-
totalResults: 0
|
|
66
|
-
},
|
|
67
|
-
loading: false
|
|
68
|
-
}
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
}, [fetchChildren, pageSize]);
|
|
72
|
-
(0, react.useEffect)(() => {
|
|
73
|
-
if (rootOuId && !nodeStates[rootOuId]) loadChildren(rootOuId);
|
|
74
|
-
}, [
|
|
75
|
-
rootOuId,
|
|
76
|
-
loadChildren,
|
|
77
|
-
nodeStates
|
|
78
|
-
]);
|
|
79
|
-
const handleToggle = (0, react.useCallback)((ouId) => {
|
|
80
|
-
const state = nodeStates[ouId];
|
|
81
|
-
if (state?.expanded) setNodeStates((prev) => ({
|
|
82
|
-
...prev,
|
|
83
|
-
[ouId]: {
|
|
84
|
-
...prev[ouId],
|
|
85
|
-
expanded: false
|
|
86
|
-
}
|
|
87
|
-
}));
|
|
88
|
-
else if (state?.children.length) setNodeStates((prev) => ({
|
|
89
|
-
...prev,
|
|
90
|
-
[ouId]: {
|
|
91
|
-
...prev[ouId],
|
|
92
|
-
expanded: true
|
|
93
|
-
}
|
|
94
|
-
}));
|
|
95
|
-
else loadChildren(ouId);
|
|
96
|
-
}, [nodeStates, loadChildren]);
|
|
97
|
-
const handleLoadMore = (0, react.useCallback)((parentId) => {
|
|
98
|
-
const state = nodeStates[parentId];
|
|
99
|
-
if (state) loadChildren(parentId, state.offset);
|
|
100
|
-
}, [nodeStates, loadChildren]);
|
|
101
|
-
const renderLoadingPlaceholders = (depth) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: [
|
|
102
|
-
0,
|
|
103
|
-
1,
|
|
104
|
-
2
|
|
105
|
-
].map((i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
106
|
-
className: styles["loadingPlaceholder"],
|
|
107
|
-
style: { paddingLeft: `${(depth + 1) * 20}px` },
|
|
108
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
109
|
-
className: styles["skeleton"],
|
|
110
|
-
style: { width: `${100 - i * 20}px` }
|
|
111
|
-
})
|
|
112
|
-
}, `skeleton-${i}`)) });
|
|
113
|
-
const renderNode = (ou, depth = 0) => {
|
|
114
|
-
const state = nodeStates[ou.id];
|
|
115
|
-
const isSelected = selectedOuId === ou.id;
|
|
116
|
-
const isExpanded = state?.expanded || false;
|
|
117
|
-
const isLoading = state?.loading || false;
|
|
118
|
-
const hasChildren = !state || state.totalResults > 0 || state.children.length > 0;
|
|
119
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.default.Fragment, { children: [
|
|
120
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
121
|
-
className: (0, __emotion_css.cx)(styles["node"], isSelected && styles["nodeSelected"]),
|
|
122
|
-
style: { paddingLeft: `${depth * 20 + 12}px` },
|
|
123
|
-
role: "treeitem",
|
|
124
|
-
"aria-selected": isSelected,
|
|
125
|
-
"aria-expanded": hasChildren ? isExpanded : void 0,
|
|
126
|
-
onClick: () => onSelect(ou.id),
|
|
127
|
-
onKeyDown: (e) => {
|
|
128
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
129
|
-
e.preventDefault();
|
|
130
|
-
onSelect(ou.id);
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
tabIndex: 0,
|
|
134
|
-
children: [hasChildren ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
135
|
-
className: styles["toggleButton"],
|
|
136
|
-
onClick: (e) => {
|
|
137
|
-
e.stopPropagation();
|
|
138
|
-
handleToggle(ou.id);
|
|
139
|
-
},
|
|
140
|
-
"aria-label": isExpanded ? "Collapse" : "Expand",
|
|
141
|
-
type: "button",
|
|
142
|
-
children: isExpanded ? "▾" : "▸"
|
|
143
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: styles["togglePlaceholder"] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
144
|
-
className: styles["nodeName"],
|
|
145
|
-
children: ou.name
|
|
146
|
-
})]
|
|
147
|
-
}),
|
|
148
|
-
isExpanded && isLoading && !state?.children.length && renderLoadingPlaceholders(depth),
|
|
149
|
-
isExpanded && state?.children.map((child) => renderNode(child, depth + 1)),
|
|
150
|
-
isExpanded && state?.hasMore && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
151
|
-
className: styles["loadMoreButton"],
|
|
152
|
-
style: { paddingLeft: `${(depth + 1) * 20 + 12}px` },
|
|
153
|
-
onClick: () => handleLoadMore(ou.id),
|
|
154
|
-
disabled: isLoading,
|
|
155
|
-
type: "button",
|
|
156
|
-
children: isLoading ? "Loading..." : "Load more"
|
|
157
|
-
})
|
|
158
|
-
] }, ou.id);
|
|
159
|
-
};
|
|
160
|
-
const rootState = nodeStates[rootOuId];
|
|
161
|
-
const isRootLoading = rootState?.loading && !rootState?.children.length;
|
|
162
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
163
|
-
className: (0, __emotion_css.cx)(styles["container"], className),
|
|
164
|
-
role: "tree",
|
|
165
|
-
"aria-label": "Organization unit picker",
|
|
166
|
-
children: [
|
|
167
|
-
isRootLoading && renderLoadingPlaceholders(0),
|
|
168
|
-
rootState?.children.map((ou) => renderNode(ou, 0)),
|
|
169
|
-
rootState?.hasMore && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
170
|
-
className: styles["loadMoreButton"],
|
|
171
|
-
onClick: () => handleLoadMore(rootOuId),
|
|
172
|
-
disabled: rootState?.loading,
|
|
173
|
-
type: "button",
|
|
174
|
-
children: rootState?.loading ? "Loading..." : "Load more"
|
|
175
|
-
})
|
|
176
|
-
]
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
var OrganizationUnitPicker_default = OrganizationUnitPicker;
|
|
180
|
-
|
|
181
|
-
//#endregion
|
|
182
|
-
exports.default = OrganizationUnitPicker_default;
|
|
183
|
-
//# sourceMappingURL=OrganizationUnitPicker.cjs.map
|
package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationUnitPicker.cjs","names":["useTheme","styles: Record<string, string>","useStyles","loadChildren: (parentId: string, offset?: number) => Promise<void>","response: OrganizationUnitListResponse","newChildren: OrganizationUnit[]","existing: NodeState","mergedChildren: OrganizationUnit[]","newOffset: number","handleToggle: (ouId: string) => void","state: NodeState | undefined","handleLoadMore: (parentId: string) => void","isSelected: boolean","isExpanded: boolean","isLoading: boolean","hasChildren: boolean","React","rootState: NodeState | undefined","isRootLoading: boolean"],"sources":["../../../../../../src/components/presentation/auth/OrganizationUnitPicker/OrganizationUnitPicker.tsx"],"sourcesContent":["/**\n * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {cx} from '@emotion/css';\nimport {OrganizationUnit, OrganizationUnitListResponse} from '@thunderid/browser';\nimport React, {useCallback, useEffect, useState} from 'react';\nimport useStyles from './OrganizationUnitPicker.styles';\nimport useTheme from '../../../../contexts/Theme/useTheme';\n\ninterface NodeState {\n children: OrganizationUnit[];\n expanded: boolean;\n hasMore: boolean;\n loading: boolean;\n offset: number;\n totalResults: number;\n}\n\nexport interface OrganizationUnitPickerProps {\n className?: string;\n fetchChildren: (parentId: string, limit: number, offset: number) => Promise<OrganizationUnitListResponse>;\n onSelect: (ouId: string) => void;\n pageSize?: number;\n rootOuId: string;\n selectedOuId?: string | null;\n}\n\nconst OrganizationUnitPicker = ({\n rootOuId,\n selectedOuId,\n onSelect,\n fetchChildren,\n pageSize = 10,\n className,\n}: OrganizationUnitPickerProps): React.ReactElement => {\n const {theme} = useTheme();\n const styles: Record<string, string> = useStyles(theme);\n\n const [nodeStates, setNodeStates] = useState<Record<string, NodeState>>({});\n\n const loadChildren: (parentId: string, offset?: number) => Promise<void> = useCallback(\n async (parentId: string, offset = 0) => {\n setNodeStates((prev: Record<string, NodeState>) => ({\n ...prev,\n [parentId]: {\n ...(prev[parentId] || {children: [], expanded: true, hasMore: false, offset: 0, totalResults: 0}),\n loading: true,\n },\n }));\n\n try {\n const response: OrganizationUnitListResponse = await fetchChildren(parentId, pageSize, offset);\n const newChildren: OrganizationUnit[] = response.organizationUnits || [];\n\n setNodeStates((prev: Record<string, NodeState>) => {\n const existing: NodeState = prev[parentId] || {\n children: [],\n expanded: true,\n hasMore: false,\n loading: false,\n offset: 0,\n totalResults: 0,\n };\n const mergedChildren: OrganizationUnit[] =\n offset === 0 ? newChildren : [...existing.children, ...newChildren];\n const newOffset: number = offset + newChildren.length;\n\n return {\n ...prev,\n [parentId]: {\n children: mergedChildren,\n expanded: true,\n hasMore: newOffset < response.totalResults,\n loading: false,\n offset: newOffset,\n totalResults: response.totalResults,\n },\n };\n });\n } catch {\n setNodeStates((prev: Record<string, NodeState>) => ({\n ...prev,\n [parentId]: {\n ...(prev[parentId] || {children: [], expanded: true, hasMore: false, offset: 0, totalResults: 0}),\n loading: false,\n },\n }));\n }\n },\n [fetchChildren, pageSize],\n );\n\n // Auto-load root children on mount\n useEffect(() => {\n if (rootOuId && !nodeStates[rootOuId]) {\n loadChildren(rootOuId);\n }\n }, [rootOuId, loadChildren, nodeStates]);\n\n const handleToggle: (ouId: string) => void = useCallback(\n (ouId: string) => {\n const state: NodeState | undefined = nodeStates[ouId];\n\n if (state?.expanded) {\n setNodeStates((prev: Record<string, NodeState>) => ({\n ...prev,\n [ouId]: {...prev[ouId], expanded: false},\n }));\n } else if (state?.children.length) {\n setNodeStates((prev: Record<string, NodeState>) => ({\n ...prev,\n [ouId]: {...prev[ouId], expanded: true},\n }));\n } else {\n loadChildren(ouId);\n }\n },\n [nodeStates, loadChildren],\n );\n\n const handleLoadMore: (parentId: string) => void = useCallback(\n (parentId: string) => {\n const state: NodeState | undefined = nodeStates[parentId];\n\n if (state) {\n loadChildren(parentId, state.offset);\n }\n },\n [nodeStates, loadChildren],\n );\n\n const renderLoadingPlaceholders = (depth: number): React.ReactElement => (\n <>\n {[0, 1, 2].map((i: number) => (\n <div\n key={`skeleton-${i}`}\n className={styles['loadingPlaceholder']}\n style={{paddingLeft: `${(depth + 1) * 20}px`}}\n >\n <div className={styles['skeleton']} style={{width: `${100 - i * 20}px`}} />\n </div>\n ))}\n </>\n );\n\n const renderNode = (ou: OrganizationUnit, depth = 0): React.ReactElement => {\n const state: NodeState | undefined = nodeStates[ou.id];\n const isSelected: boolean = selectedOuId === ou.id;\n const isExpanded: boolean = state?.expanded || false;\n const isLoading: boolean = state?.loading || false;\n const hasChildren: boolean = !state || state.totalResults > 0 || state.children.length > 0;\n\n return (\n <React.Fragment key={ou.id}>\n <div\n className={cx(styles['node'], isSelected && styles['nodeSelected'])}\n style={{paddingLeft: `${depth * 20 + 12}px`}}\n role=\"treeitem\"\n aria-selected={isSelected}\n aria-expanded={hasChildren ? isExpanded : undefined}\n onClick={() => onSelect(ou.id)}\n onKeyDown={(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect(ou.id);\n }\n }}\n tabIndex={0}\n >\n {hasChildren ? (\n <button\n className={styles['toggleButton']}\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n handleToggle(ou.id);\n }}\n aria-label={isExpanded ? 'Collapse' : 'Expand'}\n type=\"button\"\n >\n {isExpanded ? '▾' : '▸'}\n </button>\n ) : (\n <span className={styles['togglePlaceholder']} />\n )}\n <span className={styles['nodeName']}>{ou.name}</span>\n </div>\n\n {isExpanded && isLoading && !state?.children.length && renderLoadingPlaceholders(depth)}\n\n {isExpanded && state?.children.map((child: OrganizationUnit) => renderNode(child, depth + 1))}\n\n {isExpanded && state?.hasMore && (\n <button\n className={styles['loadMoreButton']}\n style={{paddingLeft: `${(depth + 1) * 20 + 12}px`}}\n onClick={() => handleLoadMore(ou.id)}\n disabled={isLoading}\n type=\"button\"\n >\n {isLoading ? 'Loading...' : 'Load more'}\n </button>\n )}\n </React.Fragment>\n );\n };\n\n const rootState: NodeState | undefined = nodeStates[rootOuId];\n const isRootLoading: boolean = rootState?.loading && !rootState?.children.length;\n\n return (\n <div className={cx(styles['container'], className)} role=\"tree\" aria-label=\"Organization unit picker\">\n {isRootLoading && renderLoadingPlaceholders(0)}\n\n {rootState?.children.map((ou: OrganizationUnit) => renderNode(ou, 0))}\n\n {rootState?.hasMore && (\n <button\n className={styles['loadMoreButton']}\n onClick={() => handleLoadMore(rootOuId)}\n disabled={rootState?.loading}\n type=\"button\"\n >\n {rootState?.loading ? 'Loading...' : 'Load more'}\n </button>\n )}\n </div>\n );\n};\n\nexport default OrganizationUnitPicker;\n"],"mappings":"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"}
|