@thunderid/react 0.11.3 → 0.11.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.
Files changed (644) hide show
  1. package/dist/ThunderIDReactClient.d.ts +0 -17
  2. package/dist/ThunderIDReactClient.d.ts.map +1 -1
  3. package/dist/ThunderIDReactClient.js.map +1 -1
  4. package/dist/api/getUsersMe.d.ts +0 -17
  5. package/dist/api/getUsersMe.d.ts.map +1 -1
  6. package/dist/api/getUsersMe.js.map +1 -1
  7. package/dist/api/updateMeProfile.d.ts +0 -17
  8. package/dist/api/updateMeProfile.d.ts.map +1 -1
  9. package/dist/api/updateMeProfile.js.map +1 -1
  10. package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
  11. package/dist/cjs/api/getUsersMe.cjs.map +1 -1
  12. package/dist/cjs/api/updateMeProfile.cjs.map +1 -1
  13. package/dist/cjs/components/actions/SignInButton/BaseSignInButton.cjs.map +1 -1
  14. package/dist/cjs/components/actions/SignInButton/SignInButton.cjs.map +1 -1
  15. package/dist/cjs/components/actions/SignOutButton/BaseSignOutButton.cjs.map +1 -1
  16. package/dist/cjs/components/actions/SignOutButton/SignOutButton.cjs.map +1 -1
  17. package/dist/cjs/components/actions/SignUpButton/BaseSignUpButton.cjs.map +1 -1
  18. package/dist/cjs/components/actions/SignUpButton/SignUpButton.cjs.map +1 -1
  19. package/dist/cjs/components/adapters/Consent.cjs.map +1 -1
  20. package/dist/cjs/components/adapters/ConsentCheckboxList.cjs.map +1 -1
  21. package/dist/cjs/components/adapters/ConsentCheckboxList.styles.cjs.map +1 -1
  22. package/dist/cjs/components/adapters/FacebookButton.cjs.map +1 -1
  23. package/dist/cjs/components/adapters/FlowTimer.cjs.map +1 -1
  24. package/dist/cjs/components/adapters/GitHubButton.cjs.map +1 -1
  25. package/dist/cjs/components/adapters/GoogleButton.cjs.map +1 -1
  26. package/dist/cjs/components/adapters/ImageComponent.cjs.map +1 -1
  27. package/dist/cjs/components/adapters/LinkedInButton.cjs.map +1 -1
  28. package/dist/cjs/components/adapters/MicrosoftButton.cjs.map +1 -1
  29. package/dist/cjs/components/adapters/SignInWithEthereumButton.cjs.map +1 -1
  30. package/dist/cjs/components/adapters/SmsOtpButton.cjs.map +1 -1
  31. package/dist/cjs/components/auth/Callback/Callback.cjs.map +1 -1
  32. package/dist/cjs/components/auth/Callback/OAuthCallback.cjs.map +1 -1
  33. package/dist/cjs/components/auth/Callback/TokenCallback.cjs.map +1 -1
  34. package/dist/cjs/components/control/Loading.cjs.map +1 -1
  35. package/dist/cjs/components/control/SignedIn.cjs.map +1 -1
  36. package/dist/cjs/components/control/SignedOut.cjs.map +1 -1
  37. package/dist/cjs/components/factories/FieldFactory.cjs.map +1 -1
  38. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs.map +1 -1
  39. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.cjs.map +1 -1
  40. package/dist/cjs/components/presentation/LanguageSwitcher/LanguageSwitcher.cjs.map +1 -1
  41. package/dist/cjs/components/presentation/User/BaseUser.cjs.map +1 -1
  42. package/dist/cjs/components/presentation/User/User.cjs.map +1 -1
  43. package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs.map +1 -1
  44. package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs.map +1 -1
  45. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs.map +1 -1
  46. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.styles.cjs.map +1 -1
  47. package/dist/cjs/components/presentation/UserDropdown/UserDropdown.cjs.map +1 -1
  48. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.cjs.map +1 -1
  49. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.styles.cjs.map +1 -1
  50. package/dist/cjs/components/presentation/UserProfile/UserProfile.cjs.map +1 -1
  51. package/dist/cjs/components/presentation/auth/AcceptInvite/AcceptInvite.cjs +3 -4
  52. package/dist/cjs/components/presentation/auth/AcceptInvite/AcceptInvite.cjs.map +1 -1
  53. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -1
  54. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs.map +1 -1
  55. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
  56. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs.map +1 -1
  57. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs.map +1 -1
  58. package/dist/cjs/components/presentation/auth/InviteUser/InviteUser.cjs.map +1 -1
  59. package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs.map +1 -1
  60. package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs.map +1 -1
  61. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs.map +1 -1
  62. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.styles.cjs.map +1 -1
  63. package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs +10 -1
  64. package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs.map +1 -1
  65. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs.map +1 -1
  66. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.styles.cjs.map +1 -1
  67. package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs.map +1 -1
  68. package/dist/cjs/components/primitives/AffixedField/AffixedField.cjs.map +1 -1
  69. package/dist/cjs/components/primitives/AffixedField/AffixedField.styles.cjs.map +1 -1
  70. package/dist/cjs/components/primitives/Alert/Alert.cjs.map +1 -1
  71. package/dist/cjs/components/primitives/Alert/Alert.styles.cjs.map +1 -1
  72. package/dist/cjs/components/primitives/Avatar/Avatar.cjs.map +1 -1
  73. package/dist/cjs/components/primitives/Avatar/Avatar.styles.cjs.map +1 -1
  74. package/dist/cjs/components/primitives/Button/Button.cjs.map +1 -1
  75. package/dist/cjs/components/primitives/Button/Button.styles.cjs.map +1 -1
  76. package/dist/cjs/components/primitives/Card/Card.cjs.map +1 -1
  77. package/dist/cjs/components/primitives/Card/Card.styles.cjs.map +1 -1
  78. package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs.map +1 -1
  79. package/dist/cjs/components/primitives/Checkbox/Checkbox.styles.cjs.map +1 -1
  80. package/dist/cjs/components/primitives/CopyableText/CopyableText.cjs.map +1 -1
  81. package/dist/cjs/components/primitives/CopyableText/CopyableText.styles.cjs.map +1 -1
  82. package/dist/cjs/components/primitives/DatePicker/DatePicker.cjs.map +1 -1
  83. package/dist/cjs/components/primitives/DatePicker/DatePicker.styles.cjs.map +1 -1
  84. package/dist/cjs/components/primitives/Dialog/Dialog.cjs.map +1 -1
  85. package/dist/cjs/components/primitives/Dialog/Dialog.styles.cjs.map +1 -1
  86. package/dist/cjs/components/primitives/Divider/Divider.cjs.map +1 -1
  87. package/dist/cjs/components/primitives/Divider/Divider.styles.cjs.map +1 -1
  88. package/dist/cjs/components/primitives/FormControl/FormControl.cjs.map +1 -1
  89. package/dist/cjs/components/primitives/FormControl/FormControl.styles.cjs.map +1 -1
  90. package/dist/cjs/components/primitives/Icons/ArrowLeftRight.cjs.map +1 -1
  91. package/dist/cjs/components/primitives/Icons/ArrowRightLeft.cjs.map +1 -1
  92. package/dist/cjs/components/primitives/Icons/BuildingAlt.cjs.map +1 -1
  93. package/dist/cjs/components/primitives/Icons/Check.cjs.map +1 -1
  94. package/dist/cjs/components/primitives/Icons/ChevronDown.cjs.map +1 -1
  95. package/dist/cjs/components/primitives/Icons/CircleAlert.cjs.map +1 -1
  96. package/dist/cjs/components/primitives/Icons/CircleCheck.cjs.map +1 -1
  97. package/dist/cjs/components/primitives/Icons/Eye.cjs.map +1 -1
  98. package/dist/cjs/components/primitives/Icons/EyeOff.cjs.map +1 -1
  99. package/dist/cjs/components/primitives/Icons/Info.cjs.map +1 -1
  100. package/dist/cjs/components/primitives/Icons/LogOut.cjs.map +1 -1
  101. package/dist/cjs/components/primitives/Icons/Plus.cjs.map +1 -1
  102. package/dist/cjs/components/primitives/Icons/TriangleAlert.cjs.map +1 -1
  103. package/dist/cjs/components/primitives/Icons/User.cjs.map +1 -1
  104. package/dist/cjs/components/primitives/Icons/X.cjs.map +1 -1
  105. package/dist/cjs/components/primitives/Icons/flowIconRegistry.cjs.map +1 -1
  106. package/dist/cjs/components/primitives/InputLabel/InputLabel.cjs.map +1 -1
  107. package/dist/cjs/components/primitives/InputLabel/InputLabel.styles.cjs.map +1 -1
  108. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.cjs.map +1 -1
  109. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.styles.cjs.map +1 -1
  110. package/dist/cjs/components/primitives/Logo/Logo.cjs.map +1 -1
  111. package/dist/cjs/components/primitives/Logo/Logo.styles.cjs.map +1 -1
  112. package/dist/cjs/components/primitives/MultiInput/MultiInput.cjs.map +1 -1
  113. package/dist/cjs/components/primitives/MultiInput/MultiInput.styles.cjs.map +1 -1
  114. package/dist/cjs/components/primitives/OtpField/OtpField.cjs.map +1 -1
  115. package/dist/cjs/components/primitives/OtpField/OtpField.styles.cjs.map +1 -1
  116. package/dist/cjs/components/primitives/PasswordField/PasswordField.cjs.map +1 -1
  117. package/dist/cjs/components/primitives/PasswordField/PasswordField.styles.cjs.map +1 -1
  118. package/dist/cjs/components/primitives/Select/Select.cjs.map +1 -1
  119. package/dist/cjs/components/primitives/Select/Select.styles.cjs.map +1 -1
  120. package/dist/cjs/components/primitives/Spinner/Spinner.cjs.map +1 -1
  121. package/dist/cjs/components/primitives/Spinner/Spinner.styles.cjs.map +1 -1
  122. package/dist/cjs/components/primitives/TextField/TextField.cjs.map +1 -1
  123. package/dist/cjs/components/primitives/TextField/TextField.styles.cjs.map +1 -1
  124. package/dist/cjs/components/primitives/Toggle/Toggle.cjs.map +1 -1
  125. package/dist/cjs/components/primitives/Toggle/Toggle.styles.cjs.map +1 -1
  126. package/dist/cjs/components/primitives/Tooltip/Tooltip.cjs.map +1 -1
  127. package/dist/cjs/components/primitives/Tooltip/Tooltip.styles.cjs.map +1 -1
  128. package/dist/cjs/components/primitives/Typography/Typography.cjs.map +1 -1
  129. package/dist/cjs/components/primitives/Typography/Typography.styles.cjs.map +1 -1
  130. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
  131. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererProvider.cjs.map +1 -1
  132. package/dist/cjs/contexts/Flow/FlowContext.cjs.map +1 -1
  133. package/dist/cjs/contexts/Flow/FlowProvider.cjs.map +1 -1
  134. package/dist/cjs/contexts/Flow/useFlow.cjs.map +1 -1
  135. package/dist/cjs/contexts/FlowMeta/FlowMetaContext.cjs.map +1 -1
  136. package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs.map +1 -1
  137. package/dist/cjs/contexts/FlowMeta/useFlowMeta.cjs.map +1 -1
  138. package/dist/cjs/contexts/I18n/ComponentPreferencesContext.cjs.map +1 -1
  139. package/dist/cjs/contexts/I18n/I18nContext.cjs.map +1 -1
  140. package/dist/cjs/contexts/I18n/I18nProvider.cjs.map +1 -1
  141. package/dist/cjs/contexts/I18n/useI18n.cjs.map +1 -1
  142. package/dist/cjs/contexts/Theme/ThemeContext.cjs.map +1 -1
  143. package/dist/cjs/contexts/Theme/ThemeProvider.cjs.map +1 -1
  144. package/dist/cjs/contexts/Theme/useTheme.cjs.map +1 -1
  145. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  146. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  147. package/dist/cjs/contexts/ThunderID/useThunderID.cjs.map +1 -1
  148. package/dist/cjs/contexts/User/UserContext.cjs.map +1 -1
  149. package/dist/cjs/contexts/User/UserProvider.cjs.map +1 -1
  150. package/dist/cjs/contexts/User/useUser.cjs.map +1 -1
  151. package/dist/cjs/hooks/useBrowserUrl.cjs.map +1 -1
  152. package/dist/cjs/hooks/useForm.cjs.map +1 -1
  153. package/dist/cjs/hooks/useOAuthCallback.cjs.map +1 -1
  154. package/dist/cjs/hooks/useTranslation.cjs.map +1 -1
  155. package/dist/cjs/utils/applyThemeToDOM.cjs.map +1 -1
  156. package/dist/cjs/utils/buildThemeConfigFromFlowMeta.cjs.map +1 -1
  157. package/dist/cjs/utils/composeAffixedInputs.cjs.map +1 -1
  158. package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
  159. package/dist/cjs/utils/getAuthComponentHeadings.cjs.map +1 -1
  160. package/dist/cjs/utils/getDisplayName.cjs.map +1 -1
  161. package/dist/cjs/utils/getMappedUserProfileValue.cjs.map +1 -1
  162. package/dist/cjs/utils/normalizeThemeConfig.cjs.map +1 -1
  163. package/dist/cjs/utils/oauth.cjs.map +1 -1
  164. package/dist/cjs/utils/passkey.cjs.map +1 -1
  165. package/dist/cjs/utils/resolveTranslationsInArray.cjs.map +1 -1
  166. package/dist/cjs/utils/resolveTranslationsInObject.cjs.map +1 -1
  167. package/dist/components/actions/SignInButton/BaseSignInButton.d.ts +0 -17
  168. package/dist/components/actions/SignInButton/BaseSignInButton.d.ts.map +1 -1
  169. package/dist/components/actions/SignInButton/BaseSignInButton.js.map +1 -1
  170. package/dist/components/actions/SignInButton/SignInButton.d.ts +0 -17
  171. package/dist/components/actions/SignInButton/SignInButton.d.ts.map +1 -1
  172. package/dist/components/actions/SignInButton/SignInButton.js.map +1 -1
  173. package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts +0 -17
  174. package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts.map +1 -1
  175. package/dist/components/actions/SignOutButton/BaseSignOutButton.js.map +1 -1
  176. package/dist/components/actions/SignOutButton/SignOutButton.d.ts +0 -17
  177. package/dist/components/actions/SignOutButton/SignOutButton.d.ts.map +1 -1
  178. package/dist/components/actions/SignOutButton/SignOutButton.js.map +1 -1
  179. package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts +0 -17
  180. package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts.map +1 -1
  181. package/dist/components/actions/SignUpButton/BaseSignUpButton.js.map +1 -1
  182. package/dist/components/actions/SignUpButton/SignUpButton.d.ts +0 -17
  183. package/dist/components/actions/SignUpButton/SignUpButton.d.ts.map +1 -1
  184. package/dist/components/actions/SignUpButton/SignUpButton.js.map +1 -1
  185. package/dist/components/adapters/Consent.d.ts +0 -17
  186. package/dist/components/adapters/Consent.d.ts.map +1 -1
  187. package/dist/components/adapters/Consent.js.map +1 -1
  188. package/dist/components/adapters/ConsentCheckboxList.d.ts +0 -17
  189. package/dist/components/adapters/ConsentCheckboxList.d.ts.map +1 -1
  190. package/dist/components/adapters/ConsentCheckboxList.js.map +1 -1
  191. package/dist/components/adapters/ConsentCheckboxList.styles.d.ts +0 -17
  192. package/dist/components/adapters/ConsentCheckboxList.styles.d.ts.map +1 -1
  193. package/dist/components/adapters/ConsentCheckboxList.styles.js.map +1 -1
  194. package/dist/components/adapters/FacebookButton.d.ts +0 -17
  195. package/dist/components/adapters/FacebookButton.d.ts.map +1 -1
  196. package/dist/components/adapters/FacebookButton.js.map +1 -1
  197. package/dist/components/adapters/FlowTimer.d.ts +0 -17
  198. package/dist/components/adapters/FlowTimer.d.ts.map +1 -1
  199. package/dist/components/adapters/FlowTimer.js.map +1 -1
  200. package/dist/components/adapters/GitHubButton.d.ts +0 -17
  201. package/dist/components/adapters/GitHubButton.d.ts.map +1 -1
  202. package/dist/components/adapters/GitHubButton.js.map +1 -1
  203. package/dist/components/adapters/GoogleButton.d.ts +0 -17
  204. package/dist/components/adapters/GoogleButton.d.ts.map +1 -1
  205. package/dist/components/adapters/GoogleButton.js.map +1 -1
  206. package/dist/components/adapters/ImageComponent.d.ts +0 -17
  207. package/dist/components/adapters/ImageComponent.d.ts.map +1 -1
  208. package/dist/components/adapters/ImageComponent.js.map +1 -1
  209. package/dist/components/adapters/LinkedInButton.d.ts +0 -17
  210. package/dist/components/adapters/LinkedInButton.d.ts.map +1 -1
  211. package/dist/components/adapters/LinkedInButton.js.map +1 -1
  212. package/dist/components/adapters/MicrosoftButton.d.ts +0 -17
  213. package/dist/components/adapters/MicrosoftButton.d.ts.map +1 -1
  214. package/dist/components/adapters/MicrosoftButton.js.map +1 -1
  215. package/dist/components/adapters/SignInWithEthereumButton.d.ts +0 -17
  216. package/dist/components/adapters/SignInWithEthereumButton.d.ts.map +1 -1
  217. package/dist/components/adapters/SignInWithEthereumButton.js.map +1 -1
  218. package/dist/components/adapters/SmsOtpButton.d.ts +0 -17
  219. package/dist/components/adapters/SmsOtpButton.d.ts.map +1 -1
  220. package/dist/components/adapters/SmsOtpButton.js.map +1 -1
  221. package/dist/components/auth/Callback/Callback.d.ts.map +1 -1
  222. package/dist/components/auth/Callback/Callback.js.map +1 -1
  223. package/dist/components/auth/Callback/OAuthCallback.d.ts +0 -17
  224. package/dist/components/auth/Callback/OAuthCallback.d.ts.map +1 -1
  225. package/dist/components/auth/Callback/OAuthCallback.js.map +1 -1
  226. package/dist/components/auth/Callback/TokenCallback.d.ts +0 -16
  227. package/dist/components/auth/Callback/TokenCallback.d.ts.map +1 -1
  228. package/dist/components/auth/Callback/TokenCallback.js.map +1 -1
  229. package/dist/components/control/Loading.d.ts +0 -17
  230. package/dist/components/control/Loading.d.ts.map +1 -1
  231. package/dist/components/control/Loading.js.map +1 -1
  232. package/dist/components/control/SignedIn.d.ts +0 -17
  233. package/dist/components/control/SignedIn.d.ts.map +1 -1
  234. package/dist/components/control/SignedIn.js.map +1 -1
  235. package/dist/components/control/SignedOut.d.ts +0 -17
  236. package/dist/components/control/SignedOut.d.ts.map +1 -1
  237. package/dist/components/control/SignedOut.js.map +1 -1
  238. package/dist/components/factories/FieldFactory.d.ts +0 -17
  239. package/dist/components/factories/FieldFactory.d.ts.map +1 -1
  240. package/dist/components/factories/FieldFactory.js.map +1 -1
  241. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts +0 -17
  242. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts.map +1 -1
  243. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js.map +1 -1
  244. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts +0 -17
  245. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts.map +1 -1
  246. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.js.map +1 -1
  247. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts +0 -17
  248. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts.map +1 -1
  249. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
  250. package/dist/components/presentation/User/BaseUser.d.ts +0 -17
  251. package/dist/components/presentation/User/BaseUser.d.ts.map +1 -1
  252. package/dist/components/presentation/User/BaseUser.js.map +1 -1
  253. package/dist/components/presentation/User/User.d.ts +0 -17
  254. package/dist/components/presentation/User/User.d.ts.map +1 -1
  255. package/dist/components/presentation/User/User.js.map +1 -1
  256. package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts +0 -17
  257. package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts.map +1 -1
  258. package/dist/components/presentation/UserAvatar/BaseUserAvatar.js.map +1 -1
  259. package/dist/components/presentation/UserAvatar/UserAvatar.d.ts +0 -17
  260. package/dist/components/presentation/UserAvatar/UserAvatar.d.ts.map +1 -1
  261. package/dist/components/presentation/UserAvatar/UserAvatar.js.map +1 -1
  262. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts +0 -17
  263. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
  264. package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
  265. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts +0 -17
  266. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts.map +1 -1
  267. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.js.map +1 -1
  268. package/dist/components/presentation/UserDropdown/UserDropdown.d.ts +0 -17
  269. package/dist/components/presentation/UserDropdown/UserDropdown.d.ts.map +1 -1
  270. package/dist/components/presentation/UserDropdown/UserDropdown.js.map +1 -1
  271. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +0 -17
  272. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts.map +1 -1
  273. package/dist/components/presentation/UserProfile/BaseUserProfile.js.map +1 -1
  274. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts +0 -17
  275. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts.map +1 -1
  276. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.js.map +1 -1
  277. package/dist/components/presentation/UserProfile/UserProfile.d.ts +0 -17
  278. package/dist/components/presentation/UserProfile/UserProfile.d.ts.map +1 -1
  279. package/dist/components/presentation/UserProfile/UserProfile.js.map +1 -1
  280. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts +0 -17
  281. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts.map +1 -1
  282. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js +2 -4
  283. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js.map +1 -1
  284. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts +0 -17
  285. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -1
  286. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -1
  287. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts +0 -17
  288. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts.map +1 -1
  289. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js.map +1 -1
  290. package/dist/components/presentation/auth/AcceptInvite/index.d.ts +0 -17
  291. package/dist/components/presentation/auth/AcceptInvite/index.d.ts.map +1 -1
  292. package/dist/components/presentation/auth/AuthOptionFactory.d.ts +0 -17
  293. package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
  294. package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
  295. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts +0 -17
  296. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts.map +1 -1
  297. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js.map +1 -1
  298. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts +0 -17
  299. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts.map +1 -1
  300. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js.map +1 -1
  301. package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts +0 -17
  302. package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts.map +1 -1
  303. package/dist/components/presentation/auth/InviteUser/InviteUser.js.map +1 -1
  304. package/dist/components/presentation/auth/InviteUser/index.d.ts +0 -17
  305. package/dist/components/presentation/auth/InviteUser/index.d.ts.map +1 -1
  306. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts +0 -17
  307. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts.map +1 -1
  308. package/dist/components/presentation/auth/Recovery/BaseRecovery.js.map +1 -1
  309. package/dist/components/presentation/auth/Recovery/Recovery.d.ts +0 -17
  310. package/dist/components/presentation/auth/Recovery/Recovery.d.ts.map +1 -1
  311. package/dist/components/presentation/auth/Recovery/Recovery.js.map +1 -1
  312. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts +0 -17
  313. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts.map +1 -1
  314. package/dist/components/presentation/auth/SignIn/BaseSignIn.js.map +1 -1
  315. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts +0 -17
  316. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts.map +1 -1
  317. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.js.map +1 -1
  318. package/dist/components/presentation/auth/SignIn/SignIn.d.ts +0 -17
  319. package/dist/components/presentation/auth/SignIn/SignIn.d.ts.map +1 -1
  320. package/dist/components/presentation/auth/SignIn/SignIn.js +10 -1
  321. package/dist/components/presentation/auth/SignIn/SignIn.js.map +1 -1
  322. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts +0 -17
  323. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  324. package/dist/components/presentation/auth/SignUp/BaseSignUp.js.map +1 -1
  325. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts +0 -17
  326. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts.map +1 -1
  327. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.js.map +1 -1
  328. package/dist/components/presentation/auth/SignUp/SignUp.d.ts +0 -17
  329. package/dist/components/presentation/auth/SignUp/SignUp.d.ts.map +1 -1
  330. package/dist/components/presentation/auth/SignUp/SignUp.js.map +1 -1
  331. package/dist/components/primitives/AffixedField/AffixedField.d.ts +0 -17
  332. package/dist/components/primitives/AffixedField/AffixedField.d.ts.map +1 -1
  333. package/dist/components/primitives/AffixedField/AffixedField.js.map +1 -1
  334. package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts +0 -17
  335. package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts.map +1 -1
  336. package/dist/components/primitives/AffixedField/AffixedField.styles.js.map +1 -1
  337. package/dist/components/primitives/AffixedField/index.d.ts +0 -17
  338. package/dist/components/primitives/AffixedField/index.d.ts.map +1 -1
  339. package/dist/components/primitives/Alert/Alert.d.ts +0 -17
  340. package/dist/components/primitives/Alert/Alert.d.ts.map +1 -1
  341. package/dist/components/primitives/Alert/Alert.js.map +1 -1
  342. package/dist/components/primitives/Alert/Alert.styles.d.ts +0 -17
  343. package/dist/components/primitives/Alert/Alert.styles.d.ts.map +1 -1
  344. package/dist/components/primitives/Alert/Alert.styles.js.map +1 -1
  345. package/dist/components/primitives/Avatar/Avatar.d.ts +0 -17
  346. package/dist/components/primitives/Avatar/Avatar.d.ts.map +1 -1
  347. package/dist/components/primitives/Avatar/Avatar.js.map +1 -1
  348. package/dist/components/primitives/Avatar/Avatar.styles.d.ts +0 -17
  349. package/dist/components/primitives/Avatar/Avatar.styles.d.ts.map +1 -1
  350. package/dist/components/primitives/Avatar/Avatar.styles.js.map +1 -1
  351. package/dist/components/primitives/Button/Button.d.ts +0 -17
  352. package/dist/components/primitives/Button/Button.d.ts.map +1 -1
  353. package/dist/components/primitives/Button/Button.js.map +1 -1
  354. package/dist/components/primitives/Button/Button.styles.d.ts +0 -17
  355. package/dist/components/primitives/Button/Button.styles.d.ts.map +1 -1
  356. package/dist/components/primitives/Button/Button.styles.js.map +1 -1
  357. package/dist/components/primitives/Card/Card.d.ts +0 -17
  358. package/dist/components/primitives/Card/Card.d.ts.map +1 -1
  359. package/dist/components/primitives/Card/Card.js.map +1 -1
  360. package/dist/components/primitives/Card/Card.styles.d.ts +0 -17
  361. package/dist/components/primitives/Card/Card.styles.d.ts.map +1 -1
  362. package/dist/components/primitives/Card/Card.styles.js.map +1 -1
  363. package/dist/components/primitives/Checkbox/Checkbox.d.ts +0 -17
  364. package/dist/components/primitives/Checkbox/Checkbox.d.ts.map +1 -1
  365. package/dist/components/primitives/Checkbox/Checkbox.js.map +1 -1
  366. package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts +0 -17
  367. package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts.map +1 -1
  368. package/dist/components/primitives/Checkbox/Checkbox.styles.js.map +1 -1
  369. package/dist/components/primitives/CopyableText/CopyableText.d.ts +0 -17
  370. package/dist/components/primitives/CopyableText/CopyableText.d.ts.map +1 -1
  371. package/dist/components/primitives/CopyableText/CopyableText.js.map +1 -1
  372. package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts +0 -17
  373. package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts.map +1 -1
  374. package/dist/components/primitives/CopyableText/CopyableText.styles.js.map +1 -1
  375. package/dist/components/primitives/CopyableText/index.d.ts +0 -17
  376. package/dist/components/primitives/CopyableText/index.d.ts.map +1 -1
  377. package/dist/components/primitives/DatePicker/DatePicker.d.ts +0 -17
  378. package/dist/components/primitives/DatePicker/DatePicker.d.ts.map +1 -1
  379. package/dist/components/primitives/DatePicker/DatePicker.js.map +1 -1
  380. package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts +0 -17
  381. package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts.map +1 -1
  382. package/dist/components/primitives/DatePicker/DatePicker.styles.js.map +1 -1
  383. package/dist/components/primitives/Dialog/Dialog.d.ts +0 -17
  384. package/dist/components/primitives/Dialog/Dialog.d.ts.map +1 -1
  385. package/dist/components/primitives/Dialog/Dialog.js.map +1 -1
  386. package/dist/components/primitives/Dialog/Dialog.styles.d.ts +0 -17
  387. package/dist/components/primitives/Dialog/Dialog.styles.d.ts.map +1 -1
  388. package/dist/components/primitives/Dialog/Dialog.styles.js.map +1 -1
  389. package/dist/components/primitives/Divider/Divider.d.ts +0 -17
  390. package/dist/components/primitives/Divider/Divider.d.ts.map +1 -1
  391. package/dist/components/primitives/Divider/Divider.js.map +1 -1
  392. package/dist/components/primitives/Divider/Divider.styles.d.ts +0 -17
  393. package/dist/components/primitives/Divider/Divider.styles.d.ts.map +1 -1
  394. package/dist/components/primitives/Divider/Divider.styles.js.map +1 -1
  395. package/dist/components/primitives/FormControl/FormControl.d.ts +0 -17
  396. package/dist/components/primitives/FormControl/FormControl.d.ts.map +1 -1
  397. package/dist/components/primitives/FormControl/FormControl.js.map +1 -1
  398. package/dist/components/primitives/FormControl/FormControl.styles.d.ts +0 -17
  399. package/dist/components/primitives/FormControl/FormControl.styles.d.ts.map +1 -1
  400. package/dist/components/primitives/FormControl/FormControl.styles.js.map +1 -1
  401. package/dist/components/primitives/Icons/ArrowLeftRight.d.ts +0 -17
  402. package/dist/components/primitives/Icons/ArrowLeftRight.d.ts.map +1 -1
  403. package/dist/components/primitives/Icons/ArrowLeftRight.js.map +1 -1
  404. package/dist/components/primitives/Icons/ArrowRightLeft.d.ts +0 -17
  405. package/dist/components/primitives/Icons/ArrowRightLeft.d.ts.map +1 -1
  406. package/dist/components/primitives/Icons/ArrowRightLeft.js.map +1 -1
  407. package/dist/components/primitives/Icons/Building.d.ts +0 -17
  408. package/dist/components/primitives/Icons/Building.d.ts.map +1 -1
  409. package/dist/components/primitives/Icons/BuildingAlt.d.ts +0 -17
  410. package/dist/components/primitives/Icons/BuildingAlt.d.ts.map +1 -1
  411. package/dist/components/primitives/Icons/BuildingAlt.js.map +1 -1
  412. package/dist/components/primitives/Icons/Check.d.ts +0 -17
  413. package/dist/components/primitives/Icons/Check.d.ts.map +1 -1
  414. package/dist/components/primitives/Icons/Check.js.map +1 -1
  415. package/dist/components/primitives/Icons/ChevronDown.d.ts +0 -17
  416. package/dist/components/primitives/Icons/ChevronDown.d.ts.map +1 -1
  417. package/dist/components/primitives/Icons/ChevronDown.js.map +1 -1
  418. package/dist/components/primitives/Icons/CircleAlert.d.ts +0 -17
  419. package/dist/components/primitives/Icons/CircleAlert.d.ts.map +1 -1
  420. package/dist/components/primitives/Icons/CircleAlert.js.map +1 -1
  421. package/dist/components/primitives/Icons/CircleCheck.d.ts +0 -17
  422. package/dist/components/primitives/Icons/CircleCheck.d.ts.map +1 -1
  423. package/dist/components/primitives/Icons/CircleCheck.js.map +1 -1
  424. package/dist/components/primitives/Icons/Eye.d.ts +0 -17
  425. package/dist/components/primitives/Icons/Eye.d.ts.map +1 -1
  426. package/dist/components/primitives/Icons/Eye.js.map +1 -1
  427. package/dist/components/primitives/Icons/EyeOff.d.ts +0 -17
  428. package/dist/components/primitives/Icons/EyeOff.d.ts.map +1 -1
  429. package/dist/components/primitives/Icons/EyeOff.js.map +1 -1
  430. package/dist/components/primitives/Icons/Info.d.ts +0 -17
  431. package/dist/components/primitives/Icons/Info.d.ts.map +1 -1
  432. package/dist/components/primitives/Icons/Info.js.map +1 -1
  433. package/dist/components/primitives/Icons/LogOut.d.ts +0 -17
  434. package/dist/components/primitives/Icons/LogOut.d.ts.map +1 -1
  435. package/dist/components/primitives/Icons/LogOut.js.map +1 -1
  436. package/dist/components/primitives/Icons/Plus.d.ts +0 -17
  437. package/dist/components/primitives/Icons/Plus.d.ts.map +1 -1
  438. package/dist/components/primitives/Icons/Plus.js.map +1 -1
  439. package/dist/components/primitives/Icons/TriangleAlert.d.ts +0 -17
  440. package/dist/components/primitives/Icons/TriangleAlert.d.ts.map +1 -1
  441. package/dist/components/primitives/Icons/TriangleAlert.js.map +1 -1
  442. package/dist/components/primitives/Icons/User.d.ts +0 -17
  443. package/dist/components/primitives/Icons/User.d.ts.map +1 -1
  444. package/dist/components/primitives/Icons/User.js.map +1 -1
  445. package/dist/components/primitives/Icons/X.d.ts +0 -17
  446. package/dist/components/primitives/Icons/X.d.ts.map +1 -1
  447. package/dist/components/primitives/Icons/X.js.map +1 -1
  448. package/dist/components/primitives/Icons/flowIconRegistry.d.ts +0 -17
  449. package/dist/components/primitives/Icons/flowIconRegistry.d.ts.map +1 -1
  450. package/dist/components/primitives/Icons/flowIconRegistry.js.map +1 -1
  451. package/dist/components/primitives/Icons/index.d.ts +0 -17
  452. package/dist/components/primitives/Icons/index.d.ts.map +1 -1
  453. package/dist/components/primitives/InputLabel/InputLabel.d.ts +0 -17
  454. package/dist/components/primitives/InputLabel/InputLabel.d.ts.map +1 -1
  455. package/dist/components/primitives/InputLabel/InputLabel.js.map +1 -1
  456. package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts +0 -17
  457. package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts.map +1 -1
  458. package/dist/components/primitives/InputLabel/InputLabel.styles.js.map +1 -1
  459. package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts +0 -17
  460. package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts.map +1 -1
  461. package/dist/components/primitives/KeyValueInput/KeyValueInput.js.map +1 -1
  462. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts +0 -17
  463. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts.map +1 -1
  464. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.js.map +1 -1
  465. package/dist/components/primitives/Logo/Logo.d.ts +0 -17
  466. package/dist/components/primitives/Logo/Logo.d.ts.map +1 -1
  467. package/dist/components/primitives/Logo/Logo.js.map +1 -1
  468. package/dist/components/primitives/Logo/Logo.styles.d.ts +0 -17
  469. package/dist/components/primitives/Logo/Logo.styles.d.ts.map +1 -1
  470. package/dist/components/primitives/Logo/Logo.styles.js.map +1 -1
  471. package/dist/components/primitives/MultiInput/MultiInput.d.ts +0 -17
  472. package/dist/components/primitives/MultiInput/MultiInput.d.ts.map +1 -1
  473. package/dist/components/primitives/MultiInput/MultiInput.js.map +1 -1
  474. package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts +0 -17
  475. package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts.map +1 -1
  476. package/dist/components/primitives/MultiInput/MultiInput.styles.js.map +1 -1
  477. package/dist/components/primitives/OtpField/OtpField.d.ts +0 -17
  478. package/dist/components/primitives/OtpField/OtpField.d.ts.map +1 -1
  479. package/dist/components/primitives/OtpField/OtpField.js.map +1 -1
  480. package/dist/components/primitives/OtpField/OtpField.styles.d.ts +0 -17
  481. package/dist/components/primitives/OtpField/OtpField.styles.d.ts.map +1 -1
  482. package/dist/components/primitives/OtpField/OtpField.styles.js.map +1 -1
  483. package/dist/components/primitives/PasswordField/PasswordField.d.ts +0 -17
  484. package/dist/components/primitives/PasswordField/PasswordField.d.ts.map +1 -1
  485. package/dist/components/primitives/PasswordField/PasswordField.js.map +1 -1
  486. package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts +0 -17
  487. package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts.map +1 -1
  488. package/dist/components/primitives/PasswordField/PasswordField.styles.js.map +1 -1
  489. package/dist/components/primitives/Select/Select.d.ts +0 -17
  490. package/dist/components/primitives/Select/Select.d.ts.map +1 -1
  491. package/dist/components/primitives/Select/Select.js.map +1 -1
  492. package/dist/components/primitives/Select/Select.styles.d.ts +0 -17
  493. package/dist/components/primitives/Select/Select.styles.d.ts.map +1 -1
  494. package/dist/components/primitives/Select/Select.styles.js.map +1 -1
  495. package/dist/components/primitives/Spinner/Spinner.d.ts +0 -17
  496. package/dist/components/primitives/Spinner/Spinner.d.ts.map +1 -1
  497. package/dist/components/primitives/Spinner/Spinner.js.map +1 -1
  498. package/dist/components/primitives/Spinner/Spinner.styles.d.ts +0 -17
  499. package/dist/components/primitives/Spinner/Spinner.styles.d.ts.map +1 -1
  500. package/dist/components/primitives/Spinner/Spinner.styles.js.map +1 -1
  501. package/dist/components/primitives/TextField/TextField.d.ts +0 -17
  502. package/dist/components/primitives/TextField/TextField.d.ts.map +1 -1
  503. package/dist/components/primitives/TextField/TextField.js.map +1 -1
  504. package/dist/components/primitives/TextField/TextField.styles.d.ts +0 -17
  505. package/dist/components/primitives/TextField/TextField.styles.d.ts.map +1 -1
  506. package/dist/components/primitives/TextField/TextField.styles.js.map +1 -1
  507. package/dist/components/primitives/Toggle/Toggle.d.ts +0 -17
  508. package/dist/components/primitives/Toggle/Toggle.d.ts.map +1 -1
  509. package/dist/components/primitives/Toggle/Toggle.js.map +1 -1
  510. package/dist/components/primitives/Toggle/Toggle.styles.d.ts +0 -17
  511. package/dist/components/primitives/Toggle/Toggle.styles.d.ts.map +1 -1
  512. package/dist/components/primitives/Toggle/Toggle.styles.js.map +1 -1
  513. package/dist/components/primitives/Tooltip/Tooltip.d.ts +0 -17
  514. package/dist/components/primitives/Tooltip/Tooltip.d.ts.map +1 -1
  515. package/dist/components/primitives/Tooltip/Tooltip.js.map +1 -1
  516. package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts +0 -17
  517. package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts.map +1 -1
  518. package/dist/components/primitives/Tooltip/Tooltip.styles.js.map +1 -1
  519. package/dist/components/primitives/Typography/Typography.d.ts +0 -17
  520. package/dist/components/primitives/Typography/Typography.d.ts.map +1 -1
  521. package/dist/components/primitives/Typography/Typography.js.map +1 -1
  522. package/dist/components/primitives/Typography/Typography.styles.d.ts +0 -17
  523. package/dist/components/primitives/Typography/Typography.styles.d.ts.map +1 -1
  524. package/dist/components/primitives/Typography/Typography.styles.js.map +1 -1
  525. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +0 -17
  526. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
  527. package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
  528. package/dist/contexts/ComponentRenderer/ComponentRendererProvider.d.ts +0 -17
  529. package/dist/contexts/ComponentRenderer/ComponentRendererProvider.d.ts.map +1 -1
  530. package/dist/contexts/ComponentRenderer/ComponentRendererProvider.js.map +1 -1
  531. package/dist/contexts/Flow/FlowContext.d.ts +0 -17
  532. package/dist/contexts/Flow/FlowContext.d.ts.map +1 -1
  533. package/dist/contexts/Flow/FlowContext.js.map +1 -1
  534. package/dist/contexts/Flow/FlowProvider.d.ts +0 -17
  535. package/dist/contexts/Flow/FlowProvider.d.ts.map +1 -1
  536. package/dist/contexts/Flow/FlowProvider.js.map +1 -1
  537. package/dist/contexts/Flow/useFlow.d.ts +0 -17
  538. package/dist/contexts/Flow/useFlow.d.ts.map +1 -1
  539. package/dist/contexts/Flow/useFlow.js.map +1 -1
  540. package/dist/contexts/FlowMeta/FlowMetaContext.d.ts +0 -17
  541. package/dist/contexts/FlowMeta/FlowMetaContext.d.ts.map +1 -1
  542. package/dist/contexts/FlowMeta/FlowMetaContext.js.map +1 -1
  543. package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts +0 -17
  544. package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts.map +1 -1
  545. package/dist/contexts/FlowMeta/FlowMetaProvider.js.map +1 -1
  546. package/dist/contexts/FlowMeta/useFlowMeta.d.ts +0 -17
  547. package/dist/contexts/FlowMeta/useFlowMeta.d.ts.map +1 -1
  548. package/dist/contexts/FlowMeta/useFlowMeta.js.map +1 -1
  549. package/dist/contexts/I18n/ComponentPreferencesContext.d.ts +0 -17
  550. package/dist/contexts/I18n/ComponentPreferencesContext.d.ts.map +1 -1
  551. package/dist/contexts/I18n/ComponentPreferencesContext.js.map +1 -1
  552. package/dist/contexts/I18n/I18nContext.d.ts +0 -17
  553. package/dist/contexts/I18n/I18nContext.d.ts.map +1 -1
  554. package/dist/contexts/I18n/I18nContext.js.map +1 -1
  555. package/dist/contexts/I18n/I18nProvider.d.ts +0 -17
  556. package/dist/contexts/I18n/I18nProvider.d.ts.map +1 -1
  557. package/dist/contexts/I18n/I18nProvider.js.map +1 -1
  558. package/dist/contexts/I18n/useI18n.d.ts +0 -17
  559. package/dist/contexts/I18n/useI18n.d.ts.map +1 -1
  560. package/dist/contexts/I18n/useI18n.js.map +1 -1
  561. package/dist/contexts/Theme/ThemeContext.d.ts +0 -17
  562. package/dist/contexts/Theme/ThemeContext.d.ts.map +1 -1
  563. package/dist/contexts/Theme/ThemeContext.js.map +1 -1
  564. package/dist/contexts/Theme/ThemeProvider.d.ts +0 -17
  565. package/dist/contexts/Theme/ThemeProvider.d.ts.map +1 -1
  566. package/dist/contexts/Theme/ThemeProvider.js.map +1 -1
  567. package/dist/contexts/Theme/types.d.ts +0 -17
  568. package/dist/contexts/Theme/types.d.ts.map +1 -1
  569. package/dist/contexts/Theme/useTheme.d.ts +0 -17
  570. package/dist/contexts/Theme/useTheme.d.ts.map +1 -1
  571. package/dist/contexts/Theme/useTheme.js.map +1 -1
  572. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +0 -17
  573. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  574. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  575. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts +0 -17
  576. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  577. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  578. package/dist/contexts/ThunderID/useThunderID.d.ts +0 -17
  579. package/dist/contexts/ThunderID/useThunderID.d.ts.map +1 -1
  580. package/dist/contexts/ThunderID/useThunderID.js.map +1 -1
  581. package/dist/contexts/User/UserContext.d.ts +0 -17
  582. package/dist/contexts/User/UserContext.d.ts.map +1 -1
  583. package/dist/contexts/User/UserContext.js.map +1 -1
  584. package/dist/contexts/User/UserProvider.d.ts +0 -17
  585. package/dist/contexts/User/UserProvider.d.ts.map +1 -1
  586. package/dist/contexts/User/UserProvider.js.map +1 -1
  587. package/dist/contexts/User/useUser.d.ts +0 -17
  588. package/dist/contexts/User/useUser.d.ts.map +1 -1
  589. package/dist/contexts/User/useUser.js.map +1 -1
  590. package/dist/hooks/useBrowserUrl.d.ts +0 -17
  591. package/dist/hooks/useBrowserUrl.d.ts.map +1 -1
  592. package/dist/hooks/useBrowserUrl.js.map +1 -1
  593. package/dist/hooks/useForm.d.ts +0 -17
  594. package/dist/hooks/useForm.d.ts.map +1 -1
  595. package/dist/hooks/useForm.js.map +1 -1
  596. package/dist/hooks/useOAuthCallback.d.ts +0 -17
  597. package/dist/hooks/useOAuthCallback.d.ts.map +1 -1
  598. package/dist/hooks/useOAuthCallback.js.map +1 -1
  599. package/dist/hooks/useTranslation.d.ts +0 -17
  600. package/dist/hooks/useTranslation.d.ts.map +1 -1
  601. package/dist/hooks/useTranslation.js.map +1 -1
  602. package/dist/index.d.ts +0 -17
  603. package/dist/index.d.ts.map +1 -1
  604. package/dist/models/adapters.d.ts +0 -17
  605. package/dist/models/adapters.d.ts.map +1 -1
  606. package/dist/models/config.d.ts +0 -17
  607. package/dist/models/config.d.ts.map +1 -1
  608. package/dist/utils/applyThemeToDOM.d.ts +0 -17
  609. package/dist/utils/applyThemeToDOM.d.ts.map +1 -1
  610. package/dist/utils/applyThemeToDOM.js.map +1 -1
  611. package/dist/utils/buildThemeConfigFromFlowMeta.d.ts +0 -17
  612. package/dist/utils/buildThemeConfigFromFlowMeta.d.ts.map +1 -1
  613. package/dist/utils/buildThemeConfigFromFlowMeta.js.map +1 -1
  614. package/dist/utils/composeAffixedInputs.d.ts +0 -17
  615. package/dist/utils/composeAffixedInputs.d.ts.map +1 -1
  616. package/dist/utils/composeAffixedInputs.js.map +1 -1
  617. package/dist/utils/flowTransformer.d.ts +0 -17
  618. package/dist/utils/flowTransformer.d.ts.map +1 -1
  619. package/dist/utils/flowTransformer.js.map +1 -1
  620. package/dist/utils/getAuthComponentHeadings.d.ts +0 -17
  621. package/dist/utils/getAuthComponentHeadings.d.ts.map +1 -1
  622. package/dist/utils/getAuthComponentHeadings.js.map +1 -1
  623. package/dist/utils/getDisplayName.d.ts +0 -17
  624. package/dist/utils/getDisplayName.d.ts.map +1 -1
  625. package/dist/utils/getDisplayName.js.map +1 -1
  626. package/dist/utils/getMappedUserProfileValue.d.ts +0 -17
  627. package/dist/utils/getMappedUserProfileValue.d.ts.map +1 -1
  628. package/dist/utils/getMappedUserProfileValue.js.map +1 -1
  629. package/dist/utils/normalizeThemeConfig.d.ts +0 -17
  630. package/dist/utils/normalizeThemeConfig.d.ts.map +1 -1
  631. package/dist/utils/normalizeThemeConfig.js.map +1 -1
  632. package/dist/utils/oauth.d.ts +0 -17
  633. package/dist/utils/oauth.d.ts.map +1 -1
  634. package/dist/utils/oauth.js.map +1 -1
  635. package/dist/utils/passkey.d.ts +0 -17
  636. package/dist/utils/passkey.d.ts.map +1 -1
  637. package/dist/utils/passkey.js.map +1 -1
  638. package/dist/utils/resolveTranslationsInArray.d.ts +0 -17
  639. package/dist/utils/resolveTranslationsInArray.d.ts.map +1 -1
  640. package/dist/utils/resolveTranslationsInArray.js.map +1 -1
  641. package/dist/utils/resolveTranslationsInObject.d.ts +0 -17
  642. package/dist/utils/resolveTranslationsInObject.d.ts.map +1 -1
  643. package/dist/utils/resolveTranslationsInObject.js.map +1 -1
  644. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUserProfile.js","names":["fieldsToSkip: string[]","readonlyFields: string[]","BaseUserProfile: FC<BaseUserProfileProps>","useTheme","useTranslation","shouldShowField: any","toggleFieldEdit: any","getFieldPlaceholder: any","fieldLabel: any","formatLabel: any","styles: any","useStyles","ObjectDisplay: FC<{data: unknown}>","keys: any","current: any","i: any","key: any","handleFieldSave: any","fieldName: string","fieldValue: any","payload: Record<string, any>","handleFieldCancel: any","currentUser: any","currentUser","mergedMappings: Record<string, string | string[]>","label: any","displayValue: string","displayValue","hasValues: any","isEditable: any","isEditable","currentValue: any","fieldValues: string[]","MultiInput","Button","commonProps: any","field: ReactElement","TextField","DatePicker","Checkbox","hasValue: any","isFieldEditing: any","isReadonlyField: any","tempEditedUser: any","containerClasses: any","displayName: any","getDisplayName","profileEntries: any","getMappedUserProfileValue","Typography","Divider","schemaWithValue: any","profileContent: any","CardPrimitive","AlertPrimitive","DialogPrimitive"],"sources":["../../../../src/components/presentation/UserProfile/BaseUserProfile.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 {cx} from '@emotion/css';\nimport {User, withVendorCSSClassPrefix, bem, Preferences, startCase} from '@thunderid/browser';\nimport {FC, ReactElement, useState, useCallback, useEffect} from 'react';\nimport useStyles from './BaseUserProfile.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport getDisplayName from '../../../utils/getDisplayName';\nimport getMappedUserProfileValue from '../../../utils/getMappedUserProfileValue';\nimport AlertPrimitive from '../../primitives/Alert/Alert';\nimport {Avatar} from '../../primitives/Avatar/Avatar';\nimport Button from '../../primitives/Button/Button';\nimport CardPrimitive from '../../primitives/Card/Card';\nimport Checkbox from '../../primitives/Checkbox/Checkbox';\nimport DatePicker from '../../primitives/DatePicker/DatePicker';\nimport DialogPrimitive from '../../primitives/Dialog/Dialog';\nimport Divider from '../../primitives/Divider/Divider';\nimport MultiInput from '../../primitives/MultiInput/MultiInput';\nimport TextField from '../../primitives/TextField/TextField';\nimport Typography from '../../primitives/Typography/Typography';\n\ninterface ExtendedFlatSchema {\n path?: string;\n schemaId?: string;\n}\n\ninterface Schema extends ExtendedFlatSchema {\n caseExact?: boolean;\n description?: string;\n displayName?: string;\n displayOrder?: string;\n multiValued?: boolean;\n mutability?: string;\n name?: string;\n required?: boolean;\n returned?: string;\n subAttributes?: Schema[];\n type?: string;\n uniqueness?: string;\n value?: any;\n}\n\nexport interface BaseUserProfileProps {\n attributeMapping?: {\n [key: string]: string | string[] | undefined;\n firstName?: string | string[];\n lastName?: string | string[];\n picture?: string | string[];\n username?: string | string[];\n };\n cardLayout?: boolean;\n className?: string;\n displayNameAttributes?: string[];\n editable?: boolean;\n error?: string | null;\n fallback?: ReactElement | null;\n flattenedProfile?: User;\n hideFields?: string[];\n isLoading?: boolean;\n mode?: 'inline' | 'popup';\n onOpenChange?: (open: boolean) => void;\n onUpdate?: (payload: any) => Promise<void>;\n open?: boolean;\n /**\n * Component-level preferences to override global i18n and theme settings.\n * Preferences are deep-merged with global ones, with component preferences\n * taking precedence. Affects this component and all its descendants.\n */\n preferences?: Preferences;\n profile?: User;\n showFields?: string[];\n\n title?: string;\n}\n\n// Fields to skip based on schema.name\nconst fieldsToSkip: string[] = [\n 'roles.default',\n 'active',\n 'groups',\n 'accountLocked',\n 'accountDisabled',\n 'oneTimePassword',\n 'userSourceId',\n 'idpType',\n 'localCredentialExists',\n 'active',\n 'ResourceType',\n 'ExternalID',\n 'MetaData',\n 'verifiedMobileNumbers',\n 'verifiedEmailAddresses',\n 'phoneNumbers.mobile',\n 'emailAddresses',\n 'preferredMFAOption',\n 'attributes',\n 'picture',\n 'isReadOnly',\n 'isReadonly',\n];\n\n// Fields that should be readonly\nconst readonlyFields: string[] = ['attributes', 'id', 'isReadOnly', 'ouId', 'username'];\n\nconst BaseUserProfile: FC<BaseUserProfileProps> = ({\n fallback = null,\n className = '',\n cardLayout = true,\n profile,\n flattenedProfile,\n mode = 'inline',\n title,\n attributeMapping = {},\n editable = true,\n onOpenChange,\n onUpdate,\n open = false,\n error = null,\n isLoading = false,\n preferences,\n showFields = [],\n hideFields = [],\n displayNameAttributes = [],\n}: BaseUserProfileProps): ReactElement | null => {\n const {theme, colorScheme} = useTheme();\n const [editedUser, setEditedUser] = useState(flattenedProfile || profile);\n const [editingFields, setEditingFields] = useState<Record<string, boolean>>({});\n const {t} = useTranslation(preferences?.i18n);\n\n useEffect(() => {\n const nextUser = flattenedProfile ?? profile;\n if (!nextUser) return;\n\n setEditedUser((prev: any) => {\n if (!prev) return nextUser;\n\n const updated = {...nextUser};\n Object.keys(prev).forEach((key) => {\n if (editingFields[key]) {\n updated[key] = prev[key];\n }\n });\n return updated;\n });\n }, [flattenedProfile, profile, editingFields]);\n\n /**\n * Determines if a field should be visible based on showFields, hideFields, and fieldsToSkip arrays.\n * Priority order:\n * 1. fieldsToSkip (always hidden) - highest priority\n * 2. hideFields (explicitly hidden)\n * 3. showFields (explicitly shown, if array is not empty)\n * 4. Default behavior (show all fields not in fieldsToSkip)\n */\n const shouldShowField: any = useCallback(\n (fieldName: string): boolean => {\n // Always skip fields in the hardcoded fieldsToSkip array\n if (fieldsToSkip.includes(fieldName)) {\n return false;\n }\n\n // If hideFields is provided and contains this field, hide it\n if (hideFields.length > 0 && hideFields.includes(fieldName)) {\n return false;\n }\n\n // If showFields is provided and not empty, only show fields in that array\n if (showFields.length > 0) {\n return showFields.includes(fieldName);\n }\n\n return true;\n },\n [showFields, hideFields],\n );\n\n const PencilIcon = (): any => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\" />\n </svg>\n );\n\n const toggleFieldEdit: any = useCallback((fieldName: string) => {\n setEditingFields((prev: any) => ({\n ...prev,\n [fieldName]: !prev[fieldName],\n }));\n }, []);\n\n const getFieldPlaceholder: any = useCallback((schema: Schema): string => {\n const {type, displayName, description, name} = schema;\n\n const fieldLabel: any = displayName || description || name || 'value';\n\n switch (type) {\n case 'DATE_TIME':\n return `Enter your ${fieldLabel.toLowerCase()}`;\n case 'BOOLEAN':\n return `Select ${fieldLabel.toLowerCase()}`;\n case 'COMPLEX':\n return `Enter ${fieldLabel.toLowerCase()} details`;\n default:\n return `Enter your ${fieldLabel.toLowerCase()}`;\n }\n }, []);\n\n const formatLabel: any = useCallback(\n (key: string): string =>\n key\n .split(/(?=[A-Z])|_/)\n .map((word: any) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' '),\n [],\n );\n\n const styles: any = useStyles(theme, colorScheme);\n\n const ObjectDisplay: FC<{data: unknown}> = ({data}: {data: unknown}): ReactElement | null => {\n if (!data || typeof data !== 'object') return null;\n\n return (\n <table className={styles.value}>\n <tbody>\n {Object.entries(data).map(([key, value]: any) => (\n <tr key={key}>\n <td className={styles.objectKey}>\n <strong>{formatLabel(key)}:</strong>\n </td>\n <td className={styles.objectValue}>\n {typeof value === 'object' ? <ObjectDisplay data={value} /> : String(value)}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n function set(obj: Record<string, any>, path: string, value: any): void {\n const keys: any = path.split('.');\n let current: any = obj;\n\n for (let i: any = 0; i < keys.length; i += 1) {\n const key: any = keys[i];\n\n if (i === keys.length - 1) {\n current[key] = value;\n } else {\n if (!current[key] || typeof current[key] !== 'object') {\n current[key] = {};\n }\n current = current[key];\n }\n }\n }\n\n const handleFieldSave: any = useCallback(\n (schema: Schema): void => {\n if (!onUpdate || !schema.name) return;\n\n const fieldName: string = schema.name;\n let fieldValue: any;\n if (editedUser && fieldName && editedUser[fieldName] !== undefined) {\n fieldValue = editedUser[fieldName];\n } else if (flattenedProfile?.[fieldName] !== undefined) {\n fieldValue = flattenedProfile[fieldName];\n } else {\n fieldValue = '';\n }\n\n if (Array.isArray(fieldValue)) {\n fieldValue = fieldValue.filter((v: any) => v !== undefined && v !== null && v !== '');\n }\n\n let payload: Record<string, any> = {};\n set(payload, fieldName, fieldValue);\n\n onUpdate(payload);\n\n toggleFieldEdit(fieldName);\n },\n [editedUser, flattenedProfile, onUpdate, toggleFieldEdit],\n );\n\n const handleFieldCancel: any = useCallback(\n (fieldName: string) => {\n const currentUser: any = flattenedProfile || profile;\n setEditedUser((prev: any) => ({\n ...prev,\n [fieldName]: currentUser[fieldName],\n }));\n toggleFieldEdit(fieldName);\n },\n [flattenedProfile, profile, toggleFieldEdit],\n );\n\n const defaultAttributeMappings: Record<string, string | string[]> = {\n email: ['emails', 'email'],\n firstName: ['name.givenName', 'given_name'],\n lastName: ['name.familyName', 'family_name'],\n picture: ['profile', 'profileUrl', 'picture', 'URL'],\n username: ['userName', 'username', 'user_name'],\n };\n\n const mergedMappings: Record<string, string | string[]> = Object.fromEntries(\n Object.entries({...defaultAttributeMappings, ...attributeMapping}).filter(\n (entry): entry is [string, string | string[]] => entry[1] !== undefined,\n ),\n );\n\n const renderSchemaField = (\n schema: Schema,\n isEditing: boolean,\n onEditValue?: (value: any) => void,\n onStartEdit?: () => void,\n ): ReactElement | null => {\n if (!schema) return null;\n const {value, displayName, description, name, type, required, mutability, subAttributes, multiValued} = schema;\n const label: any = displayName || description || (name ? startCase(name) : '');\n\n if (subAttributes && Array.isArray(subAttributes)) {\n return (\n <>\n {subAttributes.map((subAttr: any, index: any) => {\n let displayValue: string;\n if (Array.isArray(subAttr.value)) {\n displayValue = subAttr.value\n .map((item: any) => (typeof item === 'object' ? JSON.stringify(item) : String(item)))\n .join(', ');\n } else if (typeof subAttr.value === 'object') {\n displayValue = JSON.stringify(subAttr.value);\n } else {\n displayValue = String(subAttr.value);\n }\n\n return (\n <div key={index} className={styles.field}>\n <span className={styles.label}>{subAttr.displayName || subAttr.description || ''}</span>\n <div className={styles.value}>{displayValue}</div>\n </div>\n );\n })}\n </>\n );\n }\n\n if (Array.isArray(value) || multiValued) {\n const hasValues: any = Array.isArray(value)\n ? value.length > 0\n : value !== undefined && value !== null && value !== '';\n const isEditable: any = editable && mutability !== 'READ_ONLY' && !readonlyFields.includes(name || '');\n\n if (isEditing && onEditValue && isEditable) {\n let currentValue: any;\n if (editedUser && name && editedUser[name] !== undefined) {\n currentValue = editedUser[name];\n } else if (flattenedProfile && name && flattenedProfile[name] !== undefined) {\n currentValue = flattenedProfile[name];\n } else {\n currentValue = value;\n }\n\n let fieldValues: string[];\n if (Array.isArray(currentValue)) {\n fieldValues = currentValue.map(String);\n } else if (currentValue !== undefined && currentValue !== null && currentValue !== '') {\n fieldValues = [String(currentValue)];\n } else {\n fieldValues = [];\n }\n\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>\n <MultiInput\n values={fieldValues}\n onChange={(newValues: any): void => {\n if (multiValued || Array.isArray(currentValue)) {\n onEditValue(newValues);\n } else {\n onEditValue(newValues[0] || '');\n }\n }}\n placeholder={getFieldPlaceholder(schema)}\n fieldType={type as 'STRING' | 'DATE_TIME' | 'BOOLEAN'}\n type={type === 'DATE_TIME' ? 'date' : 'text'}\n required={required}\n />\n </div>\n </>\n );\n }\n\n let displayValue: string;\n if (hasValues) {\n if (Array.isArray(value)) {\n displayValue = value\n .map((item: any) => (typeof item === 'object' ? JSON.stringify(item) : String(item)))\n .join(', ');\n } else {\n displayValue = String(value);\n }\n } else if (isEditable) {\n displayValue = getFieldPlaceholder(schema);\n } else {\n displayValue = '-';\n }\n\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={cx(styles.value, !hasValues ? styles.valuePlaceholder : '')}>\n {!hasValues && isEditable && onStartEdit ? (\n <Button\n onClick={onStartEdit}\n variant=\"text\"\n color=\"secondary\"\n size=\"small\"\n title=\"Click to edit\"\n className={styles.editButton}\n >\n {displayValue}\n </Button>\n ) : (\n displayValue\n )}\n </div>\n </>\n );\n }\n if (type === 'COMPLEX' && typeof value === 'object') {\n return <ObjectDisplay data={value} />;\n }\n\n if (isEditing && onEditValue && mutability !== 'READ_ONLY' && !readonlyFields.includes(name || '')) {\n let fieldValue: any;\n if (editedUser && name && editedUser[name] !== undefined) {\n fieldValue = editedUser[name];\n } else if (flattenedProfile && name && flattenedProfile[name] !== undefined) {\n fieldValue = flattenedProfile[name];\n } else {\n fieldValue = value || '';\n }\n\n const commonProps: any = {\n label: undefined,\n onChange: (e: any) => onEditValue(e.target ? e.target.value : e),\n placeholder: getFieldPlaceholder(schema),\n required,\n value: fieldValue,\n // Removed inline style, use .styles.ts for marginBottom if needed\n };\n let field: ReactElement;\n switch (type) {\n case 'STRING':\n field = <TextField {...commonProps} />;\n break;\n case 'DATE_TIME':\n field = <DatePicker {...commonProps} />;\n break;\n case 'BOOLEAN':\n field = (\n <Checkbox\n {...commonProps}\n checked={!!fieldValue}\n onChange={(e: any): void => {\n onEditValue(e.target.checked);\n }}\n />\n );\n break;\n case 'COMPLEX':\n field = (\n <textarea\n value={fieldValue}\n onChange={(e: any): void => onEditValue(e.target.value)}\n placeholder={getFieldPlaceholder(schema)}\n required={required}\n className={styles.complexTextarea}\n />\n );\n break;\n default:\n field = <TextField {...commonProps} />;\n }\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>{field}</div>\n </>\n );\n }\n\n const hasValue: any = value !== undefined && value !== null && value !== '';\n const isEditable: any = editable && mutability !== 'READ_ONLY' && !readonlyFields.includes(name || '');\n\n let displayValue: string;\n if (hasValue) {\n displayValue = String(value);\n } else if (isEditable) {\n displayValue = getFieldPlaceholder(schema);\n } else {\n displayValue = '-';\n }\n\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={cx(styles.value, !hasValue ? styles.valuePlaceholder : '')}>\n {!hasValue && isEditable && onStartEdit ? (\n <Button\n onClick={onStartEdit}\n variant=\"text\"\n color=\"secondary\"\n size=\"small\"\n title=\"Click to edit\"\n className={styles.editButton}\n >\n {displayValue}\n </Button>\n ) : (\n displayValue\n )}\n </div>\n </>\n );\n };\n\n const renderUserInfo = (schema: Schema): any => {\n if (!schema?.name) return null;\n\n const hasValue: any = schema.value !== undefined && schema.value !== '' && schema.value !== null;\n const isFieldEditing: any = editingFields[schema.name];\n const isReadonlyField: any = readonlyFields.includes(schema.name);\n\n const shouldShow: any = hasValue || isFieldEditing || (editable && schema.mutability === 'READ_WRITE');\n\n if (!shouldShow) {\n return null;\n }\n\n return (\n <div className={styles.field}>\n <div className={styles.fieldInner}>\n {renderSchemaField(\n schema,\n isFieldEditing,\n (value: any) => {\n const tempEditedUser: any = {...editedUser};\n tempEditedUser[schema.name!] = value;\n setEditedUser(tempEditedUser);\n },\n () => toggleFieldEdit(schema.name),\n )}\n </div>\n {editable && schema.mutability !== 'READ_ONLY' && !isReadonlyField && (\n <div className={styles.fieldActions}>\n {isFieldEditing && (\n <>\n <Button size=\"small\" color=\"primary\" variant=\"solid\" onClick={(): any => handleFieldSave(schema)}>\n Save\n </Button>\n <Button\n size=\"small\"\n color=\"secondary\"\n variant=\"solid\"\n onClick={(): any => handleFieldCancel(schema.name)}\n >\n Cancel\n </Button>\n </>\n )}\n {!isFieldEditing && hasValue && (\n <Button\n size=\"small\"\n color=\"tertiary\"\n variant=\"icon\"\n onClick={(): any => toggleFieldEdit(schema.name)}\n title=\"Edit\"\n className={styles.editButton}\n >\n <PencilIcon />\n </Button>\n )}\n </div>\n )}\n </div>\n );\n };\n\n if (!profile && !flattenedProfile) {\n return fallback;\n }\n\n const containerClasses: any = cx(\n styles.root,\n cardLayout ? styles.card : '',\n withVendorCSSClassPrefix('user-profile'),\n className,\n );\n\n const currentUser: any = flattenedProfile || profile;\n\n const renderProfileWithoutSchemas = (): any => {\n if (!currentUser) return null;\n\n const displayName: any = getDisplayName(mergedMappings, profile!, displayNameAttributes);\n\n const profileEntries: any = Object.entries(currentUser)\n .filter(([key, value]: [string, any]) => {\n if (!shouldShowField(key)) return false;\n\n return value !== undefined && value !== '' && value !== null;\n })\n .sort(([a]: [string, ...any[]], [b]: [string, ...any[]]) => a.localeCompare(b));\n\n return (\n <>\n <div className={styles.profileSummary}>\n <Avatar\n imageUrl={getMappedUserProfileValue('picture', mergedMappings, currentUser)}\n name={displayName}\n size={70}\n alt={`${displayName}'s avatar`}\n isLoading={isLoading}\n />\n <Typography variant=\"h3\" fontWeight=\"medium\">\n {displayName}\n </Typography>\n {getMappedUserProfileValue('email', mergedMappings, currentUser) && (\n <Typography variant=\"body2\" color=\"textSecondary\">\n {getMappedUserProfileValue('email', mergedMappings, currentUser)}\n </Typography>\n )}\n </div>\n <Divider />\n {profileEntries.map(([key, value]: any) => {\n const isReadonly = readonlyFields.includes(key);\n const schema: Schema = {name: key, mutability: isReadonly ? 'READ_ONLY' : 'READ_WRITE'};\n const schemaWithValue: any = {...schema, value};\n\n return (\n <div key={key} className={styles.info}>\n {renderUserInfo(schemaWithValue)}\n </div>\n );\n })}\n </>\n );\n };\n\n const profileContent: any = (\n <CardPrimitive className={containerClasses}>\n {error && (\n <AlertPrimitive\n variant=\"error\"\n className={cx(withVendorCSSClassPrefix(bem('user-profile', 'alert')), styles.alert)}\n >\n <AlertPrimitive.Title>{t('errors.heading') || 'Error'}</AlertPrimitive.Title>\n <AlertPrimitive.Description>{error}</AlertPrimitive.Description>\n </AlertPrimitive>\n )}\n <div className={styles.infoContainer}>{renderProfileWithoutSchemas()}</div>\n </CardPrimitive>\n );\n\n if (mode === 'popup') {\n return (\n <DialogPrimitive open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Content>\n <DialogPrimitive.Heading>{title ?? t('user.profile.heading')}</DialogPrimitive.Heading>\n <div className={styles.popup}>{profileContent}</div>\n </DialogPrimitive.Content>\n </DialogPrimitive>\n );\n }\n\n return profileContent;\n};\n\nexport default BaseUserProfile;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseUserProfile.js","names":["fieldsToSkip: string[]","readonlyFields: string[]","BaseUserProfile: FC<BaseUserProfileProps>","useTheme","useTranslation","shouldShowField: any","toggleFieldEdit: any","getFieldPlaceholder: any","fieldLabel: any","formatLabel: any","styles: any","useStyles","ObjectDisplay: FC<{data: unknown}>","keys: any","current: any","i: any","key: any","handleFieldSave: any","fieldName: string","fieldValue: any","payload: Record<string, any>","handleFieldCancel: any","currentUser: any","currentUser","mergedMappings: Record<string, string | string[]>","label: any","displayValue: string","displayValue","hasValues: any","isEditable: any","isEditable","currentValue: any","fieldValues: string[]","MultiInput","Button","commonProps: any","field: ReactElement","TextField","DatePicker","Checkbox","hasValue: any","isFieldEditing: any","isReadonlyField: any","tempEditedUser: any","containerClasses: any","displayName: any","getDisplayName","profileEntries: any","getMappedUserProfileValue","Typography","Divider","schemaWithValue: any","profileContent: any","CardPrimitive","AlertPrimitive","DialogPrimitive"],"sources":["../../../../src/components/presentation/UserProfile/BaseUserProfile.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {User, withVendorCSSClassPrefix, bem, Preferences, startCase} from '@thunderid/browser';\nimport {FC, ReactElement, useState, useCallback, useEffect} from 'react';\nimport useStyles from './BaseUserProfile.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport useTranslation from '../../../hooks/useTranslation';\nimport getDisplayName from '../../../utils/getDisplayName';\nimport getMappedUserProfileValue from '../../../utils/getMappedUserProfileValue';\nimport AlertPrimitive from '../../primitives/Alert/Alert';\nimport {Avatar} from '../../primitives/Avatar/Avatar';\nimport Button from '../../primitives/Button/Button';\nimport CardPrimitive from '../../primitives/Card/Card';\nimport Checkbox from '../../primitives/Checkbox/Checkbox';\nimport DatePicker from '../../primitives/DatePicker/DatePicker';\nimport DialogPrimitive from '../../primitives/Dialog/Dialog';\nimport Divider from '../../primitives/Divider/Divider';\nimport MultiInput from '../../primitives/MultiInput/MultiInput';\nimport TextField from '../../primitives/TextField/TextField';\nimport Typography from '../../primitives/Typography/Typography';\n\ninterface ExtendedFlatSchema {\n path?: string;\n schemaId?: string;\n}\n\ninterface Schema extends ExtendedFlatSchema {\n caseExact?: boolean;\n description?: string;\n displayName?: string;\n displayOrder?: string;\n multiValued?: boolean;\n mutability?: string;\n name?: string;\n required?: boolean;\n returned?: string;\n subAttributes?: Schema[];\n type?: string;\n uniqueness?: string;\n value?: any;\n}\n\nexport interface BaseUserProfileProps {\n attributeMapping?: {\n [key: string]: string | string[] | undefined;\n firstName?: string | string[];\n lastName?: string | string[];\n picture?: string | string[];\n username?: string | string[];\n };\n cardLayout?: boolean;\n className?: string;\n displayNameAttributes?: string[];\n editable?: boolean;\n error?: string | null;\n fallback?: ReactElement | null;\n flattenedProfile?: User;\n hideFields?: string[];\n isLoading?: boolean;\n mode?: 'inline' | 'popup';\n onOpenChange?: (open: boolean) => void;\n onUpdate?: (payload: any) => Promise<void>;\n open?: boolean;\n /**\n * Component-level preferences to override global i18n and theme settings.\n * Preferences are deep-merged with global ones, with component preferences\n * taking precedence. Affects this component and all its descendants.\n */\n preferences?: Preferences;\n profile?: User;\n showFields?: string[];\n\n title?: string;\n}\n\n// Fields to skip based on schema.name\nconst fieldsToSkip: string[] = [\n 'roles.default',\n 'active',\n 'groups',\n 'accountLocked',\n 'accountDisabled',\n 'oneTimePassword',\n 'userSourceId',\n 'idpType',\n 'localCredentialExists',\n 'active',\n 'ResourceType',\n 'ExternalID',\n 'MetaData',\n 'verifiedMobileNumbers',\n 'verifiedEmailAddresses',\n 'phoneNumbers.mobile',\n 'emailAddresses',\n 'preferredMFAOption',\n 'attributes',\n 'picture',\n 'isReadOnly',\n 'isReadonly',\n];\n\n// Fields that should be readonly\nconst readonlyFields: string[] = ['attributes', 'id', 'isReadOnly', 'ouId', 'username'];\n\nconst BaseUserProfile: FC<BaseUserProfileProps> = ({\n fallback = null,\n className = '',\n cardLayout = true,\n profile,\n flattenedProfile,\n mode = 'inline',\n title,\n attributeMapping = {},\n editable = true,\n onOpenChange,\n onUpdate,\n open = false,\n error = null,\n isLoading = false,\n preferences,\n showFields = [],\n hideFields = [],\n displayNameAttributes = [],\n}: BaseUserProfileProps): ReactElement | null => {\n const {theme, colorScheme} = useTheme();\n const [editedUser, setEditedUser] = useState(flattenedProfile || profile);\n const [editingFields, setEditingFields] = useState<Record<string, boolean>>({});\n const {t} = useTranslation(preferences?.i18n);\n\n useEffect(() => {\n const nextUser = flattenedProfile ?? profile;\n if (!nextUser) return;\n\n setEditedUser((prev: any) => {\n if (!prev) return nextUser;\n\n const updated = {...nextUser};\n Object.keys(prev).forEach((key) => {\n if (editingFields[key]) {\n updated[key] = prev[key];\n }\n });\n return updated;\n });\n }, [flattenedProfile, profile, editingFields]);\n\n /**\n * Determines if a field should be visible based on showFields, hideFields, and fieldsToSkip arrays.\n * Priority order:\n * 1. fieldsToSkip (always hidden) - highest priority\n * 2. hideFields (explicitly hidden)\n * 3. showFields (explicitly shown, if array is not empty)\n * 4. Default behavior (show all fields not in fieldsToSkip)\n */\n const shouldShowField: any = useCallback(\n (fieldName: string): boolean => {\n // Always skip fields in the hardcoded fieldsToSkip array\n if (fieldsToSkip.includes(fieldName)) {\n return false;\n }\n\n // If hideFields is provided and contains this field, hide it\n if (hideFields.length > 0 && hideFields.includes(fieldName)) {\n return false;\n }\n\n // If showFields is provided and not empty, only show fields in that array\n if (showFields.length > 0) {\n return showFields.includes(fieldName);\n }\n\n return true;\n },\n [showFields, hideFields],\n );\n\n const PencilIcon = (): any => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\" />\n </svg>\n );\n\n const toggleFieldEdit: any = useCallback((fieldName: string) => {\n setEditingFields((prev: any) => ({\n ...prev,\n [fieldName]: !prev[fieldName],\n }));\n }, []);\n\n const getFieldPlaceholder: any = useCallback((schema: Schema): string => {\n const {type, displayName, description, name} = schema;\n\n const fieldLabel: any = displayName || description || name || 'value';\n\n switch (type) {\n case 'DATE_TIME':\n return `Enter your ${fieldLabel.toLowerCase()}`;\n case 'BOOLEAN':\n return `Select ${fieldLabel.toLowerCase()}`;\n case 'COMPLEX':\n return `Enter ${fieldLabel.toLowerCase()} details`;\n default:\n return `Enter your ${fieldLabel.toLowerCase()}`;\n }\n }, []);\n\n const formatLabel: any = useCallback(\n (key: string): string =>\n key\n .split(/(?=[A-Z])|_/)\n .map((word: any) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' '),\n [],\n );\n\n const styles: any = useStyles(theme, colorScheme);\n\n const ObjectDisplay: FC<{data: unknown}> = ({data}: {data: unknown}): ReactElement | null => {\n if (!data || typeof data !== 'object') return null;\n\n return (\n <table className={styles.value}>\n <tbody>\n {Object.entries(data).map(([key, value]: any) => (\n <tr key={key}>\n <td className={styles.objectKey}>\n <strong>{formatLabel(key)}:</strong>\n </td>\n <td className={styles.objectValue}>\n {typeof value === 'object' ? <ObjectDisplay data={value} /> : String(value)}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n );\n };\n\n function set(obj: Record<string, any>, path: string, value: any): void {\n const keys: any = path.split('.');\n let current: any = obj;\n\n for (let i: any = 0; i < keys.length; i += 1) {\n const key: any = keys[i];\n\n if (i === keys.length - 1) {\n current[key] = value;\n } else {\n if (!current[key] || typeof current[key] !== 'object') {\n current[key] = {};\n }\n current = current[key];\n }\n }\n }\n\n const handleFieldSave: any = useCallback(\n (schema: Schema): void => {\n if (!onUpdate || !schema.name) return;\n\n const fieldName: string = schema.name;\n let fieldValue: any;\n if (editedUser && fieldName && editedUser[fieldName] !== undefined) {\n fieldValue = editedUser[fieldName];\n } else if (flattenedProfile?.[fieldName] !== undefined) {\n fieldValue = flattenedProfile[fieldName];\n } else {\n fieldValue = '';\n }\n\n if (Array.isArray(fieldValue)) {\n fieldValue = fieldValue.filter((v: any) => v !== undefined && v !== null && v !== '');\n }\n\n let payload: Record<string, any> = {};\n set(payload, fieldName, fieldValue);\n\n onUpdate(payload);\n\n toggleFieldEdit(fieldName);\n },\n [editedUser, flattenedProfile, onUpdate, toggleFieldEdit],\n );\n\n const handleFieldCancel: any = useCallback(\n (fieldName: string) => {\n const currentUser: any = flattenedProfile || profile;\n setEditedUser((prev: any) => ({\n ...prev,\n [fieldName]: currentUser[fieldName],\n }));\n toggleFieldEdit(fieldName);\n },\n [flattenedProfile, profile, toggleFieldEdit],\n );\n\n const defaultAttributeMappings: Record<string, string | string[]> = {\n email: ['emails', 'email'],\n firstName: ['name.givenName', 'given_name'],\n lastName: ['name.familyName', 'family_name'],\n picture: ['profile', 'profileUrl', 'picture', 'URL'],\n username: ['userName', 'username', 'user_name'],\n };\n\n const mergedMappings: Record<string, string | string[]> = Object.fromEntries(\n Object.entries({...defaultAttributeMappings, ...attributeMapping}).filter(\n (entry): entry is [string, string | string[]] => entry[1] !== undefined,\n ),\n );\n\n const renderSchemaField = (\n schema: Schema,\n isEditing: boolean,\n onEditValue?: (value: any) => void,\n onStartEdit?: () => void,\n ): ReactElement | null => {\n if (!schema) return null;\n const {value, displayName, description, name, type, required, mutability, subAttributes, multiValued} = schema;\n const label: any = displayName || description || (name ? startCase(name) : '');\n\n if (subAttributes && Array.isArray(subAttributes)) {\n return (\n <>\n {subAttributes.map((subAttr: any, index: any) => {\n let displayValue: string;\n if (Array.isArray(subAttr.value)) {\n displayValue = subAttr.value\n .map((item: any) => (typeof item === 'object' ? JSON.stringify(item) : String(item)))\n .join(', ');\n } else if (typeof subAttr.value === 'object') {\n displayValue = JSON.stringify(subAttr.value);\n } else {\n displayValue = String(subAttr.value);\n }\n\n return (\n <div key={index} className={styles.field}>\n <span className={styles.label}>{subAttr.displayName || subAttr.description || ''}</span>\n <div className={styles.value}>{displayValue}</div>\n </div>\n );\n })}\n </>\n );\n }\n\n if (Array.isArray(value) || multiValued) {\n const hasValues: any = Array.isArray(value)\n ? value.length > 0\n : value !== undefined && value !== null && value !== '';\n const isEditable: any = editable && mutability !== 'READ_ONLY' && !readonlyFields.includes(name || '');\n\n if (isEditing && onEditValue && isEditable) {\n let currentValue: any;\n if (editedUser && name && editedUser[name] !== undefined) {\n currentValue = editedUser[name];\n } else if (flattenedProfile && name && flattenedProfile[name] !== undefined) {\n currentValue = flattenedProfile[name];\n } else {\n currentValue = value;\n }\n\n let fieldValues: string[];\n if (Array.isArray(currentValue)) {\n fieldValues = currentValue.map(String);\n } else if (currentValue !== undefined && currentValue !== null && currentValue !== '') {\n fieldValues = [String(currentValue)];\n } else {\n fieldValues = [];\n }\n\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>\n <MultiInput\n values={fieldValues}\n onChange={(newValues: any): void => {\n if (multiValued || Array.isArray(currentValue)) {\n onEditValue(newValues);\n } else {\n onEditValue(newValues[0] || '');\n }\n }}\n placeholder={getFieldPlaceholder(schema)}\n fieldType={type as 'STRING' | 'DATE_TIME' | 'BOOLEAN'}\n type={type === 'DATE_TIME' ? 'date' : 'text'}\n required={required}\n />\n </div>\n </>\n );\n }\n\n let displayValue: string;\n if (hasValues) {\n if (Array.isArray(value)) {\n displayValue = value\n .map((item: any) => (typeof item === 'object' ? JSON.stringify(item) : String(item)))\n .join(', ');\n } else {\n displayValue = String(value);\n }\n } else if (isEditable) {\n displayValue = getFieldPlaceholder(schema);\n } else {\n displayValue = '-';\n }\n\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={cx(styles.value, !hasValues ? styles.valuePlaceholder : '')}>\n {!hasValues && isEditable && onStartEdit ? (\n <Button\n onClick={onStartEdit}\n variant=\"text\"\n color=\"secondary\"\n size=\"small\"\n title=\"Click to edit\"\n className={styles.editButton}\n >\n {displayValue}\n </Button>\n ) : (\n displayValue\n )}\n </div>\n </>\n );\n }\n if (type === 'COMPLEX' && typeof value === 'object') {\n return <ObjectDisplay data={value} />;\n }\n\n if (isEditing && onEditValue && mutability !== 'READ_ONLY' && !readonlyFields.includes(name || '')) {\n let fieldValue: any;\n if (editedUser && name && editedUser[name] !== undefined) {\n fieldValue = editedUser[name];\n } else if (flattenedProfile && name && flattenedProfile[name] !== undefined) {\n fieldValue = flattenedProfile[name];\n } else {\n fieldValue = value || '';\n }\n\n const commonProps: any = {\n label: undefined,\n onChange: (e: any) => onEditValue(e.target ? e.target.value : e),\n placeholder: getFieldPlaceholder(schema),\n required,\n value: fieldValue,\n // Removed inline style, use .styles.ts for marginBottom if needed\n };\n let field: ReactElement;\n switch (type) {\n case 'STRING':\n field = <TextField {...commonProps} />;\n break;\n case 'DATE_TIME':\n field = <DatePicker {...commonProps} />;\n break;\n case 'BOOLEAN':\n field = (\n <Checkbox\n {...commonProps}\n checked={!!fieldValue}\n onChange={(e: any): void => {\n onEditValue(e.target.checked);\n }}\n />\n );\n break;\n case 'COMPLEX':\n field = (\n <textarea\n value={fieldValue}\n onChange={(e: any): void => onEditValue(e.target.value)}\n placeholder={getFieldPlaceholder(schema)}\n required={required}\n className={styles.complexTextarea}\n />\n );\n break;\n default:\n field = <TextField {...commonProps} />;\n }\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={styles.value}>{field}</div>\n </>\n );\n }\n\n const hasValue: any = value !== undefined && value !== null && value !== '';\n const isEditable: any = editable && mutability !== 'READ_ONLY' && !readonlyFields.includes(name || '');\n\n let displayValue: string;\n if (hasValue) {\n displayValue = String(value);\n } else if (isEditable) {\n displayValue = getFieldPlaceholder(schema);\n } else {\n displayValue = '-';\n }\n\n return (\n <>\n <span className={styles.label}>{label}</span>\n <div className={cx(styles.value, !hasValue ? styles.valuePlaceholder : '')}>\n {!hasValue && isEditable && onStartEdit ? (\n <Button\n onClick={onStartEdit}\n variant=\"text\"\n color=\"secondary\"\n size=\"small\"\n title=\"Click to edit\"\n className={styles.editButton}\n >\n {displayValue}\n </Button>\n ) : (\n displayValue\n )}\n </div>\n </>\n );\n };\n\n const renderUserInfo = (schema: Schema): any => {\n if (!schema?.name) return null;\n\n const hasValue: any = schema.value !== undefined && schema.value !== '' && schema.value !== null;\n const isFieldEditing: any = editingFields[schema.name];\n const isReadonlyField: any = readonlyFields.includes(schema.name);\n\n const shouldShow: any = hasValue || isFieldEditing || (editable && schema.mutability === 'READ_WRITE');\n\n if (!shouldShow) {\n return null;\n }\n\n return (\n <div className={styles.field}>\n <div className={styles.fieldInner}>\n {renderSchemaField(\n schema,\n isFieldEditing,\n (value: any) => {\n const tempEditedUser: any = {...editedUser};\n tempEditedUser[schema.name!] = value;\n setEditedUser(tempEditedUser);\n },\n () => toggleFieldEdit(schema.name),\n )}\n </div>\n {editable && schema.mutability !== 'READ_ONLY' && !isReadonlyField && (\n <div className={styles.fieldActions}>\n {isFieldEditing && (\n <>\n <Button size=\"small\" color=\"primary\" variant=\"solid\" onClick={(): any => handleFieldSave(schema)}>\n Save\n </Button>\n <Button\n size=\"small\"\n color=\"secondary\"\n variant=\"solid\"\n onClick={(): any => handleFieldCancel(schema.name)}\n >\n Cancel\n </Button>\n </>\n )}\n {!isFieldEditing && hasValue && (\n <Button\n size=\"small\"\n color=\"tertiary\"\n variant=\"icon\"\n onClick={(): any => toggleFieldEdit(schema.name)}\n title=\"Edit\"\n className={styles.editButton}\n >\n <PencilIcon />\n </Button>\n )}\n </div>\n )}\n </div>\n );\n };\n\n if (!profile && !flattenedProfile) {\n return fallback;\n }\n\n const containerClasses: any = cx(\n styles.root,\n cardLayout ? styles.card : '',\n withVendorCSSClassPrefix('user-profile'),\n className,\n );\n\n const currentUser: any = flattenedProfile || profile;\n\n const renderProfileWithoutSchemas = (): any => {\n if (!currentUser) return null;\n\n const displayName: any = getDisplayName(mergedMappings, profile!, displayNameAttributes);\n\n const profileEntries: any = Object.entries(currentUser)\n .filter(([key, value]: [string, any]) => {\n if (!shouldShowField(key)) return false;\n\n return value !== undefined && value !== '' && value !== null;\n })\n .sort(([a]: [string, ...any[]], [b]: [string, ...any[]]) => a.localeCompare(b));\n\n return (\n <>\n <div className={styles.profileSummary}>\n <Avatar\n imageUrl={getMappedUserProfileValue('picture', mergedMappings, currentUser)}\n name={displayName}\n size={70}\n alt={`${displayName}'s avatar`}\n isLoading={isLoading}\n />\n <Typography variant=\"h3\" fontWeight=\"medium\">\n {displayName}\n </Typography>\n {getMappedUserProfileValue('email', mergedMappings, currentUser) && (\n <Typography variant=\"body2\" color=\"textSecondary\">\n {getMappedUserProfileValue('email', mergedMappings, currentUser)}\n </Typography>\n )}\n </div>\n <Divider />\n {profileEntries.map(([key, value]: any) => {\n const isReadonly = readonlyFields.includes(key);\n const schema: Schema = {name: key, mutability: isReadonly ? 'READ_ONLY' : 'READ_WRITE'};\n const schemaWithValue: any = {...schema, value};\n\n return (\n <div key={key} className={styles.info}>\n {renderUserInfo(schemaWithValue)}\n </div>\n );\n })}\n </>\n );\n };\n\n const profileContent: any = (\n <CardPrimitive className={containerClasses}>\n {error && (\n <AlertPrimitive\n variant=\"error\"\n className={cx(withVendorCSSClassPrefix(bem('user-profile', 'alert')), styles.alert)}\n >\n <AlertPrimitive.Title>{t('errors.heading') || 'Error'}</AlertPrimitive.Title>\n <AlertPrimitive.Description>{error}</AlertPrimitive.Description>\n </AlertPrimitive>\n )}\n <div className={styles.infoContainer}>{renderProfileWithoutSchemas()}</div>\n </CardPrimitive>\n );\n\n if (mode === 'popup') {\n return (\n <DialogPrimitive open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Content>\n <DialogPrimitive.Heading>{title ?? t('user.profile.heading')}</DialogPrimitive.Heading>\n <div className={styles.popup}>{profileContent}</div>\n </DialogPrimitive.Content>\n </DialogPrimitive>\n );\n }\n\n return profileContent;\n};\n\nexport default BaseUserProfile;\n"],"mappings":"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"}
