@thunderid/react 0.3.0 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (672) hide show
  1. package/dist/ThunderIDReactClient.d.ts +4 -8
  2. package/dist/ThunderIDReactClient.d.ts.map +1 -1
  3. package/dist/ThunderIDReactClient.js +6 -73
  4. package/dist/ThunderIDReactClient.js.map +1 -1
  5. package/dist/cjs/ThunderIDReactClient.cjs +5 -72
  6. package/dist/cjs/ThunderIDReactClient.cjs.map +1 -1
  7. package/dist/cjs/components/actions/SignInButton/SignInButton.cjs.map +1 -1
  8. package/dist/cjs/components/adapters/Consent.cjs.map +1 -1
  9. package/dist/cjs/components/adapters/ConsentCheckboxList.cjs +1 -1
  10. package/dist/cjs/components/adapters/ConsentCheckboxList.cjs.map +1 -1
  11. package/dist/cjs/components/auth/Callback/Callback.cjs +1 -1
  12. package/dist/cjs/components/auth/Callback/Callback.cjs.map +1 -1
  13. package/dist/cjs/components/auth/Callback/TokenCallback.cjs +3 -3
  14. package/dist/cjs/components/auth/Callback/TokenCallback.cjs.map +1 -1
  15. package/dist/cjs/components/factories/FieldFactory.cjs +2 -2
  16. package/dist/cjs/components/factories/FieldFactory.cjs.map +1 -1
  17. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs +1 -1
  18. package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs +57 -0
  19. package/dist/cjs/components/presentation/UserAvatar/BaseUserAvatar.cjs.map +1 -0
  20. package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs +36 -0
  21. package/dist/cjs/components/presentation/UserAvatar/UserAvatar.cjs.map +1 -0
  22. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs +6 -5
  23. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs.map +1 -1
  24. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.cjs +3 -3
  25. package/dist/cjs/components/presentation/auth/AcceptInvite/{v2/AcceptInvite.cjs → AcceptInvite.cjs} +2 -2
  26. package/dist/cjs/components/presentation/auth/AcceptInvite/AcceptInvite.cjs.map +1 -0
  27. package/dist/cjs/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.cjs → BaseAcceptInvite.cjs} +47 -18
  28. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -0
  29. package/dist/cjs/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.styles.cjs → BaseAcceptInvite.styles.cjs} +2 -2
  30. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs.map +1 -0
  31. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs +49 -43
  32. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
  33. package/dist/cjs/components/presentation/auth/InviteUser/{v2/BaseInviteUser.cjs → BaseInviteUser.cjs} +44 -15
  34. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs.map +1 -0
  35. package/dist/cjs/components/presentation/auth/InviteUser/{v2/BaseInviteUser.styles.cjs → BaseInviteUser.styles.cjs} +2 -2
  36. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs.map +1 -0
  37. package/dist/cjs/components/presentation/auth/InviteUser/{v2/InviteUser.cjs → InviteUser.cjs} +3 -3
  38. package/dist/cjs/components/presentation/auth/InviteUser/InviteUser.cjs.map +1 -0
  39. package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs +389 -8
  40. package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs.map +1 -1
  41. package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs +51 -22
  42. package/dist/cjs/components/presentation/auth/Recovery/Recovery.cjs.map +1 -1
  43. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs +346 -8
  44. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs.map +1 -1
  45. package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs +547 -36
  46. package/dist/cjs/components/presentation/auth/SignIn/SignIn.cjs.map +1 -1
  47. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs +691 -8
  48. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs.map +1 -1
  49. package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs +66 -76
  50. package/dist/cjs/components/presentation/auth/SignUp/SignUp.cjs.map +1 -1
  51. package/dist/cjs/components/primitives/Alert/Alert.cjs +1 -1
  52. package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs +1 -1
  53. package/dist/cjs/components/primitives/FormControl/FormControl.cjs +1 -1
  54. package/dist/cjs/components/primitives/Toggle/Toggle.cjs +1 -1
  55. package/dist/cjs/contexts/ComponentRenderer/ComponentRendererContext.cjs.map +1 -1
  56. package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs +5 -7
  57. package/dist/cjs/contexts/FlowMeta/FlowMetaProvider.cjs.map +1 -1
  58. package/dist/cjs/contexts/Theme/ThemeContext.cjs.map +1 -1
  59. package/dist/cjs/contexts/Theme/ThemeProvider.cjs +73 -37
  60. package/dist/cjs/contexts/Theme/ThemeProvider.cjs.map +1 -1
  61. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +0 -3
  62. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  63. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +14 -93
  64. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  65. package/dist/cjs/hooks/{v2/useOAuthCallback.cjs → useOAuthCallback.cjs} +2 -2
  66. package/dist/cjs/hooks/useOAuthCallback.cjs.map +1 -0
  67. package/dist/cjs/index.cjs +51 -99
  68. package/dist/cjs/utils/{v2/buildThemeConfigFromFlowMeta.cjs → buildThemeConfigFromFlowMeta.cjs} +1 -1
  69. package/dist/cjs/utils/buildThemeConfigFromFlowMeta.cjs.map +1 -0
  70. package/dist/cjs/utils/{v2/flowTransformer.cjs → flowTransformer.cjs} +1 -1
  71. package/dist/cjs/utils/flowTransformer.cjs.map +1 -0
  72. package/dist/cjs/utils/{v2/getAuthComponentHeadings.cjs → getAuthComponentHeadings.cjs} +1 -1
  73. package/dist/cjs/utils/getAuthComponentHeadings.cjs.map +1 -0
  74. package/dist/cjs/utils/{v2/passkey.cjs → passkey.cjs} +2 -2
  75. package/dist/cjs/utils/passkey.cjs.map +1 -0
  76. package/dist/cjs/utils/{v2/resolveTranslationsInArray.cjs → resolveTranslationsInArray.cjs} +1 -1
  77. package/dist/cjs/utils/resolveTranslationsInArray.cjs.map +1 -0
  78. package/dist/cjs/utils/{v2/resolveTranslationsInObject.cjs → resolveTranslationsInObject.cjs} +2 -2
  79. package/dist/cjs/utils/resolveTranslationsInObject.cjs.map +1 -0
  80. package/dist/components/actions/SignInButton/SignInButton.d.ts.map +1 -1
  81. package/dist/components/actions/SignInButton/SignInButton.js.map +1 -1
  82. package/dist/components/adapters/Consent.d.ts +1 -1
  83. package/dist/components/adapters/Consent.d.ts.map +1 -1
  84. package/dist/components/adapters/Consent.js.map +1 -1
  85. package/dist/components/adapters/ConsentCheckboxList.d.ts +1 -1
  86. package/dist/components/adapters/ConsentCheckboxList.d.ts.map +1 -1
  87. package/dist/components/adapters/ConsentCheckboxList.js +1 -1
  88. package/dist/components/adapters/ConsentCheckboxList.js.map +1 -1
  89. package/dist/components/auth/Callback/Callback.d.ts +1 -1
  90. package/dist/components/auth/Callback/Callback.js +1 -1
  91. package/dist/components/auth/Callback/Callback.js.map +1 -1
  92. package/dist/components/auth/Callback/TokenCallback.js +4 -4
  93. package/dist/components/auth/Callback/TokenCallback.js.map +1 -1
  94. package/dist/components/factories/FieldFactory.d.ts +2 -2
  95. package/dist/components/factories/FieldFactory.js +2 -2
  96. package/dist/components/factories/FieldFactory.js.map +1 -1
  97. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
  98. package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts +50 -0
  99. package/dist/components/presentation/UserAvatar/BaseUserAvatar.d.ts.map +1 -0
  100. package/dist/components/presentation/UserAvatar/BaseUserAvatar.js +55 -0
  101. package/dist/components/presentation/UserAvatar/BaseUserAvatar.js.map +1 -0
  102. package/dist/components/presentation/UserAvatar/UserAvatar.d.ts +46 -0
  103. package/dist/components/presentation/UserAvatar/UserAvatar.d.ts.map +1 -0
  104. package/dist/components/presentation/UserAvatar/UserAvatar.js +34 -0
  105. package/dist/components/presentation/UserAvatar/UserAvatar.js.map +1 -0
  106. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
  107. package/dist/components/presentation/UserDropdown/BaseUserDropdown.js +6 -5
  108. package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
  109. package/dist/components/presentation/UserProfile/BaseUserProfile.js +3 -3
  110. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.d.ts.map +1 -0
  111. package/dist/components/presentation/auth/AcceptInvite/{v2/AcceptInvite.js → AcceptInvite.js} +1 -1
  112. package/dist/components/presentation/auth/AcceptInvite/AcceptInvite.js.map +1 -0
  113. package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.d.ts → BaseAcceptInvite.d.ts} +3 -2
  114. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -0
  115. package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.js → BaseAcceptInvite.js} +45 -17
  116. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -0
  117. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts.map +1 -0
  118. package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.styles.js → BaseAcceptInvite.styles.js} +1 -1
  119. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js.map +1 -0
  120. package/dist/components/presentation/auth/AcceptInvite/index.d.ts +4 -4
  121. package/dist/components/presentation/auth/AcceptInvite/index.d.ts.map +1 -1
  122. package/dist/components/presentation/auth/AuthOptionFactory.d.ts +2 -2
  123. package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
  124. package/dist/components/presentation/auth/AuthOptionFactory.js +50 -44
  125. package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
  126. package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.d.ts → BaseInviteUser.d.ts} +3 -2
  127. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts.map +1 -0
  128. package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.js → BaseInviteUser.js} +44 -15
  129. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js.map +1 -0
  130. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts.map +1 -0
  131. package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.styles.js → BaseInviteUser.styles.js} +1 -1
  132. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js.map +1 -0
  133. package/dist/components/presentation/auth/InviteUser/InviteUser.d.ts.map +1 -0
  134. package/dist/components/presentation/auth/InviteUser/{v2/InviteUser.js → InviteUser.js} +2 -2
  135. package/dist/components/presentation/auth/InviteUser/InviteUser.js.map +1 -0
  136. package/dist/components/presentation/auth/InviteUser/index.d.ts +4 -4
  137. package/dist/components/presentation/auth/InviteUser/index.d.ts.map +1 -1
  138. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts +63 -4
  139. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts.map +1 -1
  140. package/dist/components/presentation/auth/Recovery/BaseRecovery.js +389 -10
  141. package/dist/components/presentation/auth/Recovery/BaseRecovery.js.map +1 -1
  142. package/dist/components/presentation/auth/Recovery/Recovery.d.ts +21 -22
  143. package/dist/components/presentation/auth/Recovery/Recovery.d.ts.map +1 -1
  144. package/dist/components/presentation/auth/Recovery/Recovery.js +51 -23
  145. package/dist/components/presentation/auth/Recovery/Recovery.js.map +1 -1
  146. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts +213 -6
  147. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts.map +1 -1
  148. package/dist/components/presentation/auth/SignIn/BaseSignIn.js +346 -10
  149. package/dist/components/presentation/auth/SignIn/BaseSignIn.js.map +1 -1
  150. package/dist/components/presentation/auth/SignIn/SignIn.d.ts +122 -13
  151. package/dist/components/presentation/auth/SignIn/SignIn.d.ts.map +1 -1
  152. package/dist/components/presentation/auth/SignIn/SignIn.js +548 -38
  153. package/dist/components/presentation/auth/SignIn/SignIn.js.map +1 -1
  154. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts +164 -6
  155. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  156. package/dist/components/presentation/auth/SignUp/BaseSignUp.js +691 -10
  157. package/dist/components/presentation/auth/SignUp/BaseSignUp.js.map +1 -1
  158. package/dist/components/presentation/auth/SignUp/SignUp.d.ts +15 -74
  159. package/dist/components/presentation/auth/SignUp/SignUp.d.ts.map +1 -1
  160. package/dist/components/presentation/auth/SignUp/SignUp.js +67 -77
  161. package/dist/components/presentation/auth/SignUp/SignUp.js.map +1 -1
  162. package/dist/components/primitives/Alert/Alert.js +1 -1
  163. package/dist/components/primitives/Checkbox/Checkbox.js +1 -1
  164. package/dist/components/primitives/FormControl/FormControl.js +1 -1
  165. package/dist/components/primitives/Toggle/Toggle.js +1 -1
  166. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts +1 -1
  167. package/dist/contexts/ComponentRenderer/ComponentRendererContext.d.ts.map +1 -1
  168. package/dist/contexts/ComponentRenderer/ComponentRendererContext.js.map +1 -1
  169. package/dist/contexts/FlowMeta/FlowMetaProvider.d.ts.map +1 -1
  170. package/dist/contexts/FlowMeta/FlowMetaProvider.js +6 -8
  171. package/dist/contexts/FlowMeta/FlowMetaProvider.js.map +1 -1
  172. package/dist/contexts/Theme/ThemeContext.d.ts +0 -12
  173. package/dist/contexts/Theme/ThemeContext.d.ts.map +1 -1
  174. package/dist/contexts/Theme/ThemeContext.js.map +1 -1
  175. package/dist/contexts/Theme/ThemeProvider.d.ts +17 -41
  176. package/dist/contexts/Theme/ThemeProvider.d.ts.map +1 -1
  177. package/dist/contexts/Theme/ThemeProvider.js +73 -38
  178. package/dist/contexts/Theme/ThemeProvider.js.map +1 -1
  179. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +2 -4
  180. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  181. package/dist/contexts/ThunderID/ThunderIDContext.js +0 -3
  182. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  183. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  184. package/dist/contexts/ThunderID/ThunderIDProvider.js +15 -94
  185. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  186. package/dist/hooks/useOAuthCallback.d.ts.map +1 -0
  187. package/dist/hooks/{v2/useOAuthCallback.js → useOAuthCallback.js} +1 -1
  188. package/dist/hooks/useOAuthCallback.js.map +1 -0
  189. package/dist/index.d.ts +7 -49
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.js +30 -59
  192. package/dist/utils/buildThemeConfigFromFlowMeta.d.ts.map +1 -0
  193. package/dist/utils/{v2/buildThemeConfigFromFlowMeta.js → buildThemeConfigFromFlowMeta.js} +1 -1
  194. package/dist/utils/buildThemeConfigFromFlowMeta.js.map +1 -0
  195. package/dist/utils/{v2/flowTransformer.d.ts → flowTransformer.d.ts} +3 -3
  196. package/dist/utils/flowTransformer.d.ts.map +1 -0
  197. package/dist/utils/{v2/flowTransformer.js → flowTransformer.js} +1 -1
  198. package/dist/utils/flowTransformer.js.map +1 -0
  199. package/dist/utils/{v2/getAuthComponentHeadings.d.ts → getAuthComponentHeadings.d.ts} +1 -1
  200. package/dist/utils/getAuthComponentHeadings.d.ts.map +1 -0
  201. package/dist/utils/{v2/getAuthComponentHeadings.js → getAuthComponentHeadings.js} +1 -1
  202. package/dist/utils/getAuthComponentHeadings.js.map +1 -0
  203. package/dist/utils/passkey.d.ts.map +1 -0
  204. package/dist/utils/{v2/passkey.js → passkey.js} +1 -1
  205. package/dist/utils/passkey.js.map +1 -0
  206. package/dist/utils/{v2/resolveTranslationsInArray.d.ts → resolveTranslationsInArray.d.ts} +1 -1
  207. package/dist/utils/resolveTranslationsInArray.d.ts.map +1 -0
  208. package/dist/utils/{v2/resolveTranslationsInArray.js → resolveTranslationsInArray.js} +1 -1
  209. package/dist/utils/resolveTranslationsInArray.js.map +1 -0
  210. package/dist/utils/{v2/resolveTranslationsInObject.d.ts → resolveTranslationsInObject.d.ts} +1 -1
  211. package/dist/utils/resolveTranslationsInObject.d.ts.map +1 -0
  212. package/dist/utils/{v2/resolveTranslationsInObject.js → resolveTranslationsInObject.js} +1 -1
  213. package/dist/utils/resolveTranslationsInObject.js.map +1 -0
  214. package/package.json +10 -10
  215. package/dist/api/createOrganization.d.ts +0 -86
  216. package/dist/api/createOrganization.d.ts.map +0 -1
  217. package/dist/api/createOrganization.js +0 -80
  218. package/dist/api/createOrganization.js.map +0 -1
  219. package/dist/api/getAllOrganizations.d.ts +0 -78
  220. package/dist/api/getAllOrganizations.d.ts.map +0 -1
  221. package/dist/api/getAllOrganizations.js +0 -71
  222. package/dist/api/getAllOrganizations.js.map +0 -1
  223. package/dist/api/getMeOrganizations.d.ts +0 -82
  224. package/dist/api/getMeOrganizations.d.ts.map +0 -1
  225. package/dist/api/getMeOrganizations.js +0 -75
  226. package/dist/api/getMeOrganizations.js.map +0 -1
  227. package/dist/api/getOrganization.d.ts +0 -74
  228. package/dist/api/getOrganization.d.ts.map +0 -1
  229. package/dist/api/getOrganization.js +0 -67
  230. package/dist/api/getOrganization.js.map +0 -1
  231. package/dist/api/getSchemas.d.ts +0 -72
  232. package/dist/api/getSchemas.d.ts.map +0 -1
  233. package/dist/api/getSchemas.js +0 -65
  234. package/dist/api/getSchemas.js.map +0 -1
  235. package/dist/api/updateOrganization.d.ts +0 -81
  236. package/dist/api/updateOrganization.d.ts.map +0 -1
  237. package/dist/api/updateOrganization.js +0 -74
  238. package/dist/api/updateOrganization.js.map +0 -1
  239. package/dist/cjs/api/createOrganization.cjs +0 -82
  240. package/dist/cjs/api/createOrganization.cjs.map +0 -1
  241. package/dist/cjs/api/getAllOrganizations.cjs +0 -73
  242. package/dist/cjs/api/getAllOrganizations.cjs.map +0 -1
  243. package/dist/cjs/api/getMeOrganizations.cjs +0 -77
  244. package/dist/cjs/api/getMeOrganizations.cjs.map +0 -1
  245. package/dist/cjs/api/getOrganization.cjs +0 -69
  246. package/dist/cjs/api/getOrganization.cjs.map +0 -1
  247. package/dist/cjs/api/getSchemas.cjs +0 -67
  248. package/dist/cjs/api/getSchemas.cjs.map +0 -1
  249. package/dist/cjs/api/updateOrganization.cjs +0 -76
  250. package/dist/cjs/api/updateOrganization.cjs.map +0 -1
  251. package/dist/cjs/components/adapters/CheckboxInput.cjs +0 -30
  252. package/dist/cjs/components/adapters/CheckboxInput.cjs.map +0 -1
  253. package/dist/cjs/components/adapters/DateInput.cjs +0 -30
  254. package/dist/cjs/components/adapters/DateInput.cjs.map +0 -1
  255. package/dist/cjs/components/adapters/DividerComponent.cjs +0 -24
  256. package/dist/cjs/components/adapters/DividerComponent.cjs.map +0 -1
  257. package/dist/cjs/components/adapters/EmailInput.cjs +0 -30
  258. package/dist/cjs/components/adapters/EmailInput.cjs.map +0 -1
  259. package/dist/cjs/components/adapters/FormContainer.cjs +0 -36
  260. package/dist/cjs/components/adapters/FormContainer.cjs.map +0 -1
  261. package/dist/cjs/components/adapters/NumberInput.cjs +0 -30
  262. package/dist/cjs/components/adapters/NumberInput.cjs.map +0 -1
  263. package/dist/cjs/components/adapters/PasswordInput.cjs +0 -52
  264. package/dist/cjs/components/adapters/PasswordInput.cjs.map +0 -1
  265. package/dist/cjs/components/adapters/SelectInput.cjs +0 -36
  266. package/dist/cjs/components/adapters/SelectInput.cjs.map +0 -1
  267. package/dist/cjs/components/adapters/SubmitButton.cjs +0 -61
  268. package/dist/cjs/components/adapters/SubmitButton.cjs.map +0 -1
  269. package/dist/cjs/components/adapters/TelephoneInput.cjs +0 -32
  270. package/dist/cjs/components/adapters/TelephoneInput.cjs.map +0 -1
  271. package/dist/cjs/components/adapters/TextInput.cjs +0 -30
  272. package/dist/cjs/components/adapters/TextInput.cjs.map +0 -1
  273. package/dist/cjs/components/adapters/Typography.cjs +0 -60
  274. package/dist/cjs/components/adapters/Typography.cjs.map +0 -1
  275. package/dist/cjs/components/control/OrganizationContext/OrganizationContext.cjs +0 -34
  276. package/dist/cjs/components/control/OrganizationContext/OrganizationContext.cjs.map +0 -1
  277. package/dist/cjs/components/control/OrganizationContext/OrganizationContextController.cjs +0 -58
  278. package/dist/cjs/components/control/OrganizationContext/OrganizationContextController.cjs.map +0 -1
  279. package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.cjs +0 -183
  280. package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.cjs.map +0 -1
  281. package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.styles.cjs +0 -150
  282. package/dist/cjs/components/presentation/CreateOrganization/BaseCreateOrganization.styles.cjs.map +0 -1
  283. package/dist/cjs/components/presentation/CreateOrganization/CreateOrganization.cjs +0 -90
  284. package/dist/cjs/components/presentation/CreateOrganization/CreateOrganization.cjs.map +0 -1
  285. package/dist/cjs/components/presentation/Organization/BaseOrganization.cjs +0 -41
  286. package/dist/cjs/components/presentation/Organization/BaseOrganization.cjs.map +0 -1
  287. package/dist/cjs/components/presentation/Organization/Organization.cjs +0 -49
  288. package/dist/cjs/components/presentation/Organization/Organization.cjs.map +0 -1
  289. package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.cjs +0 -257
  290. package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.cjs.map +0 -1
  291. package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.styles.cjs +0 -236
  292. package/dist/cjs/components/presentation/OrganizationList/BaseOrganizationList.styles.cjs.map +0 -1
  293. package/dist/cjs/components/presentation/OrganizationList/OrganizationList.cjs +0 -86
  294. package/dist/cjs/components/presentation/OrganizationList/OrganizationList.cjs.map +0 -1
  295. package/dist/cjs/components/presentation/OrganizationList/OrganizationList.styles.cjs +0 -75
  296. package/dist/cjs/components/presentation/OrganizationList/OrganizationList.styles.cjs.map +0 -1
  297. package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.cjs +0 -328
  298. package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.cjs.map +0 -1
  299. package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.cjs +0 -166
  300. package/dist/cjs/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.cjs.map +0 -1
  301. package/dist/cjs/components/presentation/OrganizationProfile/OrganizationProfile.cjs +0 -126
  302. package/dist/cjs/components/presentation/OrganizationProfile/OrganizationProfile.cjs.map +0 -1
  303. package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.cjs +0 -288
  304. package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.cjs.map +0 -1
  305. package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs +0 -237
  306. package/dist/cjs/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.cjs.map +0 -1
  307. package/dist/cjs/components/presentation/OrganizationSwitcher/OrganizationSwitcher.cjs +0 -127
  308. package/dist/cjs/components/presentation/OrganizationSwitcher/OrganizationSwitcher.cjs.map +0 -1
  309. package/dist/cjs/components/presentation/auth/AcceptInvite/v2/AcceptInvite.cjs.map +0 -1
  310. package/dist/cjs/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.cjs.map +0 -1
  311. package/dist/cjs/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.cjs.map +0 -1
  312. package/dist/cjs/components/presentation/auth/InviteUser/v2/BaseInviteUser.cjs.map +0 -1
  313. package/dist/cjs/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.cjs.map +0 -1
  314. package/dist/cjs/components/presentation/auth/InviteUser/v2/InviteUser.cjs.map +0 -1
  315. package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.cjs +0 -183
  316. package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.cjs.map +0 -1
  317. package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.cjs +0 -128
  318. package/dist/cjs/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.cjs.map +0 -1
  319. package/dist/cjs/components/presentation/auth/Recovery/v1/BaseRecovery.cjs +0 -293
  320. package/dist/cjs/components/presentation/auth/Recovery/v1/BaseRecovery.cjs.map +0 -1
  321. package/dist/cjs/components/presentation/auth/Recovery/v1/Recovery.cjs +0 -43
  322. package/dist/cjs/components/presentation/auth/Recovery/v1/Recovery.cjs.map +0 -1
  323. package/dist/cjs/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.cjs +0 -163
  324. package/dist/cjs/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.cjs.map +0 -1
  325. package/dist/cjs/components/presentation/auth/Recovery/v2/BaseRecovery.cjs +0 -378
  326. package/dist/cjs/components/presentation/auth/Recovery/v2/BaseRecovery.cjs.map +0 -1
  327. package/dist/cjs/components/presentation/auth/Recovery/v2/Recovery.cjs +0 -78
  328. package/dist/cjs/components/presentation/auth/Recovery/v2/Recovery.cjs.map +0 -1
  329. package/dist/cjs/components/presentation/auth/SignIn/v1/BaseSignIn.cjs +0 -734
  330. package/dist/cjs/components/presentation/auth/SignIn/v1/BaseSignIn.cjs.map +0 -1
  331. package/dist/cjs/components/presentation/auth/SignIn/v1/options/EmailOtp.cjs +0 -68
  332. package/dist/cjs/components/presentation/auth/SignIn/v1/options/EmailOtp.cjs.map +0 -1
  333. package/dist/cjs/components/presentation/auth/SignIn/v1/options/IdentifierFirst.cjs +0 -59
  334. package/dist/cjs/components/presentation/auth/SignIn/v1/options/IdentifierFirst.cjs.map +0 -1
  335. package/dist/cjs/components/presentation/auth/SignIn/v1/options/MultiOptionButton.cjs +0 -139
  336. package/dist/cjs/components/presentation/auth/SignIn/v1/options/MultiOptionButton.cjs.map +0 -1
  337. package/dist/cjs/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.cjs +0 -147
  338. package/dist/cjs/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.cjs.map +0 -1
  339. package/dist/cjs/components/presentation/auth/SignIn/v1/options/SmsOtp.cjs +0 -68
  340. package/dist/cjs/components/presentation/auth/SignIn/v1/options/SmsOtp.cjs.map +0 -1
  341. package/dist/cjs/components/presentation/auth/SignIn/v1/options/SocialButton.cjs +0 -38
  342. package/dist/cjs/components/presentation/auth/SignIn/v1/options/SocialButton.cjs.map +0 -1
  343. package/dist/cjs/components/presentation/auth/SignIn/v1/options/Totp.cjs +0 -68
  344. package/dist/cjs/components/presentation/auth/SignIn/v1/options/Totp.cjs.map +0 -1
  345. package/dist/cjs/components/presentation/auth/SignIn/v1/options/UsernamePassword.cjs +0 -60
  346. package/dist/cjs/components/presentation/auth/SignIn/v1/options/UsernamePassword.cjs.map +0 -1
  347. package/dist/cjs/components/presentation/auth/SignIn/v2/BaseSignIn.cjs +0 -330
  348. package/dist/cjs/components/presentation/auth/SignIn/v2/BaseSignIn.cjs.map +0 -1
  349. package/dist/cjs/components/presentation/auth/SignIn/v2/SignIn.cjs +0 -560
  350. package/dist/cjs/components/presentation/auth/SignIn/v2/SignIn.cjs.map +0 -1
  351. package/dist/cjs/components/presentation/auth/SignUp/v1/BaseSignUp.cjs +0 -451
  352. package/dist/cjs/components/presentation/auth/SignUp/v1/BaseSignUp.cjs.map +0 -1
  353. package/dist/cjs/components/presentation/auth/SignUp/v1/SignUp.cjs +0 -54
  354. package/dist/cjs/components/presentation/auth/SignUp/v1/SignUp.cjs.map +0 -1
  355. package/dist/cjs/components/presentation/auth/SignUp/v1/SignUpOptionFactory.cjs +0 -164
  356. package/dist/cjs/components/presentation/auth/SignUp/v1/SignUpOptionFactory.cjs.map +0 -1
  357. package/dist/cjs/components/presentation/auth/SignUp/v2/BaseSignUp.cjs +0 -679
  358. package/dist/cjs/components/presentation/auth/SignUp/v2/BaseSignUp.cjs.map +0 -1
  359. package/dist/cjs/components/presentation/auth/SignUp/v2/SignUp.cjs +0 -80
  360. package/dist/cjs/components/presentation/auth/SignUp/v2/SignUp.cjs.map +0 -1
  361. package/dist/cjs/components/primitives/Icons/Building.cjs +0 -75
  362. package/dist/cjs/components/primitives/Icons/Building.cjs.map +0 -1
  363. package/dist/cjs/contexts/Branding/BrandingContext.cjs +0 -12
  364. package/dist/cjs/contexts/Branding/BrandingContext.cjs.map +0 -1
  365. package/dist/cjs/contexts/Branding/BrandingProvider.cjs +0 -96
  366. package/dist/cjs/contexts/Branding/BrandingProvider.cjs.map +0 -1
  367. package/dist/cjs/contexts/Branding/useBrandingContext.cjs +0 -40
  368. package/dist/cjs/contexts/Branding/useBrandingContext.cjs.map +0 -1
  369. package/dist/cjs/contexts/Organization/OrganizationContext.cjs +0 -27
  370. package/dist/cjs/contexts/Organization/OrganizationContext.cjs.map +0 -1
  371. package/dist/cjs/contexts/Organization/OrganizationProvider.cjs +0 -97
  372. package/dist/cjs/contexts/Organization/OrganizationProvider.cjs.map +0 -1
  373. package/dist/cjs/contexts/Organization/useOrganization.cjs +0 -100
  374. package/dist/cjs/contexts/Organization/useOrganization.cjs.map +0 -1
  375. package/dist/cjs/contexts/Theme/v1/ThemeProvider.cjs +0 -190
  376. package/dist/cjs/contexts/Theme/v1/ThemeProvider.cjs.map +0 -1
  377. package/dist/cjs/contexts/Theme/v2/ThemeProvider.cjs +0 -108
  378. package/dist/cjs/contexts/Theme/v2/ThemeProvider.cjs.map +0 -1
  379. package/dist/cjs/hooks/useBranding.cjs +0 -71
  380. package/dist/cjs/hooks/useBranding.cjs.map +0 -1
  381. package/dist/cjs/hooks/v2/useOAuthCallback.cjs.map +0 -1
  382. package/dist/cjs/utils/v2/buildThemeConfigFromFlowMeta.cjs.map +0 -1
  383. package/dist/cjs/utils/v2/flowTransformer.cjs.map +0 -1
  384. package/dist/cjs/utils/v2/getAuthComponentHeadings.cjs.map +0 -1
  385. package/dist/cjs/utils/v2/passkey.cjs.map +0 -1
  386. package/dist/cjs/utils/v2/resolveTranslationsInArray.cjs.map +0 -1
  387. package/dist/cjs/utils/v2/resolveTranslationsInObject.cjs.map +0 -1
  388. package/dist/components/adapters/CheckboxInput.d.ts +0 -25
  389. package/dist/components/adapters/CheckboxInput.d.ts.map +0 -1
  390. package/dist/components/adapters/CheckboxInput.js +0 -28
  391. package/dist/components/adapters/CheckboxInput.js.map +0 -1
  392. package/dist/components/adapters/DateInput.d.ts +0 -25
  393. package/dist/components/adapters/DateInput.d.ts.map +0 -1
  394. package/dist/components/adapters/DateInput.js +0 -28
  395. package/dist/components/adapters/DateInput.js.map +0 -1
  396. package/dist/components/adapters/DividerComponent.d.ts +0 -25
  397. package/dist/components/adapters/DividerComponent.d.ts.map +0 -1
  398. package/dist/components/adapters/DividerComponent.js +0 -22
  399. package/dist/components/adapters/DividerComponent.js.map +0 -1
  400. package/dist/components/adapters/EmailInput.d.ts +0 -25
  401. package/dist/components/adapters/EmailInput.d.ts.map +0 -1
  402. package/dist/components/adapters/EmailInput.js +0 -28
  403. package/dist/components/adapters/EmailInput.js.map +0 -1
  404. package/dist/components/adapters/FormContainer.d.ts +0 -25
  405. package/dist/components/adapters/FormContainer.d.ts.map +0 -1
  406. package/dist/components/adapters/FormContainer.js +0 -34
  407. package/dist/components/adapters/FormContainer.js.map +0 -1
  408. package/dist/components/adapters/NumberInput.d.ts +0 -25
  409. package/dist/components/adapters/NumberInput.d.ts.map +0 -1
  410. package/dist/components/adapters/NumberInput.js +0 -28
  411. package/dist/components/adapters/NumberInput.js.map +0 -1
  412. package/dist/components/adapters/PasswordInput.d.ts +0 -25
  413. package/dist/components/adapters/PasswordInput.d.ts.map +0 -1
  414. package/dist/components/adapters/PasswordInput.js +0 -50
  415. package/dist/components/adapters/PasswordInput.js.map +0 -1
  416. package/dist/components/adapters/SelectInput.d.ts +0 -25
  417. package/dist/components/adapters/SelectInput.d.ts.map +0 -1
  418. package/dist/components/adapters/SelectInput.js +0 -34
  419. package/dist/components/adapters/SelectInput.js.map +0 -1
  420. package/dist/components/adapters/SocialButton.d.ts +0 -25
  421. package/dist/components/adapters/SocialButton.d.ts.map +0 -1
  422. package/dist/components/adapters/SubmitButton.d.ts +0 -25
  423. package/dist/components/adapters/SubmitButton.d.ts.map +0 -1
  424. package/dist/components/adapters/SubmitButton.js +0 -59
  425. package/dist/components/adapters/SubmitButton.js.map +0 -1
  426. package/dist/components/adapters/TelephoneInput.d.ts +0 -25
  427. package/dist/components/adapters/TelephoneInput.d.ts.map +0 -1
  428. package/dist/components/adapters/TelephoneInput.js +0 -30
  429. package/dist/components/adapters/TelephoneInput.js.map +0 -1
  430. package/dist/components/adapters/TextInput.d.ts +0 -25
  431. package/dist/components/adapters/TextInput.d.ts.map +0 -1
  432. package/dist/components/adapters/TextInput.js +0 -28
  433. package/dist/components/adapters/TextInput.js.map +0 -1
  434. package/dist/components/adapters/Typography.d.ts +0 -25
  435. package/dist/components/adapters/Typography.d.ts.map +0 -1
  436. package/dist/components/adapters/Typography.js +0 -58
  437. package/dist/components/adapters/Typography.js.map +0 -1
  438. package/dist/components/control/OrganizationContext/OrganizationContext.d.ts +0 -40
  439. package/dist/components/control/OrganizationContext/OrganizationContext.d.ts.map +0 -1
  440. package/dist/components/control/OrganizationContext/OrganizationContext.js +0 -32
  441. package/dist/components/control/OrganizationContext/OrganizationContext.js.map +0 -1
  442. package/dist/components/control/OrganizationContext/OrganizationContextController.d.ts +0 -35
  443. package/dist/components/control/OrganizationContext/OrganizationContextController.d.ts.map +0 -1
  444. package/dist/components/control/OrganizationContext/OrganizationContextController.js +0 -55
  445. package/dist/components/control/OrganizationContext/OrganizationContextController.js.map +0 -1
  446. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts +0 -60
  447. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts.map +0 -1
  448. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.js +0 -178
  449. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.js.map +0 -1
  450. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.d.ts +0 -27
  451. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.d.ts.map +0 -1
  452. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.js +0 -147
  453. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.styles.js.map +0 -1
  454. package/dist/components/presentation/CreateOrganization/CreateOrganization.d.ts +0 -68
  455. package/dist/components/presentation/CreateOrganization/CreateOrganization.d.ts.map +0 -1
  456. package/dist/components/presentation/CreateOrganization/CreateOrganization.js +0 -87
  457. package/dist/components/presentation/CreateOrganization/CreateOrganization.js.map +0 -1
  458. package/dist/components/presentation/Organization/BaseOrganization.d.ts +0 -67
  459. package/dist/components/presentation/Organization/BaseOrganization.d.ts.map +0 -1
  460. package/dist/components/presentation/Organization/BaseOrganization.js +0 -39
  461. package/dist/components/presentation/Organization/BaseOrganization.js.map +0 -1
  462. package/dist/components/presentation/Organization/Organization.d.ts +0 -67
  463. package/dist/components/presentation/Organization/Organization.d.ts.map +0 -1
  464. package/dist/components/presentation/Organization/Organization.js +0 -47
  465. package/dist/components/presentation/Organization/Organization.js.map +0 -1
  466. package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts +0 -135
  467. package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts.map +0 -1
  468. package/dist/components/presentation/OrganizationList/BaseOrganizationList.js +0 -252
  469. package/dist/components/presentation/OrganizationList/BaseOrganizationList.js.map +0 -1
  470. package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.d.ts +0 -27
  471. package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.d.ts.map +0 -1
  472. package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.js +0 -233
  473. package/dist/components/presentation/OrganizationList/BaseOrganizationList.styles.js.map +0 -1
  474. package/dist/components/presentation/OrganizationList/OrganizationList.d.ts +0 -93
  475. package/dist/components/presentation/OrganizationList/OrganizationList.d.ts.map +0 -1
  476. package/dist/components/presentation/OrganizationList/OrganizationList.js +0 -82
  477. package/dist/components/presentation/OrganizationList/OrganizationList.js.map +0 -1
  478. package/dist/components/presentation/OrganizationList/OrganizationList.styles.d.ts +0 -27
  479. package/dist/components/presentation/OrganizationList/OrganizationList.styles.d.ts.map +0 -1
  480. package/dist/components/presentation/OrganizationList/OrganizationList.styles.js +0 -72
  481. package/dist/components/presentation/OrganizationList/OrganizationList.styles.js.map +0 -1
  482. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts +0 -160
  483. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts.map +0 -1
  484. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.js +0 -323
  485. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.js.map +0 -1
  486. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.d.ts +0 -27
  487. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.d.ts.map +0 -1
  488. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.js +0 -163
  489. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.js.map +0 -1
  490. package/dist/components/presentation/OrganizationProfile/OrganizationProfile.d.ts +0 -120
  491. package/dist/components/presentation/OrganizationProfile/OrganizationProfile.d.ts.map +0 -1
  492. package/dist/components/presentation/OrganizationProfile/OrganizationProfile.js +0 -122
  493. package/dist/components/presentation/OrganizationProfile/OrganizationProfile.js.map +0 -1
  494. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts +0 -149
  495. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts.map +0 -1
  496. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.js +0 -282
  497. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.js.map +0 -1
  498. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.d.ts +0 -27
  499. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.d.ts.map +0 -1
  500. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.js +0 -234
  501. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.js.map +0 -1
  502. package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts +0 -71
  503. package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.d.ts.map +0 -1
  504. package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.js +0 -124
  505. package/dist/components/presentation/OrganizationSwitcher/OrganizationSwitcher.js.map +0 -1
  506. package/dist/components/presentation/auth/AcceptInvite/v2/AcceptInvite.d.ts.map +0 -1
  507. package/dist/components/presentation/auth/AcceptInvite/v2/AcceptInvite.js.map +0 -1
  508. package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.d.ts.map +0 -1
  509. package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.js.map +0 -1
  510. package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.d.ts.map +0 -1
  511. package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.js.map +0 -1
  512. package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.d.ts.map +0 -1
  513. package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.js.map +0 -1
  514. package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.d.ts.map +0 -1
  515. package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.js.map +0 -1
  516. package/dist/components/presentation/auth/InviteUser/v2/InviteUser.d.ts.map +0 -1
  517. package/dist/components/presentation/auth/InviteUser/v2/InviteUser.js.map +0 -1
  518. package/dist/components/presentation/auth/OrganizationUnitPicker/index.d.ts +0 -20
  519. package/dist/components/presentation/auth/OrganizationUnitPicker/index.d.ts.map +0 -1
  520. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.d.ts +0 -30
  521. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.d.ts.map +0 -1
  522. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.js +0 -179
  523. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.js.map +0 -1
  524. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.d.ts +0 -21
  525. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.d.ts.map +0 -1
  526. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.js +0 -125
  527. package/dist/components/presentation/auth/OrganizationUnitPicker/v2/OrganizationUnitPicker.styles.js.map +0 -1
  528. package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.d.ts +0 -74
  529. package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.d.ts.map +0 -1
  530. package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.js +0 -288
  531. package/dist/components/presentation/auth/Recovery/v1/BaseRecovery.js.map +0 -1
  532. package/dist/components/presentation/auth/Recovery/v1/Recovery.d.ts +0 -26
  533. package/dist/components/presentation/auth/Recovery/v1/Recovery.d.ts.map +0 -1
  534. package/dist/components/presentation/auth/Recovery/v1/Recovery.js +0 -40
  535. package/dist/components/presentation/auth/Recovery/v1/Recovery.js.map +0 -1
  536. package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.d.ts +0 -46
  537. package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.d.ts.map +0 -1
  538. package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.js +0 -160
  539. package/dist/components/presentation/auth/Recovery/v1/RecoveryOptionFactory.js.map +0 -1
  540. package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.d.ts +0 -83
  541. package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.d.ts.map +0 -1
  542. package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.js +0 -373
  543. package/dist/components/presentation/auth/Recovery/v2/BaseRecovery.js.map +0 -1
  544. package/dist/components/presentation/auth/Recovery/v2/Recovery.d.ts +0 -56
  545. package/dist/components/presentation/auth/Recovery/v2/Recovery.d.ts.map +0 -1
  546. package/dist/components/presentation/auth/Recovery/v2/Recovery.js +0 -74
  547. package/dist/components/presentation/auth/Recovery/v2/Recovery.js.map +0 -1
  548. package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.d.ts +0 -131
  549. package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.d.ts.map +0 -1
  550. package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.js +0 -729
  551. package/dist/components/presentation/auth/SignIn/v1/BaseSignIn.js.map +0 -1
  552. package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.d.ts +0 -26
  553. package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.d.ts.map +0 -1
  554. package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.js +0 -64
  555. package/dist/components/presentation/auth/SignIn/v1/options/EmailOtp.js.map +0 -1
  556. package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.d.ts +0 -26
  557. package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.d.ts.map +0 -1
  558. package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.js +0 -55
  559. package/dist/components/presentation/auth/SignIn/v1/options/IdentifierFirst.js.map +0 -1
  560. package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.d.ts +0 -27
  561. package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.d.ts.map +0 -1
  562. package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.js +0 -136
  563. package/dist/components/presentation/auth/SignIn/v1/options/MultiOptionButton.js.map +0 -1
  564. package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.d.ts +0 -77
  565. package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.d.ts.map +0 -1
  566. package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.js +0 -143
  567. package/dist/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.js.map +0 -1
  568. package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.d.ts +0 -26
  569. package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.d.ts.map +0 -1
  570. package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.js +0 -64
  571. package/dist/components/presentation/auth/SignIn/v1/options/SmsOtp.js.map +0 -1
  572. package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.d.ts +0 -26
  573. package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.d.ts.map +0 -1
  574. package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.js +0 -36
  575. package/dist/components/presentation/auth/SignIn/v1/options/SocialButton.js.map +0 -1
  576. package/dist/components/presentation/auth/SignIn/v1/options/Totp.d.ts +0 -26
  577. package/dist/components/presentation/auth/SignIn/v1/options/Totp.d.ts.map +0 -1
  578. package/dist/components/presentation/auth/SignIn/v1/options/Totp.js +0 -64
  579. package/dist/components/presentation/auth/SignIn/v1/options/Totp.js.map +0 -1
  580. package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.d.ts +0 -26
  581. package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.d.ts.map +0 -1
  582. package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.js +0 -56
  583. package/dist/components/presentation/auth/SignIn/v1/options/UsernamePassword.js.map +0 -1
  584. package/dist/components/presentation/auth/SignIn/v1/types.d.ts +0 -125
  585. package/dist/components/presentation/auth/SignIn/v1/types.d.ts.map +0 -1
  586. package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.d.ts +0 -222
  587. package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.d.ts.map +0 -1
  588. package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.js +0 -325
  589. package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.js.map +0 -1
  590. package/dist/components/presentation/auth/SignIn/v2/SignIn.d.ts +0 -165
  591. package/dist/components/presentation/auth/SignIn/v2/SignIn.d.ts.map +0 -1
  592. package/dist/components/presentation/auth/SignIn/v2/SignIn.js +0 -556
  593. package/dist/components/presentation/auth/SignIn/v2/SignIn.js.map +0 -1
  594. package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.d.ts +0 -174
  595. package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.d.ts.map +0 -1
  596. package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.js +0 -446
  597. package/dist/components/presentation/auth/SignUp/v1/BaseSignUp.js.map +0 -1
  598. package/dist/components/presentation/auth/SignUp/v1/SignUp.d.ts +0 -39
  599. package/dist/components/presentation/auth/SignUp/v1/SignUp.d.ts.map +0 -1
  600. package/dist/components/presentation/auth/SignUp/v1/SignUp.js +0 -51
  601. package/dist/components/presentation/auth/SignUp/v1/SignUp.js.map +0 -1
  602. package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.d.ts +0 -46
  603. package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.d.ts.map +0 -1
  604. package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.js +0 -160
  605. package/dist/components/presentation/auth/SignUp/v1/SignUpOptionFactory.js.map +0 -1
  606. package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.d.ts +0 -186
  607. package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.d.ts.map +0 -1
  608. package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.js +0 -674
  609. package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.js.map +0 -1
  610. package/dist/components/presentation/auth/SignUp/v2/SignUp.d.ts +0 -39
  611. package/dist/components/presentation/auth/SignUp/v2/SignUp.d.ts.map +0 -1
  612. package/dist/components/presentation/auth/SignUp/v2/SignUp.js +0 -77
  613. package/dist/components/presentation/auth/SignUp/v2/SignUp.js.map +0 -1
  614. package/dist/components/primitives/Icons/Building.js +0 -73
  615. package/dist/components/primitives/Icons/Building.js.map +0 -1
  616. package/dist/contexts/Branding/BrandingContext.d.ts +0 -53
  617. package/dist/contexts/Branding/BrandingContext.d.ts.map +0 -1
  618. package/dist/contexts/Branding/BrandingContext.js +0 -10
  619. package/dist/contexts/Branding/BrandingContext.js.map +0 -1
  620. package/dist/contexts/Branding/BrandingProvider.d.ts +0 -89
  621. package/dist/contexts/Branding/BrandingProvider.d.ts.map +0 -1
  622. package/dist/contexts/Branding/BrandingProvider.js +0 -92
  623. package/dist/contexts/Branding/BrandingProvider.js.map +0 -1
  624. package/dist/contexts/Branding/useBrandingContext.d.ts +0 -45
  625. package/dist/contexts/Branding/useBrandingContext.d.ts.map +0 -1
  626. package/dist/contexts/Branding/useBrandingContext.js +0 -38
  627. package/dist/contexts/Branding/useBrandingContext.js.map +0 -1
  628. package/dist/contexts/Organization/OrganizationContext.d.ts +0 -41
  629. package/dist/contexts/Organization/OrganizationContext.d.ts.map +0 -1
  630. package/dist/contexts/Organization/OrganizationContext.js +0 -25
  631. package/dist/contexts/Organization/OrganizationContext.js.map +0 -1
  632. package/dist/contexts/Organization/OrganizationProvider.d.ts +0 -94
  633. package/dist/contexts/Organization/OrganizationProvider.d.ts.map +0 -1
  634. package/dist/contexts/Organization/OrganizationProvider.js +0 -93
  635. package/dist/contexts/Organization/OrganizationProvider.js.map +0 -1
  636. package/dist/contexts/Organization/useOrganization.d.ts +0 -105
  637. package/dist/contexts/Organization/useOrganization.d.ts.map +0 -1
  638. package/dist/contexts/Organization/useOrganization.js +0 -98
  639. package/dist/contexts/Organization/useOrganization.js.map +0 -1
  640. package/dist/contexts/Theme/v1/ThemeProvider.d.ts +0 -89
  641. package/dist/contexts/Theme/v1/ThemeProvider.d.ts.map +0 -1
  642. package/dist/contexts/Theme/v1/ThemeProvider.js +0 -186
  643. package/dist/contexts/Theme/v1/ThemeProvider.js.map +0 -1
  644. package/dist/contexts/Theme/v2/ThemeProvider.d.ts +0 -58
  645. package/dist/contexts/Theme/v2/ThemeProvider.d.ts.map +0 -1
  646. package/dist/contexts/Theme/v2/ThemeProvider.js +0 -104
  647. package/dist/contexts/Theme/v2/ThemeProvider.js.map +0 -1
  648. package/dist/hooks/useBranding.d.ts +0 -128
  649. package/dist/hooks/useBranding.d.ts.map +0 -1
  650. package/dist/hooks/useBranding.js +0 -69
  651. package/dist/hooks/useBranding.js.map +0 -1
  652. package/dist/hooks/v2/useOAuthCallback.d.ts.map +0 -1
  653. package/dist/hooks/v2/useOAuthCallback.js.map +0 -1
  654. package/dist/utils/v2/buildThemeConfigFromFlowMeta.d.ts.map +0 -1
  655. package/dist/utils/v2/buildThemeConfigFromFlowMeta.js.map +0 -1
  656. package/dist/utils/v2/flowTransformer.d.ts.map +0 -1
  657. package/dist/utils/v2/flowTransformer.js.map +0 -1
  658. package/dist/utils/v2/getAuthComponentHeadings.d.ts.map +0 -1
  659. package/dist/utils/v2/getAuthComponentHeadings.js.map +0 -1
  660. package/dist/utils/v2/passkey.d.ts.map +0 -1
  661. package/dist/utils/v2/passkey.js.map +0 -1
  662. package/dist/utils/v2/resolveTranslationsInArray.d.ts.map +0 -1
  663. package/dist/utils/v2/resolveTranslationsInArray.js.map +0 -1
  664. package/dist/utils/v2/resolveTranslationsInObject.d.ts.map +0 -1
  665. package/dist/utils/v2/resolveTranslationsInObject.js.map +0 -1
  666. /package/dist/components/presentation/auth/AcceptInvite/{v2/AcceptInvite.d.ts → AcceptInvite.d.ts} +0 -0
  667. /package/dist/components/presentation/auth/AcceptInvite/{v2/BaseAcceptInvite.styles.d.ts → BaseAcceptInvite.styles.d.ts} +0 -0
  668. /package/dist/components/presentation/auth/InviteUser/{v2/BaseInviteUser.styles.d.ts → BaseInviteUser.styles.d.ts} +0 -0
  669. /package/dist/components/presentation/auth/InviteUser/{v2/InviteUser.d.ts → InviteUser.d.ts} +0 -0
  670. /package/dist/hooks/{v2/useOAuthCallback.d.ts → useOAuthCallback.d.ts} +0 -0
  671. /package/dist/utils/{v2/buildThemeConfigFromFlowMeta.d.ts → buildThemeConfigFromFlowMeta.d.ts} +0 -0
  672. /package/dist/utils/{v2/passkey.d.ts → passkey.d.ts} +0 -0
