keycloak-theme-editor 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/LICENSE +200 -0
  2. package/README.md +147 -0
  3. package/bin/cli.js +1270 -0
  4. package/dist/assets/EditorContent-CB5V7FK7.js +134 -0
  5. package/dist/assets/RedHatDisplay-Bold-4NfIjmgI.woff2 +0 -0
  6. package/dist/assets/RedHatDisplay-BoldItalic-pTGisv8w.woff2 +0 -0
  7. package/dist/assets/RedHatDisplay-Medium-C1BzJLzv.woff2 +0 -0
  8. package/dist/assets/RedHatDisplay-MediumItalic-ZwmBpJRm.woff2 +0 -0
  9. package/dist/assets/RedHatDisplayVF-CYDHf1NI.woff2 +0 -0
  10. package/dist/assets/RedHatDisplayVF-Italic-CRpusWc8.woff2 +0 -0
  11. package/dist/assets/RedHatMono-Italic-CV5TsSDj.woff2 +0 -0
  12. package/dist/assets/RedHatMono-Regular-e08YtVYm.woff2 +0 -0
  13. package/dist/assets/RedHatMonoVF-C4fMH6Vz.woff2 +0 -0
  14. package/dist/assets/RedHatMonoVF-Italic-DGQo2ogW.woff2 +0 -0
  15. package/dist/assets/RedHatText-Italic-BLl-MYdo.woff2 +0 -0
  16. package/dist/assets/RedHatText-Medium-CFPgPIaW.woff2 +0 -0
  17. package/dist/assets/RedHatText-MediumItalic-B14GYUh6.woff2 +0 -0
  18. package/dist/assets/RedHatText-Regular-BDARZx4I.woff2 +0 -0
  19. package/dist/assets/RedHatTextVF-Italic-Dkj_WqbA.woff2 +0 -0
  20. package/dist/assets/RedHatTextVF-wYvZ7prR.woff2 +0 -0
  21. package/dist/assets/StylingPanel-BaNmfAl5.js +10 -0
  22. package/dist/assets/codemirror-CPFVGfiJ.js +12 -0
  23. package/dist/assets/fa-solid-900-DguXoeIz.woff2 +0 -0
  24. package/dist/assets/fflate-BiS96k4e.js +1 -0
  25. package/dist/assets/index-Dm1pQXDh.css +1 -0
  26. package/dist/assets/index-DtQiX03K.js +2 -0
  27. package/dist/assets/mdi-C-ens7Qz.js +1 -0
  28. package/dist/assets/patternfly-BbS2qD2Z.js +1 -0
  29. package/dist/assets/patternfly-ZUQBYYQM.css +1 -0
  30. package/dist/assets/patternfly-addons-C5K6YGth.css +1 -0
  31. package/dist/assets/patternfly.min-DYq-aGv-.css +1 -0
  32. package/dist/assets/pf-v5-pficon-Di6gTOT4.woff2 +0 -0
  33. package/dist/assets/pf-v6-pficon-Dy6oiu9u.woff2 +0 -0
  34. package/dist/assets/react-BwQcSK_q.js +9 -0
  35. package/dist/assets/vendor-DPuiCcTY.js +2 -0
  36. package/dist/assets/zustand-Cd1unGLA.js +1 -0
  37. package/dist/index.html +17 -0
  38. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-Black.woff2 +0 -0
  39. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-BlackItalic.woff2 +0 -0
  40. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-Bold.woff2 +0 -0
  41. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-BoldItalic.woff2 +0 -0
  42. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-Italic.woff2 +0 -0
  43. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-Light.woff2 +0 -0
  44. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-LightItalic.woff2 +0 -0
  45. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-Medium.woff2 +0 -0
  46. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-MediumItalic.woff2 +0 -0
  47. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplay-Regular.woff2 +0 -0
  48. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplayVF-Italic.woff2 +0 -0
  49. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay/RedHatDisplayVF.woff2 +0 -0
  50. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-Black.woff2 +0 -0
  51. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-BlackItalic.woff2 +0 -0
  52. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-Bold.woff2 +0 -0
  53. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-BoldItalic.woff2 +0 -0
  54. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-Italic.woff2 +0 -0
  55. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-Light.woff2 +0 -0
  56. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-LightItalic.woff2 +0 -0
  57. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-Medium.woff2 +0 -0
  58. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-MediumItalic.woff2 +0 -0
  59. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplay-Regular.woff2 +0 -0
  60. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplayVF-Italic.woff2 +0 -0
  61. package/dist/keycloak-dev-resources/assets/fonts/RedHatDisplayVF.woff2 +0 -0
  62. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-Bold.woff2 +0 -0
  63. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-BoldItalic.woff2 +0 -0
  64. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-Italic.woff2 +0 -0
  65. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-Light.woff2 +0 -0
  66. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-LightItalic.woff2 +0 -0
  67. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-Medium.woff2 +0 -0
  68. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-MediumItalic.woff2 +0 -0
  69. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMono-Regular.woff2 +0 -0
  70. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMonoVF-Italic.woff2 +0 -0
  71. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono/RedHatMonoVF.woff2 +0 -0
  72. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-Bold.woff2 +0 -0
  73. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-BoldItalic.woff2 +0 -0
  74. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-Italic.woff2 +0 -0
  75. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-Light.woff2 +0 -0
  76. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-LightItalic.woff2 +0 -0
  77. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-Medium.woff2 +0 -0
  78. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-MediumItalic.woff2 +0 -0
  79. package/dist/keycloak-dev-resources/assets/fonts/RedHatMono-Regular.woff2 +0 -0
  80. package/dist/keycloak-dev-resources/assets/fonts/RedHatMonoVF-Italic.woff2 +0 -0
  81. package/dist/keycloak-dev-resources/assets/fonts/RedHatMonoVF.woff2 +0 -0
  82. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-Bold.woff2 +0 -0
  83. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-BoldItalic.woff2 +0 -0
  84. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-Italic.woff2 +0 -0
  85. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-Light.woff2 +0 -0
  86. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-LightItalic.woff2 +0 -0
  87. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-Medium.woff2 +0 -0
  88. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-MediumItalic.woff2 +0 -0
  89. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatText-Regular.woff2 +0 -0
  90. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatTextVF-Italic.woff2 +0 -0
  91. package/dist/keycloak-dev-resources/assets/fonts/RedHatText/RedHatTextVF.woff2 +0 -0
  92. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-Bold.woff2 +0 -0
  93. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-BoldItalic.woff2 +0 -0
  94. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-Italic.woff2 +0 -0
  95. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-Light.woff2 +0 -0
  96. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-LightItalic.woff2 +0 -0
  97. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-Medium.woff2 +0 -0
  98. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-MediumItalic.woff2 +0 -0
  99. package/dist/keycloak-dev-resources/assets/fonts/RedHatText-Regular.woff2 +0 -0
  100. package/dist/keycloak-dev-resources/assets/fonts/RedHatTextVF-Italic.woff2 +0 -0
  101. package/dist/keycloak-dev-resources/assets/fonts/RedHatTextVF.woff2 +0 -0
  102. package/dist/keycloak-dev-resources/assets/fonts/fa-solid-900.woff2 +0 -0
  103. package/dist/keycloak-dev-resources/assets/fonts/webfonts/fa-solid-900.woff2 +0 -0
  104. package/dist/keycloak-dev-resources/img/keycloak-bg-darken.svg +1 -0
  105. package/dist/keycloak-dev-resources/img/keycloak-bg.png +0 -0
  106. package/dist/keycloak-dev-resources/img/keycloak-logo-text.svg +1 -0
  107. package/dist/keycloak-dev-resources/patternfly-addons.css +8430 -0
  108. package/dist/keycloak-dev-resources/patternfly.min.css +2 -0
  109. package/dist/keycloak-dev-resources/themes/base/login/messages/messages_en.properties +5 -0
  110. package/dist/keycloak-dev-resources/themes/base/login/mock-extension-showcase.ftl +13 -0
  111. package/dist/keycloak-dev-resources/themes/base/login/resources/css/preview.css +5 -0
  112. package/dist/keycloak-dev-resources/themes/base/login/resources/css/quick-start.css +16 -0
  113. package/dist/keycloak-dev-resources/themes/base/login/resources/css/styles.css +2 -0
  114. package/dist/keycloak-dev-resources/themes/base/login/theme.properties +143 -0
  115. package/dist/keycloak-dev-resources/themes/horizontal-card/login/footer.ftl +32 -0
  116. package/dist/keycloak-dev-resources/themes/horizontal-card/login/messages/messages_en.properties +6 -0
  117. package/dist/keycloak-dev-resources/themes/horizontal-card/login/resources/css/preview.css +5 -0
  118. package/dist/keycloak-dev-resources/themes/horizontal-card/login/resources/css/quick-start.css +31 -0
  119. package/dist/keycloak-dev-resources/themes/horizontal-card/login/resources/css/styles.css +1149 -0
  120. package/dist/keycloak-dev-resources/themes/horizontal-card/login/template.ftl +234 -0
  121. package/dist/keycloak-dev-resources/themes/horizontal-card/login/theme.properties +142 -0
  122. package/dist/keycloak-dev-resources/themes/modern-gradient/login/footer.ftl +12 -0
  123. package/dist/keycloak-dev-resources/themes/modern-gradient/login/messages/messages_en.properties +6 -0
  124. package/dist/keycloak-dev-resources/themes/modern-gradient/login/resources/css/preview.css +13 -0
  125. package/dist/keycloak-dev-resources/themes/modern-gradient/login/resources/css/quick-start.css +39 -0
  126. package/dist/keycloak-dev-resources/themes/modern-gradient/login/resources/css/styles.css +1371 -0
  127. package/dist/keycloak-dev-resources/themes/modern-gradient/login/template.ftl +296 -0
  128. package/dist/keycloak-dev-resources/themes/modern-gradient/login/theme.properties +142 -0
  129. package/dist/keycloak-dev-resources/themes/themes.json +42 -0
  130. package/dist/keycloak-dev-resources/themes/v2/login/footer.ftl +15 -0
  131. package/dist/keycloak-dev-resources/themes/v2/login/messages/messages_en.properties +5 -0
  132. package/dist/keycloak-dev-resources/themes/v2/login/mock-extension-showcase.ftl +13 -0
  133. package/dist/keycloak-dev-resources/themes/v2/login/resources/css/preview.css +5 -0
  134. package/dist/keycloak-dev-resources/themes/v2/login/resources/css/quick-start.css +16 -0
  135. package/dist/keycloak-dev-resources/themes/v2/login/resources/css/styles.css +426 -0
  136. package/dist/keycloak-dev-resources/themes/v2/login/resources/img/keycloak-bg-darken.svg +1 -0
  137. package/dist/keycloak-dev-resources/themes/v2/login/resources/img/keycloak-bg.png +0 -0
  138. package/dist/keycloak-dev-resources/themes/v2/login/resources/img/keycloak-logo-text.svg +1 -0
  139. package/dist/keycloak-dev-resources/themes/v2/login/template.ftl +287 -0
  140. package/dist/keycloak-dev-resources/themes/v2/login/theme.properties +125 -0
  141. package/dist/keycloak-upstream/base/login/cli_splash.ftl +7 -0
  142. package/dist/keycloak-upstream/base/login/code.ftl +19 -0
  143. package/dist/keycloak-upstream/base/login/delete-account-confirm.ftl +33 -0
  144. package/dist/keycloak-upstream/base/login/delete-credential.ftl +15 -0
  145. package/dist/keycloak-upstream/base/login/error.ftl +16 -0
  146. package/dist/keycloak-upstream/base/login/footer.ftl +3 -0
  147. package/dist/keycloak-upstream/base/login/frontchannel-logout.ftl +30 -0
  148. package/dist/keycloak-upstream/base/login/idp-review-user-profile.ftl +23 -0
  149. package/dist/keycloak-upstream/base/login/info.ftl +24 -0
  150. package/dist/keycloak-upstream/base/login/link-idp-action.ftl +15 -0
  151. package/dist/keycloak-upstream/base/login/login-config-totp.ftl +115 -0
  152. package/dist/keycloak-upstream/base/login/login-idp-link-confirm-override.ftl +12 -0
  153. package/dist/keycloak-upstream/base/login/login-idp-link-confirm.ftl +15 -0
  154. package/dist/keycloak-upstream/base/login/login-idp-link-email.ftl +16 -0
  155. package/dist/keycloak-upstream/base/login/login-oauth-grant.ftl +68 -0
  156. package/dist/keycloak-upstream/base/login/login-oauth2-device-verify-user-code.ftl +31 -0
  157. package/dist/keycloak-upstream/base/login/login-otp.ftl +59 -0
  158. package/dist/keycloak-upstream/base/login/login-page-expired.ftl +11 -0
  159. package/dist/keycloak-upstream/base/login/login-passkeys-conditional-authenticate.ftl +147 -0
  160. package/dist/keycloak-upstream/base/login/login-password.ftl +52 -0
  161. package/dist/keycloak-upstream/base/login/login-recovery-authn-code-config.ftl +186 -0
  162. package/dist/keycloak-upstream/base/login/login-recovery-authn-code-input.ftl +46 -0
  163. package/dist/keycloak-upstream/base/login/login-reset-otp.ftl +33 -0
  164. package/dist/keycloak-upstream/base/login/login-reset-password.ftl +39 -0
  165. package/dist/keycloak-upstream/base/login/login-update-password.ftl +77 -0
  166. package/dist/keycloak-upstream/base/login/login-update-profile.ftl +28 -0
  167. package/dist/keycloak-upstream/base/login/login-username.ftl +92 -0
  168. package/dist/keycloak-upstream/base/login/login-verify-email.ftl +36 -0
  169. package/dist/keycloak-upstream/base/login/login-x509-info.ftl +55 -0
  170. package/dist/keycloak-upstream/base/login/login.ftl +120 -0
  171. package/dist/keycloak-upstream/base/login/logout-confirm.ftl +38 -0
  172. package/dist/keycloak-upstream/base/login/passkeys.ftl +45 -0
  173. package/dist/keycloak-upstream/base/login/password-commons.ftl +12 -0
  174. package/dist/keycloak-upstream/base/login/register-commons.ftl +27 -0
  175. package/dist/keycloak-upstream/base/login/register.ftl +112 -0
  176. package/dist/keycloak-upstream/base/login/saml-post-form.ftl +25 -0
  177. package/dist/keycloak-upstream/base/login/select-authenticator.ftl +36 -0
  178. package/dist/keycloak-upstream/base/login/select-organization.ftl +23 -0
  179. package/dist/keycloak-upstream/base/login/template.ftl +204 -0
  180. package/dist/keycloak-upstream/base/login/terms.ftl +15 -0
  181. package/dist/keycloak-upstream/base/login/theme.properties +1 -0
  182. package/dist/keycloak-upstream/base/login/update-email.ftl +30 -0
  183. package/dist/keycloak-upstream/base/login/user-profile-commons.ftl +210 -0
  184. package/dist/keycloak-upstream/base/login/webauthn-authenticate.ftl +104 -0
  185. package/dist/keycloak-upstream/base/login/webauthn-error.ftl +36 -0
  186. package/dist/keycloak-upstream/base/login/webauthn-register.ftl +66 -0
  187. package/dist/keycloak-upstream/base/messages/messages_en.properties +563 -0
  188. package/dist/keycloak-upstream/base/theme-properties.json +1 -0
  189. package/dist/keycloak-upstream/v2/login/buttons.ftl +24 -0
  190. package/dist/keycloak-upstream/v2/login/code.ftl +96 -0
  191. package/dist/keycloak-upstream/v2/login/delete-account-confirm.ftl +40 -0
  192. package/dist/keycloak-upstream/v2/login/delete-credential.ftl +21 -0
  193. package/dist/keycloak-upstream/v2/login/field.ftl +162 -0
  194. package/dist/keycloak-upstream/v2/login/footer.ftl +3 -0
  195. package/dist/keycloak-upstream/v2/login/link-idp-action.ftl +21 -0
  196. package/dist/keycloak-upstream/v2/login/login-config-totp.ftl +124 -0
  197. package/dist/keycloak-upstream/v2/login/login-oauth-grant.ftl +59 -0
  198. package/dist/keycloak-upstream/v2/login/login-otp.ftl +47 -0
  199. package/dist/keycloak-upstream/v2/login/login-password.ftl +21 -0
  200. package/dist/keycloak-upstream/v2/login/login-recovery-authn-code-config.ftl +180 -0
  201. package/dist/keycloak-upstream/v2/login/login-recovery-authn-code-input.ftl +15 -0
  202. package/dist/keycloak-upstream/v2/login/login-reset-password.ftl +29 -0
  203. package/dist/keycloak-upstream/v2/login/login-update-password.ftl +32 -0
  204. package/dist/keycloak-upstream/v2/login/login-username.ftl +51 -0
  205. package/dist/keycloak-upstream/v2/login/login.ftl +56 -0
  206. package/dist/keycloak-upstream/v2/login/password-commons.ftl +8 -0
  207. package/dist/keycloak-upstream/v2/login/password-validation.ftl +53 -0
  208. package/dist/keycloak-upstream/v2/login/register-commons.ftl +27 -0
  209. package/dist/keycloak-upstream/v2/login/register.ftl +68 -0
  210. package/dist/keycloak-upstream/v2/login/select-authenticator.ftl +41 -0
  211. package/dist/keycloak-upstream/v2/login/social-providers.ftl +95 -0
  212. package/dist/keycloak-upstream/v2/login/template.ftl +266 -0
  213. package/dist/keycloak-upstream/v2/login/terms.ftl +21 -0
  214. package/dist/keycloak-upstream/v2/login/theme.properties +130 -0
  215. package/dist/keycloak-upstream/v2/login/update-email.ftl +29 -0
  216. package/dist/keycloak-upstream/v2/login/user-profile-commons.ftl +237 -0
  217. package/dist/keycloak-upstream/v2/login/webauthn-authenticate.ftl +131 -0
  218. package/dist/keycloak-upstream/v2/login/webauthn-error.ftl +35 -0
  219. package/dist/keycloak-upstream/v2/login/webauthn-register.ftl +63 -0
  220. package/dist/keycloak-upstream/v2/messages/messages_en.properties +563 -0
  221. package/dist/keycloak-upstream/v2/theme-properties.json +109 -0
  222. package/package.json +100 -0
  223. package/public/keycloak-dev-resources/img/keycloak-bg-darken.svg +1 -0
  224. package/public/keycloak-dev-resources/img/keycloak-bg.png +0 -0
  225. package/public/keycloak-dev-resources/img/keycloak-logo-text.svg +1 -0
  226. package/public/keycloak-dev-resources/themes/base/login/messages/messages_en.properties +5 -0
  227. package/public/keycloak-dev-resources/themes/base/login/mock-extension-showcase.ftl +13 -0
  228. package/public/keycloak-dev-resources/themes/base/login/resources/css/preview.css +5 -0
  229. package/public/keycloak-dev-resources/themes/base/login/resources/css/quick-start.css +16 -0
  230. package/public/keycloak-dev-resources/themes/base/login/resources/css/styles.css +2 -0
  231. package/public/keycloak-dev-resources/themes/base/login/theme.properties +143 -0
  232. package/public/keycloak-dev-resources/themes/horizontal-card/login/footer.ftl +32 -0
  233. package/public/keycloak-dev-resources/themes/horizontal-card/login/messages/messages_en.properties +6 -0
  234. package/public/keycloak-dev-resources/themes/horizontal-card/login/resources/css/preview.css +5 -0
  235. package/public/keycloak-dev-resources/themes/horizontal-card/login/resources/css/quick-start.css +31 -0
  236. package/public/keycloak-dev-resources/themes/horizontal-card/login/resources/css/styles.css +1149 -0
  237. package/public/keycloak-dev-resources/themes/horizontal-card/login/template.ftl +234 -0
  238. package/public/keycloak-dev-resources/themes/horizontal-card/login/theme.properties +142 -0
  239. package/public/keycloak-dev-resources/themes/modern-gradient/login/footer.ftl +12 -0
  240. package/public/keycloak-dev-resources/themes/modern-gradient/login/messages/messages_en.properties +6 -0
  241. package/public/keycloak-dev-resources/themes/modern-gradient/login/resources/css/preview.css +13 -0
  242. package/public/keycloak-dev-resources/themes/modern-gradient/login/resources/css/quick-start.css +39 -0
  243. package/public/keycloak-dev-resources/themes/modern-gradient/login/resources/css/styles.css +1371 -0
  244. package/public/keycloak-dev-resources/themes/modern-gradient/login/template.ftl +296 -0
  245. package/public/keycloak-dev-resources/themes/modern-gradient/login/theme.properties +142 -0
  246. package/public/keycloak-dev-resources/themes/themes.json +42 -0
  247. package/public/keycloak-dev-resources/themes/v2/login/footer.ftl +15 -0
  248. package/public/keycloak-dev-resources/themes/v2/login/messages/messages_en.properties +5 -0
  249. package/public/keycloak-dev-resources/themes/v2/login/mock-extension-showcase.ftl +13 -0
  250. package/public/keycloak-dev-resources/themes/v2/login/resources/css/preview.css +5 -0
  251. package/public/keycloak-dev-resources/themes/v2/login/resources/css/quick-start.css +16 -0
  252. package/public/keycloak-dev-resources/themes/v2/login/resources/css/styles.css +426 -0
  253. package/public/keycloak-dev-resources/themes/v2/login/resources/img/keycloak-bg-darken.svg +1 -0
  254. package/public/keycloak-dev-resources/themes/v2/login/resources/img/keycloak-bg.png +0 -0
  255. package/public/keycloak-dev-resources/themes/v2/login/resources/img/keycloak-logo-text.svg +1 -0
  256. package/public/keycloak-dev-resources/themes/v2/login/template.ftl +287 -0
  257. package/public/keycloak-dev-resources/themes/v2/login/theme.properties +125 -0
  258. package/public/keycloak-upstream/base/login/cli_splash.ftl +7 -0
  259. package/public/keycloak-upstream/base/login/code.ftl +19 -0
  260. package/public/keycloak-upstream/base/login/delete-account-confirm.ftl +33 -0
  261. package/public/keycloak-upstream/base/login/delete-credential.ftl +15 -0
  262. package/public/keycloak-upstream/base/login/error.ftl +16 -0
  263. package/public/keycloak-upstream/base/login/footer.ftl +3 -0
  264. package/public/keycloak-upstream/base/login/frontchannel-logout.ftl +30 -0
  265. package/public/keycloak-upstream/base/login/idp-review-user-profile.ftl +23 -0
  266. package/public/keycloak-upstream/base/login/info.ftl +24 -0
  267. package/public/keycloak-upstream/base/login/link-idp-action.ftl +15 -0
  268. package/public/keycloak-upstream/base/login/login-config-totp.ftl +115 -0
  269. package/public/keycloak-upstream/base/login/login-idp-link-confirm-override.ftl +12 -0
  270. package/public/keycloak-upstream/base/login/login-idp-link-confirm.ftl +15 -0
  271. package/public/keycloak-upstream/base/login/login-idp-link-email.ftl +16 -0
  272. package/public/keycloak-upstream/base/login/login-oauth-grant.ftl +68 -0
  273. package/public/keycloak-upstream/base/login/login-oauth2-device-verify-user-code.ftl +31 -0
  274. package/public/keycloak-upstream/base/login/login-otp.ftl +59 -0
  275. package/public/keycloak-upstream/base/login/login-page-expired.ftl +11 -0
  276. package/public/keycloak-upstream/base/login/login-passkeys-conditional-authenticate.ftl +147 -0
  277. package/public/keycloak-upstream/base/login/login-password.ftl +52 -0
  278. package/public/keycloak-upstream/base/login/login-recovery-authn-code-config.ftl +186 -0
  279. package/public/keycloak-upstream/base/login/login-recovery-authn-code-input.ftl +46 -0
  280. package/public/keycloak-upstream/base/login/login-reset-otp.ftl +33 -0
  281. package/public/keycloak-upstream/base/login/login-reset-password.ftl +39 -0
  282. package/public/keycloak-upstream/base/login/login-update-password.ftl +77 -0
  283. package/public/keycloak-upstream/base/login/login-update-profile.ftl +28 -0
  284. package/public/keycloak-upstream/base/login/login-username.ftl +92 -0
  285. package/public/keycloak-upstream/base/login/login-verify-email.ftl +36 -0
  286. package/public/keycloak-upstream/base/login/login-x509-info.ftl +55 -0
  287. package/public/keycloak-upstream/base/login/login.ftl +120 -0
  288. package/public/keycloak-upstream/base/login/logout-confirm.ftl +38 -0
  289. package/public/keycloak-upstream/base/login/passkeys.ftl +45 -0
  290. package/public/keycloak-upstream/base/login/password-commons.ftl +12 -0
  291. package/public/keycloak-upstream/base/login/register-commons.ftl +27 -0
  292. package/public/keycloak-upstream/base/login/register.ftl +112 -0
  293. package/public/keycloak-upstream/base/login/saml-post-form.ftl +25 -0
  294. package/public/keycloak-upstream/base/login/select-authenticator.ftl +36 -0
  295. package/public/keycloak-upstream/base/login/select-organization.ftl +23 -0
  296. package/public/keycloak-upstream/base/login/template.ftl +204 -0
  297. package/public/keycloak-upstream/base/login/terms.ftl +15 -0
  298. package/public/keycloak-upstream/base/login/theme.properties +1 -0
  299. package/public/keycloak-upstream/base/login/update-email.ftl +30 -0
  300. package/public/keycloak-upstream/base/login/user-profile-commons.ftl +210 -0
  301. package/public/keycloak-upstream/base/login/webauthn-authenticate.ftl +104 -0
  302. package/public/keycloak-upstream/base/login/webauthn-error.ftl +36 -0
  303. package/public/keycloak-upstream/base/login/webauthn-register.ftl +66 -0
  304. package/public/keycloak-upstream/base/messages/messages_en.properties +563 -0
  305. package/public/keycloak-upstream/base/theme-properties.json +1 -0
  306. package/public/keycloak-upstream/v2/login/buttons.ftl +24 -0
  307. package/public/keycloak-upstream/v2/login/code.ftl +96 -0
  308. package/public/keycloak-upstream/v2/login/delete-account-confirm.ftl +40 -0
  309. package/public/keycloak-upstream/v2/login/delete-credential.ftl +21 -0
  310. package/public/keycloak-upstream/v2/login/field.ftl +162 -0
  311. package/public/keycloak-upstream/v2/login/footer.ftl +3 -0
  312. package/public/keycloak-upstream/v2/login/link-idp-action.ftl +21 -0
  313. package/public/keycloak-upstream/v2/login/login-config-totp.ftl +124 -0
  314. package/public/keycloak-upstream/v2/login/login-oauth-grant.ftl +59 -0
  315. package/public/keycloak-upstream/v2/login/login-otp.ftl +47 -0
  316. package/public/keycloak-upstream/v2/login/login-password.ftl +21 -0
  317. package/public/keycloak-upstream/v2/login/login-recovery-authn-code-config.ftl +180 -0
  318. package/public/keycloak-upstream/v2/login/login-recovery-authn-code-input.ftl +15 -0
  319. package/public/keycloak-upstream/v2/login/login-reset-password.ftl +29 -0
  320. package/public/keycloak-upstream/v2/login/login-update-password.ftl +32 -0
  321. package/public/keycloak-upstream/v2/login/login-username.ftl +51 -0
  322. package/public/keycloak-upstream/v2/login/login.ftl +56 -0
  323. package/public/keycloak-upstream/v2/login/password-commons.ftl +8 -0
  324. package/public/keycloak-upstream/v2/login/password-validation.ftl +53 -0
  325. package/public/keycloak-upstream/v2/login/register-commons.ftl +27 -0
  326. package/public/keycloak-upstream/v2/login/register.ftl +68 -0
  327. package/public/keycloak-upstream/v2/login/select-authenticator.ftl +41 -0
  328. package/public/keycloak-upstream/v2/login/social-providers.ftl +95 -0
  329. package/public/keycloak-upstream/v2/login/template.ftl +266 -0
  330. package/public/keycloak-upstream/v2/login/terms.ftl +21 -0
  331. package/public/keycloak-upstream/v2/login/theme.properties +130 -0
  332. package/public/keycloak-upstream/v2/login/update-email.ftl +29 -0
  333. package/public/keycloak-upstream/v2/login/user-profile-commons.ftl +237 -0
  334. package/public/keycloak-upstream/v2/login/webauthn-authenticate.ftl +131 -0
  335. package/public/keycloak-upstream/v2/login/webauthn-error.ftl +35 -0
  336. package/public/keycloak-upstream/v2/login/webauthn-register.ftl +63 -0
  337. package/public/keycloak-upstream/v2/messages/messages_en.properties +563 -0
  338. package/public/keycloak-upstream/v2/theme-properties.json +109 -0
  339. package/tools/generate-preview.ts +320 -0
  340. package/tools/kc-context-mocks/index.ts +29 -0
  341. package/tools/kc-context-mocks/kc-page-story.ts +14 -0
  342. package/tools/kc-context-mocks/kc-page.ts +53 -0
  343. package/tools/preview-renderer/preview-renderer.jar +0 -0
