@keycloakify/angular 0.0.1-rc.17 → 0.0.1-rc.18

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 (247) hide show
  1. package/esm2022/account/containers/template/template.component.mjs +6 -6
  2. package/esm2022/account/directives/kc-class/kc-class.directive.mjs +3 -3
  3. package/esm2022/account/pages/account/account.component.mjs +6 -6
  4. package/esm2022/account/pages/applications/applications.component.mjs +6 -6
  5. package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +6 -6
  6. package/esm2022/account/pages/log/log.component.mjs +3 -3
  7. package/esm2022/account/pages/password/password.component.mjs +7 -6
  8. package/esm2022/account/pages/sessions/sessions.component.mjs +6 -6
  9. package/esm2022/account/pages/totp/totp.component.mjs +6 -6
  10. package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
  11. package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +3 -3
  12. package/esm2022/account/services/i18n/i18n.service.mjs +3 -3
  13. package/esm2022/lib/directives/attributes/attributes.directive.mjs +3 -3
  14. package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +3 -3
  15. package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +3 -3
  16. package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +3 -3
  17. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  18. package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +3 -3
  19. package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +3 -3
  20. package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +5 -5
  21. package/esm2022/login/components/field-errors/field-errors.component.mjs +6 -6
  22. package/esm2022/login/components/group-label/group-label.component.mjs +3 -3
  23. package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +6 -6
  24. package/esm2022/login/components/input-tag/input-tag.component.mjs +6 -6
  25. package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +3 -3
  26. package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +3 -3
  27. package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +6 -6
  28. package/esm2022/login/components/select-tag/select-tag.component.mjs +3 -3
  29. package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +3 -3
  30. package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +6 -6
  31. package/esm2022/login/containers/template/template.component.mjs +6 -6
  32. package/esm2022/login/directives/kc-class/kc-class.directive.mjs +5 -5
  33. package/esm2022/login/pages/code/code.component.mjs +3 -3
  34. package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +6 -6
  35. package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +6 -6
  36. package/esm2022/login/pages/error/error.component.mjs +3 -3
  37. package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +6 -6
  38. package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +6 -6
  39. package/esm2022/login/pages/info/info.component.mjs +3 -3
  40. package/esm2022/login/pages/login/login.component.mjs +6 -6
  41. package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +6 -6
  42. package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +6 -6
  43. package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +6 -6
  44. package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +3 -3
  45. package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +6 -6
  46. package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +6 -6
  47. package/esm2022/login/pages/login-otp/login-otp.component.mjs +6 -6
  48. package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +3 -3
  49. package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +6 -6
  50. package/esm2022/login/pages/login-password/login-password.component.mjs +6 -6
  51. package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +6 -6
  52. package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +6 -6
  53. package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +6 -6
  54. package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +6 -6
  55. package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +6 -6
  56. package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +6 -6
  57. package/esm2022/login/pages/login-username/login-username.component.mjs +6 -6
  58. package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +3 -3
  59. package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +6 -6
  60. package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +6 -6
  61. package/esm2022/login/pages/register/register.component.mjs +6 -6
  62. package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +6 -6
  63. package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +6 -6
  64. package/esm2022/login/pages/terms/terms.component.mjs +6 -6
  65. package/esm2022/login/pages/update-email/update-email.component.mjs +6 -6
  66. package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +6 -6
  67. package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +6 -6
  68. package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +6 -6
  69. package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
  70. package/esm2022/login/services/i18n/i18n.service.mjs +3 -3
  71. package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +3 -3
  72. package/esm2022/login/services/submit/submit.service.mjs +4 -4
  73. package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +3 -3
  74. package/fesm2022/keycloakify-angular-account-containers-template.mjs +5 -5
  75. package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -1
  76. package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -3
  77. package/fesm2022/keycloakify-angular-account-pages-account.mjs +5 -5
  78. package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
  79. package/fesm2022/keycloakify-angular-account-pages-applications.mjs +5 -5
  80. package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
  81. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +5 -5
  82. package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
  83. package/fesm2022/keycloakify-angular-account-pages-log.mjs +3 -3
  84. package/fesm2022/keycloakify-angular-account-pages-password.mjs +6 -5
  85. package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
  86. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +5 -5
  87. package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
  88. package/fesm2022/keycloakify-angular-account-pages-totp.mjs +5 -5
  89. package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
  90. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +1 -0
  91. package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
  92. package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -3
  93. package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
  94. package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +3 -3
  95. package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
  96. package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
  97. package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
  98. package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
  99. package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
  100. package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +3 -3
  101. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +4 -4
  102. package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
  103. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +5 -5
  104. package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
  105. package/fesm2022/keycloakify-angular-login-components-group-label.mjs +3 -3
  106. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +5 -5
  107. package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
  108. package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +3 -3
  109. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +5 -5
  110. package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
  111. package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
  112. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +5 -5
  113. package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
  114. package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +3 -3
  115. package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +3 -3
  116. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -5
  117. package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -1
  118. package/fesm2022/keycloakify-angular-login-containers-template.mjs +5 -5
  119. package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
  120. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +4 -4
  121. package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -1
  122. package/fesm2022/keycloakify-angular-login-pages-code.mjs +3 -3
  123. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +5 -5
  124. package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
  125. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +5 -5
  126. package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
  127. package/fesm2022/keycloakify-angular-login-pages-error.mjs +3 -3
  128. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +5 -5
  129. package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
  130. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +5 -5
  131. package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
  132. package/fesm2022/keycloakify-angular-login-pages-info.mjs +3 -3
  133. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +5 -5
  134. package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
  135. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +5 -5
  136. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
  137. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +5 -5
  138. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
  139. package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +3 -3
  140. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +5 -5
  141. package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
  142. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +5 -5
  143. package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
  144. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +5 -5
  145. package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
  146. package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +3 -3
  147. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +5 -5
  148. package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
  149. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +5 -5
  150. package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
  151. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +5 -5
  152. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
  153. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +5 -5
  154. package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
  155. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +5 -5
  156. package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
  157. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +5 -5
  158. package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
  159. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +5 -5
  160. package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
  161. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +5 -5
  162. package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
  163. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +5 -5
  164. package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
  165. package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +3 -3
  166. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +5 -5
  167. package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
  168. package/fesm2022/keycloakify-angular-login-pages-login.mjs +5 -5
  169. package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
  170. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +5 -5
  171. package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
  172. package/fesm2022/keycloakify-angular-login-pages-register.mjs +5 -5
  173. package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
  174. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +5 -5
  175. package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
  176. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +5 -5
  177. package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
  178. package/fesm2022/keycloakify-angular-login-pages-terms.mjs +5 -5
  179. package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
  180. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +5 -5
  181. package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
  182. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +5 -5
  183. package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
  184. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +5 -5
  185. package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
  186. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +5 -5
  187. package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
  188. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -0
  189. package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
  190. package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
  191. package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +3 -3
  192. package/fesm2022/keycloakify-angular-login-services-submit.mjs +3 -3
  193. package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -1
  194. package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +3 -3
  195. package/login/directives/kc-class/kc-class.directive.d.ts +1 -1
  196. package/package.json +1 -1
  197. package/src/account/containers/template/template.component.html +2 -2
  198. package/src/account/pages/account/account.component.html +3 -3
  199. package/src/account/pages/applications/applications.component.html +2 -2
  200. package/src/account/pages/federatedIdentity/federatedIdentity.component.html +5 -5
  201. package/src/account/pages/password/password.component.html +4 -4
  202. package/src/account/pages/password/password.component.ts +1 -0
  203. package/src/account/pages/sessions/sessions.component.html +1 -1
  204. package/src/account/pages/totp/totp.component.html +11 -11
  205. package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
  206. package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +2 -2
  207. package/src/login/components/field-errors/field-errors.component.html +1 -1
  208. package/src/login/components/input-field-by-type/input-field-by-type.component.html +6 -6
  209. package/src/login/components/input-tag/input-tag.component.html +2 -2
  210. package/src/login/components/password-wrapper/password-wrapper.component.html +2 -2
  211. package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +7 -11
  212. package/src/login/containers/template/template.component.html +11 -11
  213. package/src/login/directives/kc-class/kc-class.directive.ts +1 -2
  214. package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +3 -3
  215. package/src/login/pages/delete-credential/delete-credential.component.html +4 -4
  216. package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +1 -1
  217. package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +3 -3
  218. package/src/login/pages/login/login.component.html +9 -9
  219. package/src/login/pages/login-config-totp/login-config-totp.component.html +10 -10
  220. package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +3 -3
  221. package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +2 -2
  222. package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +5 -5
  223. package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +3 -3
  224. package/src/login/pages/login-otp/login-otp.component.html +7 -7
  225. package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +9 -9
  226. package/src/login/pages/login-password/login-password.component.html +5 -5
  227. package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +9 -9
  228. package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +5 -5
  229. package/src/login/pages/login-reset-otp/login-reset-otp.component.html +5 -5
  230. package/src/login/pages/login-reset-password/login-reset-password.component.html +4 -4
  231. package/src/login/pages/login-update-password/login-update-password.component.html +8 -8
  232. package/src/login/pages/login-update-profile/login-update-profile.component.html +4 -4
  233. package/src/login/pages/login-username/login-username.component.html +7 -7
  234. package/src/login/pages/login-x509-info/login-x509-info.component.html +3 -3
  235. package/src/login/pages/logout-confirm/logout-confirm.component.html +2 -2
  236. package/src/login/pages/register/register.component.html +7 -7
  237. package/src/login/pages/saml-post-form/saml-post-form.component.html +1 -1
  238. package/src/login/pages/select-authenticator/select-authenticator.component.html +2 -2
  239. package/src/login/pages/terms/terms.component.html +3 -3
  240. package/src/login/pages/update-email/update-email.component.html +5 -5
  241. package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +4 -5
  242. package/src/login/pages/webauthn-error/webauthn-error.component.html +6 -6
  243. package/src/login/pages/webauthn-register/webauthn-register.component.html +4 -4
  244. package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
  245. package/src/login/services/submit/submit.service.ts +1 -1
  246. package/src/tsconfig.lib.json +0 -12
  247. package/src/tsconfig.lib.prod.json +0 -10