@@ -1,23 +1,23 @@
1
1
  import Button_default from "../../primitives/Button/Button.js";
2
2
  import Typography_default from "../../primitives/Typography/Typography.js";
3
- import Select_default from "../../primitives/Select/Select.js";
4
- import { createField } from "../../factories/FieldFactory.js";
3
+ import Divider_default from "../../primitives/Divider/Divider.js";
4
+ import { getConsentOptionalKey } from "../../adapters/ConsentCheckboxList.js";
5
+ import Consent_default from "../../adapters/Consent.js";
5
6
  import FacebookButton_default from "../../adapters/FacebookButton.js";
7
+ import FlowTimer_default from "../../adapters/FlowTimer.js";
6
8
  import GitHubButton_default from "../../adapters/GitHubButton.js";
7
9
  import GoogleButton_default from "../../adapters/GoogleButton.js";
10
+ import ImageComponent_default from "../../adapters/ImageComponent.js";
8
11
  import LinkedInButton_default from "../../adapters/LinkedInButton.js";
9
12
  import MicrosoftButton_default from "../../adapters/MicrosoftButton.js";
10
13
  import SignInWithEthereumButton_default from "../../adapters/SignInWithEthereumButton.js";
11
- import Divider_default from "../../primitives/Divider/Divider.js";
12
- import OrganizationUnitPicker_default from "./OrganizationUnitPicker/v2/OrganizationUnitPicker.js";
13
- import { getConsentOptionalKey } from "../../adapters/ConsentCheckboxList.js";
14
- import Consent_default from "../../adapters/Consent.js";
15
- import FlowTimer_default from "../../adapters/FlowTimer.js";
16
- import ImageComponent_default from "../../adapters/ImageComponent.js";
17
14
  import SmsOtpButton_default from "../../adapters/SmsOtpButton.js";