@@ -0,0 +1,287 @@
1
+ <#import "field.ftl" as field>
2
+ <#import "footer.ftl" as loginFooter>
3
+ <#macro username>
4
+ <#assign label>
5
+ <#if !realm.loginWithEmailAllowed>${msg("username")}<#elseif !realm.registrationEmailAsUsername>${msg("usernameOrEmail")}<#else>${msg("email")}</#if>
6
+ </#assign>
7
+ <@field.group name="username" label=label>
8
+ <div class="${properties.kcInputGroup}">
9
+ <div class="${properties.kcInputGroupItemClass} ${properties.kcFill}">
10
+ <span class="${properties.kcInputClass} ${properties.kcFormReadOnlyClass}">
11
+ <input id="kc-attempted-username" value="${auth.attemptedUsername}" readonly>
12
+ </span>
13
+ </div>
14
+ <div class="${properties.kcInputGroupItemClass}">
15
+ <button id="reset-login" class="${properties.kcFormPasswordVisibilityButtonClass} kc-login-tooltip" type="button"
16
+ aria-label="${msg('restartLoginTooltip')}" onclick="location.href='${url.loginRestartFlowUrl}'">
17
+ <i class="fa-sync-alt fas" aria-hidden="true"></i>
18
+ <span class="kc-tooltip-text">${msg("restartLoginTooltip")}</span>
19
+ </button>
20
+ </div>
21
+ </div>
22
+ </@field.group>
23
+ </#macro>
24
+
25
+ <#macro registrationLayout bodyClass="" displayInfo=false displayMessage=true displayRequiredFields=false>
26
+ <!DOCTYPE html>
27
+ <html class="${properties.kcHtmlClass!}" lang="${lang}"<#if realm.internationalizationEnabled> dir="${(locale.rtl)?then('rtl','ltr')}"</#if>>
28
+
29
+ <head>
30
+ <meta charset="utf-8">
31
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
32
+ <meta name="color-scheme" content="light${darkMode?then(' dark', '')}">
33
+ <meta name="viewport" content="width=device-width, initial-scale=1">
34
+
35
+ <#if properties.meta?has_content>
36
+ <#list properties.meta?split(' ') as meta>
37
+ <meta name="${meta?split('==')[0]}" content="${meta?split('==')[1]}"/>
38
+ </#list>
39
+ </#if>
40
+ <title>${msg("loginTitle",(realm.displayName!''))}</title>
41
+ <link rel="icon" href="${url.resourcesPath}/img/favicon.ico" />
42
+ <#if properties.stylesCommon?has_content>
43
+ <#list properties.stylesCommon?split(' ') as style>
44
+ <link href="${url.resourcesCommonPath}/${style}" rel="stylesheet" />
45
+ </#list>
46
+ </#if>
47
+ <#if properties.styles?has_content>
48
+ <#list properties.styles?split(' ') as style>
49
+ <link href="${url.resourcesPath}/${style}" rel="stylesheet" />
50
+ </#list>
51
+ </#if>
52
+ <script type="importmap">
53
+ {
54
+ "imports": {
55
+ "rfc4648": "${url.resourcesCommonPath}/vendor/rfc4648/rfc4648.js"
56
+ }
57
+ }
58
+ </script>
59
+ <#if darkMode>
60
+ <script type="module" async blocking="render">
61
+ const DARK_MODE_CLASS = "${properties.kcDarkModeClass!'kcDarkModeClass pf-v5-theme-dark'}";
62
+ const darkModeClasses = DARK_MODE_CLASS.split(/\s+/).filter(Boolean);
63
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
64
+
65
+ updateDarkMode(mediaQuery.matches);
66
+ mediaQuery.addEventListener("change", (event) => updateDarkMode(event.matches));
67
+
68
+ function updateDarkMode(isEnabled) {
69
+ const { classList } = document.documentElement;
70
+
71
+ if (isEnabled) {
72
+ classList.add(...darkModeClasses);
73
+ } else {
74
+ classList.remove(...darkModeClasses);
75
+ }
76
+ }
77
+ </script>
78
+ </#if>
79
+ <#if properties.scripts?has_content>
80
+ <#list properties.scripts?split(' ') as script>
81
+ <script src="${url.resourcesPath}/${script}" type="text/javascript"></script>
82
+ </#list>
83
+ </#if>
84
+ <#if scripts??>
85
+ <#list scripts as script>
86
+ <script src="${script}" type="text/javascript"></script>
87
+ </#list>
88
+ </#if>
89
+ <script type="module" src="${url.resourcesPath}/js/passwordVisibility.js"></script>
90
+ <script type="module">
91
+ <#outputformat "JavaScript">
92
+ import { startSessionPolling } from "${url.resourcesPath}/js/authChecker.js";
93
+
94
+ startSessionPolling(
95
+ ${url.ssoLoginInOtherTabsUrl?c}
96
+ );
97
+ </#outputformat>
98
+ </script>
99
+ <script type="module">
100
+ document.addEventListener("click", (event) => {
101
+ const link = event.target.closest("a[data-once-link]");
102
+
103
+ if (!link) {
104
+ return;
105
+ }
106
+
107
+ if (link.getAttribute("aria-disabled") === "true") {
108
+ event.preventDefault();
109
+ return;
110
+ }
111
+
112
+ const { disabledClass } = link.dataset;
113
+
114
+ if (disabledClass) {
115
+ link.classList.add(...disabledClass.trim().split(/\s+/));
116
+ }
117
+
118
+ link.setAttribute("role", "link");
119
+ link.setAttribute("aria-disabled", "true");
120
+ });
121
+ </script>
122
+ <#if authenticationSession??>
123
+ <script type="module">
124
+ <#outputformat "JavaScript">
125
+ import { checkAuthSession } from "${url.resourcesPath}/js/authChecker.js";
126
+
127
+ checkAuthSession(
128
+ ${authenticationSession.authSessionIdHash?c}
129
+ );
130
+ </#outputformat>
131
+ </script>
132
+ </#if>
133
+ <script>
134
+ // Workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1404468
135
+ const isFirefox = true;
136
+ </script>
137
+ </head>
138
+
139
+ <body id="keycloak-bg" class="${properties.kcBodyClass!}" data-page-id="login-${pageId}">
140
+ <div class="${properties.kcLogin!}">
141
+ <div class="${properties.kcLoginContainer!}">
142
+ <header id="kc-header" class="pf-v5-c-login__header">
143
+ <#assign clientName = ''>
144
+ <#if client??>
145
+ <#assign clientName = client.name!''>
146
+ <#if !clientName?has_content>
147
+ <#assign clientName = client.clientId!''>
148
+ </#if>
149
+ </#if>
150
+ <#if !clientName?has_content>
151
+ <#assign clientName = realm.displayNameHtml!''>
152
+ </#if>
153
+ <div id="kc-header-wrapper" class="pf-v5-c-brand">
154
+ <span id="kc-realm-name" data-kc-state="realm-name">${kcSanitize(msg("loginTitleHtml",(realm.displayNameHtml!'')))?no_esc}</span>
155
+ <#if clientName?has_content>
156
+ <span id="kc-client-name" data-kc-state="client-name" data-kc-client="name">${kcSanitize(clientName)?no_esc}</span>
157
+ </#if>
158
+ </div>
159
+ </header>
160
+ <main class="${properties.kcLoginMain!}">
161
+
162
+ <div class="${properties.kcLoginMainHeader!}">
163
+ <h1 class="${properties.kcLoginMainTitle!}" id="kc-page-title"><#nested "header"></h1>
164
+ <#if realm.internationalizationEnabled && locale.supported?size gt 1>
165
+ <div class="${properties.kcLoginMainHeaderUtilities!}">
166
+ <div class="${properties.kcInputClass!}">
167
+ <select
168
+ aria-label="${msg("languages")}"
169
+ id="login-select-toggle"
170
+ onchange="if (this.value) window.location.href=this.value"
171
+ >
172
+ <#list locale.supported?sort_by("label") as l>
173
+ <option
174
+ value="${l.url}"
175
+ ${(l.languageTag == locale.currentLanguageTag)?then('selected','')}
176
+ >
177
+ ${l.label}
178
+ </option>
179
+ </#list>
180
+ </select>
181
+ <span class="${properties.kcFormControlUtilClass}">
182
+ <span class="${properties.kcFormControlToggleIcon!}">
183
+ <svg
184
+ class="pf-v5-svg"
185
+ viewBox="0 0 320 512"
186
+ fill="currentColor"
187
+ aria-hidden="true"
188
+ role="img"
189
+ width="1em"
190
+ height="1em"
191
+ >
192
+ <path
193
+ d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
194
+ >
195
+ </path>
196
+ </svg>
197
+ </span>
198
+ </span>
199
+ </div>
200
+ </div>
201
+ </#if>
202
+ </div>
203
+ <div class="${properties.kcLoginMainBody!}">
204
+ <#if !(auth?has_content && auth.showUsername() && !auth.showResetCredentials())>
205
+ <#if displayRequiredFields>
206
+ <div class="${properties.kcContentWrapperClass!}">
207
+ <div class="${properties.kcLabelWrapperClass!} subtitle">
208
+ <span class="${properties.kcInputHelperTextItemTextClass!}">
209
+ <span class="${properties.kcInputRequiredClass!}">*</span> ${msg("requiredFields")}
210
+ </span>
211
+ </div>
212
+ </div>
213
+ </#if>
214
+ <#else>
215
+ <#if displayRequiredFields>
216
+ <div class="${properties.kcContentWrapperClass!}">
217
+ <div class="${properties.kcLabelWrapperClass!} subtitle">
218
+ <span class="${properties.kcInputHelperTextItemTextClass!}">
219
+ <span class="${properties.kcInputRequiredClass!}">*</span> ${msg("requiredFields")}
220
+ </span>
221
+ </div>
222
+ <div class="${properties.kcFormClass} ${properties.kcContentWrapperClass}">
223
+ <#nested "show-username">
224
+ <@username />
225
+ </div>
226
+ </div>
227
+ <#else>
228
+ <div class="${properties.kcFormClass} ${properties.kcContentWrapperClass}">
229
+ <#nested "show-username">
230
+ <@username />
231
+ </div>
232
+ </#if>
233
+ </#if>
234
+
235
+ <#-- App-initiated actions should not see warning messages about the need to complete the action -->
236
+ <#-- during login. -->
237
+ <#if displayMessage && message?has_content && (message.type != 'warning' || !isAppInitiatedAction??)>
238
+ <div data-kc-class="kcAlertClass" data-kc-state="message-container" class="${properties.kcAlertClass!} pf-m-${(message.type = 'error')?then('danger', message.type)}">
239
+ <div class="${properties.kcAlertIconClass!}">
240
+ <#if message.type = 'success'><span class="${properties.kcFeedbackSuccessIcon!}"></span></#if>
241
+ <#if message.type = 'warning'><span class="${properties.kcFeedbackWarningIcon!}"></span></#if>
242
+ <#if message.type = 'error'><span class="${properties.kcFeedbackErrorIcon!}"></span></#if>
243
+ <#if message.type = 'info'><span class="${properties.kcFeedbackInfoIcon!}"></span></#if>
244
+ </div>
245
+ <span class="${properties.kcAlertTitleClass!} kc-feedback-text">${message.summary}</span>
246
+ </div>
247
+ <#elseif msg("infoMessage")?has_content>
248
+ <div id="kc-info-message" data-kc-class="kcAlertClass" data-kc-state="info-message" data-kc-i18n-key="infoMessage" class="${properties.kcAlertClass!} pf-m-info">
249
+ <div class="${properties.kcAlertIconClass!}">
250
+ <span class="${properties.kcFeedbackInfoIcon!}"></span>
251
+ </div>
252
+ <span class="${properties.kcAlertTitleClass!} kc-feedback-text">${msg("infoMessage")}</span>
253
+ </div>
254
+ </#if>
255
+
256
+ <#nested "form">
257
+
258
+ <#if auth?has_content && auth.showTryAnotherWayLink()>
259
+ <form id="kc-select-try-another-way-form" action="${url.loginAction}" method="post" novalidate="novalidate">
260
+ <input type="hidden" name="tryAnotherWay" value="on"/>
261
+ <a id="try-another-way" href="javascript:document.forms['kc-select-try-another-way-form'].requestSubmit()"
262
+ class="${properties.kcButtonSecondaryClass} ${properties.kcButtonBlockClass} ${properties.kcMarginTopClass}">
263
+ ${msg("doTryAnotherWay")}
264
+ </a>
265
+ </form>
266
+ </#if>
267
+
268
+ <div class="${properties.kcLoginMainFooter!}">
269
+ <#nested "socialProviders">
270
+
271
+ <#if displayInfo>
272
+ <div id="kc-info" class="${properties.kcLoginMainFooterBand!} ${properties.kcFormClass}">
273
+ <div id="kc-info-wrapper" class="${properties.kcLoginMainFooterBandItem!}">
274
+ <#nested "info">
275
+ </div>
276
+ </div>
277
+ </#if>
278
+ </div>
279
+ </div>
280
+
281
+ <@loginFooter.content/>
282
+ </main>
283
+ </div>
284
+ </div>
285
+ </body>
286
+ </html>
287
+ </#macro>
@@ -0,0 +1,125 @@
1
+ # Keycloak v2 theme
2
+ parent=keycloak.v2
3
+ import=common/keycloak
4
+ darkMode=true
5
+ styles=css/quick-start.css css/styles.css
6
+ x-kte-theme-id=v2
7
+
8
+ kcAlertClass=kcAlertClass pf-v5-c-alert pf-m-inline pf-v5-u-mb-md
9
+ kcAlertDescriptionClass=kcAlertDescriptionClass pf-v5-c-alert__description
10
+ kcAlertIconClass=kcAlertIconClass pf-v5-c-alert__icon
11
+ kcAlertTitleClass=kcAlertTitleClass pf-v5-c-alert__title
12
+ kcAngleDownIconClass=kcAngleDownIconClass fas fa-angle-down
13
+ kcAngleRightIconClass=kcAngleRightIconClass fas fa-angle-right
14
+ kcAuthenticatorDefaultClass=kcAuthenticatorDefaultClass fa fa-list list-view-pf-icon-lg
15
+ kcAuthenticatorOTPClass=kcAuthenticatorOTPClass fa fa-mobile list-view-pf-icon-lg
16
+ kcAuthenticatorPasswordClass=kcAuthenticatorPasswordClass fa fa-unlock list-view-pf-icon-lg
17
+ kcAuthenticatorRecoveryAuthnCodesClass=kcAuthenticatorRecoveryAuthnCodesClass fa fa-list list-view-pf-icon-lg
18
+ kcAuthenticatorWebAuthnClass=kcAuthenticatorWebAuthnClass fa fa-key list-view-pf-icon-lg
19
+ kcAuthenticatorWebAuthnPasswordlessClass=kcAuthenticatorWebAuthnPasswordlessClass fa fa-key list-view-pf-icon-lg
20
+ kcButtonBlockClass=kcButtonBlockClass pf-m-block
21
+ kcButtonClass=kcButtonClass pf-v5-c-button
22
+ kcButtonLinkClass=kcButtonLinkClass pf-v5-c-button pf-m-link
23
+ kcButtonPrimaryClass=kcButtonPrimaryClass pf-v5-c-button pf-m-primary
24
+ kcButtonSecondaryClass=kcButtonSecondaryClass pf-v5-c-button pf-m-secondary
25
+ kcCheckboxClass=kcCheckboxClass pf-v5-c-check
26
+ kcCheckboxInputClass=kcCheckboxInputClass pf-v5-c-check__input
27
+ kcCheckboxLabelClass=kcCheckboxLabelClass pf-v5-c-check__label
28
+ kcCheckboxLabelRequiredClass=kcCheckboxLabelRequiredClass pf-v5-c-check__label-required
29
+ kcCheckIconClass=kcCheckIconClass fas fa-check
30
+ kcCodeClipboardCopyClass=kcCodeClipboardCopyClass pf-v5-c-clipboard-copy
31
+ kcCodeClipboardCopyContentClass=kcCodeClipboardCopyContentClass pf-v5-c-clipboard-copy__expandable-content
32
+ kcCodeClipboardCopyGroupClass=kcCodeClipboardCopyGroupClass pf-v5-c-clipboard-copy__group
33
+ kcCommonLogoIdP=kcCommonLogoIdP pf-v5-c-login__main-footer-links-item
34
+ kcContentWrapperClass=kcContentWrapperClass pf-v5-u-mb-md-on-md
35
+ kcCopyIconClass=kcCopyIconClass fas fa-copy
36
+ kcDarkModeClass=kcDarkModeClass pf-v5-theme-dark
37
+ kcError=kcError pf-m-error
38
+ kcExpandedClass=kcExpandedClass pf-m-expanded
39
+ kcFeedbackErrorIcon=kcFeedbackErrorIcon fa fa-fw fa-exclamation-circle
40
+ kcFeedbackInfoIcon=kcFeedbackInfoIcon fa fa-fw fa-info-circle
41
+ kcFeedbackSuccessIcon=kcFeedbackSuccessIcon fa fa-fw fa-check-circle
42
+ kcFeedbackWarningIcon=kcFeedbackWarningIcon fa fa-fw fa-exclamation-triangle
43
+ kcFill=kcFill pf-m-fill
44
+ kcFormActionGroupClass=kcFormActionGroupClass pf-v5-c-form__actions pf-v5-u-pt-xs
45
+ kcFormCardClass=kcFormCardClass card-pf
46
+ kcFormClass=kcFormClass pf-v5-c-form pf-v5-u-w-100
47
+ kcFormControlToggleIcon=kcFormControlToggleIcon pf-v5-c-form-control__toggle-icon
48
+ kcFormControlUtilClass=kcFormControlUtilClass pf-v5-c-form-control__utilities
49
+ kcFormGroupClass=kcFormGroupClass pf-v5-c-form__group
50
+ kcFormGroupLabelClass=kcFormGroupLabelClass pf-v5-c-form__group-label pf-v5-u-pb-xs
51
+ kcFormHelperTextClass=kcFormHelperTextClass pf-v5-c-form__helper-text
52
+ kcFormLabelClass=kcFormLabelClass pf-v5-c-form__label
53
+ kcFormLabelTextClass=kcFormLabelTextClass pf-v5-c-form__label-text
54
+ kcFormPasswordVisibilityButtonClass=kcFormPasswordVisibilityButtonClass pf-v5-c-button pf-m-control
55
+ kcFormPasswordVisibilityIconHide=kcFormPasswordVisibilityIconHide fa-eye-slash fas
56
+ kcFormPasswordVisibilityIconShow=kcFormPasswordVisibilityIconShow fa-eye fas
57
+ kcFormReadOnlyClass=kcFormReadOnlyClass pf-m-readonly
58
+ kcFormSocialAccountGridItem=kcFormSocialAccountGridItem pf-v5-l-grid__item
59
+ kcFormSocialAccountListButtonClass=kcFormSocialAccountListButtonClass pf-v5-c-button pf-m-secondary pf-m-block pf-v5-u-display-flex pf-v5-u-align-items-center pf-v5-u-justify-content-space-between
60
+ kcFormSocialAccountListButtonDisabledClass=kcFormSocialAccountListButtonDisabledClass pf-m-aria-disabled
61
+ kcFormSocialAccountListClass=kcFormSocialAccountListClass pf-v5-c-login__main-body pf-v5-u-pl-0 pf-v5-u-pr-0
62
+ kcFormSocialAccountListGridClass=kcFormSocialAccountListGridClass pf-v5-l-grid pf-m-gutter pf-m-all-6-col-on-xl pf-m-all-6-col-on-sm
63
+ kcFormSocialAccountListItemClass=kcFormSocialAccountListItemClass pf-v5-u-pb-sm
64
+ kcFormSocialAccountNameClass=kcFormSocialAccountNameClass pf-v5-u-m-auto
65
+ kcHtmlClass=kcHtmlClass login-pf
66
+ kcInputClass=kcInputClass pf-v5-c-form-control
67
+ kcInputErrorIconClass=kcInputErrorIconClass fas fa-exclamation-circle
68
+ kcInputErrorIconStatusClass=kcInputErrorIconStatusClass pf-v5-c-form-control__icon pf-m-status
69
+ kcInputErrorMessageClass=kcInputErrorMessageClass pf-v5-c-helper-text__item-text pf-m-error kc-feedback-text
70
+ kcInputGroup=kcInputGroup pf-v5-c-input-group
71
+ kcInputGroupItemClass=kcInputGroupItemClass pf-v5-c-input-group__item
72
+ kcInputHelperTextClass=kcInputHelperTextClass pf-v5-c-helper-text pf-v5-u-display-flex pf-v5-u-justify-content-space-between
73
+ kcInputHelperTextItemClass=kcInputHelperTextItemClass pf-v5-c-helper-text__item
74
+ kcInputHelperTextItemTextClass=kcInputHelperTextItemTextClass pf-v5-c-helper-text__item-text
75
+ kcInputRequiredClass=kcInputRequiredClass pf-v5-c-form__label-required
76
+ kcLabelClass=kcLabelClass pf-v5-c-form__label
77
+ kcListClass=kcListClass pf-v5-c-list
78
+ kcLogin=kcLogin pf-v5-c-login
79
+ kcLoginClass=kcLoginClass pf-v5-c-login__main
80
+ kcLoginContainer=kcLoginContainer pf-v5-c-login__container
81
+ kcLoginFooterBand=kcLoginFooterBand pf-v5-c-login__main-footer-band
82
+ kcLoginFooterBandItem=kcLoginFooterBandItem pf-v5-c-login__main-footer-band-item
83
+ kcLoginMain=kcLoginMain pf-v5-c-login__main
84
+ kcLoginMainBody=kcLoginMainBody pf-v5-c-login__main-body
85
+ kcLoginMainFooter=kcLoginMainFooter pf-v5-c-login__main-footer
86
+ kcLoginMainFooterBand=kcLoginMainFooterBand pf-v5-c-login__main-footer-band
87
+ kcLoginMainFooterBandItem=kcLoginMainFooterBandItem pf-v5-c-login__main-footer-band-item
88
+ kcLoginMainFooterHelperText=kcLoginMainFooterHelperText pf-v5-u-font-size-sm pf-v5-u-color-200
89
+ kcLoginMainHeader=kcLoginMainHeader pf-v5-c-login__main-header
90
+ kcLoginMainHeaderUtilities=kcLoginMainHeaderUtilities pf-v5-c-login__main-header-utilities
91
+ kcLoginMainTitle=kcLoginMainTitle pf-v5-c-title pf-m-3xl
92
+ kcLoginOTPListClass=kcLoginOTPListClass pf-v5-c-tile
93
+ kcLoginOTPListItemHeaderClass=kcLoginOTPListItemHeaderClass pf-v5-c-tile__header pf-m-stacked
94
+ kcLoginOTPListItemIconBodyClass=kcLoginOTPListItemIconBodyClass pf-v5-c-tile__icon
95
+ kcLoginOTPListItemIconClass=kcLoginOTPListItemIconClass fa fa-mobile
96
+ kcLoginOTPListItemTitleClass=kcLoginOTPListItemTitleClass pf-v5-c-tile__title
97
+ kcLoginOTPListSelectedClass=kcLoginOTPListSelectedClass pf-m-selected
98
+ kcLogoIdP-bitbucket=kcLogoIdP-bitbucket
99
+ kcLogoIdP-facebook=kcLogoIdP-facebook
100
+ kcLogoIdP-github=kcLogoIdP-github
101
+ kcLogoIdP-gitlab=kcLogoIdP-gitlab
102
+ kcLogoIdP-google=kcLogoIdP-google
103
+ kcLogoIdP-instagram=kcLogoIdP-instagram
104
+ kcLogoIdP-linkedin=kcLogoIdP-linkedin
105
+ kcLogoIdP-microsoft=kcLogoIdP-microsoft
106
+ kcLogoIdP-openshift-v4=kcLogoIdP-openshift-v4
107
+ kcLogoIdP-paypal=kcLogoIdP-paypal
108
+ kcLogoIdP-stackoverflow=kcLogoIdP-stackoverflow
109
+ kcLogoIdP-twitter=kcLogoIdP-twitter
110
+ kcMarginTopClass=kcMarginTopClass pf-v5-u-mt-md-on-md
111
+ kcPanelClass=kcPanelClass pf-v5-c-panel pf-m-raised
112
+ kcPanelMainBodyClass=kcPanelMainBodyClass pf-v5-c-panel__main-body
113
+ kcPanelMainClass=kcPanelMainClass pf-v5-c-panel__main
114
+ kcRecoveryCodesWarning=kcRecoveryCodesWarning pf-v5-c-alert pf-m-warning pf-m-inline pf-v5-u-mb-md kc-recovery-codes-warning
115
+ kcResetFlowIcon=kcResetFlowIcon pf-icon fas fa-share-square
116
+ kcSelectAuthListClass=kcSelectAuthListClass pf-v5-c-data-list select-auth-container
117
+ kcSelectAuthListItemArrowIconClass=kcSelectAuthListItemArrowIconClass fa fa-angle-right fa-lg
118
+ kcSelectAuthListItemBodyClass=kcSelectAuthListItemBodyClass pf-v5-c-data-list__cell pf-m-no-fill pf-v5-u-pt-md pf-v5-u-pb-md
119
+ kcSelectAuthListItemClass=kcSelectAuthListItemClass pf-v5-c-data-list__item-row select-auth-box-parent
120
+ kcSelectAuthListItemDescriptionClass=kcSelectAuthListItemDescriptionClass pf-v5-c-data-list__cell pf-m-no-fill select-auth-box-desc
121
+ kcSelectAuthListItemFillClass=kcSelectAuthListItemFillClass pf-v5-c-data-list__item-action
122
+ kcSelectAuthListItemHeadingClass=kcSelectAuthListItemHeadingClass pf-v5-u-font-family-heading select-auth-box-headline
123
+ kcSelectAuthListItemIconClass=kcSelectAuthListItemIconClass pf-v5-c-data-list__cell pf-m-icon pf-v5-u-display-flex pf-v5-u-pt-0 pf-v5-u-align-items-center
124
+ kcSelectAuthListItemWrapperClass=kcSelectAuthListItemWrapperClass pf-v5-c-data-list__item pf-m-clickable
125
+ kcWebAuthnDefaultIcon=kcWebAuthnDefaultIcon pf-v5-c-icon pf-m-lg
@@ -0,0 +1,7 @@
1
+ _ __ _ _
2
+ | |/ /___ _ _ ___| | ___ __ _| | __
3
+ | ' // _ \ | | |/ __| |/ _ \ / _` | |/ /
4
+ | . \ __/ |_| | (__| | (_) | (_| | <
5
+ |_|\_\___|\__, |\___|_|\___/ \__,_|_|\_\
6
+ |___/
7
+
@@ -0,0 +1,19 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout; section>
3
+ <#if section = "header">
4
+ <#if code.success>
5
+ ${msg("codeSuccessTitle")}
6
+ <#else>
7
+ ${kcSanitize(msg("codeErrorTitle", code.error))}
8
+ </#if>
9
+ <#elseif section = "form">
10
+ <div id="kc-code">
11
+ <#if code.success>
12
+ <p>${msg("copyCodeInstruction")}</p>
13
+ <input id="code" class="${properties.kcTextareaClass!}" value="${code.code}"/>
14
+ <#else>
15
+ <p id="error">${kcSanitize(code.error)}</p>
16
+ </#if>
17
+ </div>
18
+ </#if>
19
+ </@layout.registrationLayout>
@@ -0,0 +1,33 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout; section>
3
+
4
+ <#if section = "header">
5
+ ${msg("deleteAccountConfirm")}
6
+
7
+ <#elseif section = "form">
8
+
9
+ <form action="${url.loginAction}" class="form-vertical" method="post">
10
+
11
+ <div class="alert alert-warning" style="margin-top:0 !important;margin-bottom:30px !important">
12
+ <span class="pficon pficon-warning-triangle-o"></span>
13
+ ${msg("irreversibleAction")}
14
+ </div>
15
+
16
+ <p>${msg("deletingImplies")}</p>
17
+ <ul style="color: #72767b;list-style: disc;list-style-position: inside;">
18
+ <li>${msg("loggingOutImmediately")}</li>
19
+ <li>${msg("errasingData")}</li>
20
+ </ul>
21
+
22
+ <p class="delete-account-text">${msg("finalDeletionConfirmation")}</p>
23
+
24
+ <div id="kc-form-buttons">
25
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doConfirmDelete")}" />
26
+ <#if triggered_from_aia>
27
+ <button class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" style="margin-left: calc(100% - 220px)" type="submit" name="cancel-aia" value="true">${msg("doCancel")}</button>
28
+ </#if>
29
+ </div>
30
+ </form>
31
+ </#if>
32
+
33
+ </@layout.registrationLayout>
@@ -0,0 +1,15 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout displayMessage=false; section>
3
+ <#if section = "header">
4
+ ${msg("deleteCredentialTitle", credentialLabel)}
5
+ <#elseif section = "form">
6
+ <div id="kc-delete-text">
7
+ ${msg("deleteCredentialMessage", credentialLabel)}
8
+ </div>
9
+ <form class="form-actions" action="${url.loginAction}" method="POST">
10
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" name="accept" id="kc-accept" type="submit" value="${msg("doConfirmDelete")}"/>
11
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" name="cancel-aia" value="${msg("doCancel")}" id="kc-decline" type="submit" />
12
+ </form>
13
+ <div class="clearfix"></div>
14
+ </#if>
15
+ </@layout.registrationLayout>
@@ -0,0 +1,16 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout displayMessage=false; section>
3
+ <#if section = "header">
4
+ ${kcSanitize(msg("errorTitle"))?no_esc}
5
+ <#elseif section = "form">
6
+ <div id="kc-error-message">
7
+ <p class="instruction">${kcSanitize(message.summary)?no_esc}</p>
8
+ <#if skipLink??>
9
+ <#else>
10
+ <#if client?? && client.baseUrl?has_content>
11
+ <p><a id="backToApplication" href="${client.baseUrl}">${msg("backToApplication")}</a></p>
12
+ </#if>
13
+ </#if>
14
+ </div>
15
+ </#if>
16
+ </@layout.registrationLayout>
@@ -0,0 +1,3 @@
1
+ <#macro content>
2
+ <#-- The footer at the bottom of the "login-box". You can override this file in your custom theme to declare a custom login footer element -->
3
+ </#macro>
@@ -0,0 +1,30 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout; section>
3
+ <#if section = "header">
4
+ <script>
5
+ document.title = "${msg("frontchannel-logout.title")}";
6
+ </script>
7
+ ${msg("frontchannel-logout.title")}
8
+ <#elseif section = "form">
9
+ <p>${msg("frontchannel-logout.message")}</p>
10
+ <ul>
11
+ <#list logout.clients as client>
12
+ <li>
13
+ ${client.name}
14
+ <iframe src="${client.frontChannelLogoutUrl}" style="display:none;"></iframe>
15
+ </li>
16
+ </#list>
17
+ </ul>
18
+ <#if logout.logoutRedirectUri?has_content>
19
+ <script>
20
+ function readystatechange(event) {
21
+ if (document.readyState=='complete') {
22
+ window.location.replace('${logout.logoutRedirectUri}');
23
+ }
24
+ }
25
+ document.addEventListener('readystatechange', readystatechange);
26
+ </script>
27
+ <a id="continue" class="btn btn-primary" href="${logout.logoutRedirectUri}">${msg("doContinue")}</a>
28
+ </#if>
29
+ </#if>
30
+ </@layout.registrationLayout>
@@ -0,0 +1,23 @@
1
+ <#import "template.ftl" as layout>
2
+ <#import "user-profile-commons.ftl" as userProfileCommons>
3
+ <@layout.registrationLayout displayMessage=messagesPerField.exists('global') displayRequiredFields=true; section>
4
+ <#if section = "header">
5
+ ${msg("loginIdpReviewProfileTitle")}
6
+ <#elseif section = "form">
7
+ <form id="kc-idp-review-profile-form" class="${properties.kcFormClass!}" action="${url.loginAction}" method="post">
8
+
9
+ <@userProfileCommons.userProfileFormFields/>
10
+
11
+ <div class="${properties.kcFormGroupClass!}">
12
+ <div id="kc-form-options" class="${properties.kcFormOptionsClass!}">
13
+ <div class="${properties.kcFormOptionsWrapperClass!}">
14
+ </div>
15
+ </div>
16
+
17
+ <div id="kc-form-buttons" class="${properties.kcFormButtonsClass!}">
18
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" type="submit" value="${msg("doSubmit")}" />
19
+ </div>
20
+ </div>
21
+ </form>
22
+ </#if>
23
+ </@layout.registrationLayout>
@@ -0,0 +1,24 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout displayMessage=false; section>
3
+ <#if section = "header">
4
+ <#if messageHeader??>
5
+ ${kcSanitize(msg("${messageHeader}"))?no_esc}
6
+ <#else>
7
+ ${message.summary}
8
+ </#if>
9
+ <#elseif section = "form">
10
+ <div id="kc-info-message">
11
+ <p class="instruction">${message.summary}<#if requiredActions??><#list requiredActions>: <b><#items as reqActionItem>${kcSanitize(msg("requiredAction.${reqActionItem}"))?no_esc}<#sep>, </#items></b></#list><#else></#if></p>
12
+ <#if skipLink??>
13
+ <#else>
14
+ <#if pageRedirectUri?has_content>
15
+ <p><a href="${pageRedirectUri}">${msg("backToApplication")}</a></p>
16
+ <#elseif actionUri?has_content>
17
+ <p><a href="${actionUri}">${msg("proceedWithAction")}</a></p>
18
+ <#elseif (client.baseUrl)?has_content>
19
+ <p><a href="${client.baseUrl}">${msg("backToApplication")}</a></p>
20
+ </#if>
21
+ </#if>
22
+ </div>
23
+ </#if>
24
+ </@layout.registrationLayout>
@@ -0,0 +1,15 @@
1
+ <#import "template.ftl" as layout>
2
+ <@layout.registrationLayout displayMessage=false; section>
3
+ <#if section = "header">
4
+ ${msg("linkIdpActionTitle", idpDisplayName)}
5
+ <#elseif section = "form">
6
+ <div id="kc-link-text">
7
+ ${msg("linkIdpActionMessage", idpDisplayName)}
8
+ </div>
9
+ <form class="form-actions" action="${url.loginAction}" method="POST">
10
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonLargeClass!}" name="continue" id="kc-continue" type="submit" value="${msg("doContinue")}"/>
11
+ <input class="${properties.kcButtonClass!} ${properties.kcButtonDefaultClass!} ${properties.kcButtonLargeClass!}" name="cancel-aia" value="${msg("doCancel")}" id="kc-cancel" type="submit" />
12
+ </form>
13
+ <div class="clearfix"></div>
14
+ </#if>
15
+ </@layout.registrationLayout>