@thunderid/react 0.11.3 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (648) 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 +15 -11
  54. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -1
  55. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs.map +1 -1
  56. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs +13 -9
  57. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
  58. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs.map +1 -1
  59. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs.map +1 -1
  60. package/dist/cjs/components/presentation/auth/InviteUser/InviteUser.cjs.map +1 -1
  61. package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs.map +1 -1
  62. package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs.map +1 -1
  63. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs.map +1 -1
  64. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.styles.cjs.map +1 -1
  65. package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs +88 -40
  66. package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs.map +1 -1
  67. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs.map +1 -1
  68. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.styles.cjs.map +1 -1
  69. package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs.map +1 -1
  70. package/dist/cjs/components/primitives/AffixedField/AffixedField.cjs.map +1 -1
  71. package/dist/cjs/components/primitives/AffixedField/AffixedField.styles.cjs.map +1 -1
  72. package/dist/cjs/components/primitives/Alert/Alert.cjs.map +1 -1
  73. package/dist/cjs/components/primitives/Alert/Alert.styles.cjs.map +1 -1
  74. package/dist/cjs/components/primitives/Avatar/Avatar.cjs.map +1 -1
  75. package/dist/cjs/components/primitives/Avatar/Avatar.styles.cjs.map +1 -1
  76. package/dist/cjs/components/primitives/Button/Button.cjs.map +1 -1
  77. package/dist/cjs/components/primitives/Button/Button.styles.cjs.map +1 -1
  78. package/dist/cjs/components/primitives/Card/Card.cjs.map +1 -1
  79. package/dist/cjs/components/primitives/Card/Card.styles.cjs.map +1 -1
  80. package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs.map +1 -1
  81. package/dist/cjs/components/primitives/Checkbox/Checkbox.styles.cjs.map +1 -1
  82. package/dist/cjs/components/primitives/CopyableText/CopyableText.cjs.map +1 -1
  83. package/dist/cjs/components/primitives/CopyableText/CopyableText.styles.cjs.map +1 -1
  84. package/dist/cjs/components/primitives/DatePicker/DatePicker.cjs.map +1 -1
  85. package/dist/cjs/components/primitives/DatePicker/DatePicker.styles.cjs.map +1 -1
  86. package/dist/cjs/components/primitives/Dialog/Dialog.cjs.map +1 -1
  87. package/dist/cjs/components/primitives/Dialog/Dialog.styles.cjs.map +1 -1
  88. package/dist/cjs/components/primitives/Divider/Divider.cjs.map +1 -1
  89. package/dist/cjs/components/primitives/Divider/Divider.styles.cjs.map +1 -1
  90. package/dist/cjs/components/primitives/FormControl/FormControl.cjs.map +1 -1
  91. package/dist/cjs/components/primitives/FormControl/FormControl.styles.cjs.map +1 -1
  92. package/dist/cjs/components/primitives/Icons/ArrowLeftRight.cjs.map +1 -1
  93. package/dist/cjs/components/primitives/Icons/ArrowRightLeft.cjs.map +1 -1
  94. package/dist/cjs/components/primitives/Icons/BuildingAlt.cjs.map +1 -1
  95. package/dist/cjs/components/primitives/Icons/Check.cjs.map +1 -1
  96. package/dist/cjs/components/primitives/Icons/ChevronDown.cjs.map +1 -1
  97. package/dist/cjs/components/primitives/Icons/CircleAlert.cjs.map +1 -1
  98. package/dist/cjs/components/primitives/Icons/CircleCheck.cjs.map +1 -1
  99. package/dist/cjs/components/primitives/Icons/Eye.cjs.map +1 -1
  100. package/dist/cjs/components/primitives/Icons/EyeOff.cjs.map +1 -1
  101. package/dist/cjs/components/primitives/Icons/Info.cjs.map +1 -1
  102. package/dist/cjs/components/primitives/Icons/LogOut.cjs.map +1 -1
  103. package/dist/cjs/components/primitives/Icons/Plus.cjs.map +1 -1
  104. package/dist/cjs/components/primitives/Icons/TriangleAlert.cjs.map +1 -1
  105. package/dist/cjs/components/primitives/Icons/User.cjs.map +1 -1
  106. package/dist/cjs/components/primitives/Icons/X.cjs.map +1 -1
  107. package/dist/cjs/components/primitives/Icons/flowIconRegistry.cjs.map +1 -1
  108. package/dist/cjs/components/primitives/InputLabel/InputLabel.cjs.map +1 -1
  109. package/dist/cjs/components/primitives/InputLabel/InputLabel.styles.cjs.map +1 -1
  110. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.cjs.map +1 -1
  111. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.styles.cjs.map +1 -1
  112. package/dist/cjs/components/primitives/Logo/Logo.cjs.map +1 -1
  113. package/dist/cjs/components/primitives/Logo/Logo.styles.cjs.map +1 -1
  114. package/dist/cjs/components/primitives/MultiInput/MultiInput.cjs.map +1 -1
  115. package/dist/cjs/components/primitives/MultiInput/MultiInput.styles.cjs.map +1 -1
  116. package/dist/cjs/components/primitives/OtpField/OtpField.cjs.map +1 -1
  117. package/dist/cjs/components/primitives/OtpField/OtpField.styles.cjs.map +1 -1
  118. package/dist/cjs/components/primitives/PasswordField/PasswordField.cjs.map +1 -1
  119. package/dist/cjs/components/primitives/PasswordField/PasswordField.styles.cjs.map +1 -1
  120. package/dist/cjs/components/primitives/Select/Select.cjs.map +1 -1
  121. package/dist/cjs/components/primitives/Select/Select.styles.cjs.map +1 -1
  122. package/dist/cjs/components/primitives/Spinner/Spinner.cjs.map +1 -1
  123. package/dist/cjs/components/primitives/Spinner/Spinner.styles.cjs.map +1 -1
  124. package/dist/cjs/components/primitives/TextField/TextField.cjs.map +1 -1
  125. package/dist/cjs/components/primitives/TextField/TextField.styles.cjs.map +1 -1
  126. package/dist/cjs/components/primitives/Toggle/Toggle.cjs.map +1 -1
  127. package/dist/cjs/components/primitives/Toggle/Toggle.styles.cjs.map +1 -1
  128. package/dist/cjs/components/primitives/Tooltip/Tooltip.cjs.map +1 -1
  129. package/dist/cjs/components/primitives/Tooltip/Tooltip.styles.cjs.map +1 -1
  130. package/dist/cjs/components/primitives/Typography/Typography.cjs.map +1 -1
  131. package/dist/cjs/components/primitives/Typography/Typography.styles.cjs.map +1 -1
  132. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
  133. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererProvider.cjs.map +1 -1
  134. package/dist/cjs/contexts/Flow/FlowContext.cjs.map +1 -1
  135. package/dist/cjs/contexts/Flow/FlowProvider.cjs.map +1 -1
  136. package/dist/cjs/contexts/Flow/useFlow.cjs.map +1 -1
  137. package/dist/cjs/contexts/FlowMeta/FlowMetaContext.cjs.map +1 -1
  138. package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs.map +1 -1
  139. package/dist/cjs/contexts/FlowMeta/useFlowMeta.cjs.map +1 -1
  140. package/dist/cjs/contexts/I18n/ComponentPreferencesContext.cjs.map +1 -1
  141. package/dist/cjs/contexts/I18n/I18nContext.cjs.map +1 -1
  142. package/dist/cjs/contexts/I18n/I18nProvider.cjs.map +1 -1
  143. package/dist/cjs/contexts/I18n/useI18n.cjs.map +1 -1
  144. package/dist/cjs/contexts/Theme/ThemeContext.cjs.map +1 -1
  145. package/dist/cjs/contexts/Theme/ThemeProvider.cjs.map +1 -1
  146. package/dist/cjs/contexts/Theme/useTheme.cjs.map +1 -1
  147. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  148. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  149. package/dist/cjs/contexts/ThunderID/useThunderID.cjs.map +1 -1
  150. package/dist/cjs/contexts/User/UserContext.cjs.map +1 -1
  151. package/dist/cjs/contexts/User/UserProvider.cjs.map +1 -1
  152. package/dist/cjs/contexts/User/useUser.cjs.map +1 -1
  153. package/dist/cjs/hooks/useBrowserUrl.cjs.map +1 -1
  154. package/dist/cjs/hooks/useForm.cjs.map +1 -1
  155. package/dist/cjs/hooks/useOAuthCallback.cjs.map +1 -1
  156. package/dist/cjs/hooks/useTranslation.cjs.map +1 -1
  157. package/dist/cjs/utils/applyThemeToDOM.cjs.map +1 -1
  158. package/dist/cjs/utils/buildThemeConfigFromFlowMeta.cjs.map +1 -1
  159. package/dist/cjs/utils/composeAffixedInputs.cjs.map +1 -1
  160. package/dist/cjs/utils/flowTransformer.cjs.map +1 -1
  161. package/dist/cjs/utils/getAuthComponentHeadings.cjs.map +1 -1
  162. package/dist/cjs/utils/getDisplayName.cjs.map +1 -1
  163. package/dist/cjs/utils/getMappedUserProfileValue.cjs.map +1 -1
  164. package/dist/cjs/utils/normalizeThemeConfig.cjs.map +1 -1
  165. package/dist/cjs/utils/oauth.cjs.map +1 -1
  166. package/dist/cjs/utils/passkey.cjs.map +1 -1
  167. package/dist/cjs/utils/resolveTranslationsInArray.cjs.map +1 -1
  168. package/dist/cjs/utils/resolveTranslationsInObject.cjs.map +1 -1
  169. package/dist/components/actions/SignInButton/BaseSignInButton.d.ts +0 -17
  170. package/dist/components/actions/SignInButton/BaseSignInButton.d.ts.map +1 -1
  171. package/dist/components/actions/SignInButton/BaseSignInButton.js.map +1 -1
  172. package/dist/components/actions/SignInButton/SignInButton.d.ts +0 -17
  173. package/dist/components/actions/SignInButton/SignInButton.d.ts.map +1 -1
  174. package/dist/components/actions/SignInButton/SignInButton.js.map +1 -1
  175. package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts +0 -17
  176. package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts.map +1 -1
  177. package/dist/components/actions/SignOutButton/BaseSignOutButton.js.map +1 -1
  178. package/dist/components/actions/SignOutButton/SignOutButton.d.ts +0 -17
  179. package/dist/components/actions/SignOutButton/SignOutButton.d.ts.map +1 -1
  180. package/dist/components/actions/SignOutButton/SignOutButton.js.map +1 -1
  181. package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts +0 -17
  182. package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts.map +1 -1
  183. package/dist/components/actions/SignUpButton/BaseSignUpButton.js.map +1 -1
  184. package/dist/components/actions/SignUpButton/SignUpButton.d.ts +0 -17
  185. package/dist/components/actions/SignUpButton/SignUpButton.d.ts.map +1 -1
  186. package/dist/components/actions/SignUpButton/SignUpButton.js.map +1 -1
  187. package/dist/components/adapters/Consent.d.ts +0 -17
  188. package/dist/components/adapters/Consent.d.ts.map +1 -1
  189. package/dist/components/adapters/Consent.js.map +1 -1
  190. package/dist/components/adapters/ConsentCheckboxList.d.ts +0 -17
  191. package/dist/components/adapters/ConsentCheckboxList.d.ts.map +1 -1
  192. package/dist/components/adapters/ConsentCheckboxList.js.map +1 -1
  193. package/dist/components/adapters/ConsentCheckboxList.styles.d.ts +0 -17
  194. package/dist/components/adapters/ConsentCheckboxList.styles.d.ts.map +1 -1
  195. package/dist/components/adapters/ConsentCheckboxList.styles.js.map +1 -1
  196. package/dist/components/adapters/FacebookButton.d.ts +0 -17
  197. package/dist/components/adapters/FacebookButton.d.ts.map +1 -1
  198. package/dist/components/adapters/FacebookButton.js.map +1 -1
  199. package/dist/components/adapters/FlowTimer.d.ts +0 -17
  200. package/dist/components/adapters/FlowTimer.d.ts.map +1 -1
  201. package/dist/components/adapters/FlowTimer.js.map +1 -1
  202. package/dist/components/adapters/GitHubButton.d.ts +0 -17
  203. package/dist/components/adapters/GitHubButton.d.ts.map +1 -1
  204. package/dist/components/adapters/GitHubButton.js.map +1 -1
  205. package/dist/components/adapters/GoogleButton.d.ts +0 -17
  206. package/dist/components/adapters/GoogleButton.d.ts.map +1 -1
  207. package/dist/components/adapters/GoogleButton.js.map +1 -1
  208. package/dist/components/adapters/ImageComponent.d.ts +0 -17
  209. package/dist/components/adapters/ImageComponent.d.ts.map +1 -1
  210. package/dist/components/adapters/ImageComponent.js.map +1 -1
  211. package/dist/components/adapters/LinkedInButton.d.ts +0 -17
  212. package/dist/components/adapters/LinkedInButton.d.ts.map +1 -1
  213. package/dist/components/adapters/LinkedInButton.js.map +1 -1
  214. package/dist/components/adapters/MicrosoftButton.d.ts +0 -17
  215. package/dist/components/adapters/MicrosoftButton.d.ts.map +1 -1
  216. package/dist/components/adapters/MicrosoftButton.js.map +1 -1
  217. package/dist/components/adapters/SignInWithEthereumButton.d.ts +0 -17
  218. package/dist/components/adapters/SignInWithEthereumButton.d.ts.map +1 -1
  219. package/dist/components/adapters/SignInWithEthereumButton.js.map +1 -1
  220. package/dist/components/adapters/SmsOtpButton.d.ts +0 -17
  221. package/dist/components/adapters/SmsOtpButton.d.ts.map +1 -1
  222. package/dist/components/adapters/SmsOtpButton.js.map +1 -1
  223. package/dist/components/auth/Callback/Callback.d.ts.map +1 -1
  224. package/dist/components/auth/Callback/Callback.js.map +1 -1
  225. package/dist/components/auth/Callback/OAuthCallback.d.ts +0 -17
  226. package/dist/components/auth/Callback/OAuthCallback.d.ts.map +1 -1
  227. package/dist/components/auth/Callback/OAuthCallback.js.map +1 -1
  228. package/dist/components/auth/Callback/TokenCallback.d.ts +0 -16
  229. package/dist/components/auth/Callback/TokenCallback.d.ts.map +1 -1
  230. package/dist/components/auth/Callback/TokenCallback.js.map +1 -1
  231. package/dist/components/control/Loading.d.ts +0 -17
  232. package/dist/components/control/Loading.d.ts.map +1 -1
  233. package/dist/components/control/Loading.js.map +1 -1
  234. package/dist/components/control/SignedIn.d.ts +0 -17
  235. package/dist/components/control/SignedIn.d.ts.map +1 -1
  236. package/dist/components/control/SignedIn.js.map +1 -1
  237. package/dist/components/control/SignedOut.d.ts +0 -17
  238. package/dist/components/control/SignedOut.d.ts.map +1 -1
  239. package/dist/components/control/SignedOut.js.map +1 -1
  240. package/dist/components/factories/FieldFactory.d.ts +0 -17
  241. package/dist/components/factories/FieldFactory.d.ts.map +1 -1
  242. package/dist/components/factories/FieldFactory.js.map +1 -1
  243. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts +0 -17
  244. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts.map +1 -1
  245. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js.map +1 -1
  246. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts +0 -17
  247. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts.map +1 -1
  248. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.js.map +1 -1
  249. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts +0 -17
  250. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts.map +1 -1
  251. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
  252. package/dist/components/presentation/User/BaseUser.d.ts +0 -17
  253. package/dist/components/presentation/User/BaseUser.d.ts.map +1 -1
  254. package/dist/components/presentation/User/BaseUser.js.map +1 -1
  255. package/dist/components/presentation/User/User.d.ts +0 -17
  256. package/dist/components/presentation/User/User.d.ts.map +1 -1
  257. package/dist/components/presentation/User/User.js.map +1 -1
  258. package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts +0 -17
  259. package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts.map +1 -1
  260. package/dist/components/presentation/UserAvatar/BaseUserAvatar.js.map +1 -1
  261. package/dist/components/presentation/UserAvatar/UserAvatar.d.ts +0 -17
  262. package/dist/components/presentation/UserAvatar/UserAvatar.d.ts.map +1 -1
  263. package/dist/components/presentation/UserAvatar/UserAvatar.js.map +1 -1
  264. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts +0 -17
  265. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
  266. package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
  267. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts +0 -17
  268. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts.map +1 -1
  269. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.js.map +1 -1
  270. package/dist/components/presentation/UserDropdown/UserDropdown.d.ts +0 -17
  271. package/dist/components/presentation/UserDropdown/UserDropdown.d.ts.map +1 -1
  272. package/dist/components/presentation/UserDropdown/UserDropdown.js.map +1 -1
  273. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +0 -17
  274. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts.map +1 -1
  275. package/dist/components/presentation/UserProfile/BaseUserProfile.js.map +1 -1
  276. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts +0 -17
  277. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts.map +1 -1
  278. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.js.map +1 -1
  279. package/dist/components/presentation/UserProfile/UserProfile.d.ts +0 -17
  280. package/dist/components/presentation/UserProfile/UserProfile.d.ts.map +1 -1
  281. package/dist/components/presentation/UserProfile/UserProfile.js.map +1 -1
  282. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts +0 -17
  283. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts.map +1 -1
  284. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js +2 -4
  285. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js.map +1 -1
  286. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts +0 -17
  287. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -1
  288. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js +16 -12
  289. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -1
  290. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts +0 -17
  291. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts.map +1 -1
  292. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js.map +1 -1
  293. package/dist/components/presentation/auth/AcceptInvite/index.d.ts +0 -17
  294. package/dist/components/presentation/auth/AcceptInvite/index.d.ts.map +1 -1
  295. package/dist/components/presentation/auth/AuthOptionFactory.d.ts +0 -17
  296. package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
  297. package/dist/components/presentation/auth/AuthOptionFactory.js +14 -10
  298. package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
  299. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts +0 -17
  300. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts.map +1 -1
  301. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js.map +1 -1
  302. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts +0 -17
  303. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts.map +1 -1
  304. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js.map +1 -1
  305. package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts +0 -17
  306. package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts.map +1 -1
  307. package/dist/components/presentation/auth/InviteUser/InviteUser.js.map +1 -1
  308. package/dist/components/presentation/auth/InviteUser/index.d.ts +0 -17
  309. package/dist/components/presentation/auth/InviteUser/index.d.ts.map +1 -1
  310. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts +0 -17
  311. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts.map +1 -1
  312. package/dist/components/presentation/auth/Recovery/BaseRecovery.js.map +1 -1
  313. package/dist/components/presentation/auth/Recovery/Recovery.d.ts +0 -17
  314. package/dist/components/presentation/auth/Recovery/Recovery.d.ts.map +1 -1
  315. package/dist/components/presentation/auth/Recovery/Recovery.js.map +1 -1
  316. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts +0 -17
  317. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts.map +1 -1
  318. package/dist/components/presentation/auth/SignIn/BaseSignIn.js.map +1 -1
  319. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts +0 -17
  320. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts.map +1 -1
  321. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.js.map +1 -1
  322. package/dist/components/presentation/auth/SignIn/SignIn.d.ts +0 -17
  323. package/dist/components/presentation/auth/SignIn/SignIn.d.ts.map +1 -1
  324. package/dist/components/presentation/auth/SignIn/SignIn.js +89 -41
  325. package/dist/components/presentation/auth/SignIn/SignIn.js.map +1 -1
  326. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts +0 -17
  327. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  328. package/dist/components/presentation/auth/SignUp/BaseSignUp.js.map +1 -1
  329. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts +0 -17
  330. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts.map +1 -1
  331. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.js.map +1 -1
  332. package/dist/components/presentation/auth/SignUp/SignUp.d.ts +0 -17
  333. package/dist/components/presentation/auth/SignUp/SignUp.d.ts.map +1 -1
  334. package/dist/components/presentation/auth/SignUp/SignUp.js.map +1 -1
  335. package/dist/components/primitives/AffixedField/AffixedField.d.ts +0 -17
  336. package/dist/components/primitives/AffixedField/AffixedField.d.ts.map +1 -1
  337. package/dist/components/primitives/AffixedField/AffixedField.js.map +1 -1
  338. package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts +0 -17
  339. package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts.map +1 -1
  340. package/dist/components/primitives/AffixedField/AffixedField.styles.js.map +1 -1
  341. package/dist/components/primitives/AffixedField/index.d.ts +0 -17
  342. package/dist/components/primitives/AffixedField/index.d.ts.map +1 -1
  343. package/dist/components/primitives/Alert/Alert.d.ts +0 -17
  344. package/dist/components/primitives/Alert/Alert.d.ts.map +1 -1
  345. package/dist/components/primitives/Alert/Alert.js.map +1 -1
  346. package/dist/components/primitives/Alert/Alert.styles.d.ts +0 -17
  347. package/dist/components/primitives/Alert/Alert.styles.d.ts.map +1 -1
  348. package/dist/components/primitives/Alert/Alert.styles.js.map +1 -1
  349. package/dist/components/primitives/Avatar/Avatar.d.ts +0 -17
  350. package/dist/components/primitives/Avatar/Avatar.d.ts.map +1 -1
  351. package/dist/components/primitives/Avatar/Avatar.js.map +1 -1
  352. package/dist/components/primitives/Avatar/Avatar.styles.d.ts +0 -17
  353. package/dist/components/primitives/Avatar/Avatar.styles.d.ts.map +1 -1
  354. package/dist/components/primitives/Avatar/Avatar.styles.js.map +1 -1
  355. package/dist/components/primitives/Button/Button.d.ts +0 -17
  356. package/dist/components/primitives/Button/Button.d.ts.map +1 -1
  357. package/dist/components/primitives/Button/Button.js.map +1 -1
  358. package/dist/components/primitives/Button/Button.styles.d.ts +0 -17
  359. package/dist/components/primitives/Button/Button.styles.d.ts.map +1 -1
  360. package/dist/components/primitives/Button/Button.styles.js.map +1 -1
  361. package/dist/components/primitives/Card/Card.d.ts +0 -17
  362. package/dist/components/primitives/Card/Card.d.ts.map +1 -1
  363. package/dist/components/primitives/Card/Card.js.map +1 -1
  364. package/dist/components/primitives/Card/Card.styles.d.ts +0 -17
  365. package/dist/components/primitives/Card/Card.styles.d.ts.map +1 -1
  366. package/dist/components/primitives/Card/Card.styles.js.map +1 -1
  367. package/dist/components/primitives/Checkbox/Checkbox.d.ts +0 -17
  368. package/dist/components/primitives/Checkbox/Checkbox.d.ts.map +1 -1
  369. package/dist/components/primitives/Checkbox/Checkbox.js.map +1 -1
  370. package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts +0 -17
  371. package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts.map +1 -1
  372. package/dist/components/primitives/Checkbox/Checkbox.styles.js.map +1 -1
  373. package/dist/components/primitives/CopyableText/CopyableText.d.ts +0 -17
  374. package/dist/components/primitives/CopyableText/CopyableText.d.ts.map +1 -1
  375. package/dist/components/primitives/CopyableText/CopyableText.js.map +1 -1
  376. package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts +0 -17
  377. package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts.map +1 -1
  378. package/dist/components/primitives/CopyableText/CopyableText.styles.js.map +1 -1
  379. package/dist/components/primitives/CopyableText/index.d.ts +0 -17
  380. package/dist/components/primitives/CopyableText/index.d.ts.map +1 -1
  381. package/dist/components/primitives/DatePicker/DatePicker.d.ts +0 -17
  382. package/dist/components/primitives/DatePicker/DatePicker.d.ts.map +1 -1
  383. package/dist/components/primitives/DatePicker/DatePicker.js.map +1 -1
  384. package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts +0 -17
  385. package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts.map +1 -1
  386. package/dist/components/primitives/DatePicker/DatePicker.styles.js.map +1 -1
  387. package/dist/components/primitives/Dialog/Dialog.d.ts +0 -17
  388. package/dist/components/primitives/Dialog/Dialog.d.ts.map +1 -1
  389. package/dist/components/primitives/Dialog/Dialog.js.map +1 -1
  390. package/dist/components/primitives/Dialog/Dialog.styles.d.ts +0 -17
  391. package/dist/components/primitives/Dialog/Dialog.styles.d.ts.map +1 -1
  392. package/dist/components/primitives/Dialog/Dialog.styles.js.map +1 -1
  393. package/dist/components/primitives/Divider/Divider.d.ts +0 -17
  394. package/dist/components/primitives/Divider/Divider.d.ts.map +1 -1
  395. package/dist/components/primitives/Divider/Divider.js.map +1 -1
  396. package/dist/components/primitives/Divider/Divider.styles.d.ts +0 -17
  397. package/dist/components/primitives/Divider/Divider.styles.d.ts.map +1 -1
  398. package/dist/components/primitives/Divider/Divider.styles.js.map +1 -1
  399. package/dist/components/primitives/FormControl/FormControl.d.ts +0 -17
  400. package/dist/components/primitives/FormControl/FormControl.d.ts.map +1 -1
  401. package/dist/components/primitives/FormControl/FormControl.js.map +1 -1
  402. package/dist/components/primitives/FormControl/FormControl.styles.d.ts +0 -17
  403. package/dist/components/primitives/FormControl/FormControl.styles.d.ts.map +1 -1
  404. package/dist/components/primitives/FormControl/FormControl.styles.js.map +1 -1
  405. package/dist/components/primitives/Icons/ArrowLeftRight.d.ts +0 -17
  406. package/dist/components/primitives/Icons/ArrowLeftRight.d.ts.map +1 -1
  407. package/dist/components/primitives/Icons/ArrowLeftRight.js.map +1 -1
  408. package/dist/components/primitives/Icons/ArrowRightLeft.d.ts +0 -17
  409. package/dist/components/primitives/Icons/ArrowRightLeft.d.ts.map +1 -1
  410. package/dist/components/primitives/Icons/ArrowRightLeft.js.map +1 -1
  411. package/dist/components/primitives/Icons/Building.d.ts +0 -17
  412. package/dist/components/primitives/Icons/Building.d.ts.map +1 -1
  413. package/dist/components/primitives/Icons/BuildingAlt.d.ts +0 -17
  414. package/dist/components/primitives/Icons/BuildingAlt.d.ts.map +1 -1
  415. package/dist/components/primitives/Icons/BuildingAlt.js.map +1 -1
  416. package/dist/components/primitives/Icons/Check.d.ts +0 -17
  417. package/dist/components/primitives/Icons/Check.d.ts.map +1 -1
  418. package/dist/components/primitives/Icons/Check.js.map +1 -1
  419. package/dist/components/primitives/Icons/ChevronDown.d.ts +0 -17
  420. package/dist/components/primitives/Icons/ChevronDown.d.ts.map +1 -1
  421. package/dist/components/primitives/Icons/ChevronDown.js.map +1 -1
  422. package/dist/components/primitives/Icons/CircleAlert.d.ts +0 -17
  423. package/dist/components/primitives/Icons/CircleAlert.d.ts.map +1 -1
  424. package/dist/components/primitives/Icons/CircleAlert.js.map +1 -1
  425. package/dist/components/primitives/Icons/CircleCheck.d.ts +0 -17
  426. package/dist/components/primitives/Icons/CircleCheck.d.ts.map +1 -1
  427. package/dist/components/primitives/Icons/CircleCheck.js.map +1 -1
  428. package/dist/components/primitives/Icons/Eye.d.ts +0 -17
  429. package/dist/components/primitives/Icons/Eye.d.ts.map +1 -1
  430. package/dist/components/primitives/Icons/Eye.js.map +1 -1
  431. package/dist/components/primitives/Icons/EyeOff.d.ts +0 -17
  432. package/dist/components/primitives/Icons/EyeOff.d.ts.map +1 -1
  433. package/dist/components/primitives/Icons/EyeOff.js.map +1 -1
  434. package/dist/components/primitives/Icons/Info.d.ts +0 -17
  435. package/dist/components/primitives/Icons/Info.d.ts.map +1 -1
  436. package/dist/components/primitives/Icons/Info.js.map +1 -1
  437. package/dist/components/primitives/Icons/LogOut.d.ts +0 -17
  438. package/dist/components/primitives/Icons/LogOut.d.ts.map +1 -1
  439. package/dist/components/primitives/Icons/LogOut.js.map +1 -1
  440. package/dist/components/primitives/Icons/Plus.d.ts +0 -17
  441. package/dist/components/primitives/Icons/Plus.d.ts.map +1 -1
  442. package/dist/components/primitives/Icons/Plus.js.map +1 -1
  443. package/dist/components/primitives/Icons/TriangleAlert.d.ts +0 -17
  444. package/dist/components/primitives/Icons/TriangleAlert.d.ts.map +1 -1
  445. package/dist/components/primitives/Icons/TriangleAlert.js.map +1 -1
  446. package/dist/components/primitives/Icons/User.d.ts +0 -17
  447. package/dist/components/primitives/Icons/User.d.ts.map +1 -1
  448. package/dist/components/primitives/Icons/User.js.map +1 -1
  449. package/dist/components/primitives/Icons/X.d.ts +0 -17
  450. package/dist/components/primitives/Icons/X.d.ts.map +1 -1
  451. package/dist/components/primitives/Icons/X.js.map +1 -1
  452. package/dist/components/primitives/Icons/flowIconRegistry.d.ts +0 -17
  453. package/dist/components/primitives/Icons/flowIconRegistry.d.ts.map +1 -1
  454. package/dist/components/primitives/Icons/flowIconRegistry.js.map +1 -1
  455. package/dist/components/primitives/Icons/index.d.ts +0 -17
  456. package/dist/components/primitives/Icons/index.d.ts.map +1 -1
  457. package/dist/components/primitives/InputLabel/InputLabel.d.ts +0 -17
  458. package/dist/components/primitives/InputLabel/InputLabel.d.ts.map +1 -1
  459. package/dist/components/primitives/InputLabel/InputLabel.js.map +1 -1
  460. package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts +0 -17
  461. package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts.map +1 -1
  462. package/dist/components/primitives/InputLabel/InputLabel.styles.js.map +1 -1
  463. package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts +0 -17
  464. package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts.map +1 -1
  465. package/dist/components/primitives/KeyValueInput/KeyValueInput.js.map +1 -1
  466. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts +0 -17
  467. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts.map +1 -1
  468. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.js.map +1 -1
  469. package/dist/components/primitives/Logo/Logo.d.ts +0 -17
  470. package/dist/components/primitives/Logo/Logo.d.ts.map +1 -1
  471. package/dist/components/primitives/Logo/Logo.js.map +1 -1
  472. package/dist/components/primitives/Logo/Logo.styles.d.ts +0 -17
  473. package/dist/components/primitives/Logo/Logo.styles.d.ts.map +1 -1
  474. package/dist/components/primitives/Logo/Logo.styles.js.map +1 -1
  475. package/dist/components/primitives/MultiInput/MultiInput.d.ts +0 -17
  476. package/dist/components/primitives/MultiInput/MultiInput.d.ts.map +1 -1
  477. package/dist/components/primitives/MultiInput/MultiInput.js.map +1 -1
  478. package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts +0 -17
  479. package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts.map +1 -1
  480. package/dist/components/primitives/MultiInput/MultiInput.styles.js.map +1 -1
  481. package/dist/components/primitives/OtpField/OtpField.d.ts +0 -17
  482. package/dist/components/primitives/OtpField/OtpField.d.ts.map +1 -1
  483. package/dist/components/primitives/OtpField/OtpField.js.map +1 -1
  484. package/dist/components/primitives/OtpField/OtpField.styles.d.ts +0 -17
  485. package/dist/components/primitives/OtpField/OtpField.styles.d.ts.map +1 -1
  486. package/dist/components/primitives/OtpField/OtpField.styles.js.map +1 -1
  487. package/dist/components/primitives/PasswordField/PasswordField.d.ts +0 -17
  488. package/dist/components/primitives/PasswordField/PasswordField.d.ts.map +1 -1
  489. package/dist/components/primitives/PasswordField/PasswordField.js.map +1 -1
  490. package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts +0 -17
  491. package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts.map +1 -1
  492. package/dist/components/primitives/PasswordField/PasswordField.styles.js.map +1 -1
  493. package/dist/components/primitives/Select/Select.d.ts +0 -17
  494. package/dist/components/primitives/Select/Select.d.ts.map +1 -1
  495. package/dist/components/primitives/Select/Select.js.map +1 -1
  496. package/dist/components/primitives/Select/Select.styles.d.ts +0 -17
  497. package/dist/components/primitives/Select/Select.styles.d.ts.map +1 -1
  498. package/dist/components/primitives/Select/Select.styles.js.map +1 -1
  499. package/dist/components/primitives/Spinner/Spinner.d.ts +0 -17
  500. package/dist/components/primitives/Spinner/Spinner.d.ts.map +1 -1
  501. package/dist/components/primitives/Spinner/Spinner.js.map +1 -1
  502. package/dist/components/primitives/Spinner/Spinner.styles.d.ts +0 -17
  503. package/dist/components/primitives/Spinner/Spinner.styles.d.ts.map +1 -1
  504. package/dist/components/primitives/Spinner/Spinner.styles.js.map +1 -1
  505. package/dist/components/primitives/TextField/TextField.d.ts +0 -17
  506. package/dist/components/primitives/TextField/TextField.d.ts.map +1 -1
  507. package/dist/components/primitives/TextField/TextField.js.map +1 -1
  508. package/dist/components/primitives/TextField/TextField.styles.d.ts +0 -17
  509. package/dist/components/primitives/TextField/TextField.styles.d.ts.map +1 -1
  510. package/dist/components/primitives/TextField/TextField.styles.js.map +1 -1
  511. package/dist/components/primitives/Toggle/Toggle.d.ts +0 -17
  512. package/dist/components/primitives/Toggle/Toggle.d.ts.map +1 -1
  513. package/dist/components/primitives/Toggle/Toggle.js.map +1 -1
  514. package/dist/components/primitives/Toggle/Toggle.styles.d.ts +0 -17
  515. package/dist/components/primitives/Toggle/Toggle.styles.d.ts.map +1 -1
  516. package/dist/components/primitives/Toggle/Toggle.styles.js.map +1 -1
  517. package/dist/components/primitives/Tooltip/Tooltip.d.ts +0 -17
  518. package/dist/components/primitives/Tooltip/Tooltip.d.ts.map +1 -1
  519. package/dist/components/primitives/Tooltip/Tooltip.js.map +1 -1
  520. package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts +0 -17
  521. package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts.map +1 -1
  522. package/dist/components/primitives/Tooltip/Tooltip.styles.js.map +1 -1
  523. package/dist/components/primitives/Typography/Typography.d.ts +0 -17
  524. package/dist/components/primitives/Typography/Typography.d.ts.map +1 -1
  525. package/dist/components/primitives/Typography/Typography.js.map +1 -1
  526. package/dist/components/primitives/Typography/Typography.styles.d.ts +0 -17
  527. package/dist/components/primitives/Typography/Typography.styles.d.ts.map +1 -1
  528. package/dist/components/primitives/Typography/Typography.styles.js.map +1 -1
  529. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +0 -17
  530. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
  531. package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
  532. package/dist/contexts/ComponentRenderer/ComponentRendererProvider.d.ts +0 -17
  533. package/dist/contexts/ComponentRenderer/ComponentRendererProvider.d.ts.map +1 -1
  534. package/dist/contexts/ComponentRenderer/ComponentRendererProvider.js.map +1 -1
  535. package/dist/contexts/Flow/FlowContext.d.ts +0 -17
  536. package/dist/contexts/Flow/FlowContext.d.ts.map +1 -1
  537. package/dist/contexts/Flow/FlowContext.js.map +1 -1
  538. package/dist/contexts/Flow/FlowProvider.d.ts +0 -17
  539. package/dist/contexts/Flow/FlowProvider.d.ts.map +1 -1
  540. package/dist/contexts/Flow/FlowProvider.js.map +1 -1
  541. package/dist/contexts/Flow/useFlow.d.ts +0 -17
  542. package/dist/contexts/Flow/useFlow.d.ts.map +1 -1
  543. package/dist/contexts/Flow/useFlow.js.map +1 -1
  544. package/dist/contexts/FlowMeta/FlowMetaContext.d.ts +0 -17
  545. package/dist/contexts/FlowMeta/FlowMetaContext.d.ts.map +1 -1
  546. package/dist/contexts/FlowMeta/FlowMetaContext.js.map +1 -1
  547. package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts +0 -17
  548. package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts.map +1 -1
  549. package/dist/contexts/FlowMeta/FlowMetaProvider.js.map +1 -1
  550. package/dist/contexts/FlowMeta/useFlowMeta.d.ts +0 -17
  551. package/dist/contexts/FlowMeta/useFlowMeta.d.ts.map +1 -1
  552. package/dist/contexts/FlowMeta/useFlowMeta.js.map +1 -1
  553. package/dist/contexts/I18n/ComponentPreferencesContext.d.ts +0 -17
  554. package/dist/contexts/I18n/ComponentPreferencesContext.d.ts.map +1 -1
  555. package/dist/contexts/I18n/ComponentPreferencesContext.js.map +1 -1
  556. package/dist/contexts/I18n/I18nContext.d.ts +0 -17
  557. package/dist/contexts/I18n/I18nContext.d.ts.map +1 -1
  558. package/dist/contexts/I18n/I18nContext.js.map +1 -1
  559. package/dist/contexts/I18n/I18nProvider.d.ts +0 -17
  560. package/dist/contexts/I18n/I18nProvider.d.ts.map +1 -1
  561. package/dist/contexts/I18n/I18nProvider.js.map +1 -1
  562. package/dist/contexts/I18n/useI18n.d.ts +0 -17
  563. package/dist/contexts/I18n/useI18n.d.ts.map +1 -1
  564. package/dist/contexts/I18n/useI18n.js.map +1 -1
  565. package/dist/contexts/Theme/ThemeContext.d.ts +0 -17
  566. package/dist/contexts/Theme/ThemeContext.d.ts.map +1 -1
  567. package/dist/contexts/Theme/ThemeContext.js.map +1 -1
  568. package/dist/contexts/Theme/ThemeProvider.d.ts +0 -17
  569. package/dist/contexts/Theme/ThemeProvider.d.ts.map +1 -1
  570. package/dist/contexts/Theme/ThemeProvider.js.map +1 -1
  571. package/dist/contexts/Theme/types.d.ts +0 -17
  572. package/dist/contexts/Theme/types.d.ts.map +1 -1
  573. package/dist/contexts/Theme/useTheme.d.ts +0 -17
  574. package/dist/contexts/Theme/useTheme.d.ts.map +1 -1
  575. package/dist/contexts/Theme/useTheme.js.map +1 -1
  576. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +0 -17
  577. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  578. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  579. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts +0 -17
  580. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  581. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  582. package/dist/contexts/ThunderID/useThunderID.d.ts +0 -17
  583. package/dist/contexts/ThunderID/useThunderID.d.ts.map +1 -1
  584. package/dist/contexts/ThunderID/useThunderID.js.map +1 -1
  585. package/dist/contexts/User/UserContext.d.ts +0 -17
  586. package/dist/contexts/User/UserContext.d.ts.map +1 -1
  587. package/dist/contexts/User/UserContext.js.map +1 -1
  588. package/dist/contexts/User/UserProvider.d.ts +0 -17
  589. package/dist/contexts/User/UserProvider.d.ts.map +1 -1
  590. package/dist/contexts/User/UserProvider.js.map +1 -1
  591. package/dist/contexts/User/useUser.d.ts +0 -17
  592. package/dist/contexts/User/useUser.d.ts.map +1 -1
  593. package/dist/contexts/User/useUser.js.map +1 -1
  594. package/dist/hooks/useBrowserUrl.d.ts +0 -17
  595. package/dist/hooks/useBrowserUrl.d.ts.map +1 -1
  596. package/dist/hooks/useBrowserUrl.js.map +1 -1
  597. package/dist/hooks/useForm.d.ts +0 -17
  598. package/dist/hooks/useForm.d.ts.map +1 -1
  599. package/dist/hooks/useForm.js.map +1 -1
  600. package/dist/hooks/useOAuthCallback.d.ts +0 -17
  601. package/dist/hooks/useOAuthCallback.d.ts.map +1 -1
  602. package/dist/hooks/useOAuthCallback.js.map +1 -1
  603. package/dist/hooks/useTranslation.d.ts +0 -17
  604. package/dist/hooks/useTranslation.d.ts.map +1 -1
  605. package/dist/hooks/useTranslation.js.map +1 -1
  606. package/dist/index.d.ts +0 -17
  607. package/dist/index.d.ts.map +1 -1
  608. package/dist/models/adapters.d.ts +0 -17
  609. package/dist/models/adapters.d.ts.map +1 -1
  610. package/dist/models/config.d.ts +0 -17
  611. package/dist/models/config.d.ts.map +1 -1
  612. package/dist/utils/applyThemeToDOM.d.ts +0 -17
  613. package/dist/utils/applyThemeToDOM.d.ts.map +1 -1
  614. package/dist/utils/applyThemeToDOM.js.map +1 -1
  615. package/dist/utils/buildThemeConfigFromFlowMeta.d.ts +0 -17
  616. package/dist/utils/buildThemeConfigFromFlowMeta.d.ts.map +1 -1
  617. package/dist/utils/buildThemeConfigFromFlowMeta.js.map +1 -1
  618. package/dist/utils/composeAffixedInputs.d.ts +0 -17
  619. package/dist/utils/composeAffixedInputs.d.ts.map +1 -1
  620. package/dist/utils/composeAffixedInputs.js.map +1 -1
  621. package/dist/utils/flowTransformer.d.ts +0 -17
  622. package/dist/utils/flowTransformer.d.ts.map +1 -1
  623. package/dist/utils/flowTransformer.js.map +1 -1
  624. package/dist/utils/getAuthComponentHeadings.d.ts +0 -17
  625. package/dist/utils/getAuthComponentHeadings.d.ts.map +1 -1
  626. package/dist/utils/getAuthComponentHeadings.js.map +1 -1
  627. package/dist/utils/getDisplayName.d.ts +0 -17
  628. package/dist/utils/getDisplayName.d.ts.map +1 -1
  629. package/dist/utils/getDisplayName.js.map +1 -1
  630. package/dist/utils/getMappedUserProfileValue.d.ts +0 -17
  631. package/dist/utils/getMappedUserProfileValue.d.ts.map +1 -1
  632. package/dist/utils/getMappedUserProfileValue.js.map +1 -1
  633. package/dist/utils/normalizeThemeConfig.d.ts +0 -17
  634. package/dist/utils/normalizeThemeConfig.d.ts.map +1 -1
  635. package/dist/utils/normalizeThemeConfig.js.map +1 -1
  636. package/dist/utils/oauth.d.ts +0 -17
  637. package/dist/utils/oauth.d.ts.map +1 -1
  638. package/dist/utils/oauth.js.map +1 -1
  639. package/dist/utils/passkey.d.ts +0 -17
  640. package/dist/utils/passkey.d.ts.map +1 -1
  641. package/dist/utils/passkey.js.map +1 -1
  642. package/dist/utils/resolveTranslationsInArray.d.ts +0 -17
  643. package/dist/utils/resolveTranslationsInArray.d.ts.map +1 -1
  644. package/dist/utils/resolveTranslationsInArray.js.map +1 -1
  645. package/dist/utils/resolveTranslationsInObject.d.ts +0 -17
  646. package/dist/utils/resolveTranslationsInObject.d.ts.map +1 -1
  647. package/dist/utils/resolveTranslationsInObject.js.map +1 -1
  648. package/package.json +3 -3