15
+ import DatePicker_default from "../../primitives/DatePicker/DatePicker.js";
16
+ import Select_default from "../../primitives/Select/Select.js";
17
+ import { createField } from "../../factories/FieldFactory.js";
18
18
  import CopyableText_default from "../../primitives/CopyableText/CopyableText.js";
19
19
  import flowIconRegistry_default from "../../primitives/Icons/flowIconRegistry.js";
20
- import { EmbeddedFlowComponentTypeV2, EmbeddedFlowEventTypeV2, FieldType, createPackageComponentLogger, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals } from "@thunderid/browser";
20
+ import { EmbeddedFlowComponentType, EmbeddedFlowEventType, FieldType, createPackageComponentLogger, resolveEmojiUrisInHtml, resolveFlowTemplateLiterals } from "@thunderid/browser";
21
21
  import { cloneElement } from "react";
22
22
  import { jsx } from "react/jsx-runtime";
23
23
  import { css } from "@emotion/css";
@@ -65,10 +65,10 @@ const richTextClass = css`
65
65
  */
66
66
  const getFieldType = (variant) => {
67
67
  switch (variant) {
68
- case EmbeddedFlowComponentTypeV2.EmailInput: return FieldType.Email;
69
- case EmbeddedFlowComponentTypeV2.PhoneInput: return FieldType.Tel;
70
- case EmbeddedFlowComponentTypeV2.PasswordInput: return FieldType.Password;
71
- case EmbeddedFlowComponentTypeV2.TextInput:
68
+ case EmbeddedFlowComponentType.EmailInput: return FieldType.Email;
69
+ case EmbeddedFlowComponentType.PhoneInput: return FieldType.Tel;
70
+ case EmbeddedFlowComponentType.PasswordInput: return FieldType.Password;
71
+ case EmbeddedFlowComponentType.TextInput:
72
72
  default: return FieldType.Text;
73
73
  }
74
74
  };
@@ -132,10 +132,10 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
132
132
  });
133
133
  };
134
134
  switch (component.type) {
135
- case EmbeddedFlowComponentTypeV2.TextInput:
136
- case EmbeddedFlowComponentTypeV2.PasswordInput:
137
- case EmbeddedFlowComponentTypeV2.EmailInput:
138
- case EmbeddedFlowComponentTypeV2.PhoneInput: {
135
+ case EmbeddedFlowComponentType.TextInput:
136
+ case EmbeddedFlowComponentType.PasswordInput:
137
+ case EmbeddedFlowComponentType.EmailInput:
138
+ case EmbeddedFlowComponentType.PhoneInput: {
139
139
  const identifier = component.ref;
140
140
  const value = formValues[identifier] || "";
141
141
  const error = touchedFields[identifier] || false ? formErrors[identifier] : void 0;
@@ -153,7 +153,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
153
153
  value
154
154
  }), { key });
155
155
  }
156
- case EmbeddedFlowComponentTypeV2.OtpInput: {
156
+ case EmbeddedFlowComponentType.OtpInput: {
157
157
  const identifier = component.ref;
158
158
  const value = formValues[identifier] || "";
159
159
  const error = touchedFields[identifier] || false ? formErrors[identifier] : void 0;
@@ -170,12 +170,12 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
170
170
  value
171
171
  }), { key });
172
172
  }
173
- case EmbeddedFlowComponentTypeV2.Action: {
173
+ case EmbeddedFlowComponentType.Action: {
174
174
  const actionId = component.id;
175
175
  const eventType = component.eventType || "";
176
176
  const buttonText = resolve(component.label);
177
177
  const componentVariant = component.variant || "";
178
- const shouldSkipValidation = eventType.toUpperCase() === EmbeddedFlowEventTypeV2.Trigger;
178
+ const shouldSkipValidation = eventType.toUpperCase() === EmbeddedFlowEventType.Trigger;
179
179
  const handleClick = () => {
180
180
  if (options.onSubmit) {
181
181
  const formData = {};
@@ -183,7 +183,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
183
183
  formData[field] = formValues[field];
184
184
  });
185
185
  const consentPrompt = options.additionalData?.["consentPrompt"];
186
- if (consentPrompt && eventType.toUpperCase() === EmbeddedFlowEventTypeV2.Submit) {
186
+ if (consentPrompt && eventType.toUpperCase() === EmbeddedFlowEventType.Submit) {
187
187
  const isDeny = componentVariant.toLowerCase() !== "primary";
188
188
  const decisions = { purposes: consentPrompt.purposes.map((p) => ({
189
189
  approved: !isDeny,
@@ -262,7 +262,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
262
262
  children: buttonText || "Submit"
263
263
  }, key);
264
264
  }
265
- case EmbeddedFlowComponentTypeV2.Text: return /* @__PURE__ */ jsx(Typography_default, {
265
+ case EmbeddedFlowComponentType.Text: return /* @__PURE__ */ jsx(Typography_default, {
266
266
  variant: getTypographyVariant(component.variant),
267
267
  style: {
268
268
  marginBottom: 2,
@@ -270,8 +270,8 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
270
270
  },
271
271
  children: resolve(component.label)
272
272
  }, key);
273
- case EmbeddedFlowComponentTypeV2.Divider: return /* @__PURE__ */ jsx(Divider_default, { children: resolve(component.label) || "" }, key);
274
- case EmbeddedFlowComponentTypeV2.Select: {
273
+ case EmbeddedFlowComponentType.Divider: return /* @__PURE__ */ jsx(Divider_default, { children: resolve(component.label) || "" }, key);
274
+ case EmbeddedFlowComponentType.Select: {
275
275
  const identifier = component.ref;
276
276
  const value = formValues[identifier] || "";
277
277
  const error = touchedFields[identifier] || false ? formErrors[identifier] : void 0;
@@ -292,21 +292,27 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
292
292
  className: options.inputClassName
293
293
  }, key);
294
294
  }
295
- case EmbeddedFlowComponentTypeV2.OuSelect: {
296
- const identifier = component.ref ?? component.id;
297
- const rootOuId = options.additionalData?.["rootOuId"];
298
- if (!rootOuId || !options.fetchOrganizationUnitChildren) {
299
- logger$1.warn("OU_SELECT requires additionalData.rootOuId and fetchOrganizationUnitChildren. Skipping render.");
300
- return null;
301
- }
302
- return /* @__PURE__ */ jsx(OrganizationUnitPicker_default, {
303
- rootOuId,
304
- selectedOuId: formValues[identifier] || null,
305
- onSelect: (ouId) => onInputChange(identifier, ouId),
306
- fetchChildren: options.fetchOrganizationUnitChildren
295
+ case EmbeddedFlowComponentType.DateInput: {
296
+ const identifier = component.ref;
297
+ const value = formValues[identifier] || "";
298
+ const error = touchedFields[identifier] || false ? formErrors[identifier] : void 0;
299
+ return /* @__PURE__ */ jsx(DatePicker_default, {
300
+ name: identifier,
301
+ label: resolve(component.label) || "",
302
+ placeholder: resolve(component.placeholder),
303
+ required: component.required,
304
+ dateFormat: component.dateFormat,
305
+ value,
306
+ error,
307
+ onChange: (e) => onInputChange(identifier, e.target.value),
308
+ onBlur: () => options.onInputBlur?.(identifier),
309
+ className: options.inputClassName
307
310
  }, key);
308
311
  }
309
- case EmbeddedFlowComponentTypeV2.Block:
312
+ case EmbeddedFlowComponentType.OuSelect:
313
+ logger$1.warn("OU_SELECT component type is not supported. Skipping render.");
314
+ return null;
315
+ case EmbeddedFlowComponentType.Block:
310
316
  if (component.components && component.components.length > 0) {
311
317
  const formStyles = {
312
318
  display: "flex",
@@ -324,11 +330,11 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
324
330
  }, key);
325
331
  }
326
332
  return null;
327
- case EmbeddedFlowComponentTypeV2.RichText: return /* @__PURE__ */ jsx("div", {
333
+ case EmbeddedFlowComponentType.RichText: return /* @__PURE__ */ jsx("div", {
328
334
  className: richTextClass,
329
335
  dangerouslySetInnerHTML: { __html: DOMPurify.sanitize(resolveEmojiUrisInHtml(resolve(component.label))) }
330
336
  }, key);
331
- case EmbeddedFlowComponentTypeV2.Image: {
337
+ case EmbeddedFlowComponentType.Image: {
332
338
  const explicitHeight = resolve(component.height?.toString());
333
339
  const explicitWidth = resolve(component.width?.toString());
334
340
  return /* @__PURE__ */ jsx(ImageComponent_default, {
@@ -348,7 +354,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
348
354
  touchedFields: void 0
349
355
  }, key);
350
356
  }
351
- case EmbeddedFlowComponentTypeV2.Icon: {
357
+ case EmbeddedFlowComponentType.Icon: {
352
358
  const iconName = component.name || "";
353
359
  const IconComponent = flowIconRegistry_default[iconName];
354
360
  if (!IconComponent) {
@@ -360,7 +366,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
360
366
  color: component.color || "currentColor"
361
367
  }, key);
362
368
  }
363
- case EmbeddedFlowComponentTypeV2.Stack: {
369
+ case EmbeddedFlowComponentType.Stack: {
364
370
  const direction = component.direction || "row";
365
371
  const gap = component.gap ?? 2;
366
372
  const align = component.align || "center";
@@ -381,7 +387,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
381
387
  })) : []
382
388
  }, key);
383
389
  }
384
- case EmbeddedFlowComponentTypeV2.Consent: {
390
+ case EmbeddedFlowComponentType.Consent: {
385
391
  const consentPromptRawData = options.additionalData?.["consentPrompt"];
386
392
  return /* @__PURE__ */ jsx(Consent_default, {
387
393
  consentData: consentPromptRawData,
@@ -389,7 +395,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
389
395
  onInputChange
390
396
  }, key);
391
397
  }
392
- case EmbeddedFlowComponentTypeV2.Timer: {
398
+ case EmbeddedFlowComponentType.Timer: {
393
399
  const textTemplate = resolve(component.label) || "Time remaining: {time}";
394
400
  const timeoutMs = Number(options.additionalData?.["stepTimeout"]) || 0;
395
401
  return /* @__PURE__ */ jsx(FlowTimer_default, {
@@ -397,7 +403,7 @@ const createAuthComponentFromFlow = (component, formValues, touchedFields, formE
397
403
  textTemplate
398
404
  }, key);
399
405
  }
400
- case EmbeddedFlowComponentTypeV2.CopyableText: {
406
+ case EmbeddedFlowComponentType.CopyableText: {
401
407
  const sourceKey = component.source;
402
408
  const value = sourceKey && options.additionalData ? String(options.additionalData[sourceKey] ?? "") : "";
403
409
  return /* @__PURE__ */ jsx(CopyableText_default, {
@@ -1 +1 @@
1
- {"version":3,"file":"AuthOptionFactory.js","names":["logger: ReturnType<typeof createPackageComponentLogger>","richTextClass: string","EmbeddedFlowComponentType","providerId: any","providerMatches: any","theme: any","customRenderers: ComponentRendererMap","key: string | number","customRenderer: ComponentRenderer | undefined","identifier: string","value: string","error: string","fieldType: string","actionId: string","eventType: string","buttonText: string","componentVariant: string","shouldSkipValidation: boolean","EmbeddedFlowEventType","formData: Record<string, any>","consentPrompt: ConsentPromptData | undefined","isDeny: boolean","decisions: ConsentDecisions","GoogleButton","GitHubButton","FacebookButton","MicrosoftButton","LinkedInButton","SignInWithEthereumButton","SmsOtpButton","startIconEl: ReactElement | null","endIconEl: ReactElement | null","Button","Typography","Divider","selectOptions: any","Select","rootOuId: string | undefined","OrganizationUnitPicker","formStyles: CSSProperties","blockComponents: any","explicitHeight: string","explicitWidth: string","ImageComponent","iconName: string","IconComponent: any","flowIconRegistry","direction: string","gap: number","align: string","justify: string","consentPromptRawData: ConsentPromptData | string | undefined","Consent","textTemplate: string","timeoutMs: number","FlowTimer","sourceKey: string | undefined","CopyableText"],"sources":["../../../../src/components/presentation/auth/AuthOptionFactory.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 {css} from '@emotion/css';\nimport {\n FieldType,\n FlowMetadataResponse,\n OrganizationUnitListResponse,\n EmbeddedFlowComponentV2 as EmbeddedFlowComponent,\n EmbeddedFlowComponentTypeV2 as EmbeddedFlowComponentType,\n EmbeddedFlowTextVariantV2 as EmbeddedFlowTextVariant,\n EmbeddedFlowEventTypeV2 as EmbeddedFlowEventType,\n createPackageComponentLogger,\n resolveFlowTemplateLiterals,\n resolveEmojiUrisInHtml,\n ConsentPurposeDataV2 as ConsentPurposeData,\n ConsentPromptDataV2 as ConsentPromptData,\n ConsentDecisionsV2 as ConsentDecisions,\n ConsentPurposeDecisionV2 as ConsentPurposeDecision,\n ConsentAttributeElementV2 as ConsentAttributeElement,\n} from '@thunderid/browser';\nimport DOMPurify from 'dompurify';\nimport {cloneElement, CSSProperties, ReactElement} from 'react';\nimport {OrganizationUnitPicker} from './OrganizationUnitPicker';\nimport {\n ComponentRenderer,\n ComponentRenderContext,\n ComponentRendererMap,\n} from '../../../contexts/ComponentRenderer/ComponentRendererContext';\nimport {UseTranslation} from '../../../hooks/useTranslation';\nimport Consent from '../../adapters/Consent';\nimport {getConsentOptionalKey} from '../../adapters/ConsentCheckboxList';\nimport FacebookButton from '../../adapters/FacebookButton';\nimport FlowTimer from '../../adapters/FlowTimer';\nimport GitHubButton from '../../adapters/GitHubButton';\nimport GoogleButton from '../../adapters/GoogleButton';\nimport ImageComponent from '../../adapters/ImageComponent';\nimport LinkedInButton from '../../adapters/LinkedInButton';\nimport MicrosoftButton from '../../adapters/MicrosoftButton';\nimport SignInWithEthereumButton from '../../adapters/SignInWithEthereumButton';\nimport SmsOtpButton from '../../adapters/SmsOtpButton';\nimport {createField} from '../../factories/FieldFactory';\nimport Button from '../../primitives/Button/Button';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\nimport Divider from '../../primitives/Divider/Divider';\nimport flowIconRegistry from '../../primitives/Icons/flowIconRegistry';\nimport Select from '../../primitives/Select/Select';\nimport Typography from '../../primitives/Typography/Typography';\nimport {TypographyVariant} from '../../primitives/Typography/Typography.styles';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'AuthOptionFactory',\n);\n\n/**\n * Replaces `emoji:` URIs embedded in HTML before DOMPurify sanitization.\n *\n * DOMPurify strips unknown URI schemes from attributes (e.g. `src=\"emoji:🦊\"` → `src=\"\"`).\n * This function converts:\n * - `<img src=\"emoji:X\" alt=\"Y\">` → `<span role=\"img\" aria-label=\"Y\">X</span>`\n * - Any remaining `emoji:X` text occurrences → `X`\n */\n\n/** Ensures rich-text content (including all inner elements from the server) always word-wraps. */\nconst richTextClass: string = css`\n overflow-wrap: anywhere;\n & * {\n overflow-wrap: anywhere;\n word-break: break-word;\n }\n & .rich-text-align-left {\n text-align: left;\n }\n & .rich-text-align-center {\n text-align: center;\n }\n & .rich-text-align-right {\n text-align: right;\n }\n & .rich-text-align-justify {\n text-align: justify;\n }\n & a,\n & .rich-text-link {\n text-decoration: underline;\n }\n & span[role='img'] {\n display: inline-block;\n }\n`;\n\nexport type AuthType = 'signin' | 'signup' | 'recovery';\n\n/**\n * Get the appropriate FieldType for an input component.\n */\nconst getFieldType = (variant: EmbeddedFlowComponentType): FieldType => {\n switch (variant) {\n case EmbeddedFlowComponentType.EmailInput:\n return FieldType.Email;\n case EmbeddedFlowComponentType.PhoneInput:\n return FieldType.Tel;\n case EmbeddedFlowComponentType.PasswordInput:\n return FieldType.Password;\n case EmbeddedFlowComponentType.TextInput:\n default:\n return FieldType.Text;\n }\n};\n\n/**\n * Get typography variant from component variant.\n */\nconst getTypographyVariant = (variant: string): any => {\n const variantMap: Record<EmbeddedFlowTextVariant, TypographyVariant> = {\n BODY_1: 'body1',\n BODY_2: 'body2',\n BUTTON_TEXT: 'button',\n CAPTION: 'caption',\n HEADING_1: 'h1',\n HEADING_2: 'h2',\n HEADING_3: 'h3',\n HEADING_4: 'h4',\n HEADING_5: 'h5',\n HEADING_6: 'h6',\n OVERLINE: 'overline',\n SUBTITLE_1: 'subtitle1',\n SUBTITLE_2: 'subtitle2',\n };\n\n return variantMap[variant] || 'h3';\n};\n\n/**\n * Check if a button text or action matches a social provider.\n */\nconst matchesSocialProvider = (\n actionId: string,\n eventType: string,\n buttonText: string,\n provider: string,\n authType: AuthType,\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\n _componentVariant?: string,\n): boolean => {\n const providerId: any = `${provider}_auth`;\n const providerMatches: any = actionId === providerId || eventType === providerId;\n\n // Social buttons usually have \"Sign in with X\" or \"Continue with X\" text,\n // so also check button text for the provider name to increase chances of correct detection (especially for signup flows where action IDs are less standardized)\n if (buttonText.toLowerCase().includes(provider)) {\n return true;\n }\n\n // For signup, also check button text\n if (authType === 'signup') {\n return providerMatches || buttonText.toLowerCase().includes(provider);\n }\n\n return providerMatches;\n};\n\n/**\n * Create an auth component from flow component configuration.\n */\nconst createAuthComponentFromFlow = (\n component: EmbeddedFlowComponent,\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n authType: AuthType,\n options: {\n /** @internal Passed from the host React component so hooks aren't called inside a loop. */\n _customRenderers?: ComponentRendererMap;\n /** @internal Passed from the host React component so hooks aren't called inside a loop. */\n _theme?: any;\n /** Additional data from the flow response, used for different dynamic data */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n /** Current consent purpose being rendered. Set by CONSENT_PURPOSE block iteration. */\n currentConsentPurpose?: ConsentPurposeData;\n /** Function to fetch child organization units. Used by OU_SELECT component type. */\n fetchOrganizationUnitChildren?: (\n parentId: string,\n limit: number,\n offset: number,\n ) => Promise<OrganizationUnitListResponse>;\n inStack?: boolean;\n inputClassName?: string;\n /** Flag to determine if the step timeline has expired */\n isTimeoutDisabled?: boolean;\n key?: string | number;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n } = {},\n): ReactElement | null => {\n const theme: any = options._theme;\n const customRenderers: ComponentRendererMap = options._customRenderers ?? {};\n\n const key: string | number = options.key || component.id;\n\n const customRenderer: ComponentRenderer | undefined =\n customRenderers[component.id] ?? customRenderers[component.type];\n if (customRenderer) {\n const renderCtx: ComponentRenderContext = {\n additionalData: options.additionalData,\n authType,\n formErrors,\n formValues,\n isFormValid,\n isLoading,\n meta: options.meta,\n onInputBlur: options.onInputBlur,\n onInputChange,\n onSubmit: options.onSubmit,\n touchedFields,\n };\n return customRenderer(component, renderCtx);\n }\n\n /** Resolve any remaining {{t()}} or {{meta()}} template expressions in a string at render time. */\n const resolve = (text: string | undefined): string => {\n if (!text || (!options.t && !options.meta)) {\n return text || '';\n }\n return resolveFlowTemplateLiterals(text, {meta: options.meta, t: options.t || ((k: string): string => k)});\n };\n\n switch (component.type) {\n case EmbeddedFlowComponentType.TextInput:\n case EmbeddedFlowComponentType.PasswordInput:\n case EmbeddedFlowComponentType.EmailInput:\n case EmbeddedFlowComponentType.PhoneInput: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n const fieldType: string = getFieldType(component.type);\n\n const field: any = createField({\n className: options.inputClassName,\n error,\n label: resolve(component.label) || '',\n name: identifier,\n onBlur: () => options.onInputBlur?.(identifier),\n onChange: (newValue: string) => onInputChange(identifier, newValue),\n placeholder: resolve(component.placeholder) || '',\n required: component.required || false,\n type: fieldType as FieldType,\n value,\n });\n\n return cloneElement(field, {key});\n }\n\n case EmbeddedFlowComponentType.OtpInput: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n\n const field: any = createField({\n className: options.inputClassName,\n error,\n label: resolve(component.label) || '',\n name: identifier,\n onBlur: () => options.onInputBlur?.(identifier),\n onChange: (newValue: string) => onInputChange(identifier, newValue),\n placeholder: resolve(component.placeholder) || '',\n required: component.required || false,\n type: FieldType.Otp,\n value,\n });\n\n return cloneElement(field, {key});\n }\n\n case EmbeddedFlowComponentType.Action: {\n const actionId: string = component.id;\n const eventType: string = component.eventType || '';\n const buttonText: string = resolve(component.label);\n const componentVariant: string = component.variant || '';\n\n // Only validate on submit type events.\n const shouldSkipValidation: boolean = eventType.toUpperCase() === EmbeddedFlowEventType.Trigger;\n\n const handleClick = (): any => {\n if (options.onSubmit) {\n const formData: Record<string, any> = {};\n Object.keys(formValues).forEach((field: any) => {\n // Include all values, even empty strings, to ensure proper submission\n formData[field] = formValues[field];\n });\n\n // For consent actions, build the consent_decisions JSON from the form values.\n // The allow action captures per-attribute choices; the deny action sends\n // all purposes as rejected so the backend ConsentExecutor can fail the flow.\n const consentPrompt: ConsentPromptData | undefined = options.additionalData?.['consentPrompt'] as\n | ConsentPromptData\n | undefined;\n if (consentPrompt && eventType.toUpperCase() === EmbeddedFlowEventType.Submit) {\n const isDeny: boolean = componentVariant.toLowerCase() !== 'primary';\n const decisions: ConsentDecisions = {\n purposes: consentPrompt.purposes.map(\n (p: ConsentPurposeData): ConsentPurposeDecision => ({\n approved: !isDeny,\n elements: [\n ...p.essential.map((e): ConsentAttributeElement => ({approved: !isDeny, name: e.name})),\n ...p.optional.map(\n (e): ConsentAttributeElement => ({\n approved: isDeny ? false : formValues[getConsentOptionalKey(p.purposeId, e.name)] !== 'false',\n name: e.name,\n }),\n ),\n ],\n purposeName: p.purposeName!,\n }),\n ),\n };\n formData['consent_decisions'] = JSON.stringify(decisions);\n }\n\n options.onSubmit(component, formData, shouldSkipValidation);\n }\n };\n\n // Render branded social login buttons for known action IDs\n\n if (matchesSocialProvider(actionId, eventType, buttonText, 'google', authType, componentVariant)) {\n return <GoogleButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'github', authType, componentVariant)) {\n return <GitHubButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'facebook', authType, componentVariant)) {\n return <FacebookButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'microsoft', authType, componentVariant)) {\n return <MicrosoftButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'linkedin', authType, componentVariant)) {\n return <LinkedInButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'ethereum', authType, componentVariant)) {\n return <SignInWithEthereumButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (actionId === 'prompt_mobile' || eventType === 'prompt_mobile') {\n return <SmsOtpButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n\n const startIconEl: ReactElement | null = component.startIcon ? (\n <img\n src={component.startIcon}\n alt=\"\"\n aria-hidden=\"true\"\n style={{height: '1.25em', objectFit: 'contain', width: '1.25em'}}\n />\n ) : null;\n\n const endIconEl: ReactElement | null = component.endIcon ? (\n <img\n src={component.endIcon}\n alt=\"\"\n aria-hidden=\"true\"\n style={{height: '1.25em', objectFit: 'contain', width: '1.25em'}}\n />\n ) : null;\n\n return (\n <Button\n fullWidth\n key={key}\n onClick={handleClick}\n disabled={\n isLoading ||\n (!isFormValid && !shouldSkipValidation) ||\n options.isTimeoutDisabled ||\n (component as any).config?.disabled\n }\n className={options.buttonClassName}\n data-testid=\"thunderid-signin-submit\"\n variant={component.variant?.toLowerCase() === 'primary' ? 'solid' : 'outline'}\n color={component.variant?.toLowerCase() === 'primary' ? 'primary' : 'secondary'}\n startIcon={startIconEl}\n endIcon={endIconEl}\n >\n {buttonText || 'Submit'}\n </Button>\n );\n }\n\n case EmbeddedFlowComponentType.Text: {\n const variant: any = getTypographyVariant(component.variant!);\n return (\n <Typography\n key={key}\n variant={variant}\n style={{\n marginBottom: 2,\n textAlign:\n typeof component?.align === 'string' ? (component.align as React.CSSProperties['textAlign']) : 'left',\n }}\n >\n {resolve(component.label)}\n </Typography>\n );\n }\n\n case EmbeddedFlowComponentType.Divider: {\n return <Divider key={key}>{resolve(component.label) || ''}</Divider>;\n }\n\n case EmbeddedFlowComponentType.Select: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n\n // Options are pre-sanitized by flowTransformer to {value: string, label: string} format\n const selectOptions: any = (component.options || []).map((opt: any) => ({\n label: typeof opt === 'string' ? opt : String(opt.label ?? opt.value ?? ''),\n value: typeof opt === 'string' ? opt : String(opt.value ?? ''),\n }));\n\n return (\n <Select\n key={key}\n name={identifier}\n label={resolve(component.label) || ''}\n placeholder={resolve(component.placeholder)}\n required={component.required}\n options={selectOptions}\n value={value}\n error={error}\n onChange={(e: any): void => onInputChange(identifier, e.target.value)}\n onBlur={(): any => options.onInputBlur?.(identifier)}\n className={options.inputClassName}\n />\n );\n }\n\n case EmbeddedFlowComponentType.OuSelect: {\n const identifier: string = component.ref ?? component.id;\n const rootOuId: string | undefined = options.additionalData?.['rootOuId'] as string | undefined;\n\n if (!rootOuId || !options.fetchOrganizationUnitChildren) {\n logger.warn('OU_SELECT requires additionalData.rootOuId and fetchOrganizationUnitChildren. Skipping render.');\n return null;\n }\n\n return (\n <OrganizationUnitPicker\n key={key}\n rootOuId={rootOuId}\n selectedOuId={formValues[identifier] || null}\n onSelect={(ouId: string) => onInputChange(identifier, ouId)}\n fetchChildren={options.fetchOrganizationUnitChildren}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Block: {\n if (component.components && component.components.length > 0) {\n const formStyles: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: `calc(${theme?.vars?.spacing?.unit ?? '4px'} * 2)`,\n };\n\n const blockComponents: any = component.components\n .map((childComponent: any, index: any) =>\n createAuthComponentFromFlow(\n childComponent,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n authType,\n {\n ...options,\n key: childComponent.id || `${component.id}_${index}`,\n },\n ),\n )\n .filter(Boolean);\n\n return (\n <form id={component.id} key={key} style={formStyles}>\n {blockComponents}\n </form>\n );\n }\n return null;\n }\n\n case EmbeddedFlowComponentType.RichText: {\n return (\n <div\n key={key}\n className={richTextClass}\n // Manually sanitizes with `DOMPurify`.\n // IMPORTANT: DO NOT REMOVE OR MODIFY THIS SANITIZATION STEP.\n dangerouslySetInnerHTML={{__html: DOMPurify.sanitize(resolveEmojiUrisInHtml(resolve(component.label)))}}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Image: {\n const explicitHeight: string = resolve(component.height?.toString());\n const explicitWidth: string = resolve(component.width?.toString());\n return (\n <ImageComponent\n key={key}\n component={\n {\n config: {\n alt: resolve(component.alt) || resolve(component.label) || 'Image',\n height: explicitHeight || (options.inStack ? '50' : 'auto'),\n src: resolve(component.src),\n width: explicitWidth || (options.inStack ? '50' : '100%'),\n },\n } as any\n }\n formErrors={undefined!}\n formValues={undefined!}\n isFormValid={false}\n isLoading={false}\n onInputChange={(): void => {\n throw new Error('Function not implemented.');\n }}\n touchedFields={undefined!}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Icon: {\n const iconName: string = component.name || '';\n const IconComponent: any = flowIconRegistry[iconName];\n if (!IconComponent) {\n logger.warn(`Unknown icon name: \"${iconName}\". Skipping render.`);\n return null;\n }\n return <IconComponent key={key} size={component.size || 24} color={component.color || 'currentColor'} />;\n }\n\n case EmbeddedFlowComponentType.Stack: {\n const direction: string = (component as any).direction || 'row';\n const gap: number = (component as any).gap ?? 2;\n const align: string = (component as any).align || 'center';\n const justify: string = (component as any).justify || 'flex-start';\n\n const stackStyle: CSSProperties = {\n alignItems: align,\n display: 'flex',\n flexDirection: direction as CSSProperties['flexDirection'],\n flexWrap: 'wrap',\n gap: `${gap * 0.5}rem`,\n justifyContent: justify,\n };\n\n const stackChildren: (ReactElement | null)[] = component.components\n ? component.components.map((childComponent: any, index: number) =>\n createAuthComponentFromFlow(\n childComponent,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n authType,\n {\n ...options,\n inStack: true,\n key: childComponent.id || `${component.id}_${index}`,\n },\n ),\n )\n : [];\n\n return (\n <div key={key} style={stackStyle}>\n {stackChildren}\n </div>\n );\n }\n\n case EmbeddedFlowComponentType.Consent: {\n const consentPromptRawData: ConsentPromptData | string | undefined = options.additionalData?.['consentPrompt'];\n\n return (\n <Consent\n key={key}\n consentData={consentPromptRawData as any}\n formValues={formValues}\n onInputChange={onInputChange}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Timer: {\n const textTemplate: string = resolve((component as any).label) || 'Time remaining: {time}';\n const timeoutMs: number = Number(options.additionalData?.['stepTimeout']) || 0;\n const expiresIn: number = timeoutMs > 0 ? Math.max(0, Math.floor((timeoutMs - Date.now()) / 1000)) : 0;\n\n return <FlowTimer key={key} expiresIn={expiresIn} textTemplate={textTemplate} />;\n }\n\n case EmbeddedFlowComponentType.CopyableText: {\n const sourceKey: string | undefined = (component as any).source;\n const value: string = sourceKey && options.additionalData ? String(options.additionalData[sourceKey] ?? '') : '';\n const labelText: string | undefined = resolve((component as any).label) || undefined;\n\n return <CopyableText key={key} label={labelText} value={value} />;\n }\n\n default:\n // Gracefully handle unsupported component types by returning null\n logger.warn(`Unsupported component type: ${component.type}. Skipping render.`);\n return null;\n }\n};\n\n/**\n * Processes an array of components and renders them as React elements for sign-in.\n */\nexport const renderSignInComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n inputClassName?: string;\n /** Flag to determine if the step timeline has expired */\n isTimeoutDisabled?: boolean;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'signin',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n\n/**\n * Processes an array of components and renders them as React elements for sign-up.\n */\nexport const renderSignUpComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n inputClassName?: string;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'signup',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n\n/**\n * Processes an array of components and renders them as React elements for recovery flow.\n */\nexport const renderRecoveryComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n inputClassName?: string;\n /** Flag to determine if the step timeline has expired */\n isTimeoutDisabled?: boolean;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'recovery',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n\n/**\n * Processes an array of components and renders them as React elements for invite user.\n * This is used by both InviteUser and AcceptInvite components.\n */\nexport const renderInviteUserComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n /** Function to fetch child organization units. Used by OU_SELECT component type. */\n fetchOrganizationUnitChildren?: (\n parentId: string,\n limit: number,\n offset: number,\n ) => Promise<OrganizationUnitListResponse>;\n inputClassName?: string;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'signup',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n"],"mappings":"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EAGnE;AAEE,YAAO,KAAK,+BAA+B,UAAU,KAAK,oBAAoB;AAC9E,UAAO;;;;;;AAOb,MAAa,0BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAqBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,UACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK;;;;AAKjD,MAAa,0BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAmBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,UACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK;;;;AAKjD,MAAa,4BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAqBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,YACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK;;;;;AAMjD,MAAa,8BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAyBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,UACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK"}
1
+ {"version":3,"file":"AuthOptionFactory.js","names":["logger: ReturnType<typeof createPackageComponentLogger>","richTextClass: string","providerId: any","providerMatches: any","theme: any","customRenderers: ComponentRendererMap","key: string | number","customRenderer: ComponentRenderer | undefined","identifier: string","value: string","error: string","fieldType: string","actionId: string","eventType: string","buttonText: string","componentVariant: string","shouldSkipValidation: boolean","formData: Record<string, any>","consentPrompt: ConsentPromptData | undefined","isDeny: boolean","decisions: ConsentDecisions","GoogleButton","GitHubButton","FacebookButton","MicrosoftButton","LinkedInButton","SignInWithEthereumButton","SmsOtpButton","startIconEl: ReactElement | null","endIconEl: ReactElement | null","Button","Typography","Divider","selectOptions: any","Select","DatePicker","formStyles: CSSProperties","blockComponents: any","explicitHeight: string","explicitWidth: string","ImageComponent","iconName: string","IconComponent: any","flowIconRegistry","direction: string","gap: number","align: string","justify: string","consentPromptRawData: ConsentPromptData | string | undefined","Consent","textTemplate: string","timeoutMs: number","FlowTimer","sourceKey: string | undefined","CopyableText"],"sources":["../../../../src/components/presentation/auth/AuthOptionFactory.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 {css} from '@emotion/css';\nimport {\n FieldType,\n FlowMetadataResponse,\n EmbeddedFlowComponent,\n EmbeddedFlowComponentType,\n EmbeddedFlowTextVariant,\n EmbeddedFlowEventType,\n createPackageComponentLogger,\n resolveFlowTemplateLiterals,\n resolveEmojiUrisInHtml,\n ConsentPurposeData,\n ConsentPromptData,\n ConsentDecisions,\n ConsentPurposeDecision,\n ConsentAttributeElement,\n OrganizationUnitListResponse,\n} from '@thunderid/browser';\nimport DOMPurify from 'dompurify';\nimport {cloneElement, CSSProperties, ReactElement} from 'react';\nimport {\n ComponentRenderer,\n ComponentRenderContext,\n ComponentRendererMap,\n} from '../../../contexts/ComponentRenderer/ComponentRendererContext';\nimport {UseTranslation} from '../../../hooks/useTranslation';\nimport Consent from '../../adapters/Consent';\nimport {getConsentOptionalKey} from '../../adapters/ConsentCheckboxList';\nimport FacebookButton from '../../adapters/FacebookButton';\nimport FlowTimer from '../../adapters/FlowTimer';\nimport GitHubButton from '../../adapters/GitHubButton';\nimport GoogleButton from '../../adapters/GoogleButton';\nimport ImageComponent from '../../adapters/ImageComponent';\nimport LinkedInButton from '../../adapters/LinkedInButton';\nimport MicrosoftButton from '../../adapters/MicrosoftButton';\nimport SignInWithEthereumButton from '../../adapters/SignInWithEthereumButton';\nimport SmsOtpButton from '../../adapters/SmsOtpButton';\nimport {createField} from '../../factories/FieldFactory';\nimport Button from '../../primitives/Button/Button';\nimport CopyableText from '../../primitives/CopyableText/CopyableText';\nimport DatePicker from '../../primitives/DatePicker/DatePicker';\nimport Divider from '../../primitives/Divider/Divider';\nimport flowIconRegistry from '../../primitives/Icons/flowIconRegistry';\nimport Select from '../../primitives/Select/Select';\nimport Typography from '../../primitives/Typography/Typography';\nimport {TypographyVariant} from '../../primitives/Typography/Typography.styles';\n\nconst logger: ReturnType<typeof createPackageComponentLogger> = createPackageComponentLogger(\n '@thunderid/react',\n 'AuthOptionFactory',\n);\n\n/**\n * Replaces `emoji:` URIs embedded in HTML before DOMPurify sanitization.\n *\n * DOMPurify strips unknown URI schemes from attributes (e.g. `src=\"emoji:🦊\"` → `src=\"\"`).\n * This function converts:\n * - `<img src=\"emoji:X\" alt=\"Y\">` → `<span role=\"img\" aria-label=\"Y\">X</span>`\n * - Any remaining `emoji:X` text occurrences → `X`\n */\n\n/** Ensures rich-text content (including all inner elements from the server) always word-wraps. */\nconst richTextClass: string = css`\n overflow-wrap: anywhere;\n & * {\n overflow-wrap: anywhere;\n word-break: break-word;\n }\n & .rich-text-align-left {\n text-align: left;\n }\n & .rich-text-align-center {\n text-align: center;\n }\n & .rich-text-align-right {\n text-align: right;\n }\n & .rich-text-align-justify {\n text-align: justify;\n }\n & a,\n & .rich-text-link {\n text-decoration: underline;\n }\n & span[role='img'] {\n display: inline-block;\n }\n`;\n\nexport type AuthType = 'signin' | 'signup' | 'recovery';\n\n/**\n * Get the appropriate FieldType for an input component.\n */\nconst getFieldType = (variant: EmbeddedFlowComponentType): FieldType => {\n switch (variant) {\n case EmbeddedFlowComponentType.EmailInput:\n return FieldType.Email;\n case EmbeddedFlowComponentType.PhoneInput:\n return FieldType.Tel;\n case EmbeddedFlowComponentType.PasswordInput:\n return FieldType.Password;\n case EmbeddedFlowComponentType.TextInput:\n default:\n return FieldType.Text;\n }\n};\n\n/**\n * Get typography variant from component variant.\n */\nconst getTypographyVariant = (variant: string): any => {\n const variantMap: Record<EmbeddedFlowTextVariant, TypographyVariant> = {\n BODY_1: 'body1',\n BODY_2: 'body2',\n BUTTON_TEXT: 'button',\n CAPTION: 'caption',\n HEADING_1: 'h1',\n HEADING_2: 'h2',\n HEADING_3: 'h3',\n HEADING_4: 'h4',\n HEADING_5: 'h5',\n HEADING_6: 'h6',\n OVERLINE: 'overline',\n SUBTITLE_1: 'subtitle1',\n SUBTITLE_2: 'subtitle2',\n };\n\n return variantMap[variant] || 'h3';\n};\n\n/**\n * Check if a button text or action matches a social provider.\n */\nconst matchesSocialProvider = (\n actionId: string,\n eventType: string,\n buttonText: string,\n provider: string,\n authType: AuthType,\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\n _componentVariant?: string,\n): boolean => {\n const providerId: any = `${provider}_auth`;\n const providerMatches: any = actionId === providerId || eventType === providerId;\n\n // Social buttons usually have \"Sign in with X\" or \"Continue with X\" text,\n // so also check button text for the provider name to increase chances of correct detection (especially for signup flows where action IDs are less standardized)\n if (buttonText.toLowerCase().includes(provider)) {\n return true;\n }\n\n // For signup, also check button text\n if (authType === 'signup') {\n return providerMatches || buttonText.toLowerCase().includes(provider);\n }\n\n return providerMatches;\n};\n\n/**\n * Create an auth component from flow component configuration.\n */\nconst createAuthComponentFromFlow = (\n component: EmbeddedFlowComponent,\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n authType: AuthType,\n options: {\n /** @internal Passed from the host React component so hooks aren't called inside a loop. */\n _customRenderers?: ComponentRendererMap;\n /** @internal Passed from the host React component so hooks aren't called inside a loop. */\n _theme?: any;\n /** Additional data from the flow response, used for different dynamic data */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n /** Current consent purpose being rendered. Set by CONSENT_PURPOSE block iteration. */\n currentConsentPurpose?: ConsentPurposeData;\n inStack?: boolean;\n inputClassName?: string;\n /** Flag to determine if the step timeline has expired */\n isTimeoutDisabled?: boolean;\n key?: string | number;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n } = {},\n): ReactElement | null => {\n const theme: any = options._theme;\n const customRenderers: ComponentRendererMap = options._customRenderers ?? {};\n\n const key: string | number = options.key || component.id;\n\n const customRenderer: ComponentRenderer | undefined =\n customRenderers[component.id] ?? customRenderers[component.type];\n if (customRenderer) {\n const renderCtx: ComponentRenderContext = {\n additionalData: options.additionalData,\n authType,\n formErrors,\n formValues,\n isFormValid,\n isLoading,\n meta: options.meta,\n onInputBlur: options.onInputBlur,\n onInputChange,\n onSubmit: options.onSubmit,\n touchedFields,\n };\n return customRenderer(component, renderCtx);\n }\n\n /** Resolve any remaining {{t()}} or {{meta()}} template expressions in a string at render time. */\n const resolve = (text: string | undefined): string => {\n if (!text || (!options.t && !options.meta)) {\n return text || '';\n }\n return resolveFlowTemplateLiterals(text, {meta: options.meta, t: options.t || ((k: string): string => k)});\n };\n\n switch (component.type) {\n case EmbeddedFlowComponentType.TextInput:\n case EmbeddedFlowComponentType.PasswordInput:\n case EmbeddedFlowComponentType.EmailInput:\n case EmbeddedFlowComponentType.PhoneInput: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n const fieldType: string = getFieldType(component.type);\n\n const field: any = createField({\n className: options.inputClassName,\n error,\n label: resolve(component.label) || '',\n name: identifier,\n onBlur: () => options.onInputBlur?.(identifier),\n onChange: (newValue: string) => onInputChange(identifier, newValue),\n placeholder: resolve(component.placeholder) || '',\n required: component.required || false,\n type: fieldType as FieldType,\n value,\n });\n\n return cloneElement(field, {key});\n }\n\n case EmbeddedFlowComponentType.OtpInput: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n\n const field: any = createField({\n className: options.inputClassName,\n error,\n label: resolve(component.label) || '',\n name: identifier,\n onBlur: () => options.onInputBlur?.(identifier),\n onChange: (newValue: string) => onInputChange(identifier, newValue),\n placeholder: resolve(component.placeholder) || '',\n required: component.required || false,\n type: FieldType.Otp,\n value,\n });\n\n return cloneElement(field, {key});\n }\n\n case EmbeddedFlowComponentType.Action: {\n const actionId: string = component.id;\n const eventType: string = component.eventType || '';\n const buttonText: string = resolve(component.label);\n const componentVariant: string = component.variant || '';\n\n // Only validate on submit type events.\n const shouldSkipValidation: boolean = eventType.toUpperCase() === EmbeddedFlowEventType.Trigger;\n\n const handleClick = (): any => {\n if (options.onSubmit) {\n const formData: Record<string, any> = {};\n Object.keys(formValues).forEach((field: any) => {\n // Include all values, even empty strings, to ensure proper submission\n formData[field] = formValues[field];\n });\n\n // For consent actions, build the consent_decisions JSON from the form values.\n // The allow action captures per-attribute choices; the deny action sends\n // all purposes as rejected so the backend ConsentExecutor can fail the flow.\n const consentPrompt: ConsentPromptData | undefined = options.additionalData?.['consentPrompt'] as\n | ConsentPromptData\n | undefined;\n if (consentPrompt && eventType.toUpperCase() === EmbeddedFlowEventType.Submit) {\n const isDeny: boolean = componentVariant.toLowerCase() !== 'primary';\n const decisions: ConsentDecisions = {\n purposes: consentPrompt.purposes.map(\n (p: ConsentPurposeData): ConsentPurposeDecision => ({\n approved: !isDeny,\n elements: [\n ...p.essential.map((e): ConsentAttributeElement => ({approved: !isDeny, name: e.name})),\n ...p.optional.map(\n (e): ConsentAttributeElement => ({\n approved: isDeny ? false : formValues[getConsentOptionalKey(p.purposeId, e.name)] !== 'false',\n name: e.name,\n }),\n ),\n ],\n purposeName: p.purposeName!,\n }),\n ),\n };\n formData['consent_decisions'] = JSON.stringify(decisions);\n }\n\n options.onSubmit(component, formData, shouldSkipValidation);\n }\n };\n\n // Render branded social login buttons for known action IDs\n\n if (matchesSocialProvider(actionId, eventType, buttonText, 'google', authType, componentVariant)) {\n return <GoogleButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'github', authType, componentVariant)) {\n return <GitHubButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'facebook', authType, componentVariant)) {\n return <FacebookButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'microsoft', authType, componentVariant)) {\n return <MicrosoftButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'linkedin', authType, componentVariant)) {\n return <LinkedInButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (matchesSocialProvider(actionId, eventType, buttonText, 'ethereum', authType, componentVariant)) {\n return <SignInWithEthereumButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n if (actionId === 'prompt_mobile' || eventType === 'prompt_mobile') {\n return <SmsOtpButton key={key} onClick={handleClick} className={options.buttonClassName} />;\n }\n\n const startIconEl: ReactElement | null = component.startIcon ? (\n <img\n src={component.startIcon}\n alt=\"\"\n aria-hidden=\"true\"\n style={{height: '1.25em', objectFit: 'contain', width: '1.25em'}}\n />\n ) : null;\n\n const endIconEl: ReactElement | null = component.endIcon ? (\n <img\n src={component.endIcon}\n alt=\"\"\n aria-hidden=\"true\"\n style={{height: '1.25em', objectFit: 'contain', width: '1.25em'}}\n />\n ) : null;\n\n return (\n <Button\n fullWidth\n key={key}\n onClick={handleClick}\n disabled={\n isLoading ||\n (!isFormValid && !shouldSkipValidation) ||\n options.isTimeoutDisabled ||\n (component as any).config?.disabled\n }\n className={options.buttonClassName}\n data-testid=\"thunderid-signin-submit\"\n variant={component.variant?.toLowerCase() === 'primary' ? 'solid' : 'outline'}\n color={component.variant?.toLowerCase() === 'primary' ? 'primary' : 'secondary'}\n startIcon={startIconEl}\n endIcon={endIconEl}\n >\n {buttonText || 'Submit'}\n </Button>\n );\n }\n\n case EmbeddedFlowComponentType.Text: {\n const variant: any = getTypographyVariant(component.variant!);\n return (\n <Typography\n key={key}\n variant={variant}\n style={{\n marginBottom: 2,\n textAlign:\n typeof component?.align === 'string' ? (component.align as React.CSSProperties['textAlign']) : 'left',\n }}\n >\n {resolve(component.label)}\n </Typography>\n );\n }\n\n case EmbeddedFlowComponentType.Divider: {\n return <Divider key={key}>{resolve(component.label) || ''}</Divider>;\n }\n\n case EmbeddedFlowComponentType.Select: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n\n // Options are pre-sanitized by flowTransformer to {value: string, label: string} format\n const selectOptions: any = (component.options || []).map((opt: any) => ({\n label: typeof opt === 'string' ? opt : String(opt.label ?? opt.value ?? ''),\n value: typeof opt === 'string' ? opt : String(opt.value ?? ''),\n }));\n\n return (\n <Select\n key={key}\n name={identifier}\n label={resolve(component.label) || ''}\n placeholder={resolve(component.placeholder)}\n required={component.required}\n options={selectOptions}\n value={value}\n error={error}\n onChange={(e: any): void => onInputChange(identifier, e.target.value)}\n onBlur={(): any => options.onInputBlur?.(identifier)}\n className={options.inputClassName}\n />\n );\n }\n\n case EmbeddedFlowComponentType.DateInput: {\n const identifier: string = component.ref!;\n const value: string = formValues[identifier] || '';\n const isTouched: boolean = touchedFields[identifier] || false;\n const error: string = isTouched ? formErrors[identifier] : undefined!;\n\n return (\n <DatePicker\n key={key}\n name={identifier}\n label={resolve(component.label) || ''}\n placeholder={resolve(component.placeholder)}\n required={component.required}\n dateFormat={component.dateFormat}\n value={value}\n error={error}\n onChange={(e: any): void => onInputChange(identifier, e.target.value)}\n onBlur={(): any => options.onInputBlur?.(identifier)}\n className={options.inputClassName}\n />\n );\n }\n\n case EmbeddedFlowComponentType.OuSelect: {\n logger.warn('OU_SELECT component type is not supported. Skipping render.');\n return null;\n }\n\n case EmbeddedFlowComponentType.Block: {\n if (component.components && component.components.length > 0) {\n const formStyles: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: `calc(${theme?.vars?.spacing?.unit ?? '4px'} * 2)`,\n };\n\n const blockComponents: any = component.components\n .map((childComponent: any, index: any) =>\n createAuthComponentFromFlow(\n childComponent,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n authType,\n {\n ...options,\n key: childComponent.id || `${component.id}_${index}`,\n },\n ),\n )\n .filter(Boolean);\n\n return (\n <form id={component.id} key={key} style={formStyles}>\n {blockComponents}\n </form>\n );\n }\n return null;\n }\n\n case EmbeddedFlowComponentType.RichText: {\n return (\n <div\n key={key}\n className={richTextClass}\n // Manually sanitizes with `DOMPurify`.\n // IMPORTANT: DO NOT REMOVE OR MODIFY THIS SANITIZATION STEP.\n dangerouslySetInnerHTML={{__html: DOMPurify.sanitize(resolveEmojiUrisInHtml(resolve(component.label)))}}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Image: {\n const explicitHeight: string = resolve(component.height?.toString());\n const explicitWidth: string = resolve(component.width?.toString());\n return (\n <ImageComponent\n key={key}\n component={\n {\n config: {\n alt: resolve(component.alt) || resolve(component.label) || 'Image',\n height: explicitHeight || (options.inStack ? '50' : 'auto'),\n src: resolve(component.src),\n width: explicitWidth || (options.inStack ? '50' : '100%'),\n },\n } as any\n }\n formErrors={undefined!}\n formValues={undefined!}\n isFormValid={false}\n isLoading={false}\n onInputChange={(): void => {\n throw new Error('Function not implemented.');\n }}\n touchedFields={undefined!}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Icon: {\n const iconName: string = component.name || '';\n const IconComponent: any = flowIconRegistry[iconName];\n if (!IconComponent) {\n logger.warn(`Unknown icon name: \"${iconName}\". Skipping render.`);\n return null;\n }\n return <IconComponent key={key} size={component.size || 24} color={component.color || 'currentColor'} />;\n }\n\n case EmbeddedFlowComponentType.Stack: {\n const direction: string = (component as any).direction || 'row';\n const gap: number = (component as any).gap ?? 2;\n const align: string = (component as any).align || 'center';\n const justify: string = (component as any).justify || 'flex-start';\n\n const stackStyle: CSSProperties = {\n alignItems: align,\n display: 'flex',\n flexDirection: direction as CSSProperties['flexDirection'],\n flexWrap: 'wrap',\n gap: `${gap * 0.5}rem`,\n justifyContent: justify,\n };\n\n const stackChildren: (ReactElement | null)[] = component.components\n ? component.components.map((childComponent: any, index: number) =>\n createAuthComponentFromFlow(\n childComponent,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n authType,\n {\n ...options,\n inStack: true,\n key: childComponent.id || `${component.id}_${index}`,\n },\n ),\n )\n : [];\n\n return (\n <div key={key} style={stackStyle}>\n {stackChildren}\n </div>\n );\n }\n\n case EmbeddedFlowComponentType.Consent: {\n const consentPromptRawData: ConsentPromptData | string | undefined = options.additionalData?.['consentPrompt'];\n\n return (\n <Consent\n key={key}\n consentData={consentPromptRawData as any}\n formValues={formValues}\n onInputChange={onInputChange}\n />\n );\n }\n\n case EmbeddedFlowComponentType.Timer: {\n const textTemplate: string = resolve((component as any).label) || 'Time remaining: {time}';\n const timeoutMs: number = Number(options.additionalData?.['stepTimeout']) || 0;\n const expiresIn: number = timeoutMs > 0 ? Math.max(0, Math.floor((timeoutMs - Date.now()) / 1000)) : 0;\n\n return <FlowTimer key={key} expiresIn={expiresIn} textTemplate={textTemplate} />;\n }\n\n case EmbeddedFlowComponentType.CopyableText: {\n const sourceKey: string | undefined = (component as any).source;\n const value: string = sourceKey && options.additionalData ? String(options.additionalData[sourceKey] ?? '') : '';\n const labelText: string | undefined = resolve((component as any).label) || undefined;\n\n return <CopyableText key={key} label={labelText} value={value} />;\n }\n\n default:\n // Gracefully handle unsupported component types by returning null\n logger.warn(`Unsupported component type: ${component.type}. Skipping render.`);\n return null;\n }\n};\n\n/**\n * Processes an array of components and renders them as React elements for sign-in.\n */\nexport const renderSignInComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n inputClassName?: string;\n /** Flag to determine if the step timeline has expired */\n isTimeoutDisabled?: boolean;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'signin',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n\n/**\n * Processes an array of components and renders them as React elements for sign-up.\n */\nexport const renderSignUpComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n inputClassName?: string;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'signup',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n\n/**\n * Processes an array of components and renders them as React elements for recovery flow.\n */\nexport const renderRecoveryComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n inputClassName?: string;\n /** Flag to determine if the step timeline has expired */\n isTimeoutDisabled?: boolean;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'recovery',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n\n/**\n * Processes an array of components and renders them as React elements for invite user.\n * This is used by both InviteUser and AcceptInvite components.\n */\nexport const renderInviteUserComponents = (\n components: EmbeddedFlowComponent[],\n formValues: Record<string, string>,\n touchedFields: Record<string, boolean>,\n formErrors: Record<string, string>,\n isLoading: boolean,\n isFormValid: boolean,\n onInputChange: (name: string, value: string) => void,\n options?: {\n /** @internal */\n _customRenderers?: ComponentRendererMap;\n /** @internal */\n _theme?: any;\n /** Additional data from the flow response */\n additionalData?: Record<string, any>;\n buttonClassName?: string;\n /** Function to fetch child organization units for OU_SELECT components. */\n fetchOrganizationUnitChildren?: (\n parentId: string,\n limit: number,\n offset: number,\n ) => Promise<OrganizationUnitListResponse>;\n inputClassName?: string;\n /** Flow metadata for resolving {{meta(...)}} expressions at render time */\n meta?: FlowMetadataResponse | null;\n onInputBlur?: (name: string) => void;\n onSubmit?: (component: EmbeddedFlowComponent, data?: Record<string, any>, skipValidation?: boolean) => void;\n size?: 'small' | 'medium' | 'large';\n /** Translation function for resolving {{t(...)}} expressions at render time */\n t?: UseTranslation['t'];\n variant?: any;\n },\n): ReactElement[] =>\n components\n .map((component: any, index: any) =>\n createAuthComponentFromFlow(\n component,\n formValues,\n touchedFields,\n formErrors,\n isLoading,\n isFormValid,\n onInputChange,\n 'signup',\n {\n ...options,\n key: component.id || index,\n },\n ),\n )\n .filter((x): x is ReactElement => x !== null);\n"],"mappings":"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e,cAAc,GAAG,GAAG;AAG9G,UAAO,oBAAC6C;IAAuB,OAFO,QAAS,UAAkB,MAAM,IAAI;IAEnB;MAA9B,IAAuC;;EAGnE;AAEE,YAAO,KAAK,+BAA+B,UAAU,KAAK,oBAAoB;AAC9E,UAAO;;;;;;AAOb,MAAa,0BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAqBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,UACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK;;;;AAKjD,MAAa,0BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAmBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,UACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK;;;;AAKjD,MAAa,4BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAqBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,YACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK;;;;;AAMjD,MAAa,8BACX,YACA,YACA,eACA,YACA,WACA,aACA,eACA,YAyBA,WACG,KAAK,WAAgB,UACpB,4BACE,WACA,YACA,eACA,YACA,WACA,aACA,eACA,UACA;CACE,GAAG;CACH,KAAK,UAAU,MAAM;CACtB,CACF,CACF,CACA,QAAQ,MAAyB,MAAM,KAAK"}
@@ -15,9 +15,9 @@
15
15
  * specific language governing permissions and limitations