@@ -48,19 +48,19 @@
48
48
  @for (provider of social?.providers; track provider.alias; let idx = $index) {
49
49
  <li>
50
50
  <a
51
+ type="button"
51
52
  [id]="provider.alias"
52
53
  [kcClass]="{
53
54
  kcFormSocialAccountListButtonClass: true,
54
55
  kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3
55
56
  }"
56
- type="button"
57
57
  [href]="provider.loginUrl"
58
58
  >
59
59
  @if (provider.iconClasses) {
60
60
  <i
61
+ aria-hidden="true"
61
62
  [ngClass]="provider.iconClasses"
62
63
  [kcClass]="'kcCommonLogoIdP'"
63
- aria-hidden="true"
64
64
  ></i>
65
65
  }
66
66
  <span
@@ -84,9 +84,9 @@
84
84
  @if (realm?.password) {
85
85
  <form
86
86
  id="kc-form-login"
87
- (onSubmit)="isLoginButtonDisabled.set(true)"
88
- [action]="url?.loginAction"
89
87
  method="post"
88
+ [action]="url?.loginAction"
89
+ (onSubmit)="isLoginButtonDisabled.set(true)"
90
90
  >
91
91
  @if (!usernameHidden) {
92
92
  <div [kcClass]="'kcFormGroupClass'">
@@ -105,18 +105,18 @@
105
105
  <input
106
106
  tabindex="2"
107
107
  id="username"
108
- [kcClass]="'kcInputClass'"
109
108
  name="username"
110
109
  type="text"
111
110
  autofocus
111
+ [kcClass]="'kcInputClass'"
112
112
  [defaultValue]="login?.username || ''"
113
113
  [attr.aria-invalid]="messagesPerField?.existsError('username', 'password')"
114
114
  />
115
115
  @if (messagesPerField?.existsError('username', 'password')) {
116
116
  <span
117
117
  id="input-error"
118
- [kcClass]="'kcInputErrorMessageClass'"
119
118
  aria-live="polite"
119
+ [kcClass]="'kcInputErrorMessageClass'"
120
120
  [innerHTML]="messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'"
121
121
  >
122
122
  </span>
@@ -136,18 +136,18 @@
136
136
  <input
137
137
  tabindex="3"
138
138
  id="password"
139
- [kcClass]="'kcInputClass'"
140
139
  name="password"
141
140
  type="password"
142
141
  autocomplete="off"
142
+ [kcClass]="'kcInputClass'"
143
143
  [attr.aria-invalid]="messagesPerField.existsError('username', 'password')"
144
144
  />
145
145
  </kc-password-wrapper>
146
146
  @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {
147
147
  <span
148
148
  id="input-error"
149
- [kcClass]="'kcInputErrorMessageClass'"
150
149
  aria-live="polite"
150
+ [kcClass]="'kcInputErrorMessageClass'"
151
151
  [innerHTML]="messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'"
152
152
  >
153
153
  </span>
@@ -196,10 +196,10 @@
196
196
  />
197
197
  <input
198
198
  tabindex="7"
199
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
200
199
  name="login"
201
200
  id="kc-login"
202
201
  type="submit"
202
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
203
203
  [value]="i18n.msgStr('doLogIn')"
204
204
  [disabled]="isLoginButtonDisabled()"
205
205
  />
@@ -31,8 +31,8 @@
31
31
  </p>
32
32
  <p>
33
33
  <a
34
- [href]="totp.qrUrl"
35
34
  id="mode-barcode"
35
+ [href]="totp.qrUrl"
36
36
  >
37
37
  {{ i18n.msgStr('loginTotpScanBarcode') }}
38
38
  </a>
@@ -69,14 +69,14 @@
69
69
  <p>{{ i18n.msgStr('loginTotpStep2') }}</p>
70
70
  <img
71
71
  id="kc-totp-secret-qr-code"
72
- [src]="'data:image/png;base64, ' + totp.totpSecretQrCode"
73
72
  alt="Figure: Barcode"
73
+ [src]="'data:image/png;base64, ' + totp.totpSecretQrCode"
74
74
  />
75
75
  <br />
76
76
  <p>
77
77
  <a
78
- [href]="totp.manualUrl"
79
78
  id="mode-manual"
79
+ [href]="totp.manualUrl"
80
80
  >
81
81
  {{ i18n.msgStr('loginTotpUnableToScan') }}
82
82
  </a>
@@ -89,10 +89,10 @@
89
89
  </li>
90
90
  </ol>
91
91
  <form
92
- [action]="url.loginAction"
93
- [kcClass]="'kcFormClass'"
94
92
  id="kc-totp-settings-form"
95
93
  method="post"
94
+ [action]="url.loginAction"
95
+ [kcClass]="'kcFormClass'"
96
96
  >
97
97
  <div [kcClass]="'kcFormGroupClass'">
98
98
  <div [kcClass]="'kcInputWrapperClass'">
@@ -116,8 +116,8 @@
116
116
  @if (messagesPerField.existsError('totp')) {
117
117
  <span
118
118
  id="input-error-otp-code"
119
- [kcClass]="'kcInputErrorMessageClass'"
120
119
  aria-live="polite"
120
+ [kcClass]="'kcInputErrorMessageClass'"
121
121
  [innerHTML]="messagesPerField.get('totp') | kcSanitize: 'html'"
122
122
  ></span>
123
123
  }
@@ -160,8 +160,8 @@
160
160
  @if (messagesPerField.existsError('userLabel')) {
161
161
  <span
162
162
  id="input-error-otp-label"
163
- [kcClass]="'kcInputErrorMessageClass'"
164
163
  aria-live="polite"
164
+ [kcClass]="'kcInputErrorMessageClass'"
165
165
  [innerHTML]="messagesPerField.get('userLabel') | kcSanitize: 'html'"
166
166
  ></span>
167
167
  }
@@ -174,15 +174,15 @@
174
174
  @if (isAppInitiatedAction) {
175
175
  <input
176
176
  type="submit"
177
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
178
177
  id="saveTOTPBtn"
178
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
179
179
  [value]="i18n.msgStr('doSubmit')"
180
180
  />
181
181
  <button
182
182
  type="submit"
183
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']"
184
183
  id="cancelTOTPBtn"
185
184
  name="cancel-aia"
185
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass', 'kcButtonLargeClass']"
186
186
  [value]="true"
187
187
  >
188
188
  {{ i18n.msgStr('doCancel') }}
@@ -190,8 +190,8 @@
190
190
  } @else {
191
191
  <input
192
192
  type="submit"
193
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
194
193
  id="saveTOTPBtn"
194
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
195
195
  [value]="i18n.msgStr('doSubmit')"
196
196
  />
197
197
  }
@@ -13,25 +13,25 @@
13
13
  <ng-container content>
14
14
  <form
15
15
  id="kc-register-form"
16
- [action]="url.loginAction"
17
16
  method="post"
17
+ [action]="url.loginAction"
18
18
  >
19
19
  <div [kcClass]="'kcFormGroupClass'">
20
20
  <button
21
21
  type="submit"
22
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
23
22
  name="submitAction"
24
23
  id="updateProfile"
25
24
  value="updateProfile"
25
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
26
26
  >
27
27
  {{ i18n.msgStr('confirmLinkIdpReviewProfile') }}
28
28
  </button>
29
29
  <button
30
30
  type="submit"
31
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
32
31
  name="submitAction"
33
32
  id="linkAccount"
34
33
  value="linkAccount"
34
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
35
35
  >
36
36
  {{ i18n.msgStr('confirmLinkIdpContinue', idpAlias) }}
37
37
  </button>
@@ -14,8 +14,8 @@
14
14
  <ng-container content>
15
15
  <form
16
16
  id="kc-register-form"
17
- [action]="url.loginAction"
18
17
  method="post"
18
+ [action]="url.loginAction"
19
19
  >
20
20
  {{ i18n.msgStr('pageExpiredMsg1') }}
21
21
  <a
@@ -28,10 +28,10 @@
28
28
  <br />
29
29
  <button
30
30
  type="submit"
31
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
32
31
  name="submitAction"
33
32
  id="confirmOverride"
34
33
  value="confirmOverride"
34
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
35
35
  >
36
36
  {{ i18n.msgStr('confirmOverrideIdpContinue', idpDisplayName) }}
37
37
  </button>
@@ -11,8 +11,8 @@
11
11
  <ng-container headerNode>
12
12
  @if (client.attributes['logoUri']) {
13
13
  <img
14
- [src]="client.attributes['logoUri']"
15
14
  alt=""
15
+ [src]="client.attributes['logoUri']"
16
16
  />
17
17
  }
18
18
  <p>
@@ -49,8 +49,8 @@
49
49
  @if (client.attributes['policyUri']) {
50
50
  {{ i18n.msgStr('oauthGrantReview') }}
51
51
  <a
52
- [href]="client.attributes['policyUri']"
53
52
  target="_blank"
53
+ [href]="client.attributes['policyUri']"
54
54
  >
55
55
  {{ i18n.msgStr('oauthGrantPolicy') }}
56
56
  </a>
@@ -59,8 +59,8 @@
59
59
  }
60
60
  <form
61
61
  class="form-actions"
62
- [action]="url.oauthAction"
63
62
  method="post"
63
+ [action]="url.oauthAction"
64
64
  >
65
65
  <input
66
66
  type="hidden"
@@ -75,13 +75,13 @@
75
75
  <div id="kc-form-buttons">
76
76
  <div [kcClass]="'kcFormButtonsWrapperClass'">
77
77
  <input
78
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
79
78
  type="submit"
79
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
80
80
  [value]="i18n.msgStr('doYes')"
81
81
  />
82
82
  <input
83
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
84
83
  type="submit"
84
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
85
85
  [value]="i18n.msgStr('doNo')"
86
86
  />
87
87
  </div>
@@ -12,9 +12,9 @@
12
12
  <ng-container content>
13
13
  <form
14
14
  id="kc-user-verify-device-user-code-form"
15
+ method="post"
15
16
  [kcClass]="'kcFormClass'"
16
17
  [action]="url.oauth2DeviceVerificationAction"
17
- method="post"
18
18
  >
19
19
  <div [kcClass]="'kcFormGroupClass'">
20
20
  <div [kcClass]="'kcLabelWrapperClass'">
@@ -32,8 +32,8 @@
32
32
  name="device_user_code"
33
33
  autoComplete="off"
34
34
  type="text"
35
- [kcClass]="'kcInputClass'"
36
35
  autofocus
36
+ [kcClass]="'kcInputClass'"
37
37
  />
38
38
  </div>
39
39
  </div>
@@ -51,8 +51,8 @@
51
51
  >
52
52
  <div [kcClass]="'kcFormButtonsWrapperClass'">
53
53
  <input
54
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
55
54
  type="submit"
55
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
56
56
  [value]="i18n.msgStr('doSubmit')"
57
57
  />
58
58
  </div>
@@ -14,9 +14,9 @@
14
14
  <ng-container content>
15
15
  <form
16
16
  id="kc-otp-login-form"
17
+ method="post"
17
18
  [kcClass]="['kcFormClass']"
18
19
  [action]="url.loginAction"
19
- method="post"
20
20
  >
21
21
  @if (otpLogin.userOtpCredentials.length > 1) {
22
22
  <div [kcClass]="'kcFormGroupClass'">
@@ -24,10 +24,10 @@
24
24
  @for (otpCredential of otpLogin.userOtpCredentials; track otpCredential; let i = $index) {
25
25
  <ng-container>
26
26
  <input
27
- [id]="'kc-otp-credential-' + i"
28
- [kcClass]="'kcLoginOTPListClass'"
29
27
  type="radio"
30
28
  name="selectedCredentialId"
29
+ [id]="'kc-otp-credential-' + i"
30
+ [kcClass]="'kcLoginOTPListClass'"
31
31
  [value]="otpCredential.id"
32
32
  [checked]="otpCredential.id === otpLogin.selectedCredentialId"
33
33
  />
@@ -39,8 +39,8 @@
39
39
  <span [kcClass]="'kcLoginOTPListItemHeaderClass'">
40
40
  <span [kcClass]="'kcLoginOTPListItemIconBodyClass'">
41
41
  <i
42
- [kcClass]="'kcLoginOTPListItemIconClass'"
43
42
  aria-hidden="true"
43
+ [kcClass]="'kcLoginOTPListItemIconClass'"
44
44
  ></i>
45
45
  </span>
46
46
  <span [kcClass]="'kcLoginOTPListItemTitleClass'">{{ otpCredential.userLabel }}</span>
@@ -66,15 +66,15 @@
66
66
  name="otp"
67
67
  autoComplete="off"
68
68
  type="text"
69
- [kcClass]="'kcInputClass'"
70
69
  autoFocus
70
+ [kcClass]="'kcInputClass'"
71
71
  [attr.aria-invalid]="messagesPerField.existsError('totp')"
72
72
  />
73
73
  @if (messagesPerField.existsError('totp')) {
74
74
  <span
75
75
  id="input-error-otp-code"
76
- [kcClass]="['kcInputErrorMessageClass']"
77
76
  aria-live="polite"
77
+ [kcClass]="['kcInputErrorMessageClass']"
78
78
  [innerHTML]="messagesPerField.get('totp') | kcSanitize: 'html'"
79
79
  ></span>
80
80
  }
@@ -90,10 +90,10 @@
90
90
  [kcClass]="'kcFormButtonsClass'"
91
91
  >
92
92
  <input
93
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
94
93
  name="login"
95
94
  id="kc-login"
96
95
  type="submit"
96
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
97
97
  [value]="i18n.msgStr('doLogIn')"
98
98
  />
99
99
  </div>
@@ -29,8 +29,8 @@
29
29
  <ng-container content>
30
30
  <form
31
31
  id="webauth"
32
- [action]="url.loginAction"
33
32
  method="post"
33
+ [action]="url.loginAction"
34
34
  >
35
35
  <input
36
36
  type="hidden"
@@ -64,9 +64,9 @@
64
64
  />
65
65
  </form>
66
66
  <div
67
- [kcClass]="'kcFormGroupClass'"
68
67
  no-bottom-margin="true"
69
68
  style="margin-bottom: 0"
69
+ [kcClass]="'kcFormGroupClass'"
70
70
  >
71
71
  @if (authenticators !== undefined && authenticators.authenticators.length !== 0) {
72
72
  <form
@@ -97,9 +97,9 @@
97
97
  [kcClass]="'kcSelectAuthListItemClass'"
98
98
  >
99
99
  <i
100
+ aria-hidden="true"
100
101
  [ngClass]="selectAuthListItemIconClass(authenticator.transports.iconClass)"
101
102
  [kcClass]="'kcCommonLogoIdP'"
102
- aria-hidden="true"
103
103
  ></i>
104
104
  <div [kcClass]="'kcSelectAuthListItemBodyClass'">
105
105
  <div
@@ -150,9 +150,9 @@
150
150
  @if (realm.password) {
151
151
  <form
152
152
  id="kc-form-passkey"
153
- [action]="url.loginAction"
154
153
  method="post"
155
154
  style="display: none"
155
+ [action]="url.loginAction"
156
156
  >
157
157
  @if (!usernameHidden) {
158
158
  <div [kcClass]="'kcFormGroupClass'">
@@ -165,19 +165,19 @@
165
165
  <input
166
166
  tabIndex="1"
167
167
  id="username"
168
- [attr.aria-invalid]="messagesPerField.existsError('username')"
169
- [kcClass]="'kcInputClass'"
170
168
  name="username"
171
- [value]="login.username ?? ''"
172
169
  type="text"
173
170
  autoFocus
174
171
  autoComplete="off"
172
+ [attr.aria-invalid]="messagesPerField.existsError('username')"
173
+ [kcClass]="'kcInputClass'"
174
+ [value]="login.username ?? ''"
175
175
  />
176
176
  @if (messagesPerField.existsError('username')) {
177
177
  <span
178
178
  id="input-error-username"
179
- [kcClass]="'kcInputErrorMessageClass'"
180
179
  aria-live="polite"
180
+ [kcClass]="'kcInputErrorMessageClass'"
181
181
  >
182
182
  {{ messagesPerField.get('username') }}
183
183
  </span>
@@ -187,8 +187,8 @@
187
187
  </form>
188
188
  <div
189
189
  id="kc-form-passkey-button"
190
- [kcClass]="'kcFormButtonsClass'"
191
190
  style="display: none"
191
+ [kcClass]="'kcFormButtonsClass'"
192
192
  >
193
193
  <input
194
194
  id="authButtonId"
@@ -16,13 +16,13 @@
16
16
  <div id="kc-form-wrapper">
17
17
  <form
18
18
  id="kc-form-login"
19
- (onSubmit)="isLoginButtonDisabled.set(true)"
20
- [action]="url?.loginAction"
21
19
  method="post"
20
+ [action]="url?.loginAction"
21
+ (onSubmit)="isLoginButtonDisabled.set(true)"
22
22
  >
23
23
  <div
24
- [kcClass]="'kcFormGroupClass'"
25
24
  class="no-bottom-margin"
25
+ [kcClass]="'kcFormGroupClass'"
26
26
  >
27
27
  <hr />
28
28
  <label
@@ -36,19 +36,19 @@
36
36
  type="password"
37
37
  id="password"
38
38
  name="password"
39
+ aria-describedby="input-error-password"
39
40
  [kcClass]="'kcInputClass'"
40
41
  [required]="true"
41
42
  [autofocus]="true"
42
43
  [tabindex]="1"
43
- aria-describedby="input-error-password"
44
44
  />
45
45
  </kc-password-wrapper>
46
46
 
47
47
  @if (messagesPerField.existsError('password')) {
48
48
  <span
49
49
  id="input-error-password"
50
- [kcClass]="'kcInputErrorMessageClass'"
51
50
  aria-live="polite"
51
+ [kcClass]="'kcInputErrorMessageClass'"
52
52
  [innerHTML]="messagesPerField.getFirstError('password') | kcSanitize: 'html'"
53
53
  >
54
54
  </span>
@@ -13,9 +13,9 @@
13
13
 
14
14
  <ng-container content>
15
15
  <div
16
- [kcClass]="'kcRecoveryCodesWarning'"
17
16
  class="pf-c-alert pf-m-warning pf-m-inline"
18
17
  aria-label="Warning alert"
18
+ [kcClass]="'kcRecoveryCodesWarning'"
19
19
  >
20
20
  <div class="pf-c-alert__icon">
21
21
  <i
@@ -83,15 +83,15 @@
83
83
  <!-- confirmation checkbox -->
84
84
 
85
85
  <div
86
- [kcClass]="'kcFormOptionsClass'"
87
86
  class="checkbox"
87
+ [kcClass]="'kcFormOptionsClass'"
88
88
  >
89
89
  <label for="kcRecoveryCodesConfirmationCheck">
90
90
  <input
91
- [kcClass]="'kcCheckInputClass'"
92
91
  type="checkbox"
93
92
  id="kcRecoveryCodesConfirmationCheck"
94
93
  name="kcRecoveryCodesConfirmationCheck"
94
+ [kcClass]="'kcCheckInputClass'"
95
95
  [checked]="toggleRecoveryCodesConfirmation()"
96
96
  (change)="toggleRecoveryCodesConfirmation.set($any($event.target).checked)"
97
97
  />
@@ -100,10 +100,10 @@
100
100
  </div>
101
101
 
102
102
  <form
103
- [action]="kcContext.url.loginAction"
104
- [kcClass]="'kcFormGroupClass'"
105
103
  id="kc-recovery-codes-settings-form"
106
104
  method="post"
105
+ [action]="kcContext.url.loginAction"
106
+ [kcClass]="'kcFormGroupClass'"
107
107
  >
108
108
  <input
109
109
  type="hidden"
@@ -122,30 +122,30 @@
122
122
  [value]="i18n.msgStr('recovery-codes-label-default')"
123
123
  />
124
124
 
125
- <kc-logout-other-sessions></kc-logout-other-sessions>
125
+ <kc-logout-other-sessions />
126
126
 
127
127
  @if (isAppInitiatedAction) {
128
128
  <input
129
129
  type="submit"
130
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
131
130
  id="saveRecoveryAuthnCodesBtn"
131
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']"
132
132
  [value]="i18n.msgStr('recovery-codes-action-complete')"
133
133
  [disabled]="!toggleRecoveryCodesConfirmation()"
134
134
  />
135
135
  <button
136
136
  type="submit"
137
- [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
138
137
  id="cancelRecoveryAuthnCodesBtn"
139
138
  name="cancel-aia"
140
139
  value="true"
140
+ [kcClass]="['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']"
141
141
  >
142
142
  {{ i18n.msgStr('recovery-codes-action-cancel') }}
143
143
  </button>
144
144
  } @else {
145
145
  <input
146
146
  type="submit"
147
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
148
147
  id="saveRecoveryAuthnCodesBtn"
148
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
149
149
  [value]="i18n.msgStr('recovery-codes-action-complete')"
150
150
  [disabled]="!toggleRecoveryCodesConfirmation()"
151
151
  />
@@ -16,9 +16,9 @@
16
16
  <ng-container content>
17
17
  <form
18
18
  id="kc-recovery-code-login-form"
19
+ method="post"
19
20
  [kcClass]="'kcFormClass'"
20
21
  [action]="url.loginAction"
21
- method="post"
22
22
  >
23
23
  <div [kcClass]="'kcFormGroupClass'">
24
24
  <div [kcClass]="'kcLabelWrapperClass'">
@@ -34,17 +34,17 @@
34
34
  tabIndex="1"
35
35
  id="recoveryCodeInput"
36
36
  name="recoveryCodeInput"
37
- [attr.aria-invalid]="messagesPerField.existsError('recoveryCodeInput')"
38
37
  autoComplete="off"
39
38
  type="text"
40
- [kcClass]="'kcInputClass'"
41
39
  autoFocus
40
+ [attr.aria-invalid]="messagesPerField.existsError('recoveryCodeInput')"
41
+ [kcClass]="'kcInputClass'"
42
42
  />
43
43
  @if (messagesPerField.existsError('recoveryCodeInput')) {
44
44
  <span
45
45
  id="input-error"
46
- [kcClass]="'kcInputErrorMessageClass'"
47
46
  aria-live="polite"
47
+ [kcClass]="'kcInputErrorMessageClass'"
48
48
  [innerHTML]="messagesPerField.get('recoveryCodeInput') | kcSanitize: 'html'"
49
49
  ></span>
50
50
  }
@@ -63,10 +63,10 @@
63
63
  [kcClass]="'kcFormButtonsClass'"
64
64
  >
65
65
  <input
66
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
67
66
  name="login"
68
67
  id="kc-login"
69
68
  type="submit"
69
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
70
70
  [value]="i18n.msgStr('doLogIn')"
71
71
  />
72
72
  </div>
@@ -13,9 +13,9 @@
13
13
  <ng-container content>
14
14
  <form
15
15
  id="kc-otp-reset-form"
16
+ method="post"
16
17
  [kcClass]="'kcFormClass'"
17
18
  [action]="url.loginAction"
18
- method="post"
19
19
  >
20
20
  <div [kcClass]="'kcInputWrapperClass'">
21
21
  <div [kcClass]="'kcInfoAreaWrapperClass'">
@@ -24,10 +24,10 @@
24
24
  </p>
25
25
  @for (otpCredential of configuredOtpCredentials.userOtpCredentials; track otpCredential; let i = $index) {
26
26
  <input
27
- id="kc-otp-credential-{{ i }}"
28
- [kcClass]="'kcLoginOTPListInputClass'"
29
27
  type="radio"
30
28
  name="selectedCredentialId"
29
+ [id]="'kc-otp-credential-' + i"
30
+ [kcClass]="'kcLoginOTPListInputClass'"
31
31
  [value]="otpCredential.id"
32
32
  [defaultChecked]="otpCredential.id === configuredOtpCredentials.selectedCredentialId"
33
33
  />
@@ -39,8 +39,8 @@
39
39
  <span [kcClass]="'kcLoginOTPListItemHeaderClass'">
40
40
  <span [kcClass]="'kcLoginOTPListItemIconBodyClass'">
41
41
  <i
42
- [kcClass]="'kcLoginOTPListItemIconClass'"
43
42
  aria-hidden="true"
43
+ [kcClass]="'kcLoginOTPListItemIconClass'"
44
44
  ></i>
45
45
  </span>
46
46
  <span [kcClass]="'kcLoginOTPListItemTitleClass'">{{ otpCredential.userLabel }}</span>
@@ -54,8 +54,8 @@
54
54
  >
55
55
  <input
56
56
  id="kc-otp-reset-form-submit"
57
- [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
58
57
  type="submit"
58
+ [kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
59
59
  [value]="i18n.msgStr('doSubmit')"
60
60
  />
61
61
  </div>