@@ -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 { WithPreferences } from '@thunderid/browser';
19
2
  import { FC, HTMLAttributes } from 'react';
20
3
  export interface SignInWithEthereumButtonProps extends WithPreferences {
@@ -1 +1 @@
1
- {"version":3,"file":"SignInWithEthereumButton.d.ts","sourceRoot":"","sources":["../../../src/components/adapters/SignInWithEthereumButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,EAAE,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,GAAG,cAAc,CAAC,iBAAiB,CAAC,CA4BnG,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"SignInWithEthereumButton.d.ts","sourceRoot":"","sources":["../../../src/components/adapters/SignInWithEthereumButton.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,EAAE,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,GAAG,cAAc,CAAC,iBAAiB,CAAC,CA4BnG,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignInWithEthereumButton.js","names":["SignInWithEthereumButton: FC<SignInWithEthereumButtonProps & HTMLAttributes<HTMLButtonElement>>","useTranslation","Button"],"sources":["../../../src/components/adapters/SignInWithEthereumButton.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 {WithPreferences} from '@thunderid/browser';\nimport {FC, HTMLAttributes} from 'react';\nimport useTranslation from '../../hooks/useTranslation';\nimport Button from '../primitives/Button/Button';\n\nexport interface SignInWithEthereumButtonProps extends WithPreferences {\n /**\n * Whether the component is in loading state.\n */\n isLoading?: boolean;\n}\n\n/**\n * Sign In With Ethereum Button Component.\n * Handles authentication with Sign In With Ethereum identity provider.\n */\nconst SignInWithEthereumButton: FC<SignInWithEthereumButtonProps & HTMLAttributes<HTMLButtonElement>> = ({\n isLoading,\n preferences,\n children,\n ...rest\n}: SignInWithEthereumButtonProps & HTMLAttributes<HTMLButtonElement>) => {\n const {t} = useTranslation(preferences?.i18n);\n\n return (\n <Button\n {...rest}\n fullWidth\n type=\"button\"\n color=\"secondary\"\n variant=\"solid\"\n disabled={isLoading}\n startIcon={\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill=\"#627EEA\"\n d=\"M11.944 17.97L4.58 13.62 11.943 24l7.37-10.38-7.372 4.35h.003zM12.056 0L4.69 12.223l7.365 4.354 7.365-4.35L12.056 0z\"\n />\n </svg>\n }\n >\n {children ?? t('elements.buttons.ethereum.text')}\n </Button>\n );\n};\n\nexport default SignInWithEthereumButton;\n"],"mappings":";;;;;;;;;AAkCA,MAAMA,4BAAmG,EACvG,WACA,aACA,SACA,GAAG,WACoE;CACvE,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;AAE7C,QACE,oBAACC;EACC,GAAI;EACJ;EACA,MAAK;EACL,OAAM;EACN,SAAQ;EACR,UAAU;EACV,WACE,oBAAC;GAAI,OAAM;GAAK,QAAO;GAAK,SAAQ;GAAY,OAAM;aACpD,oBAAC;IACC,MAAK;IACL,GAAE;KACF;IACE;YAGP,YAAY,EAAE,iCAAiC;GACzC;;AAIb,uCAAe"}
1
+ {"version":3,"file":"SignInWithEthereumButton.js","names":["SignInWithEthereumButton: FC<SignInWithEthereumButtonProps & HTMLAttributes<HTMLButtonElement>>","useTranslation","Button"],"sources":["../../../src/components/adapters/SignInWithEthereumButton.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {WithPreferences} from '@thunderid/browser';\nimport {FC, HTMLAttributes} from 'react';\nimport useTranslation from '../../hooks/useTranslation';\nimport Button from '../primitives/Button/Button';\n\nexport interface SignInWithEthereumButtonProps extends WithPreferences {\n /**\n * Whether the component is in loading state.\n */\n isLoading?: boolean;\n}\n\n/**\n * Sign In With Ethereum Button Component.\n * Handles authentication with Sign In With Ethereum identity provider.\n */\nconst SignInWithEthereumButton: FC<SignInWithEthereumButtonProps & HTMLAttributes<HTMLButtonElement>> = ({\n isLoading,\n preferences,\n children,\n ...rest\n}: SignInWithEthereumButtonProps & HTMLAttributes<HTMLButtonElement>) => {\n const {t} = useTranslation(preferences?.i18n);\n\n return (\n <Button\n {...rest}\n fullWidth\n type=\"button\"\n color=\"secondary\"\n variant=\"solid\"\n disabled={isLoading}\n startIcon={\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill=\"#627EEA\"\n d=\"M11.944 17.97L4.58 13.62 11.943 24l7.37-10.38-7.372 4.35h.003zM12.056 0L4.69 12.223l7.365 4.354 7.365-4.35L12.056 0z\"\n />\n </svg>\n }\n >\n {children ?? t('elements.buttons.ethereum.text')}\n </Button>\n );\n};\n\nexport default SignInWithEthereumButton;\n"],"mappings":";;;;;;;;;AAmBA,MAAMA,4BAAmG,EACvG,WACA,aACA,SACA,GAAG,WACoE;CACvE,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;AAE7C,QACE,oBAACC;EACC,GAAI;EACJ;EACA,MAAK;EACL,OAAM;EACN,SAAQ;EACR,UAAU;EACV,WACE,oBAAC;GAAI,OAAM;GAAK,QAAO;GAAK,SAAQ;GAAY,OAAM;aACpD,oBAAC;IACC,MAAK;IACL,GAAE;KACF;IACE;YAGP,YAAY,EAAE,iCAAiC;GACzC;;AAIb,uCAAe"}
@@ -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 { WithPreferences } from '@thunderid/browser';
19
2
  import { FC, HTMLAttributes } from 'react';
20
3
  export interface SmsOtpButtonProps extends WithPreferences {
@@ -1 +1 @@
1
- {"version":3,"file":"SmsOtpButton.d.ts","sourceRoot":"","sources":["../../../src/components/adapters/SmsOtpButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,EAAE,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CA4B3E,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"SmsOtpButton.d.ts","sourceRoot":"","sources":["../../../src/components/adapters/SmsOtpButton.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,EAAE,EAAE,cAAc,EAAC,MAAM,OAAO,CAAC;AAIzC,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CA4B3E,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmsOtpButton.js","names":["SmsOtpButton: FC<SmsOtpButtonProps & HTMLAttributes<HTMLButtonElement>>","useTranslation","Button"],"sources":["../../../src/components/adapters/SmsOtpButton.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 {WithPreferences} from '@thunderid/browser';\nimport {FC, HTMLAttributes} from 'react';\nimport useTranslation from '../../hooks/useTranslation';\nimport Button from '../primitives/Button/Button';\n\nexport interface SmsOtpButtonProps extends WithPreferences {\n /**\n * Whether the component is in loading state.\n */\n isLoading?: boolean;\n}\n\n/**\n * SMS OTP Sign-In Button Component.\n * Handles authentication with SMS OTP.\n */\nconst SmsOtpButton: FC<SmsOtpButtonProps & HTMLAttributes<HTMLButtonElement>> = ({\n isLoading,\n preferences,\n children,\n ...rest\n}: SmsOtpButtonProps & HTMLAttributes<HTMLButtonElement>) => {\n const {t} = useTranslation(preferences?.i18n);\n\n return (\n <Button\n {...rest}\n fullWidth\n type=\"button\"\n color=\"secondary\"\n variant=\"solid\"\n disabled={isLoading}\n startIcon={\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill=\"currentColor\"\n d=\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.59l2.2-2.2c.27-.27.35-.67.24-1.02A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1M12 3v10l3-3h6V3z\"\n />\n </svg>\n }\n >\n {children ?? t('elements.buttons.smsotp.text')}\n </Button>\n );\n};\n\nexport default SmsOtpButton;\n"],"mappings":";;;;;;;;;AAkCA,MAAMA,gBAA2E,EAC/E,WACA,aACA,SACA,GAAG,WACwD;CAC3D,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;AAE7C,QACE,oBAACC;EACC,GAAI;EACJ;EACA,MAAK;EACL,OAAM;EACN,SAAQ;EACR,UAAU;EACV,WACE,oBAAC;GAAI,OAAM;GAAK,QAAO;GAAK,SAAQ;GAAY,OAAM;aACpD,oBAAC;IACC,MAAK;IACL,GAAE;KACF;IACE;YAGP,YAAY,EAAE,+BAA+B;GACvC;;AAIb,2BAAe"}
1
+ {"version":3,"file":"SmsOtpButton.js","names":["SmsOtpButton: FC<SmsOtpButtonProps & HTMLAttributes<HTMLButtonElement>>","useTranslation","Button"],"sources":["../../../src/components/adapters/SmsOtpButton.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {WithPreferences} from '@thunderid/browser';\nimport {FC, HTMLAttributes} from 'react';\nimport useTranslation from '../../hooks/useTranslation';\nimport Button from '../primitives/Button/Button';\n\nexport interface SmsOtpButtonProps extends WithPreferences {\n /**\n * Whether the component is in loading state.\n */\n isLoading?: boolean;\n}\n\n/**\n * SMS OTP Sign-In Button Component.\n * Handles authentication with SMS OTP.\n */\nconst SmsOtpButton: FC<SmsOtpButtonProps & HTMLAttributes<HTMLButtonElement>> = ({\n isLoading,\n preferences,\n children,\n ...rest\n}: SmsOtpButtonProps & HTMLAttributes<HTMLButtonElement>) => {\n const {t} = useTranslation(preferences?.i18n);\n\n return (\n <Button\n {...rest}\n fullWidth\n type=\"button\"\n color=\"secondary\"\n variant=\"solid\"\n disabled={isLoading}\n startIcon={\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill=\"currentColor\"\n d=\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.59l2.2-2.2c.27-.27.35-.67.24-1.02A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1M12 3v10l3-3h6V3z\"\n />\n </svg>\n }\n >\n {children ?? t('elements.buttons.smsotp.text')}\n </Button>\n );\n};\n\nexport default SmsOtpButton;\n"],"mappings":";;;;;;;;;AAmBA,MAAMA,gBAA2E,EAC/E,WACA,aACA,SACA,GAAG,WACwD;CAC3D,MAAM,EAAC,MAAKC,uBAAe,aAAa,KAAK;AAE7C,QACE,oBAACC;EACC,GAAI;EACJ;EACA,MAAK;EACL,OAAM;EACN,SAAQ;EACR,UAAU;EACV,WACE,oBAAC;GAAI,OAAM;GAAK,QAAO;GAAK,SAAQ;GAAY,OAAM;aACpD,oBAAC;IACC,MAAK;IACL,GAAE;KACF;IACE;YAGP,YAAY,EAAE,+BAA+B;GACvC;;AAIb,2BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Callback.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/Callback/Callback.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAC,EAAE,EAAW,MAAM,OAAO,CAAC;AACnC,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAqBtC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Callback.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/Callback/Callback.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAW,MAAM,OAAO,CAAC;AACnC,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAqBtC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Callback.js","names":["Callback: FC<CallbackProps>"],"sources":["../../../../src/components/auth/Callback/Callback.tsx"],"sourcesContent":["/*\n * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {FC, useState} from 'react';\nimport {OAuthCallback, OAuthCallbackProps} from './OAuthCallback';\nimport {TokenCallback, TokenCallbackProps} from './TokenCallback';\n\n/**\n * Props for the unified Callback component, combining properties for both Token and OAuth callbacks.\n */\nexport type CallbackProps = OAuthCallbackProps & TokenCallbackProps;\n\n/**\n * A unified Callback component that automatically routes to either OAuthCallback or TokenCallback\n * based on the presence of URL parameters ('code' for OAuth, 'token' for token-based flows).\n */\nexport const Callback: FC<CallbackProps> = (props: CallbackProps) => {\n // Use state to lock the flow type on initial mount.\n // This prevents the component from swapping to OAuthCallback if TokenCallback\n // removes the '?token=' query parameter from the URL using window.history.\n const [flowType] = useState<'token' | 'oauth'>(() => {\n if (typeof window === 'undefined') {\n return 'oauth';\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('token') ? 'token' : 'oauth';\n });\n\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (flowType === 'token') {\n return <TokenCallback {...props} />;\n }\n\n return <OAuthCallback {...props} />;\n};\n\nexport default Callback;\n"],"mappings":";;;;;;;;;;AA+BA,MAAaA,YAA+B,UAAyB;CAInE,MAAM,CAAC,YAAY,eAAkC;AACnD,MAAI,OAAO,WAAW,YACpB,QAAO;AAGT,SADkB,IAAI,gBAAgB,OAAO,SAAS,OAAO,CAC5C,IAAI,QAAQ,GAAG,UAAU;GAC1C;AAEF,KAAI,OAAO,WAAW,YACpB,QAAO;AAGT,KAAI,aAAa,QACf,QAAO,oBAAC,iBAAc,GAAI,QAAS;AAGrC,QAAO,oBAAC,iBAAc,GAAI,QAAS"}
1
+ {"version":3,"file":"Callback.js","names":["Callback: FC<CallbackProps>"],"sources":["../../../../src/components/auth/Callback/Callback.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {FC, useState} from 'react';\nimport {OAuthCallback, OAuthCallbackProps} from './OAuthCallback';\nimport {TokenCallback, TokenCallbackProps} from './TokenCallback';\n\n/**\n * Props for the unified Callback component, combining properties for both Token and OAuth callbacks.\n */\nexport type CallbackProps = OAuthCallbackProps & TokenCallbackProps;\n\n/**\n * A unified Callback component that automatically routes to either OAuthCallback or TokenCallback\n * based on the presence of URL parameters ('code' for OAuth, 'token' for token-based flows).\n */\nexport const Callback: FC<CallbackProps> = (props: CallbackProps) => {\n // Use state to lock the flow type on initial mount.\n // This prevents the component from swapping to OAuthCallback if TokenCallback\n // removes the '?token=' query parameter from the URL using window.history.\n const [flowType] = useState<'token' | 'oauth'>(() => {\n if (typeof window === 'undefined') {\n return 'oauth';\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('token') ? 'token' : 'oauth';\n });\n\n if (typeof window === 'undefined') {\n return null;\n }\n\n if (flowType === 'token') {\n return <TokenCallback {...props} />;\n }\n\n return <OAuthCallback {...props} />;\n};\n\nexport default Callback;\n"],"mappings":";;;;;;;;;;AAgBA,MAAaA,YAA+B,UAAyB;CAInE,MAAM,CAAC,YAAY,eAAkC;AACnD,MAAI,OAAO,WAAW,YACpB,QAAO;AAGT,SADkB,IAAI,gBAAgB,OAAO,SAAS,OAAO,CAC5C,IAAI,QAAQ,GAAG,UAAU;GAC1C;AAEF,KAAI,OAAO,WAAW,YACpB,QAAO;AAGT,KAAI,aAAa,QACf,QAAO,oBAAC,iBAAc,GAAI,QAAS;AAGrC,QAAO,oBAAC,iBAAc,GAAI,QAAS"}
@@ -1,20 +1,3 @@
1
- /**
2
- * Copyright (c) 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 { FC } from 'react';
19
2
  /**
20
3
  * Props for Callback component
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthCallback.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/Callback/OAuthCallback.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAC,EAAE,EAAgC,MAAM,OAAO,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAuIhD,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"OAuthCallback.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/Callback/OAuthCallback.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAgC,MAAM,OAAO,CAAC;AAGxD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAuIhD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthCallback.js","names":["OAuthCallback: FC<OAuthCallbackProps>","processingRef: any","vendor: string","ThunderIDContext","navigate","urlParams: URLSearchParams","code: string | null","state: string | null","nonce: string | null","oauthError: string | null","errorDescription: string | null","storedData: string | null","errorMsg: string","params: URLSearchParams","params","errorMessage: string"],"sources":["../../../../src/components/auth/Callback/OAuthCallback.tsx"],"sourcesContent":["/**\n * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {navigate as browserNavigate, getVendorPrefix} from '@thunderid/browser';\nimport {FC, useContext, useEffect, useRef} from 'react';\nimport ThunderIDContext from '../../../contexts/ThunderID/ThunderIDContext';\n\n/**\n * Props for Callback component\n */\nexport interface OAuthCallbackProps {\n /**\n * Callback function called when an error occurs\n */\n onError?: (error: Error) => void;\n\n /**\n * Function to navigate to a different path.\n * If not provided, falls back to the browser navigate utility (SPA navigation via History API for same-origin paths).\n * Provide this prop to enable framework-specific navigation (e.g., from React Router).\n */\n onNavigate?: (path: string) => void;\n}\n\n/**\n * BaseCallback is a headless component that handles OAuth callback parameter forwarding.\n * This component extracts OAuth parameters (code, state, error) from the URL and forwards them\n * to the original component that initiated the OAuth flow.\n *\n * Works standalone using the browser navigate utility (History API) for navigation by default.\n * Pass an onNavigate prop to enable framework-specific navigation (e.g., via React Router).\n *\n * Flow: Extract OAuth parameters from URL -> Parse state parameter -> Redirect to original path with parameters\n *\n * The original component (SignIn/AcceptInvite) is responsible for:\n * - Processing the OAuth code via the SDK\n * - Calling /flow/execute\n * - Handling the assertion and auth/callback POST\n * - Managing the authenticated session\n */\nexport const OAuthCallback: FC<OAuthCallbackProps> = ({onNavigate, onError}: OAuthCallbackProps) => {\n // Prevent double execution in React Strict Mode\n const processingRef: any = useRef(false);\n\n // Read the vendor prefix directly from context (rather than the throwing useThunderID hook)\n // so this component keeps working standalone, without a ThunderIDProvider ancestor.\n const thunderIDContext = useContext(ThunderIDContext);\n const vendor: string = getVendorPrefix(thunderIDContext?.vendor);\n\n // Resolve navigation: use provided onNavigate (router-aware) or fall back to browser navigate utility\n const navigate = (path: string): void => {\n if (onNavigate) {\n onNavigate(path);\n } else {\n browserNavigate(path);\n }\n };\n\n useEffect(() => {\n const processOAuthCallback = (): void => {\n // Guard against double execution\n if (processingRef.current) {\n return;\n }\n processingRef.current = true;\n\n // Declare variables outside try block for use in catch\n let returnPath = '/';\n\n try {\n // 1. Extract OAuth parameters from URL\n const urlParams: URLSearchParams = new URLSearchParams(window.location.search);\n const code: string | null = urlParams.get('code');\n const state: string | null = urlParams.get('state');\n const nonce: string | null = urlParams.get('nonce');\n const oauthError: string | null = urlParams.get('error');\n const errorDescription: string | null = urlParams.get('error_description');\n\n // 1a. If running inside a popup (e.g. social signup), send OAuth params\n // back to the opener via postMessage. The parent window's handler will\n // close this popup after processing the code.\n if (window.opener) {\n window.opener.postMessage({code, error: oauthError, errorDescription, nonce, state}, window.location.origin);\n return;\n }\n\n // 2. Validate and retrieve OAuth state from sessionStorage\n if (!state) {\n throw new Error('Missing OAuth state parameter - possible security issue');\n }\n\n const storedData: string | null = sessionStorage.getItem(`${vendor}_oauth_${state}`);\n if (!storedData) {\n // If state not found, might be an error callback - try to handle gracefully\n if (oauthError) {\n const errorMsg: string = errorDescription || oauthError || 'OAuth authentication failed';\n const err: Error = new Error(errorMsg);\n onError?.(err);\n\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', oauthError);\n if (errorDescription) {\n params.set('error_description', errorDescription);\n }\n\n navigate(`/?${params.toString()}`);\n return;\n }\n throw new Error('Invalid OAuth state - possible CSRF attack');\n }\n\n const {path, timestamp} = JSON.parse(storedData);\n returnPath = path || '/';\n\n // 3. Validate state freshness\n const MAX_STATE_AGE = 600000; // 10 minutes\n if (Date.now() - timestamp > MAX_STATE_AGE) {\n sessionStorage.removeItem(`${vendor}_oauth_${state}`);\n throw new Error('OAuth state expired - please try again');\n }\n\n // 4. Clean up state\n sessionStorage.removeItem(`${vendor}_oauth_${state}`);\n\n // 5. Handle OAuth error response\n if (oauthError) {\n const errorMsg: string = errorDescription || oauthError || 'OAuth authentication failed';\n const err: Error = new Error(errorMsg);\n onError?.(err);\n\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', oauthError);\n if (errorDescription) {\n params.set('error_description', errorDescription);\n }\n\n navigate(`${returnPath}?${params.toString()}`);\n return;\n }\n\n // 6. Validate required parameters\n if (!code) {\n throw new Error('Missing OAuth authorization code');\n }\n\n // 7. Forward OAuth code to original component\n // The component (SignIn/AcceptInvite) will retrieve flowId/authId from sessionStorage\n const params: URLSearchParams = new URLSearchParams();\n params.set('code', code);\n if (nonce) {\n params.set('nonce', nonce);\n }\n\n navigate(`${returnPath}?${params.toString()}`);\n } catch (err) {\n const errorMessage: string = err instanceof Error ? err.message : 'OAuth callback processing failed';\n // eslint-disable-next-line no-console\n console.error('OAuth callback error:', err);\n\n onError?.(err instanceof Error ? err : new Error(errorMessage));\n\n // Redirect back with OAuth error format\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', 'callback_error');\n params.set('error_description', errorMessage);\n\n navigate(`${returnPath}?${params.toString()}`);\n }\n };\n\n processOAuthCallback();\n }, [onNavigate, onError, vendor]);\n\n // Headless component - no UI, just processing logic\n return null;\n};\n\nexport default OAuthCallback;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuDA,MAAaA,iBAAyC,EAAC,YAAY,cAAiC;CAElG,MAAMC,gBAAqB,OAAO,MAAM;CAKxC,MAAMC,SAAiB,gBADE,WAAWC,yBAAiB,EACI,OAAO;CAGhE,MAAMC,cAAY,SAAuB;AACvC,MAAI,WACF,YAAW,KAAK;MAEhB,UAAgB,KAAK;;AAIzB,iBAAgB;EACd,MAAM,6BAAmC;AAEvC,OAAI,cAAc,QAChB;AAEF,iBAAc,UAAU;GAGxB,IAAI,aAAa;AAEjB,OAAI;IAEF,MAAMC,YAA6B,IAAI,gBAAgB,OAAO,SAAS,OAAO;IAC9E,MAAMC,OAAsB,UAAU,IAAI,OAAO;IACjD,MAAMC,QAAuB,UAAU,IAAI,QAAQ;IACnD,MAAMC,QAAuB,UAAU,IAAI,QAAQ;IACnD,MAAMC,aAA4B,UAAU,IAAI,QAAQ;IACxD,MAAMC,mBAAkC,UAAU,IAAI,oBAAoB;AAK1E,QAAI,OAAO,QAAQ;AACjB,YAAO,OAAO,YAAY;MAAC;MAAM,OAAO;MAAY;MAAkB;MAAO;MAAM,EAAE,OAAO,SAAS,OAAO;AAC5G;;AAIF,QAAI,CAAC,MACH,OAAM,IAAI,MAAM,0DAA0D;IAG5E,MAAMC,aAA4B,eAAe,QAAQ,GAAG,OAAO,SAAS,QAAQ;AACpF,QAAI,CAAC,YAAY;AAEf,SAAI,YAAY;MACd,MAAMC,WAAmB,oBAAoB,cAAc;AAE3D,gBADmB,IAAI,MAAM,SAAS,CACxB;MAEd,MAAMC,WAA0B,IAAI,iBAAiB;AACrD,eAAO,IAAI,SAAS,WAAW;AAC/B,UAAI,iBACF,UAAO,IAAI,qBAAqB,iBAAiB;AAGnD,iBAAS,KAAKC,SAAO,UAAU,GAAG;AAClC;;AAEF,WAAM,IAAI,MAAM,6CAA6C;;IAG/D,MAAM,EAAC,MAAM,cAAa,KAAK,MAAM,WAAW;AAChD,iBAAa,QAAQ;AAIrB,QAAI,KAAK,KAAK,GAAG,YADK,KACsB;AAC1C,oBAAe,WAAW,GAAG,OAAO,SAAS,QAAQ;AACrD,WAAM,IAAI,MAAM,yCAAyC;;AAI3D,mBAAe,WAAW,GAAG,OAAO,SAAS,QAAQ;AAGrD,QAAI,YAAY;KACd,MAAMF,WAAmB,oBAAoB,cAAc;AAE3D,eADmB,IAAI,MAAM,SAAS,CACxB;KAEd,MAAMC,WAA0B,IAAI,iBAAiB;AACrD,cAAO,IAAI,SAAS,WAAW;AAC/B,SAAI,iBACF,UAAO,IAAI,qBAAqB,iBAAiB;AAGnD,gBAAS,GAAG,WAAW,GAAGC,SAAO,UAAU,GAAG;AAC9C;;AAIF,QAAI,CAAC,KACH,OAAM,IAAI,MAAM,mCAAmC;IAKrD,MAAMD,SAA0B,IAAI,iBAAiB;AACrD,WAAO,IAAI,QAAQ,KAAK;AACxB,QAAI,MACF,QAAO,IAAI,SAAS,MAAM;AAG5B,eAAS,GAAG,WAAW,GAAG,OAAO,UAAU,GAAG;YACvC,KAAK;IACZ,MAAME,eAAuB,eAAe,QAAQ,IAAI,UAAU;AAElE,YAAQ,MAAM,yBAAyB,IAAI;AAE3C,cAAU,eAAe,QAAQ,MAAM,IAAI,MAAM,aAAa,CAAC;IAG/D,MAAMF,SAA0B,IAAI,iBAAiB;AACrD,WAAO,IAAI,SAAS,iBAAiB;AACrC,WAAO,IAAI,qBAAqB,aAAa;AAE7C,eAAS,GAAG,WAAW,GAAG,OAAO,UAAU,GAAG;;;AAIlD,wBAAsB;IACrB;EAAC;EAAY;EAAS;EAAO,CAAC;AAGjC,QAAO"}
1
+ {"version":3,"file":"OAuthCallback.js","names":["OAuthCallback: FC<OAuthCallbackProps>","processingRef: any","vendor: string","ThunderIDContext","navigate","urlParams: URLSearchParams","code: string | null","state: string | null","nonce: string | null","oauthError: string | null","errorDescription: string | null","storedData: string | null","errorMsg: string","params: URLSearchParams","params","errorMessage: string"],"sources":["../../../../src/components/auth/Callback/OAuthCallback.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {navigate as browserNavigate, getVendorPrefix} from '@thunderid/browser';\nimport {FC, useContext, useEffect, useRef} from 'react';\nimport ThunderIDContext from '../../../contexts/ThunderID/ThunderIDContext';\n\n/**\n * Props for Callback component\n */\nexport interface OAuthCallbackProps {\n /**\n * Callback function called when an error occurs\n */\n onError?: (error: Error) => void;\n\n /**\n * Function to navigate to a different path.\n * If not provided, falls back to the browser navigate utility (SPA navigation via History API for same-origin paths).\n * Provide this prop to enable framework-specific navigation (e.g., from React Router).\n */\n onNavigate?: (path: string) => void;\n}\n\n/**\n * BaseCallback is a headless component that handles OAuth callback parameter forwarding.\n * This component extracts OAuth parameters (code, state, error) from the URL and forwards them\n * to the original component that initiated the OAuth flow.\n *\n * Works standalone using the browser navigate utility (History API) for navigation by default.\n * Pass an onNavigate prop to enable framework-specific navigation (e.g., via React Router).\n *\n * Flow: Extract OAuth parameters from URL -> Parse state parameter -> Redirect to original path with parameters\n *\n * The original component (SignIn/AcceptInvite) is responsible for:\n * - Processing the OAuth code via the SDK\n * - Calling /flow/execute\n * - Handling the assertion and auth/callback POST\n * - Managing the authenticated session\n */\nexport const OAuthCallback: FC<OAuthCallbackProps> = ({onNavigate, onError}: OAuthCallbackProps) => {\n // Prevent double execution in React Strict Mode\n const processingRef: any = useRef(false);\n\n // Read the vendor prefix directly from context (rather than the throwing useThunderID hook)\n // so this component keeps working standalone, without a ThunderIDProvider ancestor.\n const thunderIDContext = useContext(ThunderIDContext);\n const vendor: string = getVendorPrefix(thunderIDContext?.vendor);\n\n // Resolve navigation: use provided onNavigate (router-aware) or fall back to browser navigate utility\n const navigate = (path: string): void => {\n if (onNavigate) {\n onNavigate(path);\n } else {\n browserNavigate(path);\n }\n };\n\n useEffect(() => {\n const processOAuthCallback = (): void => {\n // Guard against double execution\n if (processingRef.current) {\n return;\n }\n processingRef.current = true;\n\n // Declare variables outside try block for use in catch\n let returnPath = '/';\n\n try {\n // 1. Extract OAuth parameters from URL\n const urlParams: URLSearchParams = new URLSearchParams(window.location.search);\n const code: string | null = urlParams.get('code');\n const state: string | null = urlParams.get('state');\n const nonce: string | null = urlParams.get('nonce');\n const oauthError: string | null = urlParams.get('error');\n const errorDescription: string | null = urlParams.get('error_description');\n\n // 1a. If running inside a popup (e.g. social signup), send OAuth params\n // back to the opener via postMessage. The parent window's handler will\n // close this popup after processing the code.\n if (window.opener) {\n window.opener.postMessage({code, error: oauthError, errorDescription, nonce, state}, window.location.origin);\n return;\n }\n\n // 2. Validate and retrieve OAuth state from sessionStorage\n if (!state) {\n throw new Error('Missing OAuth state parameter - possible security issue');\n }\n\n const storedData: string | null = sessionStorage.getItem(`${vendor}_oauth_${state}`);\n if (!storedData) {\n // If state not found, might be an error callback - try to handle gracefully\n if (oauthError) {\n const errorMsg: string = errorDescription || oauthError || 'OAuth authentication failed';\n const err: Error = new Error(errorMsg);\n onError?.(err);\n\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', oauthError);\n if (errorDescription) {\n params.set('error_description', errorDescription);\n }\n\n navigate(`/?${params.toString()}`);\n return;\n }\n throw new Error('Invalid OAuth state - possible CSRF attack');\n }\n\n const {path, timestamp} = JSON.parse(storedData);\n returnPath = path || '/';\n\n // 3. Validate state freshness\n const MAX_STATE_AGE = 600000; // 10 minutes\n if (Date.now() - timestamp > MAX_STATE_AGE) {\n sessionStorage.removeItem(`${vendor}_oauth_${state}`);\n throw new Error('OAuth state expired - please try again');\n }\n\n // 4. Clean up state\n sessionStorage.removeItem(`${vendor}_oauth_${state}`);\n\n // 5. Handle OAuth error response\n if (oauthError) {\n const errorMsg: string = errorDescription || oauthError || 'OAuth authentication failed';\n const err: Error = new Error(errorMsg);\n onError?.(err);\n\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', oauthError);\n if (errorDescription) {\n params.set('error_description', errorDescription);\n }\n\n navigate(`${returnPath}?${params.toString()}`);\n return;\n }\n\n // 6. Validate required parameters\n if (!code) {\n throw new Error('Missing OAuth authorization code');\n }\n\n // 7. Forward OAuth code to original component\n // The component (SignIn/AcceptInvite) will retrieve flowId/authId from sessionStorage\n const params: URLSearchParams = new URLSearchParams();\n params.set('code', code);\n if (nonce) {\n params.set('nonce', nonce);\n }\n\n navigate(`${returnPath}?${params.toString()}`);\n } catch (err) {\n const errorMessage: string = err instanceof Error ? err.message : 'OAuth callback processing failed';\n // eslint-disable-next-line no-console\n console.error('OAuth callback error:', err);\n\n onError?.(err instanceof Error ? err : new Error(errorMessage));\n\n // Redirect back with OAuth error format\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', 'callback_error');\n params.set('error_description', errorMessage);\n\n navigate(`${returnPath}?${params.toString()}`);\n }\n };\n\n processOAuthCallback();\n }, [onNavigate, onError, vendor]);\n\n // Headless component - no UI, just processing logic\n return null;\n};\n\nexport default OAuthCallback;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwCA,MAAaA,iBAAyC,EAAC,YAAY,cAAiC;CAElG,MAAMC,gBAAqB,OAAO,MAAM;CAKxC,MAAMC,SAAiB,gBADE,WAAWC,yBAAiB,EACI,OAAO;CAGhE,MAAMC,cAAY,SAAuB;AACvC,MAAI,WACF,YAAW,KAAK;MAEhB,UAAgB,KAAK;;AAIzB,iBAAgB;EACd,MAAM,6BAAmC;AAEvC,OAAI,cAAc,QAChB;AAEF,iBAAc,UAAU;GAGxB,IAAI,aAAa;AAEjB,OAAI;IAEF,MAAMC,YAA6B,IAAI,gBAAgB,OAAO,SAAS,OAAO;IAC9E,MAAMC,OAAsB,UAAU,IAAI,OAAO;IACjD,MAAMC,QAAuB,UAAU,IAAI,QAAQ;IACnD,MAAMC,QAAuB,UAAU,IAAI,QAAQ;IACnD,MAAMC,aAA4B,UAAU,IAAI,QAAQ;IACxD,MAAMC,mBAAkC,UAAU,IAAI,oBAAoB;AAK1E,QAAI,OAAO,QAAQ;AACjB,YAAO,OAAO,YAAY;MAAC;MAAM,OAAO;MAAY;MAAkB;MAAO;MAAM,EAAE,OAAO,SAAS,OAAO;AAC5G;;AAIF,QAAI,CAAC,MACH,OAAM,IAAI,MAAM,0DAA0D;IAG5E,MAAMC,aAA4B,eAAe,QAAQ,GAAG,OAAO,SAAS,QAAQ;AACpF,QAAI,CAAC,YAAY;AAEf,SAAI,YAAY;MACd,MAAMC,WAAmB,oBAAoB,cAAc;AAE3D,gBADmB,IAAI,MAAM,SAAS,CACxB;MAEd,MAAMC,WAA0B,IAAI,iBAAiB;AACrD,eAAO,IAAI,SAAS,WAAW;AAC/B,UAAI,iBACF,UAAO,IAAI,qBAAqB,iBAAiB;AAGnD,iBAAS,KAAKC,SAAO,UAAU,GAAG;AAClC;;AAEF,WAAM,IAAI,MAAM,6CAA6C;;IAG/D,MAAM,EAAC,MAAM,cAAa,KAAK,MAAM,WAAW;AAChD,iBAAa,QAAQ;AAIrB,QAAI,KAAK,KAAK,GAAG,YADK,KACsB;AAC1C,oBAAe,WAAW,GAAG,OAAO,SAAS,QAAQ;AACrD,WAAM,IAAI,MAAM,yCAAyC;;AAI3D,mBAAe,WAAW,GAAG,OAAO,SAAS,QAAQ;AAGrD,QAAI,YAAY;KACd,MAAMF,WAAmB,oBAAoB,cAAc;AAE3D,eADmB,IAAI,MAAM,SAAS,CACxB;KAEd,MAAMC,WAA0B,IAAI,iBAAiB;AACrD,cAAO,IAAI,SAAS,WAAW;AAC/B,SAAI,iBACF,UAAO,IAAI,qBAAqB,iBAAiB;AAGnD,gBAAS,GAAG,WAAW,GAAGC,SAAO,UAAU,GAAG;AAC9C;;AAIF,QAAI,CAAC,KACH,OAAM,IAAI,MAAM,mCAAmC;IAKrD,MAAMD,SAA0B,IAAI,iBAAiB;AACrD,WAAO,IAAI,QAAQ,KAAK;AACxB,QAAI,MACF,QAAO,IAAI,SAAS,MAAM;AAG5B,eAAS,GAAG,WAAW,GAAG,OAAO,UAAU,GAAG;YACvC,KAAK;IACZ,MAAME,eAAuB,eAAe,QAAQ,IAAI,UAAU;AAElE,YAAQ,MAAM,yBAAyB,IAAI;AAE3C,cAAU,eAAe,QAAQ,MAAM,IAAI,MAAM,aAAa,CAAC;IAG/D,MAAMF,SAA0B,IAAI,iBAAiB;AACrD,WAAO,IAAI,SAAS,iBAAiB;AACrC,WAAO,IAAI,qBAAqB,aAAa;AAE7C,eAAS,GAAG,WAAW,GAAG,OAAO,UAAU,GAAG;;;AAIlD,wBAAsB;IACrB;EAAC;EAAY;EAAS;EAAO,CAAC;AAGjC,QAAO"}
@@ -1,19 +1,3 @@
1
- /**
2
- * Copyright (c) 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, software
12
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- * License for the specific language governing permissions and limitations
15
- * under the License.
16
- */
17
1
  import { FC } from 'react';
18
2
  export interface TokenCallbackProps {
19
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TokenCallback.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/Callback/TokenCallback.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAC,EAAE,EAAoB,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAyLhD,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"TokenCallback.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/Callback/TokenCallback.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAoB,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEpD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAyLhD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TokenCallback.js","names":["TokenCallback: FC<TokenCallbackProps>","processingRef: any","useThunderID","navigate","url: URL","redirectUrlObj: URL","state: string","params: URLSearchParams","searchParams: URLSearchParams","executionId: string | null","token: string | null","applicationId: string | null","isRegistrationFlow: boolean","storageManager: any","response: any","redirectURL: string | undefined","nextExecutionId: string","nextExecutionId","redirectUrl: string | undefined","failureReason: string | undefined","error: Error"],"sources":["../../../../src/components/auth/Callback/TokenCallback.tsx"],"sourcesContent":["/**\n * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations\n * under the License.\n */\n\nimport {EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, navigate as browserNavigate} from '@thunderid/browser';\nimport {FC, useEffect, useRef} from 'react';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\n\nexport interface TokenCallbackProps {\n /**\n * Callback function called when an error occurs\n */\n onError?: (error: Error) => void;\n\n /**\n * Function to navigate to a different path.\n * If not provided, falls back to the browser navigate utility (SPA navigation via History API for same-origin paths).\n * Provide this prop to enable framework-specific navigation (e.g., from React Router).\n */\n onNavigate?: (path: string) => void;\n\n /**\n * Callback function called when authentication is successful\n */\n onSuccess?: (authData: Record<string, any>) => void;\n\n /**\n * Custom path for the sign-in page. Defaults to '/signin'\n */\n signInPath?: string;\n\n /**\n * Custom path for the sign-up page. Defaults to '/signup'\n */\n signUpPath?: string;\n}\n\nexport const TokenCallback: FC<TokenCallbackProps> = ({\n onNavigate,\n onError,\n onSuccess,\n signInPath = '/signin',\n signUpPath = '/signup',\n}: TokenCallbackProps) => {\n const processingRef: any = useRef(false);\n const {isInitialized, isLoading, signIn, signUp, getStorageManager, vendor} = useThunderID();\n\n const navigate = (path: string): void => {\n if (onNavigate) {\n onNavigate(path);\n } else {\n browserNavigate(path);\n }\n };\n\n const clearTokenFromUrl = (): void => {\n if (!window?.location?.href) {\n return;\n }\n\n const url: URL = new URL(window.location.href);\n url.searchParams.delete('token');\n url.searchParams.delete('type');\n window.history.replaceState({}, '', url.toString());\n };\n\n const initiateOAuthRedirect = (redirectURL: string, isRegistrationFlow?: boolean): void => {\n const redirectUrlObj: URL = new URL(redirectURL);\n const state: string = redirectUrlObj.searchParams.get('state') || crypto.randomUUID();\n\n sessionStorage.setItem(\n `${vendor}_oauth_${state}`,\n JSON.stringify({\n path: isRegistrationFlow ? signUpPath : signInPath,\n timestamp: Date.now(),\n }),\n );\n\n browserNavigate(redirectUrlObj.toString());\n };\n\n const buildSignInPath = (\n executionId?: string | null,\n applicationId?: string | null,\n isRegistrationFlow?: boolean,\n ): string => {\n const params: URLSearchParams = new URLSearchParams();\n if (executionId) {\n params.set('executionId', executionId);\n }\n if (applicationId) {\n params.set('applicationId', applicationId);\n }\n\n const basePath = isRegistrationFlow ? signUpPath : signInPath;\n return params.toString() ? `${basePath}?${params.toString()}` : basePath;\n };\n\n const redirectWithError = (error: Error, isRegistrationFlow?: boolean): void => {\n sessionStorage.removeItem(`${vendor}_execution_id`);\n\n onError?.(error);\n\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', 'token_verification_failed');\n params.set('error_description', error.message);\n const basePath = isRegistrationFlow ? signUpPath : signInPath;\n navigate(`${basePath}?${params.toString()}`);\n };\n\n useEffect(() => {\n if (!isInitialized || isLoading) {\n return;\n }\n\n const processTokenCallback = async (): Promise<void> => {\n if (processingRef.current) {\n return;\n }\n processingRef.current = true;\n\n // Read URL params before clearing them so they're accessible in both try and catch.\n const searchParams: URLSearchParams = new URLSearchParams(window.location.search);\n const executionId: string | null = searchParams.get('id') || searchParams.get('executionId');\n const token: string | null = searchParams.get('token');\n const applicationId: string | null = searchParams.get('applicationId');\n const isRegistrationFlow: boolean = searchParams.get('type') === 'REGISTRATION';\n\n clearTokenFromUrl();\n\n try {\n const storageManager: any = await getStorageManager();\n\n if (!executionId || !token) {\n const error: Error = new Error('Missing executionId or token in callback URL');\n redirectWithError(error, isRegistrationFlow);\n return;\n }\n\n let response: any;\n\n if (isRegistrationFlow) {\n response = await signUp({executionId, inputs: {token}});\n } else {\n response = await signIn({executionId, inputs: {token}});\n }\n\n if (response.type === EmbeddedSignInFlowType.Redirection) {\n const redirectURL: string | undefined = response.data?.redirectURL || response?.redirectURL;\n const nextExecutionId: string = response.executionId || executionId;\n sessionStorage.setItem(`${vendor}_execution_id`, nextExecutionId);\n\n if (redirectURL) {\n initiateOAuthRedirect(redirectURL, isRegistrationFlow);\n return;\n }\n }\n\n if (response.flowStatus === EmbeddedSignInFlowStatus.Complete) {\n const redirectUrl: string | undefined = response?.redirectUrl || response?.redirect_uri;\n\n sessionStorage.removeItem(`${vendor}_execution_id`);\n await storageManager.removeHybridDataParameter('authId');\n\n onSuccess?.({\n redirectUrl,\n ...((response.data as Record<string, any>) || {}),\n });\n\n if (redirectUrl) {\n window.location.href = redirectUrl;\n return;\n }\n\n navigate(isRegistrationFlow ? signUpPath : signInPath);\n return;\n }\n\n if (response.flowStatus === EmbeddedSignInFlowStatus.Error) {\n const failureReason: string | undefined = response?.failureReason;\n const error: Error = new Error(failureReason || 'Token validation failed. Please try again.');\n await storageManager.removeHybridDataParameter('authId');\n redirectWithError(error, isRegistrationFlow);\n return;\n }\n\n const nextExecutionId: string = response.executionId || executionId;\n sessionStorage.setItem(`${vendor}_execution_id`, nextExecutionId);\n\n if (response.challengeToken) {\n await storageManager.setTemporaryDataParameter('challengeToken', response.challengeToken);\n }\n\n navigate(buildSignInPath(nextExecutionId, applicationId, isRegistrationFlow));\n } catch (err) {\n const error: Error = err instanceof Error ? err : new Error('Token callback processing failed');\n // eslint-disable-next-line no-console\n console.error('Token callback error:', err);\n const storageManager: any = await getStorageManager();\n if (storageManager) {\n await storageManager.removeHybridDataParameter('authId');\n }\n redirectWithError(error, isRegistrationFlow);\n }\n };\n\n processTokenCallback();\n }, [\n getStorageManager,\n isInitialized,\n isLoading,\n onError,\n onNavigate,\n onSuccess,\n signIn,\n signUp,\n signInPath,\n signUpPath,\n vendor,\n ]);\n\n return null;\n};\n\nexport default TokenCallback;\n"],"mappings":";;;;;AAkDA,MAAaA,iBAAyC,EACpD,YACA,SACA,WACA,aAAa,WACb,aAAa,gBACW;CACxB,MAAMC,gBAAqB,OAAO,MAAM;CACxC,MAAM,EAAC,eAAe,WAAW,QAAQ,QAAQ,mBAAmB,WAAUC,sBAAc;CAE5F,MAAMC,cAAY,SAAuB;AACvC,MAAI,WACF,YAAW,KAAK;MAEhB,UAAgB,KAAK;;CAIzB,MAAM,0BAAgC;AACpC,MAAI,CAAC,QAAQ,UAAU,KACrB;EAGF,MAAMC,MAAW,IAAI,IAAI,OAAO,SAAS,KAAK;AAC9C,MAAI,aAAa,OAAO,QAAQ;AAChC,MAAI,aAAa,OAAO,OAAO;AAC/B,SAAO,QAAQ,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;;CAGrD,MAAM,yBAAyB,aAAqB,uBAAuC;EACzF,MAAMC,iBAAsB,IAAI,IAAI,YAAY;EAChD,MAAMC,QAAgB,eAAe,aAAa,IAAI,QAAQ,IAAI,OAAO,YAAY;AAErF,iBAAe,QACb,GAAG,OAAO,SAAS,SACnB,KAAK,UAAU;GACb,MAAM,qBAAqB,aAAa;GACxC,WAAW,KAAK,KAAK;GACtB,CAAC,CACH;AAED,WAAgB,eAAe,UAAU,CAAC;;CAG5C,MAAM,mBACJ,aACA,eACA,uBACW;EACX,MAAMC,SAA0B,IAAI,iBAAiB;AACrD,MAAI,YACF,QAAO,IAAI,eAAe,YAAY;AAExC,MAAI,cACF,QAAO,IAAI,iBAAiB,cAAc;EAG5C,MAAM,WAAW,qBAAqB,aAAa;AACnD,SAAO,OAAO,UAAU,GAAG,GAAG,SAAS,GAAG,OAAO,UAAU,KAAK;;CAGlE,MAAM,qBAAqB,OAAc,uBAAuC;AAC9E,iBAAe,WAAW,GAAG,OAAO,eAAe;AAEnD,YAAU,MAAM;EAEhB,MAAMA,SAA0B,IAAI,iBAAiB;AACrD,SAAO,IAAI,SAAS,4BAA4B;AAChD,SAAO,IAAI,qBAAqB,MAAM,QAAQ;AAE9C,aAAS,GADQ,qBAAqB,aAAa,WAC9B,GAAG,OAAO,UAAU,GAAG;;AAG9C,iBAAgB;AACd,MAAI,CAAC,iBAAiB,UACpB;EAGF,MAAM,uBAAuB,YAA2B;AACtD,OAAI,cAAc,QAChB;AAEF,iBAAc,UAAU;GAGxB,MAAMC,eAAgC,IAAI,gBAAgB,OAAO,SAAS,OAAO;GACjF,MAAMC,cAA6B,aAAa,IAAI,KAAK,IAAI,aAAa,IAAI,cAAc;GAC5F,MAAMC,QAAuB,aAAa,IAAI,QAAQ;GACtD,MAAMC,gBAA+B,aAAa,IAAI,gBAAgB;GACtE,MAAMC,qBAA8B,aAAa,IAAI,OAAO,KAAK;AAEjE,sBAAmB;AAEnB,OAAI;IACF,MAAMC,iBAAsB,MAAM,mBAAmB;AAErD,QAAI,CAAC,eAAe,CAAC,OAAO;AAE1B,uCADqB,IAAI,MAAM,+CAA+C,EACrD,mBAAmB;AAC5C;;IAGF,IAAIC;AAEJ,QAAI,mBACF,YAAW,MAAM,OAAO;KAAC;KAAa,QAAQ,EAAC,OAAM;KAAC,CAAC;QAEvD,YAAW,MAAM,OAAO;KAAC;KAAa,QAAQ,EAAC,OAAM;KAAC,CAAC;AAGzD,QAAI,SAAS,SAAS,uBAAuB,aAAa;KACxD,MAAMC,cAAkC,SAAS,MAAM,eAAe,UAAU;KAChF,MAAMC,oBAA0B,SAAS,eAAe;AACxD,oBAAe,QAAQ,GAAG,OAAO,gBAAgBC,kBAAgB;AAEjE,SAAI,aAAa;AACf,4BAAsB,aAAa,mBAAmB;AACtD;;;AAIJ,QAAI,SAAS,eAAe,yBAAyB,UAAU;KAC7D,MAAMC,cAAkC,UAAU,eAAe,UAAU;AAE3E,oBAAe,WAAW,GAAG,OAAO,eAAe;AACnD,WAAM,eAAe,0BAA0B,SAAS;AAExD,iBAAY;MACV;MACA,GAAK,SAAS,QAAgC,EAAE;MACjD,CAAC;AAEF,SAAI,aAAa;AACf,aAAO,SAAS,OAAO;AACvB;;AAGF,gBAAS,qBAAqB,aAAa,WAAW;AACtD;;AAGF,QAAI,SAAS,eAAe,yBAAyB,OAAO;KAC1D,MAAMC,gBAAoC,UAAU;KACpD,MAAMC,QAAe,IAAI,MAAM,iBAAiB,6CAA6C;AAC7F,WAAM,eAAe,0BAA0B,SAAS;AACxD,uBAAkB,OAAO,mBAAmB;AAC5C;;IAGF,MAAMJ,kBAA0B,SAAS,eAAe;AACxD,mBAAe,QAAQ,GAAG,OAAO,gBAAgB,gBAAgB;AAEjE,QAAI,SAAS,eACX,OAAM,eAAe,0BAA0B,kBAAkB,SAAS,eAAe;AAG3F,eAAS,gBAAgB,iBAAiB,eAAe,mBAAmB,CAAC;YACtE,KAAK;IACZ,MAAMI,QAAe,eAAe,QAAQ,sBAAM,IAAI,MAAM,mCAAmC;AAE/F,YAAQ,MAAM,yBAAyB,IAAI;IAC3C,MAAMP,iBAAsB,MAAM,mBAAmB;AACrD,QAAI,eACF,OAAM,eAAe,0BAA0B,SAAS;AAE1D,sBAAkB,OAAO,mBAAmB;;;AAIhD,wBAAsB;IACrB;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QAAO"}
1
+ {"version":3,"file":"TokenCallback.js","names":["TokenCallback: FC<TokenCallbackProps>","processingRef: any","useThunderID","navigate","url: URL","redirectUrlObj: URL","state: string","params: URLSearchParams","searchParams: URLSearchParams","executionId: string | null","token: string | null","applicationId: string | null","isRegistrationFlow: boolean","storageManager: any","response: any","redirectURL: string | undefined","nextExecutionId: string","nextExecutionId","redirectUrl: string | undefined","failureReason: string | undefined","error: Error"],"sources":["../../../../src/components/auth/Callback/TokenCallback.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {EmbeddedSignInFlowStatus, EmbeddedSignInFlowType, navigate as browserNavigate} from '@thunderid/browser';\nimport {FC, useEffect, useRef} from 'react';\nimport useThunderID from '../../../contexts/ThunderID/useThunderID';\n\nexport interface TokenCallbackProps {\n /**\n * Callback function called when an error occurs\n */\n onError?: (error: Error) => void;\n\n /**\n * Function to navigate to a different path.\n * If not provided, falls back to the browser navigate utility (SPA navigation via History API for same-origin paths).\n * Provide this prop to enable framework-specific navigation (e.g., from React Router).\n */\n onNavigate?: (path: string) => void;\n\n /**\n * Callback function called when authentication is successful\n */\n onSuccess?: (authData: Record<string, any>) => void;\n\n /**\n * Custom path for the sign-in page. Defaults to '/signin'\n */\n signInPath?: string;\n\n /**\n * Custom path for the sign-up page. Defaults to '/signup'\n */\n signUpPath?: string;\n}\n\nexport const TokenCallback: FC<TokenCallbackProps> = ({\n onNavigate,\n onError,\n onSuccess,\n signInPath = '/signin',\n signUpPath = '/signup',\n}: TokenCallbackProps) => {\n const processingRef: any = useRef(false);\n const {isInitialized, isLoading, signIn, signUp, getStorageManager, vendor} = useThunderID();\n\n const navigate = (path: string): void => {\n if (onNavigate) {\n onNavigate(path);\n } else {\n browserNavigate(path);\n }\n };\n\n const clearTokenFromUrl = (): void => {\n if (!window?.location?.href) {\n return;\n }\n\n const url: URL = new URL(window.location.href);\n url.searchParams.delete('token');\n url.searchParams.delete('type');\n window.history.replaceState({}, '', url.toString());\n };\n\n const initiateOAuthRedirect = (redirectURL: string, isRegistrationFlow?: boolean): void => {\n const redirectUrlObj: URL = new URL(redirectURL);\n const state: string = redirectUrlObj.searchParams.get('state') || crypto.randomUUID();\n\n sessionStorage.setItem(\n `${vendor}_oauth_${state}`,\n JSON.stringify({\n path: isRegistrationFlow ? signUpPath : signInPath,\n timestamp: Date.now(),\n }),\n );\n\n browserNavigate(redirectUrlObj.toString());\n };\n\n const buildSignInPath = (\n executionId?: string | null,\n applicationId?: string | null,\n isRegistrationFlow?: boolean,\n ): string => {\n const params: URLSearchParams = new URLSearchParams();\n if (executionId) {\n params.set('executionId', executionId);\n }\n if (applicationId) {\n params.set('applicationId', applicationId);\n }\n\n const basePath = isRegistrationFlow ? signUpPath : signInPath;\n return params.toString() ? `${basePath}?${params.toString()}` : basePath;\n };\n\n const redirectWithError = (error: Error, isRegistrationFlow?: boolean): void => {\n sessionStorage.removeItem(`${vendor}_execution_id`);\n\n onError?.(error);\n\n const params: URLSearchParams = new URLSearchParams();\n params.set('error', 'token_verification_failed');\n params.set('error_description', error.message);\n const basePath = isRegistrationFlow ? signUpPath : signInPath;\n navigate(`${basePath}?${params.toString()}`);\n };\n\n useEffect(() => {\n if (!isInitialized || isLoading) {\n return;\n }\n\n const processTokenCallback = async (): Promise<void> => {\n if (processingRef.current) {\n return;\n }\n processingRef.current = true;\n\n // Read URL params before clearing them so they're accessible in both try and catch.\n const searchParams: URLSearchParams = new URLSearchParams(window.location.search);\n const executionId: string | null = searchParams.get('id') || searchParams.get('executionId');\n const token: string | null = searchParams.get('token');\n const applicationId: string | null = searchParams.get('applicationId');\n const isRegistrationFlow: boolean = searchParams.get('type') === 'REGISTRATION';\n\n clearTokenFromUrl();\n\n try {\n const storageManager: any = await getStorageManager();\n\n if (!executionId || !token) {\n const error: Error = new Error('Missing executionId or token in callback URL');\n redirectWithError(error, isRegistrationFlow);\n return;\n }\n\n let response: any;\n\n if (isRegistrationFlow) {\n response = await signUp({executionId, inputs: {token}});\n } else {\n response = await signIn({executionId, inputs: {token}});\n }\n\n if (response.type === EmbeddedSignInFlowType.Redirection) {\n const redirectURL: string | undefined = response.data?.redirectURL || response?.redirectURL;\n const nextExecutionId: string = response.executionId || executionId;\n sessionStorage.setItem(`${vendor}_execution_id`, nextExecutionId);\n\n if (redirectURL) {\n initiateOAuthRedirect(redirectURL, isRegistrationFlow);\n return;\n }\n }\n\n if (response.flowStatus === EmbeddedSignInFlowStatus.Complete) {\n const redirectUrl: string | undefined = response?.redirectUrl || response?.redirect_uri;\n\n sessionStorage.removeItem(`${vendor}_execution_id`);\n await storageManager.removeHybridDataParameter('authId');\n\n onSuccess?.({\n redirectUrl,\n ...((response.data as Record<string, any>) || {}),\n });\n\n if (redirectUrl) {\n window.location.href = redirectUrl;\n return;\n }\n\n navigate(isRegistrationFlow ? signUpPath : signInPath);\n return;\n }\n\n if (response.flowStatus === EmbeddedSignInFlowStatus.Error) {\n const failureReason: string | undefined = response?.failureReason;\n const error: Error = new Error(failureReason || 'Token validation failed. Please try again.');\n await storageManager.removeHybridDataParameter('authId');\n redirectWithError(error, isRegistrationFlow);\n return;\n }\n\n const nextExecutionId: string = response.executionId || executionId;\n sessionStorage.setItem(`${vendor}_execution_id`, nextExecutionId);\n\n if (response.challengeToken) {\n await storageManager.setTemporaryDataParameter('challengeToken', response.challengeToken);\n }\n\n navigate(buildSignInPath(nextExecutionId, applicationId, isRegistrationFlow));\n } catch (err) {\n const error: Error = err instanceof Error ? err : new Error('Token callback processing failed');\n // eslint-disable-next-line no-console\n console.error('Token callback error:', err);\n const storageManager: any = await getStorageManager();\n if (storageManager) {\n await storageManager.removeHybridDataParameter('authId');\n }\n redirectWithError(error, isRegistrationFlow);\n }\n };\n\n processTokenCallback();\n }, [\n getStorageManager,\n isInitialized,\n isLoading,\n onError,\n onNavigate,\n onSuccess,\n signIn,\n signUp,\n signInPath,\n signUpPath,\n vendor,\n ]);\n\n return null;\n};\n\nexport default TokenCallback;\n"],"mappings":";;;;;AAoCA,MAAaA,iBAAyC,EACpD,YACA,SACA,WACA,aAAa,WACb,aAAa,gBACW;CACxB,MAAMC,gBAAqB,OAAO,MAAM;CACxC,MAAM,EAAC,eAAe,WAAW,QAAQ,QAAQ,mBAAmB,WAAUC,sBAAc;CAE5F,MAAMC,cAAY,SAAuB;AACvC,MAAI,WACF,YAAW,KAAK;MAEhB,UAAgB,KAAK;;CAIzB,MAAM,0BAAgC;AACpC,MAAI,CAAC,QAAQ,UAAU,KACrB;EAGF,MAAMC,MAAW,IAAI,IAAI,OAAO,SAAS,KAAK;AAC9C,MAAI,aAAa,OAAO,QAAQ;AAChC,MAAI,aAAa,OAAO,OAAO;AAC/B,SAAO,QAAQ,aAAa,EAAE,EAAE,IAAI,IAAI,UAAU,CAAC;;CAGrD,MAAM,yBAAyB,aAAqB,uBAAuC;EACzF,MAAMC,iBAAsB,IAAI,IAAI,YAAY;EAChD,MAAMC,QAAgB,eAAe,aAAa,IAAI,QAAQ,IAAI,OAAO,YAAY;AAErF,iBAAe,QACb,GAAG,OAAO,SAAS,SACnB,KAAK,UAAU;GACb,MAAM,qBAAqB,aAAa;GACxC,WAAW,KAAK,KAAK;GACtB,CAAC,CACH;AAED,WAAgB,eAAe,UAAU,CAAC;;CAG5C,MAAM,mBACJ,aACA,eACA,uBACW;EACX,MAAMC,SAA0B,IAAI,iBAAiB;AACrD,MAAI,YACF,QAAO,IAAI,eAAe,YAAY;AAExC,MAAI,cACF,QAAO,IAAI,iBAAiB,cAAc;EAG5C,MAAM,WAAW,qBAAqB,aAAa;AACnD,SAAO,OAAO,UAAU,GAAG,GAAG,SAAS,GAAG,OAAO,UAAU,KAAK;;CAGlE,MAAM,qBAAqB,OAAc,uBAAuC;AAC9E,iBAAe,WAAW,GAAG,OAAO,eAAe;AAEnD,YAAU,MAAM;EAEhB,MAAMA,SAA0B,IAAI,iBAAiB;AACrD,SAAO,IAAI,SAAS,4BAA4B;AAChD,SAAO,IAAI,qBAAqB,MAAM,QAAQ;AAE9C,aAAS,GADQ,qBAAqB,aAAa,WAC9B,GAAG,OAAO,UAAU,GAAG;;AAG9C,iBAAgB;AACd,MAAI,CAAC,iBAAiB,UACpB;EAGF,MAAM,uBAAuB,YAA2B;AACtD,OAAI,cAAc,QAChB;AAEF,iBAAc,UAAU;GAGxB,MAAMC,eAAgC,IAAI,gBAAgB,OAAO,SAAS,OAAO;GACjF,MAAMC,cAA6B,aAAa,IAAI,KAAK,IAAI,aAAa,IAAI,cAAc;GAC5F,MAAMC,QAAuB,aAAa,IAAI,QAAQ;GACtD,MAAMC,gBAA+B,aAAa,IAAI,gBAAgB;GACtE,MAAMC,qBAA8B,aAAa,IAAI,OAAO,KAAK;AAEjE,sBAAmB;AAEnB,OAAI;IACF,MAAMC,iBAAsB,MAAM,mBAAmB;AAErD,QAAI,CAAC,eAAe,CAAC,OAAO;AAE1B,uCADqB,IAAI,MAAM,+CAA+C,EACrD,mBAAmB;AAC5C;;IAGF,IAAIC;AAEJ,QAAI,mBACF,YAAW,MAAM,OAAO;KAAC;KAAa,QAAQ,EAAC,OAAM;KAAC,CAAC;QAEvD,YAAW,MAAM,OAAO;KAAC;KAAa,QAAQ,EAAC,OAAM;KAAC,CAAC;AAGzD,QAAI,SAAS,SAAS,uBAAuB,aAAa;KACxD,MAAMC,cAAkC,SAAS,MAAM,eAAe,UAAU;KAChF,MAAMC,oBAA0B,SAAS,eAAe;AACxD,oBAAe,QAAQ,GAAG,OAAO,gBAAgBC,kBAAgB;AAEjE,SAAI,aAAa;AACf,4BAAsB,aAAa,mBAAmB;AACtD;;;AAIJ,QAAI,SAAS,eAAe,yBAAyB,UAAU;KAC7D,MAAMC,cAAkC,UAAU,eAAe,UAAU;AAE3E,oBAAe,WAAW,GAAG,OAAO,eAAe;AACnD,WAAM,eAAe,0BAA0B,SAAS;AAExD,iBAAY;MACV;MACA,GAAK,SAAS,QAAgC,EAAE;MACjD,CAAC;AAEF,SAAI,aAAa;AACf,aAAO,SAAS,OAAO;AACvB;;AAGF,gBAAS,qBAAqB,aAAa,WAAW;AACtD;;AAGF,QAAI,SAAS,eAAe,yBAAyB,OAAO;KAC1D,MAAMC,gBAAoC,UAAU;KACpD,MAAMC,QAAe,IAAI,MAAM,iBAAiB,6CAA6C;AAC7F,WAAM,eAAe,0BAA0B,SAAS;AACxD,uBAAkB,OAAO,mBAAmB;AAC5C;;IAGF,MAAMJ,kBAA0B,SAAS,eAAe;AACxD,mBAAe,QAAQ,GAAG,OAAO,gBAAgB,gBAAgB;AAEjE,QAAI,SAAS,eACX,OAAM,eAAe,0BAA0B,kBAAkB,SAAS,eAAe;AAG3F,eAAS,gBAAgB,iBAAiB,eAAe,mBAAmB,CAAC;YACtE,KAAK;IACZ,MAAMI,QAAe,eAAe,QAAQ,sBAAM,IAAI,MAAM,mCAAmC;AAE/F,YAAQ,MAAM,yBAAyB,IAAI;IAC3C,MAAMP,iBAAsB,MAAM,mBAAmB;AACrD,QAAI,eACF,OAAM,eAAe,0BAA0B,SAAS;AAE1D,sBAAkB,OAAO,mBAAmB;;;AAIhD,wBAAsB;IACrB;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QAAO"}
@@ -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, PropsWithChildren, ReactNode } from 'react';
19
2
  /**
20
3
  * Props for the Loading component.
@@ -1 +1 @@
1
- {"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../../src/components/control/Loading.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAQhD,CAAC;AAIF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../../src/components/control/Loading.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,OAAO,EAAE,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAQhD,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Loading.js","names":["Loading: FC<PropsWithChildren<LoadingProps>>","useThunderID"],"sources":["../../../src/components/control/Loading.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, PropsWithChildren, ReactNode} from 'react';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * Props for the Loading component.\n */\nexport interface LoadingProps {\n /**\n * Content to show when the user is not signed in.\n */\n fallback?: ReactNode;\n}\n\n/**\n * A component that only renders its children when the ThunderID is loading.\n *\n * @remarks This component is only supported in browser based React applications (CSR).\n *\n * @example\n * ```tsx\n * import { Loading } from '@thunderid/auth-react';\n *\n * const App = () => {\n * return (\n * <Loading fallback={<p>Finished Loading...</p>}>\n * <p>Loading...</p>\n * </Loading>\n * );\n * }\n * ```\n */\nconst Loading: FC<PropsWithChildren<LoadingProps>> = ({children, fallback = null}: PropsWithChildren<LoadingProps>) => {\n const {isLoading} = useThunderID();\n\n if (!isLoading) {\n return <>{fallback}</>;\n }\n\n return <>{children}</>;\n};\n\nLoading.displayName = 'Loading';\n\nexport default Loading;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAMA,WAAgD,EAAC,UAAU,WAAW,WAA2C;CACrH,MAAM,EAAC,cAAaC,sBAAc;AAElC,KAAI,CAAC,UACH,QAAO,0CAAG,WAAY;AAGxB,QAAO,gCAAG,WAAY;;AAGxB,QAAQ,cAAc;AAEtB,sBAAe"}
1
+ {"version":3,"file":"Loading.js","names":["Loading: FC<PropsWithChildren<LoadingProps>>","useThunderID"],"sources":["../../../src/components/control/Loading.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {FC, PropsWithChildren, ReactNode} from 'react';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * Props for the Loading component.\n */\nexport interface LoadingProps {\n /**\n * Content to show when the user is not signed in.\n */\n fallback?: ReactNode;\n}\n\n/**\n * A component that only renders its children when the ThunderID is loading.\n *\n * @remarks This component is only supported in browser based React applications (CSR).\n *\n * @example\n * ```tsx\n * import { Loading } from '@thunderid/auth-react';\n *\n * const App = () => {\n * return (\n * <Loading fallback={<p>Finished Loading...</p>}>\n * <p>Loading...</p>\n * </Loading>\n * );\n * }\n * ```\n */\nconst Loading: FC<PropsWithChildren<LoadingProps>> = ({children, fallback = null}: PropsWithChildren<LoadingProps>) => {\n const {isLoading} = useThunderID();\n\n if (!isLoading) {\n return <>{fallback}</>;\n }\n\n return <>{children}</>;\n};\n\nLoading.displayName = 'Loading';\n\nexport default Loading;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,WAAgD,EAAC,UAAU,WAAW,WAA2C;CACrH,MAAM,EAAC,cAAaC,sBAAc;AAElC,KAAI,CAAC,UACH,QAAO,0CAAG,WAAY;AAGxB,QAAO,gCAAG,WAAY;;AAGxB,QAAQ,cAAc;AAEtB,sBAAe"}
@@ -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, PropsWithChildren, ReactNode } from 'react';
19
2
  /**
20
3
  * Props for the SignedIn component.
@@ -1 +1 @@
1
- {"version":3,"file":"SignedIn.d.ts","sourceRoot":"","sources":["../../../src/components/control/SignedIn.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAWlD,CAAC;AAIF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"SignedIn.d.ts","sourceRoot":"","sources":["../../../src/components/control/SignedIn.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAWlD,CAAC;AAIF,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignedIn.js","names":["SignedIn: FC<PropsWithChildren<SignedInProps>>","useThunderID"],"sources":["../../../src/components/control/SignedIn.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, PropsWithChildren, ReactNode} from 'react';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * Props for the SignedIn component.\n */\nexport interface SignedInProps {\n /**\n * Content to show when the user is not signed in.\n */\n fallback?: ReactNode;\n}\n\n/**\n * A component that only renders its children when the user is signed in.\n *\n * @remarks This component is only supported in browser based React applications (CSR).\n *\n * @example\n * ```tsx\n * import { SignedIn } from '@thunderid/auth-react';\n *\n * const App = () => {\n * return (\n * <SignedIn fallback={<p>Please sign in to continue</p>}>\n * <p>Welcome! You are signed in.</p>\n * </SignedIn>\n * );\n * }\n * ```\n */\nconst SignedIn: FC<PropsWithChildren<SignedInProps>> = ({\n children,\n fallback = null,\n}: PropsWithChildren<SignedInProps>) => {\n const {isSignedIn} = useThunderID();\n\n if (!isSignedIn) {\n return <>{fallback}</>;\n }\n\n return <>{children}</>;\n};\n\nSignedIn.displayName = 'SignedIn';\n\nexport default SignedIn;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAMA,YAAkD,EACtD,UACA,WAAW,WAC2B;CACtC,MAAM,EAAC,eAAcC,sBAAc;AAEnC,KAAI,CAAC,WACH,QAAO,0CAAG,WAAY;AAGxB,QAAO,gCAAG,WAAY;;AAGxB,SAAS,cAAc;AAEvB,uBAAe"}
1
+ {"version":3,"file":"SignedIn.js","names":["SignedIn: FC<PropsWithChildren<SignedInProps>>","useThunderID"],"sources":["../../../src/components/control/SignedIn.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {FC, PropsWithChildren, ReactNode} from 'react';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * Props for the SignedIn component.\n */\nexport interface SignedInProps {\n /**\n * Content to show when the user is not signed in.\n */\n fallback?: ReactNode;\n}\n\n/**\n * A component that only renders its children when the user is signed in.\n *\n * @remarks This component is only supported in browser based React applications (CSR).\n *\n * @example\n * ```tsx\n * import { SignedIn } from '@thunderid/auth-react';\n *\n * const App = () => {\n * return (\n * <SignedIn fallback={<p>Please sign in to continue</p>}>\n * <p>Welcome! You are signed in.</p>\n * </SignedIn>\n * );\n * }\n * ```\n */\nconst SignedIn: FC<PropsWithChildren<SignedInProps>> = ({\n children,\n fallback = null,\n}: PropsWithChildren<SignedInProps>) => {\n const {isSignedIn} = useThunderID();\n\n if (!isSignedIn) {\n return <>{fallback}</>;\n }\n\n return <>{children}</>;\n};\n\nSignedIn.displayName = 'SignedIn';\n\nexport default SignedIn;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,YAAkD,EACtD,UACA,WAAW,WAC2B;CACtC,MAAM,EAAC,eAAcC,sBAAc;AAEnC,KAAI,CAAC,WACH,QAAO,0CAAG,WAAY;AAGxB,QAAO,gCAAG,WAAY;;AAGxB,SAAS,cAAc;AAEvB,uBAAe"}
@@ -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, PropsWithChildren, ReactNode } from 'react';
19
2
  /**
20
3
  * Props for the SignedOut component.
@@ -1 +1 @@
1
- {"version":3,"file":"SignedOut.d.ts","sourceRoot":"","sources":["../../../src/components/control/SignedOut.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAWpD,CAAC;AAIF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"SignedOut.d.ts","sourceRoot":"","sources":["../../../src/components/control/SignedOut.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGvD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAWpD,CAAC;AAIF,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SignedOut.js","names":["SignedOut: FC<PropsWithChildren<SignedOutProps>>","useThunderID"],"sources":["../../../src/components/control/SignedOut.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, PropsWithChildren, ReactNode} from 'react';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * Props for the SignedOut component.\n */\nexport interface SignedOutProps {\n /**\n * Content to show when the user is signed in.\n */\n fallback?: ReactNode;\n}\n\n/**\n * A component that only renders its children when the user is signed out.\n *\n * @remarks This component is only supported in browser based React applications (CSR).\n *\n * @example\n * ```tsx\n * import { SignedOut } from '@thunderid/auth-react';\n *\n * const App = () => {\n * return (\n * <SignedOut fallback={<p>You are already signed in</p>}>\n * <p>Please sign in to continue</p>\n * </SignedOut>\n * );\n * }\n * ```\n */\nconst SignedOut: FC<PropsWithChildren<SignedOutProps>> = ({\n children,\n fallback = null,\n}: PropsWithChildren<SignedOutProps>) => {\n const {isSignedIn} = useThunderID();\n\n if (!isSignedIn) {\n return <>{children}</>;\n }\n\n return <>{fallback}</>;\n};\n\nSignedOut.displayName = 'SignedOut';\n\nexport default SignedOut;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAMA,aAAoD,EACxD,UACA,WAAW,WAC4B;CACvC,MAAM,EAAC,eAAcC,sBAAc;AAEnC,KAAI,CAAC,WACH,QAAO,gCAAG,WAAY;AAGxB,QAAO,0CAAG,WAAY;;AAGxB,UAAU,cAAc;AAExB,wBAAe"}
1
+ {"version":3,"file":"SignedOut.js","names":["SignedOut: FC<PropsWithChildren<SignedOutProps>>","useThunderID"],"sources":["../../../src/components/control/SignedOut.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {FC, PropsWithChildren, ReactNode} from 'react';\nimport useThunderID from '../../contexts/ThunderID/useThunderID';\n\n/**\n * Props for the SignedOut component.\n */\nexport interface SignedOutProps {\n /**\n * Content to show when the user is signed in.\n */\n fallback?: ReactNode;\n}\n\n/**\n * A component that only renders its children when the user is signed out.\n *\n * @remarks This component is only supported in browser based React applications (CSR).\n *\n * @example\n * ```tsx\n * import { SignedOut } from '@thunderid/auth-react';\n *\n * const App = () => {\n * return (\n * <SignedOut fallback={<p>You are already signed in</p>}>\n * <p>Please sign in to continue</p>\n * </SignedOut>\n * );\n * }\n * ```\n */\nconst SignedOut: FC<PropsWithChildren<SignedOutProps>> = ({\n children,\n fallback = null,\n}: PropsWithChildren<SignedOutProps>) => {\n const {isSignedIn} = useThunderID();\n\n if (!isSignedIn) {\n return <>{children}</>;\n }\n\n return <>{fallback}</>;\n};\n\nSignedOut.displayName = 'SignedOut';\n\nexport default SignedOut;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAMA,aAAoD,EACxD,UACA,WAAW,WAC4B;CACvC,MAAM,EAAC,eAAcC,sBAAc;AAEnC,KAAI,CAAC,WACH,QAAO,gCAAG,WAAY;AAGxB,QAAO,0CAAG,WAAY;;AAGxB,UAAU,cAAc;AAExB,wBAAe"}
@@ -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 { FieldType } from '@thunderid/browser';
19
2
  import { FC, ReactElement } from 'react';
20
3
  import { SelectOption } from '../primitives/Select/Select';
@@ -1 +1 @@
1
- {"version":3,"file":"FieldFactory.d.ts","sourceRoot":"","sources":["../../../src/components/factories/FieldFactory.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAc,EAAE,EAAE,YAAY,EAAC,MAAM,OAAO,CAAC;AAKpD,OAAe,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,MAAM,SAAS,EACf,kBAAgB,EAChB,iBAAe,KACd,MAAM,GAAG,IAsBX,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,WAAW,KAAG,YA6HjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,WAAW,CAA4D,CAAC;AAEtG,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"FieldFactory.d.ts","sourceRoot":"","sources":["../../../src/components/factories/FieldFactory.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAc,EAAE,EAAE,YAAY,EAAC,MAAM,OAAO,CAAC;AAKpD,OAAe,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,MAAM,SAAS,EACf,kBAAgB,EAChB,iBAAe,KACd,MAAM,GAAG,IAsBX,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,WAAW,KAAG,YA6HjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,WAAW,CAA4D,CAAC;AAEtG,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldFactory.js","names":["numValue: number","validationError: string | null","commonProps: Record<string, any>","PasswordField","TextField","DatePicker","isChecked: boolean","Checkbox","OtpField","fieldOptions: SelectOption[]","Select","FieldFactory: FC<FieldConfig>"],"sources":["../../../src/components/factories/FieldFactory.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 {FieldType} from '@thunderid/browser';\nimport {ChangeEvent, FC, ReactElement} from 'react';\nimport Checkbox from '../primitives/Checkbox/Checkbox';\nimport DatePicker from '../primitives/DatePicker/DatePicker';\nimport OtpField from '../primitives/OtpField/OtpField';\nimport PasswordField from '../primitives/PasswordField/PasswordField';\nimport Select, {SelectOption} from '../primitives/Select/Select';\nimport TextField from '../primitives/TextField/TextField';\n\n/**\n * Interface for field configuration.\n */\nexport interface FieldConfig {\n /**\n * Additional CSS class name.\n */\n className?: string;\n /**\n * Whether the field is disabled.\n */\n disabled?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n /**\n * HTML id to apply to the rendered field.\n */\n id?: string;\n /**\n * Display name for the field.\n */\n label: string;\n /**\n * The name of the field.\n */\n name: string;\n /**\n * Callback function when the field loses focus.\n */\n onBlur?: () => void;\n /**\n * Callback function when the field value changes.\n */\n onChange: (value: string) => void;\n /**\n * Additional options for multi-valued fields.\n */\n options?: SelectOption[];\n /**\n * Placeholder text for the field.\n */\n placeholder?: string;\n /**\n * Whether the field is required.\n */\n required: boolean;\n /**\n * Whether the field has been touched/interacted with by the user.\n */\n touched?: boolean;\n /**\n * The field type.\n */\n type: FieldType;\n /**\n * Current value of the field.\n */\n value: string;\n}\n\n/**\n * Utility function to validate field values based on type\n */\nexport const validateFieldValue = (\n value: string,\n type: FieldType,\n required = false,\n touched = false,\n): string | null => {\n if (required && touched && (!value || value.trim() === '')) {\n return 'This field is required';\n }\n\n if (!value || value.trim() === '') {\n return null;\n }\n\n switch (type) {\n case FieldType.Number: {\n const numValue: number = parseInt(value, 10);\n if (Number.isNaN(numValue)) {\n return 'Please enter a valid number';\n }\n break;\n }\n default:\n break;\n }\n\n return null;\n};\n\n/**\n * Factory function to create form fields based on field type.\n *\n * @param config - The field configuration\n * @returns The appropriate React component for the field type\n *\n * @example\n * ```tsx\n * const field = createField({\n * param: 'username',\n * type: FieldType.Text,\n * label: 'Username',\n * confidential: false,\n * required: true,\n * value: '',\n * onChange: (value) => console.log(value)\n * });\n * ```\n */\nexport const createField = (config: FieldConfig): ReactElement => {\n const {\n name,\n type,\n label,\n required,\n value,\n onChange,\n onBlur,\n disabled = false,\n error,\n className,\n id,\n options = [],\n touched = false,\n placeholder,\n } = config;\n\n const validationError: string | null = error || validateFieldValue(value, type, required, touched);\n\n const commonProps: Record<string, any> = {\n className,\n 'data-testid': `thunderid-signin-${name}`,\n disabled,\n error: validationError,\n id,\n label,\n name,\n onBlur,\n placeholder,\n required,\n value,\n };\n\n switch (type) {\n case FieldType.Password:\n return <PasswordField {...commonProps} onChange={onChange} />;\n case FieldType.Text:\n return (\n <TextField\n {...commonProps}\n type=\"text\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n autoComplete=\"off\"\n />\n );\n case FieldType.Email:\n return (\n <TextField\n {...commonProps}\n type=\"email\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n autoComplete=\"email\"\n />\n );\n case FieldType.Tel:\n return (\n <TextField\n {...commonProps}\n type=\"tel\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n autoComplete=\"tel\"\n />\n );\n case FieldType.Date:\n return (\n <DatePicker {...commonProps} onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)} />\n );\n case FieldType.Checkbox: {\n const isChecked: boolean = value === 'true' || (value as any) === true;\n return (\n <Checkbox\n {...commonProps}\n checked={isChecked}\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.checked.toString())}\n />\n );\n }\n case FieldType.Otp:\n return (\n <OtpField {...commonProps} onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)} />\n );\n case FieldType.Number:\n return (\n <TextField\n {...commonProps}\n type=\"number\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n helperText=\"Enter a numeric value\"\n />\n );\n case FieldType.Select: {\n const fieldOptions: SelectOption[] = options.length > 0 ? options : [];\n\n if (fieldOptions.length > 0) {\n return (\n <Select\n {...commonProps}\n options={fieldOptions}\n onChange={(e: ChangeEvent<HTMLSelectElement>): void => onChange(e.target.value)}\n helperText=\"Select from available options\"\n />\n );\n }\n\n return (\n <TextField\n {...commonProps}\n type=\"text\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n helperText=\"Enter multiple values separated by commas (e.g., value1, value2, value3)\"\n placeholder=\"value1, value2, value3\"\n />\n );\n }\n default:\n return (\n <TextField\n {...commonProps}\n type=\"text\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n helperText=\"Unknown field type, treating as text\"\n />\n );\n }\n};\n\n/**\n * React component wrapper for the field factory.\n */\nexport const FieldFactory: FC<FieldConfig> = (props: FieldConfig): ReactElement => createField(props);\n\nexport default FieldFactory;\n"],"mappings":";;;;;;;;;;;;;AA4FA,MAAa,sBACX,OACA,MACA,WAAW,OACX,UAAU,UACQ;AAClB,KAAI,YAAY,YAAY,CAAC,SAAS,MAAM,MAAM,KAAK,IACrD,QAAO;AAGT,KAAI,CAAC,SAAS,MAAM,MAAM,KAAK,GAC7B,QAAO;AAGT,SAAQ,MAAR;EACE,KAAK,UAAU,QAAQ;GACrB,MAAMA,WAAmB,SAAS,OAAO,GAAG;AAC5C,OAAI,OAAO,MAAM,SAAS,CACxB,QAAO;AAET;;EAEF,QACE;;AAGJ,QAAO;;;;;;;;;;;;;;;;;;;;;AAsBT,MAAa,eAAe,WAAsC;CAChE,MAAM,EACJ,MACA,MACA,OACA,UACA,OACA,UACA,QACA,WAAW,OACX,OACA,WACA,IACA,UAAU,EAAE,EACZ,UAAU,OACV,gBACE;CAEJ,MAAMC,kBAAiC,SAAS,mBAAmB,OAAO,MAAM,UAAU,QAAQ;CAElG,MAAMC,cAAmC;EACvC;EACA,eAAe,oBAAoB;EACnC;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACD;AAED,SAAQ,MAAR;EACE,KAAK,UAAU,SACb,QAAO,oBAACC;GAAc,GAAI;GAAuB;IAAY;EAC/D,KAAK,UAAU,KACb,QACE,oBAACC;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,cAAa;IACb;EAEN,KAAK,UAAU,MACb,QACE,oBAACA;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,cAAa;IACb;EAEN,KAAK,UAAU,IACb,QACE,oBAACA;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,cAAa;IACb;EAEN,KAAK,UAAU,KACb,QACE,oBAACC;GAAW,GAAI;GAAa,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;IAAI;EAEnH,KAAK,UAAU,UAAU;GACvB,MAAMC,YAAqB,UAAU,UAAW,UAAkB;AAClE,UACE,oBAACC;IACC,GAAI;IACJ,SAAS;IACT,WAAW,MAA2C,SAAS,EAAE,OAAO,QAAQ,UAAU,CAAC;KAC3F;;EAGN,KAAK,UAAU,IACb,QACE,oBAACC;GAAS,GAAI;GAAa,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;IAAI;EAEjH,KAAK,UAAU,OACb,QACE,oBAACJ;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,YAAW;IACX;EAEN,KAAK,UAAU,QAAQ;GACrB,MAAMK,eAA+B,QAAQ,SAAS,IAAI,UAAU,EAAE;AAEtE,OAAI,aAAa,SAAS,EACxB,QACE,oBAACC;IACC,GAAI;IACJ,SAAS;IACT,WAAW,MAA4C,SAAS,EAAE,OAAO,MAAM;IAC/E,YAAW;KACX;AAIN,UACE,oBAACN;IACC,GAAI;IACJ,MAAK;IACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;IAC9E,YAAW;IACX,aAAY;KACZ;;EAGN,QACE,QACE,oBAACA;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,YAAW;IACX;;;;;;AAQV,MAAaO,gBAAiC,UAAqC,YAAY,MAAM"}
1
+ {"version":3,"file":"FieldFactory.js","names":["numValue: number","validationError: string | null","commonProps: Record<string, any>","PasswordField","TextField","DatePicker","isChecked: boolean","Checkbox","OtpField","fieldOptions: SelectOption[]","Select","FieldFactory: FC<FieldConfig>"],"sources":["../../../src/components/factories/FieldFactory.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {FieldType} from '@thunderid/browser';\nimport {ChangeEvent, FC, ReactElement} from 'react';\nimport Checkbox from '../primitives/Checkbox/Checkbox';\nimport DatePicker from '../primitives/DatePicker/DatePicker';\nimport OtpField from '../primitives/OtpField/OtpField';\nimport PasswordField from '../primitives/PasswordField/PasswordField';\nimport Select, {SelectOption} from '../primitives/Select/Select';\nimport TextField from '../primitives/TextField/TextField';\n\n/**\n * Interface for field configuration.\n */\nexport interface FieldConfig {\n /**\n * Additional CSS class name.\n */\n className?: string;\n /**\n * Whether the field is disabled.\n */\n disabled?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n /**\n * HTML id to apply to the rendered field.\n */\n id?: string;\n /**\n * Display name for the field.\n */\n label: string;\n /**\n * The name of the field.\n */\n name: string;\n /**\n * Callback function when the field loses focus.\n */\n onBlur?: () => void;\n /**\n * Callback function when the field value changes.\n */\n onChange: (value: string) => void;\n /**\n * Additional options for multi-valued fields.\n */\n options?: SelectOption[];\n /**\n * Placeholder text for the field.\n */\n placeholder?: string;\n /**\n * Whether the field is required.\n */\n required: boolean;\n /**\n * Whether the field has been touched/interacted with by the user.\n */\n touched?: boolean;\n /**\n * The field type.\n */\n type: FieldType;\n /**\n * Current value of the field.\n */\n value: string;\n}\n\n/**\n * Utility function to validate field values based on type\n */\nexport const validateFieldValue = (\n value: string,\n type: FieldType,\n required = false,\n touched = false,\n): string | null => {\n if (required && touched && (!value || value.trim() === '')) {\n return 'This field is required';\n }\n\n if (!value || value.trim() === '') {\n return null;\n }\n\n switch (type) {\n case FieldType.Number: {\n const numValue: number = parseInt(value, 10);\n if (Number.isNaN(numValue)) {\n return 'Please enter a valid number';\n }\n break;\n }\n default:\n break;\n }\n\n return null;\n};\n\n/**\n * Factory function to create form fields based on field type.\n *\n * @param config - The field configuration\n * @returns The appropriate React component for the field type\n *\n * @example\n * ```tsx\n * const field = createField({\n * param: 'username',\n * type: FieldType.Text,\n * label: 'Username',\n * confidential: false,\n * required: true,\n * value: '',\n * onChange: (value) => console.log(value)\n * });\n * ```\n */\nexport const createField = (config: FieldConfig): ReactElement => {\n const {\n name,\n type,\n label,\n required,\n value,\n onChange,\n onBlur,\n disabled = false,\n error,\n className,\n id,\n options = [],\n touched = false,\n placeholder,\n } = config;\n\n const validationError: string | null = error || validateFieldValue(value, type, required, touched);\n\n const commonProps: Record<string, any> = {\n className,\n 'data-testid': `thunderid-signin-${name}`,\n disabled,\n error: validationError,\n id,\n label,\n name,\n onBlur,\n placeholder,\n required,\n value,\n };\n\n switch (type) {\n case FieldType.Password:\n return <PasswordField {...commonProps} onChange={onChange} />;\n case FieldType.Text:\n return (\n <TextField\n {...commonProps}\n type=\"text\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n autoComplete=\"off\"\n />\n );\n case FieldType.Email:\n return (\n <TextField\n {...commonProps}\n type=\"email\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n autoComplete=\"email\"\n />\n );\n case FieldType.Tel:\n return (\n <TextField\n {...commonProps}\n type=\"tel\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n autoComplete=\"tel\"\n />\n );\n case FieldType.Date:\n return (\n <DatePicker {...commonProps} onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)} />\n );\n case FieldType.Checkbox: {\n const isChecked: boolean = value === 'true' || (value as any) === true;\n return (\n <Checkbox\n {...commonProps}\n checked={isChecked}\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.checked.toString())}\n />\n );\n }\n case FieldType.Otp:\n return (\n <OtpField {...commonProps} onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)} />\n );\n case FieldType.Number:\n return (\n <TextField\n {...commonProps}\n type=\"number\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n helperText=\"Enter a numeric value\"\n />\n );\n case FieldType.Select: {\n const fieldOptions: SelectOption[] = options.length > 0 ? options : [];\n\n if (fieldOptions.length > 0) {\n return (\n <Select\n {...commonProps}\n options={fieldOptions}\n onChange={(e: ChangeEvent<HTMLSelectElement>): void => onChange(e.target.value)}\n helperText=\"Select from available options\"\n />\n );\n }\n\n return (\n <TextField\n {...commonProps}\n type=\"text\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n helperText=\"Enter multiple values separated by commas (e.g., value1, value2, value3)\"\n placeholder=\"value1, value2, value3\"\n />\n );\n }\n default:\n return (\n <TextField\n {...commonProps}\n type=\"text\"\n onChange={(e: ChangeEvent<HTMLInputElement>): void => onChange(e.target.value)}\n helperText=\"Unknown field type, treating as text\"\n />\n );\n }\n};\n\n/**\n * React component wrapper for the field factory.\n */\nexport const FieldFactory: FC<FieldConfig> = (props: FieldConfig): ReactElement => createField(props);\n\nexport default FieldFactory;\n"],"mappings":";;;;;;;;;;;;;AA6EA,MAAa,sBACX,OACA,MACA,WAAW,OACX,UAAU,UACQ;AAClB,KAAI,YAAY,YAAY,CAAC,SAAS,MAAM,MAAM,KAAK,IACrD,QAAO;AAGT,KAAI,CAAC,SAAS,MAAM,MAAM,KAAK,GAC7B,QAAO;AAGT,SAAQ,MAAR;EACE,KAAK,UAAU,QAAQ;GACrB,MAAMA,WAAmB,SAAS,OAAO,GAAG;AAC5C,OAAI,OAAO,MAAM,SAAS,CACxB,QAAO;AAET;;EAEF,QACE;;AAGJ,QAAO;;;;;;;;;;;;;;;;;;;;;AAsBT,MAAa,eAAe,WAAsC;CAChE,MAAM,EACJ,MACA,MACA,OACA,UACA,OACA,UACA,QACA,WAAW,OACX,OACA,WACA,IACA,UAAU,EAAE,EACZ,UAAU,OACV,gBACE;CAEJ,MAAMC,kBAAiC,SAAS,mBAAmB,OAAO,MAAM,UAAU,QAAQ;CAElG,MAAMC,cAAmC;EACvC;EACA,eAAe,oBAAoB;EACnC;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACD;AAED,SAAQ,MAAR;EACE,KAAK,UAAU,SACb,QAAO,oBAACC;GAAc,GAAI;GAAuB;IAAY;EAC/D,KAAK,UAAU,KACb,QACE,oBAACC;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,cAAa;IACb;EAEN,KAAK,UAAU,MACb,QACE,oBAACA;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,cAAa;IACb;EAEN,KAAK,UAAU,IACb,QACE,oBAACA;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,cAAa;IACb;EAEN,KAAK,UAAU,KACb,QACE,oBAACC;GAAW,GAAI;GAAa,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;IAAI;EAEnH,KAAK,UAAU,UAAU;GACvB,MAAMC,YAAqB,UAAU,UAAW,UAAkB;AAClE,UACE,oBAACC;IACC,GAAI;IACJ,SAAS;IACT,WAAW,MAA2C,SAAS,EAAE,OAAO,QAAQ,UAAU,CAAC;KAC3F;;EAGN,KAAK,UAAU,IACb,QACE,oBAACC;GAAS,GAAI;GAAa,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;IAAI;EAEjH,KAAK,UAAU,OACb,QACE,oBAACJ;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,YAAW;IACX;EAEN,KAAK,UAAU,QAAQ;GACrB,MAAMK,eAA+B,QAAQ,SAAS,IAAI,UAAU,EAAE;AAEtE,OAAI,aAAa,SAAS,EACxB,QACE,oBAACC;IACC,GAAI;IACJ,SAAS;IACT,WAAW,MAA4C,SAAS,EAAE,OAAO,MAAM;IAC/E,YAAW;KACX;AAIN,UACE,oBAACN;IACC,GAAI;IACJ,MAAK;IACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;IAC9E,YAAW;IACX,aAAY;KACZ;;EAGN,QACE,QACE,oBAACA;GACC,GAAI;GACJ,MAAK;GACL,WAAW,MAA2C,SAAS,EAAE,OAAO,MAAM;GAC9E,YAAW;IACX;;;;;;AAQV,MAAaO,gBAAiC,UAAqC,YAAY,MAAM"}
@@ -1,20 +1,3 @@
1
- /**
2
- * Copyright (c) 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 { FC, ReactNode } from 'react';
19
2
  /**
20
3
  * A resolved language option with display name and emoji flag.
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLanguageSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgBH,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAsB,MAAM,OAAO,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,kDAAkD;IAClD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,SAAS,CAAC;IAC7D,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,8CAA8C;IAC9C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAmGvD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"BaseLanguageSwitcher.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAC,EAAE,EAAgB,SAAS,EAAsB,MAAM,OAAO,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,kDAAkD;IAClD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,SAAS,CAAC;IAC7D,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,8CAA8C;IAC9C,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,QAAA,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAmGvD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLanguageSwitcher.js","names":["BaseLanguageSwitcher: FC<BaseLanguageSwitcherProps>","useTheme","styles: Record<string, string>","useStyles","hasMultipleLanguages: boolean","currentOption: LanguageOption | undefined","ChevronDown","Check"],"sources":["../../../../src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.tsx"],"sourcesContent":["/**\n * Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).\n *\n * WSO2 LLC. licenses this file to you under the Apache License,\n * Version 2.0 (the \"License\"); you may not use this file except\n * in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {cx} from '@emotion/css';\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport {FC, ReactElement, ReactNode, useEffect, useState} from 'react';\nimport useStyles from './BaseLanguageSwitcher.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport Check from '../../primitives/Icons/Check';\nimport ChevronDown from '../../primitives/Icons/ChevronDown';\n\n/**\n * A resolved language option with display name and emoji flag.\n */\nexport interface LanguageOption {\n /** BCP 47 language tag (e.g. \"en\", \"fr\", \"en-US\") */\n code: string;\n /** Human-readable display name resolved via Intl.DisplayNames */\n displayName: string;\n /** Flag emoji or globe emoji for the language */\n emoji: string;\n}\n\n/**\n * Render props exposed to consumers when using the render-prop pattern.\n */\nexport interface LanguageSwitcherRenderProps {\n /** The currently active language code */\n currentLanguage: string;\n /** Whether a language switch is in progress */\n isLoading: boolean;\n /** Resolved language options */\n languages: LanguageOption[];\n /** Call this to switch to a different language */\n onLanguageChange: (language: string) => void;\n}\n\nexport interface BaseLanguageSwitcherProps {\n /**\n * Render-props callback. When provided, the default dropdown UI is replaced with\n * whatever JSX the callback returns.\n *\n * @example\n * ```tsx\n * <BaseLanguageSwitcher {...props}>\n * {({languages, currentLanguage, onLanguageChange}) => (\n * <select value={currentLanguage} onChange={e => onLanguageChange(e.target.value)}>\n * {languages.map(l => <option key={l.code} value={l.code}>{l.emoji} {l.displayName}</option>)}\n * </select>\n * )}\n * </BaseLanguageSwitcher>\n * ```\n */\n children?: (props: LanguageSwitcherRenderProps) => ReactNode;\n /** Additional CSS class applied to the root element (default UI only) */\n className?: string;\n /** The currently active language code */\n currentLanguage: string;\n /** Whether a language switch is in progress */\n isLoading?: boolean;\n /** Resolved language options to display */\n languages: LanguageOption[];\n /** Called when the user selects a language */\n onLanguageChange: (language: string) => void;\n}\n\n/**\n * Pure-UI language switcher dropdown.\n * Accepts resolved `LanguageOption[]` (code + displayName + emoji) and delegates\n * language switching to the `onLanguageChange` callback.\n *\n * Supports render props for full UI customisation.\n */\nconst BaseLanguageSwitcher: FC<BaseLanguageSwitcherProps> = ({\n children,\n className,\n currentLanguage,\n isLoading = false,\n languages,\n onLanguageChange,\n}: BaseLanguageSwitcherProps): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const [isOpen, setIsOpen] = useState(false);\n const hasMultipleLanguages: boolean = languages.length > 1;\n\n useEffect(() => {\n if (!hasMultipleLanguages && isOpen) {\n setIsOpen(false);\n }\n }, [hasMultipleLanguages, isOpen]);\n\n const {refs, floatingStyles, context} = useFloating({\n middleware: [offset(4), flip(), shift()],\n onOpenChange: setIsOpen,\n open: isOpen,\n whileElementsMounted: autoUpdate,\n });\n\n const click: ReturnType<typeof useClick> = useClick(context, {enabled: hasMultipleLanguages});\n const dismiss: ReturnType<typeof useDismiss> = useDismiss(context, {enabled: hasMultipleLanguages});\n const role: ReturnType<typeof useRole> = useRole(context, {enabled: hasMultipleLanguages, role: 'listbox'});\n const {getReferenceProps, getFloatingProps} = useInteractions([click, dismiss, role]);\n\n const currentOption: LanguageOption | undefined = languages.find((l: LanguageOption) => l.code === currentLanguage);\n\n if (children) {\n return (\n <>\n {children({\n currentLanguage,\n isLoading,\n languages,\n onLanguageChange,\n })}\n </>\n );\n }\n\n return (\n <div className={cx(styles['root'], className)}>\n <button\n ref={refs.setReference}\n type=\"button\"\n disabled={isLoading}\n aria-label=\"Switch language\"\n {...getReferenceProps()}\n className={styles['trigger']}\n >\n {currentOption && <span className={styles['triggerEmoji']}>{currentOption.emoji}</span>}\n <span className={styles['triggerLabel']}>{currentOption?.displayName ?? currentLanguage}</span>\n {hasMultipleLanguages && <ChevronDown />}\n </button>\n\n {isOpen && hasMultipleLanguages && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n className={styles['content']}\n role=\"listbox\"\n aria-label=\"Select language\"\n >\n {languages.map((lang: LanguageOption) => (\n <button\n key={lang.code}\n type=\"button\"\n role=\"option\"\n aria-selected={lang.code === currentLanguage}\n className={cx(styles['option'], lang.code === currentLanguage && styles['optionActive'])}\n onClick={() => {\n onLanguageChange(lang.code);\n setIsOpen(false);\n }}\n >\n <span className={styles['optionEmoji']}>{lang.emoji}</span>\n <span className={styles['optionLabel']}>{lang.displayName}</span>\n {lang.code === currentLanguage && (\n <span className={styles['checkIcon']}>\n <Check />\n </span>\n )}\n </button>\n ))}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n};\n\nexport default BaseLanguageSwitcher;\n"],"mappings":";;;;;;;;;;;;;;;;;AAoGA,MAAMA,wBAAuD,EAC3D,UACA,WACA,iBACA,YAAY,OACZ,WACA,uBAC6C;CAC7C,MAAM,EAAC,OAAO,gBAAeC,kBAAU;CACvC,MAAMC,SAAiCC,oCAAU,OAAO,YAAY;CACpE,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAMC,uBAAgC,UAAU,SAAS;AAEzD,iBAAgB;AACd,MAAI,CAAC,wBAAwB,OAC3B,WAAU,MAAM;IAEjB,CAAC,sBAAsB,OAAO,CAAC;CAElC,MAAM,EAAC,MAAM,gBAAgB,YAAW,YAAY;EAClD,YAAY;GAAC,OAAO,EAAE;GAAE,MAAM;GAAE,OAAO;GAAC;EACxC,cAAc;EACd,MAAM;EACN,sBAAsB;EACvB,CAAC;CAKF,MAAM,EAAC,mBAAmB,qBAAoB,gBAAgB;EAHnB,SAAS,SAAS,EAAC,SAAS,sBAAqB,CAAC;EAC9C,WAAW,SAAS,EAAC,SAAS,sBAAqB,CAAC;EAC1D,QAAQ,SAAS;GAAC,SAAS;GAAsB,MAAM;GAAU,CAAC;EACvB,CAAC;CAErF,MAAMC,gBAA4C,UAAU,MAAM,MAAsB,EAAE,SAAS,gBAAgB;AAEnH,KAAI,SACF,QACE,0CACG,SAAS;EACR;EACA;EACA;EACA;EACD,CAAC,GACD;AAIP,QACE,qBAAC;EAAI,WAAW,GAAG,OAAO,SAAS,UAAU;aAC3C,qBAAC;GACC,KAAK,KAAK;GACV,MAAK;GACL,UAAU;GACV,cAAW;GACX,GAAI,mBAAmB;GACvB,WAAW,OAAO;;IAEjB,iBAAiB,oBAAC;KAAK,WAAW,OAAO;eAAkB,cAAc;MAAa;IACvF,oBAAC;KAAK,WAAW,OAAO;eAAkB,eAAe,eAAe;MAAuB;IAC9F,wBAAwB,oBAACC,wBAAc;;IACjC,EAER,UAAU,wBACT,oBAAC,4BACC,oBAAC;GAA8B;GAAS,OAAO;aAC7C,oBAAC;IACC,KAAK,KAAK;IACV,OAAO;IACP,GAAI,kBAAkB;IACtB,WAAW,OAAO;IAClB,MAAK;IACL,cAAW;cAEV,UAAU,KAAK,SACd,qBAAC;KAEC,MAAK;KACL,MAAK;KACL,iBAAe,KAAK,SAAS;KAC7B,WAAW,GAAG,OAAO,WAAW,KAAK,SAAS,mBAAmB,OAAO,gBAAgB;KACxF,eAAe;AACb,uBAAiB,KAAK,KAAK;AAC3B,gBAAU,MAAM;;;MAGlB,oBAAC;OAAK,WAAW,OAAO;iBAAiB,KAAK;QAAa;MAC3D,oBAAC;OAAK,WAAW,OAAO;iBAAiB,KAAK;QAAmB;MAChE,KAAK,SAAS,mBACb,oBAAC;OAAK,WAAW,OAAO;iBACtB,oBAACC,kBAAQ;QACJ;;OAfJ,KAAK,KAiBH,CACT;KACE;IACe,GACR;GAEf;;AAIV,mCAAe"}
1
+ {"version":3,"file":"BaseLanguageSwitcher.js","names":["BaseLanguageSwitcher: FC<BaseLanguageSwitcherProps>","useTheme","styles: Record<string, string>","useStyles","hasMultipleLanguages: boolean","currentOption: LanguageOption | undefined","ChevronDown","Check"],"sources":["../../../../src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.tsx"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport {FC, ReactElement, ReactNode, useEffect, useState} from 'react';\nimport useStyles from './BaseLanguageSwitcher.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport Check from '../../primitives/Icons/Check';\nimport ChevronDown from '../../primitives/Icons/ChevronDown';\n\n/**\n * A resolved language option with display name and emoji flag.\n */\nexport interface LanguageOption {\n /** BCP 47 language tag (e.g. \"en\", \"fr\", \"en-US\") */\n code: string;\n /** Human-readable display name resolved via Intl.DisplayNames */\n displayName: string;\n /** Flag emoji or globe emoji for the language */\n emoji: string;\n}\n\n/**\n * Render props exposed to consumers when using the render-prop pattern.\n */\nexport interface LanguageSwitcherRenderProps {\n /** The currently active language code */\n currentLanguage: string;\n /** Whether a language switch is in progress */\n isLoading: boolean;\n /** Resolved language options */\n languages: LanguageOption[];\n /** Call this to switch to a different language */\n onLanguageChange: (language: string) => void;\n}\n\nexport interface BaseLanguageSwitcherProps {\n /**\n * Render-props callback. When provided, the default dropdown UI is replaced with\n * whatever JSX the callback returns.\n *\n * @example\n * ```tsx\n * <BaseLanguageSwitcher {...props}>\n * {({languages, currentLanguage, onLanguageChange}) => (\n * <select value={currentLanguage} onChange={e => onLanguageChange(e.target.value)}>\n * {languages.map(l => <option key={l.code} value={l.code}>{l.emoji} {l.displayName}</option>)}\n * </select>\n * )}\n * </BaseLanguageSwitcher>\n * ```\n */\n children?: (props: LanguageSwitcherRenderProps) => ReactNode;\n /** Additional CSS class applied to the root element (default UI only) */\n className?: string;\n /** The currently active language code */\n currentLanguage: string;\n /** Whether a language switch is in progress */\n isLoading?: boolean;\n /** Resolved language options to display */\n languages: LanguageOption[];\n /** Called when the user selects a language */\n onLanguageChange: (language: string) => void;\n}\n\n/**\n * Pure-UI language switcher dropdown.\n * Accepts resolved `LanguageOption[]` (code + displayName + emoji) and delegates\n * language switching to the `onLanguageChange` callback.\n *\n * Supports render props for full UI customisation.\n */\nconst BaseLanguageSwitcher: FC<BaseLanguageSwitcherProps> = ({\n children,\n className,\n currentLanguage,\n isLoading = false,\n languages,\n onLanguageChange,\n}: BaseLanguageSwitcherProps): ReactElement => {\n const {theme, colorScheme} = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme);\n const [isOpen, setIsOpen] = useState(false);\n const hasMultipleLanguages: boolean = languages.length > 1;\n\n useEffect(() => {\n if (!hasMultipleLanguages && isOpen) {\n setIsOpen(false);\n }\n }, [hasMultipleLanguages, isOpen]);\n\n const {refs, floatingStyles, context} = useFloating({\n middleware: [offset(4), flip(), shift()],\n onOpenChange: setIsOpen,\n open: isOpen,\n whileElementsMounted: autoUpdate,\n });\n\n const click: ReturnType<typeof useClick> = useClick(context, {enabled: hasMultipleLanguages});\n const dismiss: ReturnType<typeof useDismiss> = useDismiss(context, {enabled: hasMultipleLanguages});\n const role: ReturnType<typeof useRole> = useRole(context, {enabled: hasMultipleLanguages, role: 'listbox'});\n const {getReferenceProps, getFloatingProps} = useInteractions([click, dismiss, role]);\n\n const currentOption: LanguageOption | undefined = languages.find((l: LanguageOption) => l.code === currentLanguage);\n\n if (children) {\n return (\n <>\n {children({\n currentLanguage,\n isLoading,\n languages,\n onLanguageChange,\n })}\n </>\n );\n }\n\n return (\n <div className={cx(styles['root'], className)}>\n <button\n ref={refs.setReference}\n type=\"button\"\n disabled={isLoading}\n aria-label=\"Switch language\"\n {...getReferenceProps()}\n className={styles['trigger']}\n >\n {currentOption && <span className={styles['triggerEmoji']}>{currentOption.emoji}</span>}\n <span className={styles['triggerLabel']}>{currentOption?.displayName ?? currentLanguage}</span>\n {hasMultipleLanguages && <ChevronDown />}\n </button>\n\n {isOpen && hasMultipleLanguages && (\n <FloatingPortal>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n className={styles['content']}\n role=\"listbox\"\n aria-label=\"Select language\"\n >\n {languages.map((lang: LanguageOption) => (\n <button\n key={lang.code}\n type=\"button\"\n role=\"option\"\n aria-selected={lang.code === currentLanguage}\n className={cx(styles['option'], lang.code === currentLanguage && styles['optionActive'])}\n onClick={() => {\n onLanguageChange(lang.code);\n setIsOpen(false);\n }}\n >\n <span className={styles['optionEmoji']}>{lang.emoji}</span>\n <span className={styles['optionLabel']}>{lang.displayName}</span>\n {lang.code === currentLanguage && (\n <span className={styles['checkIcon']}>\n <Check />\n </span>\n )}\n </button>\n ))}\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </div>\n );\n};\n\nexport default BaseLanguageSwitcher;\n"],"mappings":";;;;;;;;;;;;;;;;;AAqFA,MAAMA,wBAAuD,EAC3D,UACA,WACA,iBACA,YAAY,OACZ,WACA,uBAC6C;CAC7C,MAAM,EAAC,OAAO,gBAAeC,kBAAU;CACvC,MAAMC,SAAiCC,oCAAU,OAAO,YAAY;CACpE,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAMC,uBAAgC,UAAU,SAAS;AAEzD,iBAAgB;AACd,MAAI,CAAC,wBAAwB,OAC3B,WAAU,MAAM;IAEjB,CAAC,sBAAsB,OAAO,CAAC;CAElC,MAAM,EAAC,MAAM,gBAAgB,YAAW,YAAY;EAClD,YAAY;GAAC,OAAO,EAAE;GAAE,MAAM;GAAE,OAAO;GAAC;EACxC,cAAc;EACd,MAAM;EACN,sBAAsB;EACvB,CAAC;CAKF,MAAM,EAAC,mBAAmB,qBAAoB,gBAAgB;EAHnB,SAAS,SAAS,EAAC,SAAS,sBAAqB,CAAC;EAC9C,WAAW,SAAS,EAAC,SAAS,sBAAqB,CAAC;EAC1D,QAAQ,SAAS;GAAC,SAAS;GAAsB,MAAM;GAAU,CAAC;EACvB,CAAC;CAErF,MAAMC,gBAA4C,UAAU,MAAM,MAAsB,EAAE,SAAS,gBAAgB;AAEnH,KAAI,SACF,QACE,0CACG,SAAS;EACR;EACA;EACA;EACA;EACD,CAAC,GACD;AAIP,QACE,qBAAC;EAAI,WAAW,GAAG,OAAO,SAAS,UAAU;aAC3C,qBAAC;GACC,KAAK,KAAK;GACV,MAAK;GACL,UAAU;GACV,cAAW;GACX,GAAI,mBAAmB;GACvB,WAAW,OAAO;;IAEjB,iBAAiB,oBAAC;KAAK,WAAW,OAAO;eAAkB,cAAc;MAAa;IACvF,oBAAC;KAAK,WAAW,OAAO;eAAkB,eAAe,eAAe;MAAuB;IAC9F,wBAAwB,oBAACC,wBAAc;;IACjC,EAER,UAAU,wBACT,oBAAC,4BACC,oBAAC;GAA8B;GAAS,OAAO;aAC7C,oBAAC;IACC,KAAK,KAAK;IACV,OAAO;IACP,GAAI,kBAAkB;IACtB,WAAW,OAAO;IAClB,MAAK;IACL,cAAW;cAEV,UAAU,KAAK,SACd,qBAAC;KAEC,MAAK;KACL,MAAK;KACL,iBAAe,KAAK,SAAS;KAC7B,WAAW,GAAG,OAAO,WAAW,KAAK,SAAS,mBAAmB,OAAO,gBAAgB;KACxF,eAAe;AACb,uBAAiB,KAAK,KAAK;AAC3B,gBAAU,MAAM;;;MAGlB,oBAAC;OAAK,WAAW,OAAO;iBAAiB,KAAK;QAAa;MAC3D,oBAAC;OAAK,WAAW,OAAO;iBAAiB,KAAK;QAAmB;MAChE,KAAK,SAAS,mBACb,oBAAC;OAAK,WAAW,OAAO;iBACtB,oBAACC,kBAAQ;QACJ;;OAfJ,KAAK,KAiBH,CACT;KACE;IACe,GACR;GAEf;;AAIV,mCAAe"}
@@ -1,20 +1,3 @@
1
- /**
2
- * Copyright (c) 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 { Theme } from '@thunderid/browser';
19
2
  declare const useStyles: (theme: Theme, colorScheme: string) => Record<string, string>;
20
3
  export default useStyles;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLanguageSwitcher.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAqHxE,CAAC;AAEL,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"BaseLanguageSwitcher.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAqHxE,CAAC;AAEL,eAAe,SAAS,CAAC"}