16
16
  * under the License.
17
17
  */
18
- import { FlowExecutionError, FlowMetadataResponse, OrganizationUnitListResponse, Preferences } from '@thunderid/browser';
18
+ import { FieldError, FlowExecutionError, FlowMetadataResponse, OrganizationUnitListResponse, Preferences } from '@thunderid/browser';
19
19
  import { FC, ReactNode } from 'react';
20
- import { CardProps } from '../../../../primitives/Card/Card';
20
+ import { CardProps } from '../../../primitives/Card/Card';
21
21
  /**
22
22
  * Flow response structure from the backend.
23
23
  */
@@ -26,6 +26,7 @@ export interface InviteUserFlowResponse {
26
26
  data?: {
27
27
  additionalData?: Record<string, any>;
28
28
  components?: any[];
29
+ fieldErrors?: FieldError[];
29
30
  meta?: {
30
31
  components?: any[];
31
32
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseInviteUser.d.ts","sourceRoot":"","sources":["../../../../../src/components/presentation/auth/InviteUser/BaseInviteUser.tsx"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- import ComponentRendererContext_default from "../../../../../contexts/ComponentRenderer/ComponentRendererContext.js";
2
- import useThunderID_default from "../../../../../contexts/ThunderID/useThunderID.js";
3
- import useTheme_default from "../../../../../contexts/Theme/useTheme.js";
4
- import useTranslation_default from "../../../../../hooks/useTranslation.js";
5
- import Spinner_default from "../../../../primitives/Spinner/Spinner.js";
6
- import Typography_default from "../../../../primitives/Typography/Typography.js";
7
- import Alert_default from "../../../../primitives/Alert/Alert.js";
8
- import Card_default from "../../../../primitives/Card/Card.js";
9
- import { extractErrorMessage, normalizeFlowResponse } from "../../../../../utils/v2/flowTransformer.js";
10
- import { renderInviteUserComponents } from "../../AuthOptionFactory.js";
1
+ import ComponentRendererContext_default from "../../../../contexts/ComponentRenderer/ComponentRendererContext.js";
2
+ import useThunderID_default from "../../../../contexts/ThunderID/useThunderID.js";
3
+ import useTheme_default from "../../../../contexts/Theme/useTheme.js";
4
+ import useTranslation_default from "../../../../hooks/useTranslation.js";
5
+ import Spinner_default from "../../../primitives/Spinner/Spinner.js";
6
+ import { extractErrorMessage, normalizeFlowResponse } from "../../../../utils/flowTransformer.js";
7
+ import Typography_default from "../../../primitives/Typography/Typography.js";
8
+ import Alert_default from "../../../primitives/Alert/Alert.js";
9
+ import Card_default from "../../../primitives/Card/Card.js";
10
+ import { renderInviteUserComponents } from "../AuthOptionFactory.js";
11
11
  import BaseInviteUser_styles_default from "./BaseInviteUser.styles.js";
12
- import { EmbeddedFlowType, logger } from "@thunderid/browser";
12
+ import { EmbeddedFlowType, buildValidatorFromRules, logger } from "@thunderid/browser";
13
13
  import { useCallback, useContext, useEffect, useRef, useState } from "react";
14
14
  import { jsx, jsxs } from "react/jsx-runtime";
15
15
  import { cx } from "@emotion/css";
16
16
 
17
- //#region src/components/presentation/auth/InviteUser/v2/BaseInviteUser.tsx
17
+ //#region src/components/presentation/auth/InviteUser/BaseInviteUser.tsx
18
18
  /**
19
19
  * Base component for invite user flow.
20
20
  * Handles the flow logic for creating a user and generating an invite link.
@@ -45,6 +45,26 @@ const BaseInviteUser = ({ onInitialize, onSubmit, onError, onFlowChange, classNa
45
45
  const [touchedFields, setTouchedFields] = useState({});
46
46
  const [isFormValid, setIsFormValid] = useState(true);
47
47
  const challengeTokenRef = useRef(null);
48
+ /**
49
+ * Project server-side validation errors from the most recent flow response into the
50
+ * local formErrors state so they render alongside client-side errors. First error
51
+ * per field wins, matching the SDK's single-string-per-field render-prop shape.
52
+ */
53
+ useEffect(() => {
54
+ const responseFieldErrors = (currentFlow?.data)?.fieldErrors;
55
+ if (!responseFieldErrors || responseFieldErrors.length === 0) return;
56
+ const errors = {};
57
+ const touched = {};
58
+ for (const fe of responseFieldErrors) if (!(fe.identifier in errors)) {
59
+ errors[fe.identifier] = fe.message;
60
+ touched[fe.identifier] = true;
61
+ }
62
+ setFormErrors(errors);
63
+ setTouchedFields((prev) => ({
64
+ ...prev,
65
+ ...touched
66
+ }));
67
+ }, [currentFlow]);
48
68
  const initializationAttemptedRef = useRef(false);
49
69
  /**
50
70
  * Restore any challenge token persisted before an OAuth redirect.
@@ -133,10 +153,19 @@ const BaseInviteUser = ({ onInitialize, onSubmit, onError, onFlowChange, classNa
133
153
  const errors = {};
134
154
  const validateComponents = (comps) => {
135
155
  comps.forEach((comp) => {
136
- if ((comp.type === "TEXT_INPUT" || comp.type === "EMAIL_INPUT" || comp.type === "SELECT" || comp.type === "PHONE_INPUT" || comp.type === "OTP_INPUT") && comp.required && comp.ref) {
156
+ if ((comp.type === "TEXT_INPUT" || comp.type === "EMAIL_INPUT" || comp.type === "SELECT" || comp.type === "PHONE_INPUT" || comp.type === "OTP_INPUT" || comp.type === "DATE_INPUT") && comp.ref) {
137
157
  const value = formValues[comp.ref];
138
- if (!value || value.trim() === "") errors[comp.ref] = `${comp.label || comp.ref} is required`;
139
- if (comp.type === "EMAIL_INPUT" && value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) errors[comp.ref] = "Please enter a valid email address";
158
+ if (comp.required && (!value || value.trim() === "")) errors[comp.ref] = `${comp.label || comp.ref} is required`;
159
+ else {
160
+ if (comp.type === "EMAIL_INPUT" && value && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) errors[comp.ref] = "Please enter a valid email address";
161
+ if (value && !errors[comp.ref]) {
162
+ const ruleValidator = buildValidatorFromRules(comp.validation);
163
+ if (ruleValidator) {
164
+ const message = ruleValidator(value);
165
+ if (message) errors[comp.ref] = t(message);
166
+ }
167
+ }
168
+ }
140
169
  }
141
170
  if (comp.components && Array.isArray(comp.components)) validateComponents(comp.components);
142
171
  });