@@ -1,20 +1,3 @@
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
1
  import { Theme } from '@thunderid/browser';
19
2
  /**
20
3
  * Creates styles for the BaseUserProfile component
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUserProfile.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/UserProfile/BaseUserProfile.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAC,KAAK,EAA2B,MAAM,oBAAoB,CAAC;AAGnE;;;;;GAKG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CA6N3E,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"BaseUserProfile.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/UserProfile/BaseUserProfile.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAA2B,MAAM,oBAAoB,CAAC;AAGnE;;;;;GAKG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CA6N3E,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUserProfile.styles.js","names":["valuePlaceholder: string","editButton: string","fieldInner: string","fieldActions: string","complexTextarea: string","objectKey: string","objectValue: string","root: string","card: string","header: string","profileInfo: string","name: string","profileSummary: string","sectionRow: string","sectionLabel: string","sectionValue: string","infoContainer: string","info: string","field: string","lastField: string","label: string","value: string","popup: string"],"sources":["../../../../src/components/presentation/UserProfile/BaseUserProfile.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, withVendorCSSClassPrefix} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\n/**\n * Creates styles for the BaseUserProfile component\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 */\nconst useStyles = (theme: Theme, colorScheme: string): Record<string, string> => {\n const valuePlaceholder: string = css`\n font-style: italic;\n opacity: 0.7;\n `;\n\n const editButton: string = css`\n font-style: italic;\n text-decoration: underline;\n opacity: 0.7;\n padding: 0;\n min-height: auto;\n\n &:hover:not(:disabled) {\n background-color: transparent;\n }\n `;\n\n const fieldInner: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n `;\n\n const fieldActions: string = css`\n display: flex;\n gap: calc(${theme.vars.spacing.unit} / 2);\n align-items: center;\n margin-inline-start: calc(${theme.vars.spacing.unit} * 4);\n `;\n\n const complexTextarea: string = css`\n min-height: 60px;\n width: 100%;\n padding: 8px;\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.small};\n resize: vertical;\n `;\n\n const objectKey: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n const objectValue: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n return useMemo(() => {\n const root: string = css`\n padding: calc(${theme.vars.spacing.unit} * 4);\n min-width: 600px;\n margin: 0 auto;\n font-family: ${theme.vars.typography.fontFamily};\n `;\n\n const card: string = css`\n background: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.large};\n `;\n\n const header: string = css`\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n margin-bottom: calc(${theme.vars.spacing.unit} * 1.5);\n `;\n\n const profileInfo: string = css`\n flex: 1;\n `;\n\n const name: string = css`\n font-size: 1.5rem;\n font-weight: 600;\n margin: 0;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const profileSummary: string = css`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n `;\n\n const sectionRow: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} * 1) 0;\n `;\n\n const sectionLabel: string = css`\n font-size: 0.875rem;\n font-weight: 600;\n color: ${theme.vars.colors.text.primary};\n width: 160px;\n flex-shrink: 0;\n `;\n\n const sectionValue: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n font-size: 0.875rem;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const infoContainer: string = css`\n display: flex;\n flex-direction: column;\n `;\n\n const info: string = css`\n padding: calc(${theme.vars.spacing.unit} * 1.5) 0;\n border-bottom: 1px solid ${theme.vars.colors.border};\n `;\n\n const field: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} / 2) 0;\n min-height: 28px;\n `;\n\n const lastField: string = css`\n border-bottom: none;\n `;\n\n const label: string = css`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${theme.vars.colors.text.secondary};\n width: 120px;\n flex-shrink: 0;\n line-height: 28px;\n text-align: start;\n `;\n\n const value: string = css`\n color: ${theme.vars.colors.text.primary};\n flex: 1;\n display: inline-block;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n overflow: hidden;\n min-height: 28px;\n line-height: 28px;\n word-break: break-word;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 350px;\n text-align: start;\n\n .${withVendorCSSClassPrefix('form-control')} {\n margin-bottom: 0;\n }\n\n input {\n margin: 0;\n }\n\n table {\n background-color: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.medium};\n white-space: normal;\n }\n\n td {\n border-color: ${theme.vars.colors.border};\n }\n `;\n\n const popup: string = css`\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const alert: string = css`\n margin-bottom: calc(${theme.vars.spacing.unit} * 3);\n `;\n\n return {\n alert,\n card,\n complexTextarea,\n editButton,\n field,\n fieldActions,\n fieldInner,\n header,\n info,\n infoContainer,\n label,\n lastField,\n name,\n objectKey,\n objectValue,\n popup,\n profileInfo,\n profileSummary,\n root,\n sectionLabel,\n sectionRow,\n sectionValue,\n value,\n valuePlaceholder,\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.large,\n theme.vars.borderRadius.medium,\n theme.vars.spacing.unit,\n theme.vars.typography.fontFamily,\n colorScheme,\n ]);\n};\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;AA4BA,MAAM,aAAa,OAAc,gBAAgD;CAC/E,MAAMA,mBAA2B,GAAG;;;;CAKpC,MAAMC,aAAqB,GAAG;;;;;;;;;;;CAY9B,MAAMC,aAAqB,GAAG;;;;WAIrB,MAAM,KAAK,QAAQ,KAAK;;CAGjC,MAAMC,eAAuB,GAAG;;gBAElB,MAAM,KAAK,QAAQ,KAAK;;gCAER,MAAM,KAAK,QAAQ,KAAK;;CAGtD,MAAMC,kBAA0B,GAAG;;;;wBAIb,MAAM,KAAK,OAAO,OAAO;qBAC5B,MAAM,KAAK,aAAa,MAAM;;;CAIjD,MAAMC,YAAoB,GAAG;eAChB,MAAM,KAAK,QAAQ,KAAK;;;CAIrC,MAAMC,cAAsB,GAAG;eAClB,MAAM,KAAK,QAAQ,KAAK;;;AAIrC,QAAO,cAAc;EACnB,MAAMC,OAAe,GAAG;sBACN,MAAM,KAAK,QAAQ,KAAK;;;qBAGzB,MAAM,KAAK,WAAW,WAAW;;EAGlD,MAAMC,OAAe,GAAG;oBACR,MAAM,KAAK,OAAO,WAAW,QAAQ;uBAClC,MAAM,KAAK,aAAa,MAAM;;EAGjD,MAAMC,SAAiB,GAAG;;;kBAGZ,MAAM,KAAK,QAAQ,KAAK;4BACd,MAAM,KAAK,QAAQ,KAAK;;EAGhD,MAAMC,cAAsB,GAAG;;;EAI/B,MAAMC,OAAe,GAAG;;;;eAIb,MAAM,KAAK,OAAO,KAAK,QAAQ;;EAG1C,MAAMC,iBAAyB,GAAG;;;;;EAMlC,MAAMC,aAAqB,GAAG;;;sBAGZ,MAAM,KAAK,QAAQ,KAAK;;EAG1C,MAAMC,eAAuB,GAAG;;;eAGrB,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;EAK1C,MAAMC,eAAuB,GAAG;;;;kBAIlB,MAAM,KAAK,QAAQ,KAAK;;eAE3B,MAAM,KAAK,OAAO,KAAK,QAAQ;;EAG1C,MAAMC,gBAAwB,GAAG;;;;EAKjC,MAAMC,OAAe,GAAG;sBACN,MAAM,KAAK,QAAQ,KAAK;iCACb,MAAM,KAAK,OAAO,OAAO;;EAGtD,MAAMC,QAAgB,GAAG;;;sBAGP,MAAM,KAAK,QAAQ,KAAK;;;EAI1C,MAAMC,YAAoB,GAAG;;;EAI7B,MAAMC,QAAgB,GAAG;;;eAGd,MAAM,KAAK,OAAO,KAAK,UAAU;;;;;;EAO5C,MAAMC,QAAgB,GAAG;eACd,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;aAIjC,MAAM,KAAK,QAAQ,KAAK;;;;;;;;;;SAU5B,yBAAyB,eAAe,CAAC;;;;;;;;;4BAStB,MAAM,KAAK,OAAO,WAAW,QAAQ;yBACxC,MAAM,KAAK,aAAa,OAAO;;;;;wBAKhC,MAAM,KAAK,OAAO,OAAO;;;EAI7C,MAAMC,QAAgB,GAAG;sBACP,MAAM,KAAK,QAAQ,KAAK;;AAO1C,SAAO;GACL,OALoB,GAAG;4BACD,MAAM,KAAK,QAAQ,KAAK;;GAK9C;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;IACA;EACD,MAAM,KAAK,OAAO,WAAW;EAC7B,MAAM,KAAK,OAAO,KAAK;EACvB,MAAM,KAAK,OAAO,KAAK;EACvB,MAAM,KAAK,OAAO;EAClB,MAAM,KAAK,aAAa;EACxB,MAAM,KAAK,aAAa;EACxB,MAAM,KAAK,QAAQ;EACnB,MAAM,KAAK,WAAW;EACtB;EACD,CAAC;;AAGJ,qCAAe"}
1
+ {"version":3,"file":"BaseUserProfile.styles.js","names":["valuePlaceholder: string","editButton: string","fieldInner: string","fieldActions: string","complexTextarea: string","objectKey: string","objectValue: string","root: string","card: string","header: string","profileInfo: string","name: string","profileSummary: string","sectionRow: string","sectionLabel: string","sectionValue: string","infoContainer: string","info: string","field: string","lastField: string","label: string","value: string","popup: string"],"sources":["../../../../src/components/presentation/UserProfile/BaseUserProfile.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {css} from '@emotion/css';\nimport {Theme, withVendorCSSClassPrefix} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\n/**\n * Creates styles for the BaseUserProfile component\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 */\nconst useStyles = (theme: Theme, colorScheme: string): Record<string, string> => {\n const valuePlaceholder: string = css`\n font-style: italic;\n opacity: 0.7;\n `;\n\n const editButton: string = css`\n font-style: italic;\n text-decoration: underline;\n opacity: 0.7;\n padding: 0;\n min-height: auto;\n\n &:hover:not(:disabled) {\n background-color: transparent;\n }\n `;\n\n const fieldInner: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n `;\n\n const fieldActions: string = css`\n display: flex;\n gap: calc(${theme.vars.spacing.unit} / 2);\n align-items: center;\n margin-inline-start: calc(${theme.vars.spacing.unit} * 4);\n `;\n\n const complexTextarea: string = css`\n min-height: 60px;\n width: 100%;\n padding: 8px;\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.small};\n resize: vertical;\n `;\n\n const objectKey: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n const objectValue: string = css`\n padding: ${theme.vars.spacing.unit};\n vertical-align: top;\n `;\n\n return useMemo(() => {\n const root: string = css`\n padding: calc(${theme.vars.spacing.unit} * 4);\n min-width: 600px;\n margin: 0 auto;\n font-family: ${theme.vars.typography.fontFamily};\n `;\n\n const card: string = css`\n background: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.large};\n `;\n\n const header: string = css`\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n margin-bottom: calc(${theme.vars.spacing.unit} * 1.5);\n `;\n\n const profileInfo: string = css`\n flex: 1;\n `;\n\n const name: string = css`\n font-size: 1.5rem;\n font-weight: 600;\n margin: 0;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const profileSummary: string = css`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n `;\n\n const sectionRow: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} * 1) 0;\n `;\n\n const sectionLabel: string = css`\n font-size: 0.875rem;\n font-weight: 600;\n color: ${theme.vars.colors.text.primary};\n width: 160px;\n flex-shrink: 0;\n `;\n\n const sectionValue: string = css`\n flex: 1;\n display: flex;\n align-items: center;\n gap: calc(${theme.vars.spacing.unit} * 1.5);\n font-size: 0.875rem;\n color: ${theme.vars.colors.text.primary};\n `;\n\n const infoContainer: string = css`\n display: flex;\n flex-direction: column;\n `;\n\n const info: string = css`\n padding: calc(${theme.vars.spacing.unit} * 1.5) 0;\n border-bottom: 1px solid ${theme.vars.colors.border};\n `;\n\n const field: string = css`\n display: flex;\n align-items: center;\n padding: calc(${theme.vars.spacing.unit} / 2) 0;\n min-height: 28px;\n `;\n\n const lastField: string = css`\n border-bottom: none;\n `;\n\n const label: string = css`\n font-size: 0.875rem;\n font-weight: 500;\n color: ${theme.vars.colors.text.secondary};\n width: 120px;\n flex-shrink: 0;\n line-height: 28px;\n text-align: start;\n `;\n\n const value: string = css`\n color: ${theme.vars.colors.text.primary};\n flex: 1;\n display: inline-block;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n overflow: hidden;\n min-height: 28px;\n line-height: 28px;\n word-break: break-word;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 350px;\n text-align: start;\n\n .${withVendorCSSClassPrefix('form-control')} {\n margin-bottom: 0;\n }\n\n input {\n margin: 0;\n }\n\n table {\n background-color: ${theme.vars.colors.background.surface};\n border-radius: ${theme.vars.borderRadius.medium};\n white-space: normal;\n }\n\n td {\n border-color: ${theme.vars.colors.border};\n }\n `;\n\n const popup: string = css`\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const alert: string = css`\n margin-bottom: calc(${theme.vars.spacing.unit} * 3);\n `;\n\n return {\n alert,\n card,\n complexTextarea,\n editButton,\n field,\n fieldActions,\n fieldInner,\n header,\n info,\n infoContainer,\n label,\n lastField,\n name,\n objectKey,\n objectValue,\n popup,\n profileInfo,\n profileSummary,\n root,\n sectionLabel,\n sectionRow,\n sectionValue,\n value,\n valuePlaceholder,\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.large,\n theme.vars.borderRadius.medium,\n theme.vars.spacing.unit,\n theme.vars.typography.fontFamily,\n colorScheme,\n ]);\n};\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,aAAa,OAAc,gBAAgD;CAC/E,MAAMA,mBAA2B,GAAG;;;;CAKpC,MAAMC,aAAqB,GAAG;;;;;;;;;;;CAY9B,MAAMC,aAAqB,GAAG;;;;WAIrB,MAAM,KAAK,QAAQ,KAAK;;CAGjC,MAAMC,eAAuB,GAAG;;gBAElB,MAAM,KAAK,QAAQ,KAAK;;gCAER,MAAM,KAAK,QAAQ,KAAK;;CAGtD,MAAMC,kBAA0B,GAAG;;;;wBAIb,MAAM,KAAK,OAAO,OAAO;qBAC5B,MAAM,KAAK,aAAa,MAAM;;;CAIjD,MAAMC,YAAoB,GAAG;eAChB,MAAM,KAAK,QAAQ,KAAK;;;CAIrC,MAAMC,cAAsB,GAAG;eAClB,MAAM,KAAK,QAAQ,KAAK;;;AAIrC,QAAO,cAAc;EACnB,MAAMC,OAAe,GAAG;sBACN,MAAM,KAAK,QAAQ,KAAK;;;qBAGzB,MAAM,KAAK,WAAW,WAAW;;EAGlD,MAAMC,OAAe,GAAG;oBACR,MAAM,KAAK,OAAO,WAAW,QAAQ;uBAClC,MAAM,KAAK,aAAa,MAAM;;EAGjD,MAAMC,SAAiB,GAAG;;;kBAGZ,MAAM,KAAK,QAAQ,KAAK;4BACd,MAAM,KAAK,QAAQ,KAAK;;EAGhD,MAAMC,cAAsB,GAAG;;;EAI/B,MAAMC,OAAe,GAAG;;;;eAIb,MAAM,KAAK,OAAO,KAAK,QAAQ;;EAG1C,MAAMC,iBAAyB,GAAG;;;;;EAMlC,MAAMC,aAAqB,GAAG;;;sBAGZ,MAAM,KAAK,QAAQ,KAAK;;EAG1C,MAAMC,eAAuB,GAAG;;;eAGrB,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;EAK1C,MAAMC,eAAuB,GAAG;;;;kBAIlB,MAAM,KAAK,QAAQ,KAAK;;eAE3B,MAAM,KAAK,OAAO,KAAK,QAAQ;;EAG1C,MAAMC,gBAAwB,GAAG;;;;EAKjC,MAAMC,OAAe,GAAG;sBACN,MAAM,KAAK,QAAQ,KAAK;iCACb,MAAM,KAAK,OAAO,OAAO;;EAGtD,MAAMC,QAAgB,GAAG;;;sBAGP,MAAM,KAAK,QAAQ,KAAK;;;EAI1C,MAAMC,YAAoB,GAAG;;;EAI7B,MAAMC,QAAgB,GAAG;;;eAGd,MAAM,KAAK,OAAO,KAAK,UAAU;;;;;;EAO5C,MAAMC,QAAgB,GAAG;eACd,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;aAIjC,MAAM,KAAK,QAAQ,KAAK;;;;;;;;;;SAU5B,yBAAyB,eAAe,CAAC;;;;;;;;;4BAStB,MAAM,KAAK,OAAO,WAAW,QAAQ;yBACxC,MAAM,KAAK,aAAa,OAAO;;;;;wBAKhC,MAAM,KAAK,OAAO,OAAO;;;EAI7C,MAAMC,QAAgB,GAAG;sBACP,MAAM,KAAK,QAAQ,KAAK;;AAO1C,SAAO;GACL,OALoB,GAAG;4BACD,MAAM,KAAK,QAAQ,KAAK;;GAK9C;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;IACA;EACD,MAAM,KAAK,OAAO,WAAW;EAC7B,MAAM,KAAK,OAAO,KAAK;EACvB,MAAM,KAAK,OAAO,KAAK;EACvB,MAAM,KAAK,OAAO;EAClB,MAAM,KAAK,aAAa;EACxB,MAAM,KAAK,aAAa;EACxB,MAAM,KAAK,QAAQ;EACnB,MAAM,KAAK,WAAW;EACtB;EACD,CAAC;;AAGJ,qCAAe"}
@@ -1,20 +1,3 @@
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
1
  import { FC } from 'react';
19
2
  import { BaseUserProfileProps } from './BaseUserProfile';
20
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfile.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/UserProfile/UserProfile.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAC,EAAE,EAAyB,MAAM,OAAO,CAAC;AAEjD,OAAwB,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAMxE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAAC,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAuDrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"UserProfile.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/UserProfile/UserProfile.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAyB,MAAM,OAAO,CAAC;AAEjD,OAAwB,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAMxE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,kBAAkB,CAAC,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAuDrC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfile.js","names":["UserProfile: FC<UserProfileProps>","useThunderID","useUser","useTranslation","isEditableProfile: boolean","updatedAttributes: Record<string, unknown>","updateMeProfile","caughtError: unknown","message: string","BaseUserProfile"],"sources":["../../../../src/components/presentation/UserProfile/UserProfile.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 {ThunderIDError, User, deepMerge} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport BaseUserProfile, {BaseUserProfileProps} from './BaseUserProfile';\nimport updateMeProfile from '../../../api/updateMeProfile';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useUser from '../../../contexts/User/useUser';\nimport useTranslation from '../../../hooks/useTranslation';\n\n/**\n * Props for the UserProfile component.\n * Extends BaseUserProfileProps but makes the user prop optional since it will be obtained from useThunderID\n */\nexport type UserProfileProps = Omit<BaseUserProfileProps, 'user' | 'profile' | 'flattenedProfile'>;\n\n/**\n * UserProfile component displays the authenticated user's profile information in a\n * structured and styled format. It shows user details such as display name, email,\n * username, and other available profile information from ThunderID.\n *\n * This component is the React-specific implementation that uses the BaseUserProfile\n * and automatically retrieves the user data from ThunderID context if not provided.\n *\n * @example\n * ```tsx\n * // Basic usage - will use user from ThunderID context\n * <UserProfile />\n *\n * // With explicit user data\n * <UserProfile user={specificUser} />\n *\n * // With card layout and custom fallback\n * <UserProfile\n * cardLayout={true}\n * fallback={<div>Please sign in to view your profile</div>}\n * />\n *\n * // With field filtering - only show specific fields\n * <UserProfile\n * showFields={['name.givenName', 'name.familyName', 'emails']}\n * />\n *\n * // With field hiding - hide specific fields\n * <UserProfile\n * hideFields={['phoneNumbers', 'addresses']}\n * />\n * ```\n */\nconst UserProfile: FC<UserProfileProps> = ({preferences, editable = true, ...rest}: UserProfileProps): ReactElement => {\n const {baseUrl, instanceId, preferences: contextPreferences} = useThunderID();\n const {profile, flattenedProfile, onUpdateProfile} = useUser();\n const resolvedPreferences = {\n ...contextPreferences,\n ...preferences,\n user: {\n ...contextPreferences?.user,\n ...preferences?.user,\n },\n };\n const {t} = useTranslation(resolvedPreferences?.i18n);\n const isEditableProfile: boolean = resolvedPreferences?.user?.fetchUserProfile === false ? false : editable;\n\n const [error, setError] = useState<string | null>(null);\n\n const handleProfileUpdate = async (payload: Record<string, unknown>): Promise<void> => {\n setError(null);\n\n try {\n const updatedAttributes: Record<string, unknown> = deepMerge(\n (profile?.['attributes'] as Record<string, unknown>) ?? {},\n payload,\n );\n\n Object.keys(updatedAttributes).forEach((key) => {\n if (updatedAttributes[key] === undefined || updatedAttributes[key] === null) {\n delete updatedAttributes[key];\n }\n });\n\n const response: User = await updateMeProfile({baseUrl, instanceId, payload: updatedAttributes});\n onUpdateProfile(response);\n } catch (caughtError: unknown) {\n let message: string = t('user.profile.update.generic.error');\n\n if (caughtError instanceof ThunderIDError) {\n message = caughtError?.message;\n }\n\n setError(message);\n }\n };\n\n return (\n <BaseUserProfile\n profile={profile ?? undefined}\n flattenedProfile={flattenedProfile ?? undefined}\n editable={isEditableProfile}\n onUpdate={isEditableProfile ? handleProfileUpdate : undefined}\n error={error}\n preferences={resolvedPreferences}\n {...rest}\n />\n );\n};\n\nexport default UserProfile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,MAAMA,eAAqC,EAAC,aAAa,WAAW,KAAM,GAAG,WAA0C;CACrH,MAAM,EAAC,SAAS,YAAY,aAAa,uBAAsBC,sBAAc;CAC7E,MAAM,EAAC,SAAS,kBAAkB,oBAAmBC,iBAAS;CAC9D,MAAM,sBAAsB;EAC1B,GAAG;EACH,GAAG;EACH,MAAM;GACJ,GAAG,oBAAoB;GACvB,GAAG,aAAa;GACjB;EACF;CACD,MAAM,EAAC,MAAKC,uBAAe,qBAAqB,KAAK;CACrD,MAAMC,oBAA6B,qBAAqB,MAAM,qBAAqB,QAAQ,QAAQ;CAEnG,MAAM,CAAC,OAAO,YAAY,SAAwB,KAAK;CAEvD,MAAM,sBAAsB,OAAO,YAAoD;AACrF,WAAS,KAAK;AAEd,MAAI;GACF,MAAMC,oBAA6C,UAChD,UAAU,iBAA6C,EAAE,EAC1D,QACD;AAED,UAAO,KAAK,kBAAkB,CAAC,SAAS,QAAQ;AAC9C,QAAI,kBAAkB,SAAS,UAAa,kBAAkB,SAAS,KACrE,QAAO,kBAAkB;KAE3B;AAGF,mBADuB,MAAMC,wBAAgB;IAAC;IAAS;IAAY,SAAS;IAAkB,CAAC,CACtE;WAClBC,aAAsB;GAC7B,IAAIC,UAAkB,EAAE,oCAAoC;AAE5D,OAAI,uBAAuB,eACzB,WAAU,aAAa;AAGzB,YAAS,QAAQ;;;AAIrB,QACE,oBAACC;EACC,SAAS,WAAW;EACpB,kBAAkB,oBAAoB;EACtC,UAAU;EACV,UAAU,oBAAoB,sBAAsB;EAC7C;EACP,aAAa;EACb,GAAI;GACJ;;AAIN,0BAAe"}
1
+ {"version":3,"file":"UserProfile.js","names":["UserProfile: FC<UserProfileProps>","useThunderID","useUser","useTranslation","isEditableProfile: boolean","updatedAttributes: Record<string, unknown>","updateMeProfile","caughtError: unknown","message: string","BaseUserProfile"],"sources":["../../../../src/components/presentation/UserProfile/UserProfile.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {ThunderIDError, User, deepMerge} from '@thunderid/browser';\nimport {FC, ReactElement, useState} from 'react';\n// eslint-disable-next-line import/no-named-as-default\nimport BaseUserProfile, {BaseUserProfileProps} from './BaseUserProfile';\nimport updateMeProfile from '../../../api/updateMeProfile';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\nimport useUser from '../../../contexts/User/useUser';\nimport useTranslation from '../../../hooks/useTranslation';\n\n/**\n * Props for the UserProfile component.\n * Extends BaseUserProfileProps but makes the user prop optional since it will be obtained from useThunderID\n */\nexport type UserProfileProps = Omit<BaseUserProfileProps, 'user' | 'profile' | 'flattenedProfile'>;\n\n/**\n * UserProfile component displays the authenticated user's profile information in a\n * structured and styled format. It shows user details such as display name, email,\n * username, and other available profile information from ThunderID.\n *\n * This component is the React-specific implementation that uses the BaseUserProfile\n * and automatically retrieves the user data from ThunderID context if not provided.\n *\n * @example\n * ```tsx\n * // Basic usage - will use user from ThunderID context\n * <UserProfile />\n *\n * // With explicit user data\n * <UserProfile user={specificUser} />\n *\n * // With card layout and custom fallback\n * <UserProfile\n * cardLayout={true}\n * fallback={<div>Please sign in to view your profile</div>}\n * />\n *\n * // With field filtering - only show specific fields\n * <UserProfile\n * showFields={['name.givenName', 'name.familyName', 'emails']}\n * />\n *\n * // With field hiding - hide specific fields\n * <UserProfile\n * hideFields={['phoneNumbers', 'addresses']}\n * />\n * ```\n */\nconst UserProfile: FC<UserProfileProps> = ({preferences, editable = true, ...rest}: UserProfileProps): ReactElement => {\n const {baseUrl, instanceId, preferences: contextPreferences} = useThunderID();\n const {profile, flattenedProfile, onUpdateProfile} = useUser();\n const resolvedPreferences = {\n ...contextPreferences,\n ...preferences,\n user: {\n ...contextPreferences?.user,\n ...preferences?.user,\n },\n };\n const {t} = useTranslation(resolvedPreferences?.i18n);\n const isEditableProfile: boolean = resolvedPreferences?.user?.fetchUserProfile === false ? false : editable;\n\n const [error, setError] = useState<string | null>(null);\n\n const handleProfileUpdate = async (payload: Record<string, unknown>): Promise<void> => {\n setError(null);\n\n try {\n const updatedAttributes: Record<string, unknown> = deepMerge(\n (profile?.['attributes'] as Record<string, unknown>) ?? {},\n payload,\n );\n\n Object.keys(updatedAttributes).forEach((key) => {\n if (updatedAttributes[key] === undefined || updatedAttributes[key] === null) {\n delete updatedAttributes[key];\n }\n });\n\n const response: User = await updateMeProfile({baseUrl, instanceId, payload: updatedAttributes});\n onUpdateProfile(response);\n } catch (caughtError: unknown) {\n let message: string = t('user.profile.update.generic.error');\n\n if (caughtError instanceof ThunderIDError) {\n message = caughtError?.message;\n }\n\n setError(message);\n }\n };\n\n return (\n <BaseUserProfile\n profile={profile ?? undefined}\n flattenedProfile={flattenedProfile ?? undefined}\n editable={isEditableProfile}\n onUpdate={isEditableProfile ? handleProfileUpdate : undefined}\n error={error}\n preferences={resolvedPreferences}\n {...rest}\n />\n );\n};\n\nexport default UserProfile;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,MAAMA,eAAqC,EAAC,aAAa,WAAW,KAAM,GAAG,WAA0C;CACrH,MAAM,EAAC,SAAS,YAAY,aAAa,uBAAsBC,sBAAc;CAC7E,MAAM,EAAC,SAAS,kBAAkB,oBAAmBC,iBAAS;CAC9D,MAAM,sBAAsB;EAC1B,GAAG;EACH,GAAG;EACH,MAAM;GACJ,GAAG,oBAAoB;GACvB,GAAG,aAAa;GACjB;EACF;CACD,MAAM,EAAC,MAAKC,uBAAe,qBAAqB,KAAK;CACrD,MAAMC,oBAA6B,qBAAqB,MAAM,qBAAqB,QAAQ,QAAQ;CAEnG,MAAM,CAAC,OAAO,YAAY,SAAwB,KAAK;CAEvD,MAAM,sBAAsB,OAAO,YAAoD;AACrF,WAAS,KAAK;AAEd,MAAI;GACF,MAAMC,oBAA6C,UAChD,UAAU,iBAA6C,EAAE,EAC1D,QACD;AAED,UAAO,KAAK,kBAAkB,CAAC,SAAS,QAAQ;AAC9C,QAAI,kBAAkB,SAAS,UAAa,kBAAkB,SAAS,KACrE,QAAO,kBAAkB;KAE3B;AAGF,mBADuB,MAAMC,wBAAgB;IAAC;IAAS;IAAY,SAAS;IAAkB,CAAC,CACtE;WAClBC,aAAsB;GAC7B,IAAIC,UAAkB,EAAE,oCAAoC;AAE5D,OAAI,uBAAuB,eACzB,WAAU,aAAa;AAGzB,YAAS,QAAQ;;;AAIrB,QACE,oBAACC;EACC,SAAS,WAAW;EACpB,kBAAkB,oBAAoB;EACtC,UAAU;EACV,UAAU,oBAAoB,sBAAsB;EAC7C;EACP,aAAa;EACb,GAAI;GACJ;;AAIN,0BAAe"}
@@ -1,20 +1,3 @@
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
1
  import { FC, ReactNode } from 'react';
19
2
  import { BaseAcceptInviteRenderProps, AcceptInviteFlowResponse } from './BaseAcceptInvite';
20
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AcceptInvite.d.ts","sourceRoot":"","sources":["../../../../../src/components/presentation/auth/AcceptInvite/AcceptInvite.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAU,MAAM,OAAO,CAAC;AAC3D,OAAyB,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,MAAM,oBAAoB,CAAC;AAE3G;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,SAAS,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAE5D;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACnC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA4EvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AcceptInvite.d.ts","sourceRoot":"","sources":["../../../../../src/components/presentation/auth/AcceptInvite/AcceptInvite.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAU,MAAM,OAAO,CAAC;AAC3D,OAAyB,EAAC,2BAA2B,EAAE,wBAAwB,EAAC,MAAM,oBAAoB,CAAC;AAE3G;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,SAAS,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAE5D;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CACnC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAmFvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import BaseAcceptInvite_default from "./BaseAcceptInvite.js";
2
+ import { ThunderIDAPIError } from "@thunderid/browser";
2
3
  import { useMemo } from "react";
3
4
  import { jsx } from "react/jsx-runtime";
4
5
 
@@ -77,10 +78,7 @@ const AcceptInvite = ({ baseUrl, executionId: executionIdProp, inviteToken: invi
77
78
  },
78
79
  method: "POST"
79
80
  });
80
- if (!response.ok) {
81
- const errorText = await response.text();
82
- throw new Error(`Request failed: ${errorText}`);
83
- }
81
+ if (!response.ok) throw new ThunderIDAPIError(await response.text(), "AcceptInvite-ResponseError-001", "react", response.status, response.statusText);
84
82
  return response.json();
85
83
  };
86
84
  return /* @__PURE__ */ jsx(BaseAcceptInvite_default, {
@@ -1 +1 @@
1
- {"version":3,"file":"AcceptInvite.js","names":["params: any","AcceptInvite: FC<AcceptInviteProps>","executionId: any","inviteToken: any","apiBaseUrl: any","response: any","errorText: any","BaseAcceptInvite"],"sources":["../../../../../src/components/presentation/auth/AcceptInvite/AcceptInvite.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, ReactNode, useMemo} from 'react';\nimport BaseAcceptInvite, {BaseAcceptInviteRenderProps, AcceptInviteFlowResponse} from './BaseAcceptInvite';\n\n/**\n * Render props for AcceptInvite (re-exported for convenience).\n */\nexport type AcceptInviteRenderProps = BaseAcceptInviteRenderProps;\n\n/**\n * Props for the AcceptInvite component.\n */\nexport interface AcceptInviteProps {\n /**\n * Base URL for the Thunder API server.\n * If not provided, will try to read from window location.\n */\n baseUrl?: string;\n\n /**\n * Render props function for custom UI.\n * If not provided, default UI will be rendered by the SDK.\n */\n children?: (props: AcceptInviteRenderProps) => ReactNode;\n\n /**\n * Custom CSS class name.\n */\n className?: string;\n\n /**\n * Flow ID from the invite link.\n * If not provided, will be extracted from URL query parameters.\n */\n executionId?: string;\n\n /**\n * Invite token from the invite link.\n * If not provided, will be extracted from URL query parameters.\n */\n inviteToken?: string;\n\n /**\n * Callback when the flow completes successfully.\n */\n onComplete?: () => void;\n\n /**\n * Callback when an error occurs.\n */\n onError?: (error: Error) => void;\n\n /**\n * Callback when the flow state changes.\n */\n onFlowChange?: (response: AcceptInviteFlowResponse) => void;\n\n /**\n * Callback to navigate to sign in page.\n */\n onGoToSignIn?: () => void;\n\n /**\n * Whether to show the subtitle.\n */\n showSubtitle?: boolean;\n\n /**\n * Whether to show the title.\n */\n showTitle?: boolean;\n\n /**\n * Size variant for the component.\n */\n size?: 'small' | 'medium' | 'large';\n\n /**\n * Theme variant for the component card.\n */\n variant?: 'outlined' | 'elevated';\n}\n\n/**\n * Helper to extract query parameters from URL.\n */\nconst getUrlParams = (): {executionId?: string; inviteToken?: string} => {\n if (typeof window === 'undefined') {\n return {};\n }\n\n const params: any = new URLSearchParams(window.location.search);\n return {\n executionId: params.get('executionId') || undefined,\n inviteToken: params.get('inviteToken') || undefined,\n };\n};\n\n/**\n * AcceptInvite component for end-users to accept an invite and set their password.\n *\n * This component is designed for end users accessing the thunder-gate app via an invite link.\n * It automatically:\n * 1. Extracts executionId and inviteToken from URL query parameters\n * 2. Validates the invite token with the backend\n * 3. Displays the password form if token is valid\n * 4. Completes the accept invite when password is set\n *\n * @example\n * ```tsx\n * import { AcceptInvite } from '@thunderid/react';\n *\n * // URL: /invite?executionId=xxx&inviteToken=yyy\n *\n * const AcceptInvitePage = () => {\n * return (\n * <AcceptInvite\n * baseUrl=\"https://api.thunder.io\"\n * onComplete={() => navigate('/signin')}\n * onError={(error) => console.error(error)}\n * >\n * {({ values, components, isLoading, isComplete, isValidatingToken, isTokenInvalid, error, handleInputChange, handleSubmit }) => (\n * <div>\n * {isValidatingToken && <p>Validating your invite...</p>}\n * {isTokenInvalid && <p>Invalid or expired invite link</p>}\n * {isComplete && <p>Registration complete! You can now sign in.</p>}\n * {!isComplete && !isValidatingToken && !isTokenInvalid && (\n * // Render password form based on components\n * )}\n * </div>\n * )}\n * </AcceptInvite>\n * );\n * };\n * ```\n */\nconst AcceptInvite: FC<AcceptInviteProps> = ({\n baseUrl,\n executionId: executionIdProp,\n inviteToken: inviteTokenProp,\n onComplete,\n onError,\n onFlowChange,\n onGoToSignIn,\n className,\n children,\n size = 'medium',\n variant = 'outlined',\n showTitle = true,\n showSubtitle = true,\n}: AcceptInviteProps): ReactElement => {\n // Extract from URL if not provided as props\n const {executionId: urlExecutionId, inviteToken: urlInviteToken} = useMemo(() => getUrlParams(), []);\n\n const executionId: any = executionIdProp || urlExecutionId;\n const inviteToken: any = inviteTokenProp || urlInviteToken;\n\n // Determine base URL\n const apiBaseUrl: any = useMemo(() => {\n if (baseUrl) {\n return baseUrl;\n }\n // Try to construct from current location (assuming same origin)\n if (typeof window !== 'undefined') {\n return window.location.origin;\n }\n return '';\n }, [baseUrl]);\n\n /**\n * Submit flow step data.\n * Makes an unauthenticated request to /flow/execute endpoint.\n */\n const handleSubmit = async (payload: Record<string, any>): Promise<AcceptInviteFlowResponse> => {\n const response: any = await fetch(`${apiBaseUrl}/flow/execute`, {\n body: JSON.stringify({\n ...payload,\n verbose: true,\n }),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n });\n\n if (!response.ok) {\n const errorText: any = await response.text();\n throw new Error(`Request failed: ${errorText}`);\n }\n\n return response.json();\n };\n\n return (\n <BaseAcceptInvite\n executionId={executionId}\n inviteToken={inviteToken}\n onSubmit={handleSubmit}\n onComplete={onComplete}\n onError={onError}\n onFlowChange={onFlowChange}\n onGoToSignIn={onGoToSignIn}\n className={className}\n size={size}\n variant={variant}\n showTitle={showTitle}\n showSubtitle={showSubtitle}\n >\n {children}\n </BaseAcceptInvite>\n );\n};\n\nexport default AcceptInvite;\n"],"mappings":";;;;;;;;AAuGA,MAAM,qBAAmE;AACvE,KAAI,OAAO,WAAW,YACpB,QAAO,EAAE;CAGX,MAAMA,SAAc,IAAI,gBAAgB,OAAO,SAAS,OAAO;AAC/D,QAAO;EACL,aAAa,OAAO,IAAI,cAAc,IAAI;EAC1C,aAAa,OAAO,IAAI,cAAc,IAAI;EAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCH,MAAMC,gBAAuC,EAC3C,SACA,aAAa,iBACb,aAAa,iBACb,YACA,SACA,cACA,cACA,WACA,UACA,OAAO,UACP,UAAU,YACV,YAAY,MACZ,eAAe,WACsB;CAErC,MAAM,EAAC,aAAa,gBAAgB,aAAa,mBAAkB,cAAc,cAAc,EAAE,EAAE,CAAC;CAEpG,MAAMC,cAAmB,mBAAmB;CAC5C,MAAMC,cAAmB,mBAAmB;CAG5C,MAAMC,aAAkB,cAAc;AACpC,MAAI,QACF,QAAO;AAGT,MAAI,OAAO,WAAW,YACpB,QAAO,OAAO,SAAS;AAEzB,SAAO;IACN,CAAC,QAAQ,CAAC;;;;;CAMb,MAAM,eAAe,OAAO,YAAoE;EAC9F,MAAMC,WAAgB,MAAM,MAAM,GAAG,WAAW,gBAAgB;GAC9D,MAAM,KAAK,UAAU;IACnB,GAAG;IACH,SAAS;IACV,CAAC;GACF,SAAS;IACP,QAAQ;IACR,gBAAgB;IACjB;GACD,QAAQ;GACT,CAAC;AAEF,MAAI,CAAC,SAAS,IAAI;GAChB,MAAMC,YAAiB,MAAM,SAAS,MAAM;AAC5C,SAAM,IAAI,MAAM,mBAAmB,YAAY;;AAGjD,SAAO,SAAS,MAAM;;AAGxB,QACE,oBAACC;EACc;EACA;EACb,UAAU;EACE;EACH;EACK;EACA;EACH;EACL;EACG;EACE;EACG;EAEb;GACgB;;AAIvB,2BAAe"}
1
+ {"version":3,"file":"AcceptInvite.js","names":["params: any","AcceptInvite: FC<AcceptInviteProps>","executionId: any","inviteToken: any","apiBaseUrl: any","response: Response","BaseAcceptInvite"],"sources":["../../../../../src/components/presentation/auth/AcceptInvite/AcceptInvite.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {ThunderIDAPIError} from '@thunderid/browser';\nimport {FC, ReactElement, ReactNode, useMemo} from 'react';\nimport BaseAcceptInvite, {BaseAcceptInviteRenderProps, AcceptInviteFlowResponse} from './BaseAcceptInvite';\n\n/**\n * Render props for AcceptInvite (re-exported for convenience).\n */\nexport type AcceptInviteRenderProps = BaseAcceptInviteRenderProps;\n\n/**\n * Props for the AcceptInvite component.\n */\nexport interface AcceptInviteProps {\n /**\n * Base URL for the Thunder API server.\n * If not provided, will try to read from window location.\n */\n baseUrl?: string;\n\n /**\n * Render props function for custom UI.\n * If not provided, default UI will be rendered by the SDK.\n */\n children?: (props: AcceptInviteRenderProps) => ReactNode;\n\n /**\n * Custom CSS class name.\n */\n className?: string;\n\n /**\n * Flow ID from the invite link.\n * If not provided, will be extracted from URL query parameters.\n */\n executionId?: string;\n\n /**\n * Invite token from the invite link.\n * If not provided, will be extracted from URL query parameters.\n */\n inviteToken?: string;\n\n /**\n * Callback when the flow completes successfully.\n */\n onComplete?: () => void;\n\n /**\n * Callback when an error occurs.\n */\n onError?: (error: Error) => void;\n\n /**\n * Callback when the flow state changes.\n */\n onFlowChange?: (response: AcceptInviteFlowResponse) => void;\n\n /**\n * Callback to navigate to sign in page.\n */\n onGoToSignIn?: () => void;\n\n /**\n * Whether to show the subtitle.\n */\n showSubtitle?: boolean;\n\n /**\n * Whether to show the title.\n */\n showTitle?: boolean;\n\n /**\n * Size variant for the component.\n */\n size?: 'small' | 'medium' | 'large';\n\n /**\n * Theme variant for the component card.\n */\n variant?: 'outlined' | 'elevated';\n}\n\n/**\n * Helper to extract query parameters from URL.\n */\nconst getUrlParams = (): {executionId?: string; inviteToken?: string} => {\n if (typeof window === 'undefined') {\n return {};\n }\n\n const params: any = new URLSearchParams(window.location.search);\n return {\n executionId: params.get('executionId') || undefined,\n inviteToken: params.get('inviteToken') || undefined,\n };\n};\n\n/**\n * AcceptInvite component for end-users to accept an invite and set their password.\n *\n * This component is designed for end users accessing the thunder-gate app via an invite link.\n * It automatically:\n * 1. Extracts executionId and inviteToken from URL query parameters\n * 2. Validates the invite token with the backend\n * 3. Displays the password form if token is valid\n * 4. Completes the accept invite when password is set\n *\n * @example\n * ```tsx\n * import { AcceptInvite } from '@thunderid/react';\n *\n * // URL: /invite?executionId=xxx&inviteToken=yyy\n *\n * const AcceptInvitePage = () => {\n * return (\n * <AcceptInvite\n * baseUrl=\"https://api.thunder.io\"\n * onComplete={() => navigate('/signin')}\n * onError={(error) => console.error(error)}\n * >\n * {({ values, components, isLoading, isComplete, isValidatingToken, isTokenInvalid, error, handleInputChange, handleSubmit }) => (\n * <div>\n * {isValidatingToken && <p>Validating your invite...</p>}\n * {isTokenInvalid && <p>Invalid or expired invite link</p>}\n * {isComplete && <p>Registration complete! You can now sign in.</p>}\n * {!isComplete && !isValidatingToken && !isTokenInvalid && (\n * // Render password form based on components\n * )}\n * </div>\n * )}\n * </AcceptInvite>\n * );\n * };\n * ```\n */\nconst AcceptInvite: FC<AcceptInviteProps> = ({\n baseUrl,\n executionId: executionIdProp,\n inviteToken: inviteTokenProp,\n onComplete,\n onError,\n onFlowChange,\n onGoToSignIn,\n className,\n children,\n size = 'medium',\n variant = 'outlined',\n showTitle = true,\n showSubtitle = true,\n}: AcceptInviteProps): ReactElement => {\n // Extract from URL if not provided as props\n const {executionId: urlExecutionId, inviteToken: urlInviteToken} = useMemo(() => getUrlParams(), []);\n\n const executionId: any = executionIdProp || urlExecutionId;\n const inviteToken: any = inviteTokenProp || urlInviteToken;\n\n // Determine base URL\n const apiBaseUrl: any = useMemo(() => {\n if (baseUrl) {\n return baseUrl;\n }\n // Try to construct from current location (assuming same origin)\n if (typeof window !== 'undefined') {\n return window.location.origin;\n }\n return '';\n }, [baseUrl]);\n\n /**\n * Submit flow step data.\n * Makes an unauthenticated request to /flow/execute endpoint.\n */\n const handleSubmit = async (payload: Record<string, any>): Promise<AcceptInviteFlowResponse> => {\n const response: Response = await fetch(`${apiBaseUrl}/flow/execute`, {\n body: JSON.stringify({\n ...payload,\n verbose: true,\n }),\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n });\n\n if (!response.ok) {\n const errorText: string = await response.text();\n // ThunderIDAPIError resolves the raw API body into a readable message instead of leaking it.\n throw new ThunderIDAPIError(\n errorText,\n 'AcceptInvite-ResponseError-001',\n 'react',\n response.status,\n response.statusText,\n );\n }\n\n return response.json();\n };\n\n return (\n <BaseAcceptInvite\n executionId={executionId}\n inviteToken={inviteToken}\n onSubmit={handleSubmit}\n onComplete={onComplete}\n onError={onError}\n onFlowChange={onFlowChange}\n onGoToSignIn={onGoToSignIn}\n className={className}\n size={size}\n variant={variant}\n showTitle={showTitle}\n showSubtitle={showSubtitle}\n >\n {children}\n </BaseAcceptInvite>\n );\n};\n\nexport default AcceptInvite;\n"],"mappings":";;;;;;;;;AAyFA,MAAM,qBAAmE;AACvE,KAAI,OAAO,WAAW,YACpB,QAAO,EAAE;CAGX,MAAMA,SAAc,IAAI,gBAAgB,OAAO,SAAS,OAAO;AAC/D,QAAO;EACL,aAAa,OAAO,IAAI,cAAc,IAAI;EAC1C,aAAa,OAAO,IAAI,cAAc,IAAI;EAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCH,MAAMC,gBAAuC,EAC3C,SACA,aAAa,iBACb,aAAa,iBACb,YACA,SACA,cACA,cACA,WACA,UACA,OAAO,UACP,UAAU,YACV,YAAY,MACZ,eAAe,WACsB;CAErC,MAAM,EAAC,aAAa,gBAAgB,aAAa,mBAAkB,cAAc,cAAc,EAAE,EAAE,CAAC;CAEpG,MAAMC,cAAmB,mBAAmB;CAC5C,MAAMC,cAAmB,mBAAmB;CAG5C,MAAMC,aAAkB,cAAc;AACpC,MAAI,QACF,QAAO;AAGT,MAAI,OAAO,WAAW,YACpB,QAAO,OAAO,SAAS;AAEzB,SAAO;IACN,CAAC,QAAQ,CAAC;;;;;CAMb,MAAM,eAAe,OAAO,YAAoE;EAC9F,MAAMC,WAAqB,MAAM,MAAM,GAAG,WAAW,gBAAgB;GACnE,MAAM,KAAK,UAAU;IACnB,GAAG;IACH,SAAS;IACV,CAAC;GACF,SAAS;IACP,QAAQ;IACR,gBAAgB;IACjB;GACD,QAAQ;GACT,CAAC;AAEF,MAAI,CAAC,SAAS,GAGZ,OAAM,IAAI,kBAFgB,MAAM,SAAS,MAAM,EAI7C,kCACA,SACA,SAAS,QACT,SAAS,WACV;AAGH,SAAO,SAAS,MAAM;;AAGxB,QACE,oBAACC;EACc;EACA;EACb,UAAU;EACE;EACH;EACK;EACA;EACH;EACL;EACG;EACE;EACG;EAEb;GACgB;;AAIvB,2BAAe"}
@@ -1,20 +1,3 @@
1
- /**
2
- * Copyright (c) 2025-2026, 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
1
  import { FieldError, FlowExecutionError, FlowMetadataResponse, Preferences } from '@thunderid/browser';
19
2
  import { FC, ReactNode } from 'react';
20
3
  import { CardProps } from '../../../primitives/Card/Card';
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAcceptInvite.d.ts","sourceRoot":"","sources":["../../../../../src/components/presentation/auth/AcceptInvite/BaseAcceptInvite.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseAcceptInvite.d.ts","sourceRoot":"","sources":["../../../../../src/components/presentation/auth/AcceptInvite/BaseAcceptInvite.tsx"],"names":[],"mappings":"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"}