@andreyyolkin/keycloakify-vue 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 (349) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/keycloakify-vue/account/DefaultPage.vue +55 -0
  4. package/keycloakify-vue/account/DefaultPage.vue.d.ts +14 -0
  5. package/keycloakify-vue/account/KcContext/index.d.ts +1 -0
  6. package/keycloakify-vue/account/KcContext/index.js +0 -0
  7. package/keycloakify-vue/account/Template.useInitialize.d.ts +13 -0
  8. package/keycloakify-vue/account/Template.useInitialize.js +20 -0
  9. package/keycloakify-vue/account/Template.vue +178 -0
  10. package/keycloakify-vue/account/Template.vue.d.ts +17 -0
  11. package/keycloakify-vue/account/TemplateProps.d.ts +9 -0
  12. package/keycloakify-vue/account/TemplateProps.js +0 -0
  13. package/keycloakify-vue/account/i18n/i18n.d.ts +11 -0
  14. package/keycloakify-vue/account/i18n/i18n.js +0 -0
  15. package/keycloakify-vue/account/i18n/i18nBuilder.d.ts +18 -0
  16. package/keycloakify-vue/account/i18n/i18nBuilder.js +29 -0
  17. package/keycloakify-vue/account/i18n/index.d.ts +1 -0
  18. package/keycloakify-vue/account/i18n/index.js +1 -0
  19. package/keycloakify-vue/account/i18n/useI18n.d.ts +28 -0
  20. package/keycloakify-vue/account/i18n/useI18n.js +67 -0
  21. package/keycloakify-vue/account/index.d.ts +4 -0
  22. package/keycloakify-vue/account/index.js +8 -0
  23. package/keycloakify-vue/account/pages/Account.vue +182 -0
  24. package/keycloakify-vue/account/pages/Account.vue.d.ts +9 -0
  25. package/keycloakify-vue/account/pages/Applications.vue +192 -0
  26. package/keycloakify-vue/account/pages/Applications.vue.d.ts +9 -0
  27. package/keycloakify-vue/account/pages/FederatedIdentity.vue +123 -0
  28. package/keycloakify-vue/account/pages/FederatedIdentity.vue.d.ts +9 -0
  29. package/keycloakify-vue/account/pages/Log.vue +64 -0
  30. package/keycloakify-vue/account/pages/Log.vue.d.ts +9 -0
  31. package/keycloakify-vue/account/pages/NotImplemented.vue +24 -0
  32. package/keycloakify-vue/account/pages/NotImplemented.vue.d.ts +6 -0
  33. package/keycloakify-vue/account/pages/PageProps.d.ts +9 -0
  34. package/keycloakify-vue/account/pages/PageProps.js +0 -0
  35. package/keycloakify-vue/account/pages/Password.vue +247 -0
  36. package/keycloakify-vue/account/pages/Password.vue.d.ts +9 -0
  37. package/keycloakify-vue/account/pages/Sessions.vue +84 -0
  38. package/keycloakify-vue/account/pages/Sessions.vue.d.ts +9 -0
  39. package/keycloakify-vue/account/pages/Totp.vue +308 -0
  40. package/keycloakify-vue/account/pages/Totp.vue.d.ts +9 -0
  41. package/keycloakify-vue/bin/index.js +14 -0
  42. package/keycloakify-vue/bin/initialize-account-theme/boilerplate/KcContext.js +0 -0
  43. package/keycloakify-vue/bin/initialize-account-theme/boilerplate/KcPage.vue +23 -0
  44. package/keycloakify-vue/bin/initialize-account-theme/boilerplate/KcPageStory.js +18 -0
  45. package/keycloakify-vue/bin/initialize-account-theme/boilerplate/KcPageStory.vue +13 -0
  46. package/keycloakify-vue/bin/initialize-account-theme/boilerplate/i18n.js +5 -0
  47. package/keycloakify-vue/login/DefaultPage.vue +167 -0
  48. package/keycloakify-vue/login/DefaultPage.vue.d.ts +20 -0
  49. package/keycloakify-vue/login/Template.useInitialize.d.ts +18 -0
  50. package/keycloakify-vue/login/Template.useInitialize.js +49 -0
  51. package/keycloakify-vue/login/Template.vue +239 -0
  52. package/keycloakify-vue/login/Template.vue.d.ts +26 -0
  53. package/keycloakify-vue/login/TemplateProps.d.ts +14 -0
  54. package/keycloakify-vue/login/TemplateProps.js +0 -0
  55. package/keycloakify-vue/login/components/AddRemoveButtonsMultiValuedAttribute.vue +59 -0
  56. package/keycloakify-vue/login/components/AddRemoveButtonsMultiValuedAttribute.vue.d.ts +15 -0
  57. package/keycloakify-vue/login/components/FieldErrors.vue +35 -0
  58. package/keycloakify-vue/login/components/FieldErrors.vue.d.ts +14 -0
  59. package/keycloakify-vue/login/components/GroupLabel.vue +68 -0
  60. package/keycloakify-vue/login/components/GroupLabel.vue.d.ts +14 -0
  61. package/keycloakify-vue/login/components/InputFieldByType.vue +94 -0
  62. package/keycloakify-vue/login/components/InputFieldByType.vue.d.ts +4 -0
  63. package/keycloakify-vue/login/components/InputFieldByTypeProps.d.ts +12 -0
  64. package/keycloakify-vue/login/components/InputFieldByTypeProps.js +0 -0
  65. package/keycloakify-vue/login/components/InputTag.vue +105 -0
  66. package/keycloakify-vue/login/components/InputTag.vue.d.ts +7 -0
  67. package/keycloakify-vue/login/components/InputTagSelects.vue +108 -0
  68. package/keycloakify-vue/login/components/InputTagSelects.vue.d.ts +4 -0
  69. package/keycloakify-vue/login/components/LogoutOtherSessions.vue +27 -0
  70. package/keycloakify-vue/login/components/LogoutOtherSessions.vue.d.ts +9 -0
  71. package/keycloakify-vue/login/components/PasswordWrapper.vue +42 -0
  72. package/keycloakify-vue/login/components/PasswordWrapper.vue.d.ts +20 -0
  73. package/keycloakify-vue/login/components/SelectTag.vue +74 -0
  74. package/keycloakify-vue/login/components/SelectTag.vue.d.ts +4 -0
  75. package/keycloakify-vue/login/components/TermsAcceptance.vue +59 -0
  76. package/keycloakify-vue/login/components/TermsAcceptance.vue.d.ts +13 -0
  77. package/keycloakify-vue/login/components/TextareaTag.vue +47 -0
  78. package/keycloakify-vue/login/components/TextareaTag.vue.d.ts +4 -0
  79. package/keycloakify-vue/login/components/UserProfileFormFields.vue +119 -0
  80. package/keycloakify-vue/login/components/UserProfileFormFields.vue.d.ts +33 -0
  81. package/keycloakify-vue/login/components/UserProfileFormFieldsProps.d.ts +22 -0
  82. package/keycloakify-vue/login/components/UserProfileFormFieldsProps.js +0 -0
  83. package/keycloakify-vue/login/components/inputLabel.d.ts +4 -0
  84. package/keycloakify-vue/login/components/inputLabel.js +15 -0
  85. package/keycloakify-vue/login/i18n/i18n.d.ts +11 -0
  86. package/keycloakify-vue/login/i18n/i18n.js +0 -0
  87. package/keycloakify-vue/login/i18n/i18nBuilder.d.ts +18 -0
  88. package/keycloakify-vue/login/i18n/i18nBuilder.js +29 -0
  89. package/keycloakify-vue/login/i18n/index.d.ts +1 -0
  90. package/keycloakify-vue/login/i18n/index.js +1 -0
  91. package/keycloakify-vue/login/i18n/useI18n.d.ts +28 -0
  92. package/keycloakify-vue/login/i18n/useI18n.js +67 -0
  93. package/keycloakify-vue/login/index.d.ts +5 -0
  94. package/keycloakify-vue/login/index.js +10 -0
  95. package/keycloakify-vue/login/lib/useUserProfileForm.d.ts +53 -0
  96. package/keycloakify-vue/login/lib/useUserProfileForm.js +50 -0
  97. package/keycloakify-vue/login/pages/Code.vue +54 -0
  98. package/keycloakify-vue/login/pages/Code.vue.d.ts +9 -0
  99. package/keycloakify-vue/login/pages/DeleteAccountConfirm.vue +69 -0
  100. package/keycloakify-vue/login/pages/DeleteAccountConfirm.vue.d.ts +9 -0
  101. package/keycloakify-vue/login/pages/DeleteCredential.vue +56 -0
  102. package/keycloakify-vue/login/pages/DeleteCredential.vue.d.ts +9 -0
  103. package/keycloakify-vue/login/pages/Error.vue +41 -0
  104. package/keycloakify-vue/login/pages/Error.vue.d.ts +9 -0
  105. package/keycloakify-vue/login/pages/FrontchannelLogout.vue +67 -0
  106. package/keycloakify-vue/login/pages/FrontchannelLogout.vue.d.ts +9 -0
  107. package/keycloakify-vue/login/pages/IdpReviewUserProfile.vue +77 -0
  108. package/keycloakify-vue/login/pages/IdpReviewUserProfile.vue.d.ts +14 -0
  109. package/keycloakify-vue/login/pages/Info.vue +61 -0
  110. package/keycloakify-vue/login/pages/Info.vue.d.ts +9 -0
  111. package/keycloakify-vue/login/pages/LinkIdpAction.vue +66 -0
  112. package/keycloakify-vue/login/pages/LinkIdpAction.vue.d.ts +9 -0
  113. package/keycloakify-vue/login/pages/Login.vue +230 -0
  114. package/keycloakify-vue/login/pages/Login.vue.d.ts +9 -0
  115. package/keycloakify-vue/login/pages/LoginConfigTotp.vue +233 -0
  116. package/keycloakify-vue/login/pages/LoginConfigTotp.vue.d.ts +9 -0
  117. package/keycloakify-vue/login/pages/LoginIdpLinkConfirm.vue +57 -0
  118. package/keycloakify-vue/login/pages/LoginIdpLinkConfirm.vue.d.ts +9 -0
  119. package/keycloakify-vue/login/pages/LoginIdpLinkConfirmOverride.vue +56 -0
  120. package/keycloakify-vue/login/pages/LoginIdpLinkConfirmOverride.vue.d.ts +9 -0
  121. package/keycloakify-vue/login/pages/LoginIdpLinkEmail.vue +52 -0
  122. package/keycloakify-vue/login/pages/LoginIdpLinkEmail.vue.d.ts +9 -0
  123. package/keycloakify-vue/login/pages/LoginOauth2DeviceVerifyUserCode.vue +82 -0
  124. package/keycloakify-vue/login/pages/LoginOauth2DeviceVerifyUserCode.vue.d.ts +9 -0
  125. package/keycloakify-vue/login/pages/LoginOauthGrant.vue +131 -0
  126. package/keycloakify-vue/login/pages/LoginOauthGrant.vue.d.ts +9 -0
  127. package/keycloakify-vue/login/pages/LoginOtp.vue +135 -0
  128. package/keycloakify-vue/login/pages/LoginOtp.vue.d.ts +9 -0
  129. package/keycloakify-vue/login/pages/LoginPageExpired.vue +44 -0
  130. package/keycloakify-vue/login/pages/LoginPageExpired.vue.d.ts +9 -0
  131. package/keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.useScript.d.ts +21 -0
  132. package/keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js +74 -0
  133. package/keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.vue +255 -0
  134. package/keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.vue.d.ts +9 -0
  135. package/keycloakify-vue/login/pages/LoginPassword.useScript.d.ts +23 -0
  136. package/keycloakify-vue/login/pages/LoginPassword.useScript.js +64 -0
  137. package/keycloakify-vue/login/pages/LoginPassword.vue +191 -0
  138. package/keycloakify-vue/login/pages/LoginPassword.vue.d.ts +9 -0
  139. package/keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.useScript.d.ts +9 -0
  140. package/keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js +139 -0
  141. package/keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.vue +183 -0
  142. package/keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.vue.d.ts +9 -0
  143. package/keycloakify-vue/login/pages/LoginRecoveryAuthnCodeInput.vue +90 -0
  144. package/keycloakify-vue/login/pages/LoginRecoveryAuthnCodeInput.vue.d.ts +9 -0
  145. package/keycloakify-vue/login/pages/LoginResetOtp.vue +88 -0
  146. package/keycloakify-vue/login/pages/LoginResetOtp.vue.d.ts +9 -0
  147. package/keycloakify-vue/login/pages/LoginResetPassword.vue +114 -0
  148. package/keycloakify-vue/login/pages/LoginResetPassword.vue.d.ts +9 -0
  149. package/keycloakify-vue/login/pages/LoginUpdatePassword.vue +145 -0
  150. package/keycloakify-vue/login/pages/LoginUpdatePassword.vue.d.ts +9 -0
  151. package/keycloakify-vue/login/pages/LoginUpdateProfile.vue +94 -0
  152. package/keycloakify-vue/login/pages/LoginUpdateProfile.vue.d.ts +14 -0
  153. package/keycloakify-vue/login/pages/LoginUsername.useScript.d.ts +23 -0
  154. package/keycloakify-vue/login/pages/LoginUsername.useScript.js +64 -0
  155. package/keycloakify-vue/login/pages/LoginUsername.vue +263 -0
  156. package/keycloakify-vue/login/pages/LoginUsername.vue.d.ts +9 -0
  157. package/keycloakify-vue/login/pages/LoginVerifyEmail.vue +39 -0
  158. package/keycloakify-vue/login/pages/LoginVerifyEmail.vue.d.ts +9 -0
  159. package/keycloakify-vue/login/pages/LoginX509Info.vue +120 -0
  160. package/keycloakify-vue/login/pages/LoginX509Info.vue.d.ts +9 -0
  161. package/keycloakify-vue/login/pages/LogoutConfirm.vue +73 -0
  162. package/keycloakify-vue/login/pages/LogoutConfirm.vue.d.ts +9 -0
  163. package/keycloakify-vue/login/pages/NotImplemented.vue +12 -0
  164. package/keycloakify-vue/login/pages/NotImplemented.vue.d.ts +6 -0
  165. package/keycloakify-vue/login/pages/PageProps.d.ts +9 -0
  166. package/keycloakify-vue/login/pages/PageProps.js +0 -0
  167. package/keycloakify-vue/login/pages/Register.vue +158 -0
  168. package/keycloakify-vue/login/pages/Register.vue.d.ts +14 -0
  169. package/keycloakify-vue/login/pages/SamlPostForm.vue +75 -0
  170. package/keycloakify-vue/login/pages/SamlPostForm.vue.d.ts +9 -0
  171. package/keycloakify-vue/login/pages/SelectAuthenticator.vue +65 -0
  172. package/keycloakify-vue/login/pages/SelectAuthenticator.vue.d.ts +9 -0
  173. package/keycloakify-vue/login/pages/SelectOrganization.vue +89 -0
  174. package/keycloakify-vue/login/pages/SelectOrganization.vue.d.ts +9 -0
  175. package/keycloakify-vue/login/pages/Terms.vue +56 -0
  176. package/keycloakify-vue/login/pages/Terms.vue.d.ts +9 -0
  177. package/keycloakify-vue/login/pages/UpdateEmail.vue +100 -0
  178. package/keycloakify-vue/login/pages/UpdateEmail.vue.d.ts +14 -0
  179. package/keycloakify-vue/login/pages/WebauthnAuthenticate.useScript.d.ts +22 -0
  180. package/keycloakify-vue/login/pages/WebauthnAuthenticate.useScript.js +53 -0
  181. package/keycloakify-vue/login/pages/WebauthnAuthenticate.vue +186 -0
  182. package/keycloakify-vue/login/pages/WebauthnAuthenticate.vue.d.ts +9 -0
  183. package/keycloakify-vue/login/pages/WebauthnError.vue +84 -0
  184. package/keycloakify-vue/login/pages/WebauthnError.vue.d.ts +9 -0
  185. package/keycloakify-vue/login/pages/WebauthnRegister.useScript.d.ts +28 -0
  186. package/keycloakify-vue/login/pages/WebauthnRegister.useScript.js +75 -0
  187. package/keycloakify-vue/login/pages/WebauthnRegister.vue +105 -0
  188. package/keycloakify-vue/login/pages/WebauthnRegister.vue.d.ts +9 -0
  189. package/keycloakify-vue/tools/useInsertLinkTags.d.ts +12 -0
  190. package/keycloakify-vue/tools/useInsertLinkTags.js +47 -0
  191. package/keycloakify-vue/tools/useInsertScriptTags.d.ts +19 -0
  192. package/keycloakify-vue/tools/useInsertScriptTags.js +56 -0
  193. package/keycloakify-vue/tools/useSetClassName.d.ts +4 -0
  194. package/keycloakify-vue/tools/useSetClassName.js +16 -0
  195. package/package.json +553 -0
  196. package/src/account/DefaultPage.vue +55 -0
  197. package/src/account/KcContext/index.ts +1 -0
  198. package/src/account/Template.useInitialize.ts +34 -0
  199. package/src/account/Template.vue +178 -0
  200. package/src/account/TemplateProps.ts +11 -0
  201. package/src/account/i18n/i18n.ts +16 -0
  202. package/src/account/i18n/i18nBuilder.ts +100 -0
  203. package/src/account/i18n/index.ts +1 -0
  204. package/src/account/i18n/useI18n.ts +128 -0
  205. package/src/account/index.ts +4 -0
  206. package/src/account/pages/Account.vue +182 -0
  207. package/src/account/pages/Applications.vue +192 -0
  208. package/src/account/pages/FederatedIdentity.vue +123 -0
  209. package/src/account/pages/Log.vue +64 -0
  210. package/src/account/pages/NotImplemented.vue +24 -0
  211. package/src/account/pages/PageProps.ts +10 -0
  212. package/src/account/pages/Password.vue +247 -0
  213. package/src/account/pages/Sessions.vue +84 -0
  214. package/src/account/pages/Totp.vue +308 -0
  215. package/src/bin/initialize-account-theme/boilerplate/KcContext.ts +11 -0
  216. package/src/bin/initialize-account-theme/boilerplate/KcPage.vue +23 -0
  217. package/src/bin/initialize-account-theme/boilerplate/KcPageStory.ts +22 -0
  218. package/src/bin/initialize-account-theme/boilerplate/KcPageStory.vue +13 -0
  219. package/src/bin/initialize-account-theme/boilerplate/i18n.ts +8 -0
  220. package/src/login/DefaultPage.vue +167 -0
  221. package/src/login/Template.useInitialize.ts +71 -0
  222. package/src/login/Template.vue +239 -0
  223. package/src/login/TemplateProps.ts +17 -0
  224. package/src/login/components/AddRemoveButtonsMultiValuedAttribute.vue +59 -0
  225. package/src/login/components/FieldErrors.vue +35 -0
  226. package/src/login/components/GroupLabel.vue +68 -0
  227. package/src/login/components/InputFieldByType.vue +94 -0
  228. package/src/login/components/InputFieldByTypeProps.ts +13 -0
  229. package/src/login/components/InputTag.vue +105 -0
  230. package/src/login/components/InputTagSelects.vue +108 -0
  231. package/src/login/components/LogoutOtherSessions.vue +27 -0
  232. package/src/login/components/PasswordWrapper.vue +42 -0
  233. package/src/login/components/SelectTag.vue +74 -0
  234. package/src/login/components/TermsAcceptance.vue +59 -0
  235. package/src/login/components/TextareaTag.vue +47 -0
  236. package/src/login/components/UserProfileFormFields.vue +119 -0
  237. package/src/login/components/UserProfileFormFieldsProps.ts +22 -0
  238. package/src/login/components/inputLabel.ts +18 -0
  239. package/src/login/i18n/i18n.ts +16 -0
  240. package/src/login/i18n/i18nBuilder.ts +100 -0
  241. package/src/login/i18n/index.ts +1 -0
  242. package/src/login/i18n/useI18n.ts +128 -0
  243. package/src/login/index.ts +5 -0
  244. package/src/login/lib/useUserProfileForm.ts +121 -0
  245. package/src/login/pages/Code.vue +54 -0
  246. package/src/login/pages/DeleteAccountConfirm.vue +69 -0
  247. package/src/login/pages/DeleteCredential.vue +56 -0
  248. package/src/login/pages/Error.vue +41 -0
  249. package/src/login/pages/FrontchannelLogout.vue +67 -0
  250. package/src/login/pages/IdpReviewUserProfile.vue +77 -0
  251. package/src/login/pages/Info.vue +61 -0
  252. package/src/login/pages/LinkIdpAction.vue +66 -0
  253. package/src/login/pages/Login.vue +230 -0
  254. package/src/login/pages/LoginConfigTotp.vue +233 -0
  255. package/src/login/pages/LoginIdpLinkConfirm.vue +57 -0
  256. package/src/login/pages/LoginIdpLinkConfirmOverride.vue +56 -0
  257. package/src/login/pages/LoginIdpLinkEmail.vue +52 -0
  258. package/src/login/pages/LoginOauth2DeviceVerifyUserCode.vue +82 -0
  259. package/src/login/pages/LoginOauthGrant.vue +131 -0
  260. package/src/login/pages/LoginOtp.vue +135 -0
  261. package/src/login/pages/LoginPageExpired.vue +44 -0
  262. package/src/login/pages/LoginPasskeysConditionalAuthenticate.useScript.ts +96 -0
  263. package/src/login/pages/LoginPasskeysConditionalAuthenticate.vue +255 -0
  264. package/src/login/pages/LoginPassword.useScript.ts +88 -0
  265. package/src/login/pages/LoginPassword.vue +191 -0
  266. package/src/login/pages/LoginRecoveryAuthnCodeConfig.useScript.ts +152 -0
  267. package/src/login/pages/LoginRecoveryAuthnCodeConfig.vue +183 -0
  268. package/src/login/pages/LoginRecoveryAuthnCodeInput.vue +90 -0
  269. package/src/login/pages/LoginResetOtp.vue +88 -0
  270. package/src/login/pages/LoginResetPassword.vue +114 -0
  271. package/src/login/pages/LoginUpdatePassword.vue +145 -0
  272. package/src/login/pages/LoginUpdateProfile.vue +94 -0
  273. package/src/login/pages/LoginUsername.useScript.ts +88 -0
  274. package/src/login/pages/LoginUsername.vue +263 -0
  275. package/src/login/pages/LoginVerifyEmail.vue +39 -0
  276. package/src/login/pages/LoginX509Info.vue +120 -0
  277. package/src/login/pages/LogoutConfirm.vue +73 -0
  278. package/src/login/pages/NotImplemented.vue +12 -0
  279. package/src/login/pages/PageProps.ts +10 -0
  280. package/src/login/pages/Register.vue +158 -0
  281. package/src/login/pages/SamlPostForm.vue +75 -0
  282. package/src/login/pages/SelectAuthenticator.vue +65 -0
  283. package/src/login/pages/SelectOrganization.vue +89 -0
  284. package/src/login/pages/Terms.vue +56 -0
  285. package/src/login/pages/UpdateEmail.vue +100 -0
  286. package/src/login/pages/WebauthnAuthenticate.useScript.ts +75 -0
  287. package/src/login/pages/WebauthnAuthenticate.vue +186 -0
  288. package/src/login/pages/WebauthnError.vue +84 -0
  289. package/src/login/pages/WebauthnRegister.useScript.ts +109 -0
  290. package/src/login/pages/WebauthnRegister.vue +105 -0
  291. package/src/tools/useInsertLinkTags.ts +62 -0
  292. package/src/tools/useInsertScriptTags.ts +75 -0
  293. package/src/tools/useSetClassName.ts +15 -0
  294. package/stories/account/KcContext.ts +13 -0
  295. package/stories/account/KcContextMock.ts +26 -0
  296. package/stories/account/KcPage.vue +26 -0
  297. package/stories/account/KcPageStory.vue +13 -0
  298. package/stories/account/i18n.ts +7 -0
  299. package/stories/account/pages/Account.stories.ts +22 -0
  300. package/stories/account/pages/Applications.stories.ts +70 -0
  301. package/stories/account/pages/FederatedIdentity.stories.ts +64 -0
  302. package/stories/account/pages/Log.stories.ts +42 -0
  303. package/stories/account/pages/Password.stories.ts +22 -0
  304. package/stories/account/pages/Sessions.stories.ts +41 -0
  305. package/stories/account/pages/Totp.stories.ts +33 -0
  306. package/stories/kc.gen.ts +17 -0
  307. package/stories/login/KcContext.ts +13 -0
  308. package/stories/login/KcContextMock.ts +26 -0
  309. package/stories/login/KcPage.vue +28 -0
  310. package/stories/login/KcPageStory.vue +13 -0
  311. package/stories/login/i18n.ts +7 -0
  312. package/stories/login/pages/Code.stories.ts +50 -0
  313. package/stories/login/pages/DeleteAccountConfirm.stories.ts +32 -0
  314. package/stories/login/pages/DeleteCredential.stories.ts +23 -0
  315. package/stories/login/pages/Error.stories.ts +53 -0
  316. package/stories/login/pages/FrontchannelLogout.stories.ts +24 -0
  317. package/stories/login/pages/IdpReviewUserProfile.stories.ts +56 -0
  318. package/stories/login/pages/Info.stories.ts +52 -0
  319. package/stories/login/pages/LinkIdpAction.stories.ts +30 -0
  320. package/stories/login/pages/Login.stories.ts +76 -0
  321. package/stories/login/pages/LoginConfigTotp.stories.ts +53 -0
  322. package/stories/login/pages/LoginIdpLinkConfirm.stories.ts +34 -0
  323. package/stories/login/pages/LoginIdpLinkConfirmOverride.stories.ts +14 -0
  324. package/stories/login/pages/LoginIdpLinkEmail.stories.ts +60 -0
  325. package/stories/login/pages/LoginOauth2DeviceVerifyUserCode.stories.ts +42 -0
  326. package/stories/login/pages/LoginOauthGrant.stories.ts +95 -0
  327. package/stories/login/pages/LoginOtp.stories.ts +92 -0
  328. package/stories/login/pages/LoginPageExpired.stories.ts +29 -0
  329. package/stories/login/pages/LoginPasskeysConditionalAuthenticate.stories.ts +14 -0
  330. package/stories/login/pages/LoginPassword.stories.ts +49 -0
  331. package/stories/login/pages/LoginRecoveryAuthnCodeConfig.stories.ts +28 -0
  332. package/stories/login/pages/LoginRecoveryAuthnCodeInput.stories.ts +14 -0
  333. package/stories/login/pages/LoginResetOtp.stories.ts +69 -0
  334. package/stories/login/pages/LoginResetPassword.stories.ts +48 -0
  335. package/stories/login/pages/LoginUpdatePassword.stories.ts +52 -0
  336. package/stories/login/pages/LoginUpdateProfile.stories.ts +29 -0
  337. package/stories/login/pages/LoginUsername.stories.ts +25 -0
  338. package/stories/login/pages/LoginVerifyEmail.stories.ts +63 -0
  339. package/stories/login/pages/LoginX509Info.stories.ts +29 -0
  340. package/stories/login/pages/LogoutConfirm.stories.ts +35 -0
  341. package/stories/login/pages/Register.stories.ts +76 -0
  342. package/stories/login/pages/SamlPostForm.stories.ts +14 -0
  343. package/stories/login/pages/SelectAuthenticator.stories.ts +89 -0
  344. package/stories/login/pages/SelectOrganization.stories.ts +63 -0
  345. package/stories/login/pages/Terms.stories.ts +78 -0
  346. package/stories/login/pages/UpdateEmail.stories.ts +28 -0
  347. package/stories/login/pages/WebauthnAuthenticate.stories.ts +147 -0
  348. package/stories/login/pages/WebauthnError.stories.ts +77 -0
  349. package/stories/login/pages/WebauthnRegister.stories.ts +54 -0
package/package.json ADDED
@@ -0,0 +1,553 @@
1
+ {
2
+ "name": "@andreyyolkin/keycloakify-vue",
3
+ "description": "Vue Components for Keycloakify",
4
+ "keywords": [
5
+ "keycloak",
6
+ "vue",
7
+ "keycloakify"
8
+ ],
9
+ "homepage": "https://www.keycloakify.dev",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/AndreyYolkin/keycloakify-vue.git"
13
+ },
14
+ "license": "MIT",
15
+ "sideEffects": false,
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "version": "0.1.0",
20
+ "type": "module",
21
+ "files": [
22
+ "keycloakify-vue",
23
+ "!keycloakify-vue/**/*.test.*",
24
+ "!keycloakify-vue/**/*.spec.*",
25
+ "stories",
26
+ "src",
27
+ "!src/**/*.test.*",
28
+ "!src/**/*.spec.*",
29
+ "package.json",
30
+ "README.md",
31
+ "LICENSE"
32
+ ],
33
+ "scripts": {
34
+ "build": "tsx scripts/build.ts",
35
+ "test": "vitest run",
36
+ "typecheck": "vue-tsc --noEmit",
37
+ "lint": "eslint . --fix",
38
+ "lint:check": "eslint .",
39
+ "storybook": "storybook dev -p 6006 --no-open",
40
+ "build-storybook": "storybook build",
41
+ "link-in-starter": "tsx scripts/link-in-starter.ts",
42
+ "watch": "tsx scripts/watch.ts",
43
+ "_format": "prettier '**/*.{ts,vue,html,json,md}'",
44
+ "format": "yarn _format --write",
45
+ "changelog": "npx conventional-changelog -t -p angular -i CHANGELOG.md -s -r 0"
46
+ },
47
+ "bin": {
48
+ "_keycloakify-custom-handler": "keycloakify-vue/bin/index.js"
49
+ },
50
+ "peerDependencies": {
51
+ "keycloakify": "^11.15.11",
52
+ "vue": "^3.5.0"
53
+ },
54
+ "devDependencies": {
55
+ "@eslint/js": "^10.0.1",
56
+ "@storybook/addon-docs": "^10",
57
+ "@storybook/vue3-vite": "^10",
58
+ "@types/node": "^26.0.0",
59
+ "@vitejs/plugin-vue": "^6.0.7",
60
+ "@vue/test-utils": "^2.4.11",
61
+ "chalk": "^5.6.2",
62
+ "cli-select": "^1.1.2",
63
+ "dompurify": "^3.4.11",
64
+ "esbuild": "^0.28.0",
65
+ "eslint": "^10.4.1",
66
+ "eslint-config-prettier": "^10.1.8",
67
+ "eslint-plugin-prettier": "^5.5.6",
68
+ "eslint-plugin-unused-imports": "^4.4.1",
69
+ "eslint-plugin-vue": "^10.2.0",
70
+ "globals": "^17.6.0",
71
+ "jsdom": "^29.1.1",
72
+ "keycloakify": "^11.15.11",
73
+ "prettier": "^3.8.3",
74
+ "publint": "^0.3.21",
75
+ "storybook": "^10",
76
+ "tsafe": "^1.8.12",
77
+ "tsx": "^4.22.4",
78
+ "typescript": "^6.0.3",
79
+ "typescript-eslint": "^8.60.1",
80
+ "vite": "^8.0.16",
81
+ "vitest": "^4.1.9",
82
+ "vue": "^3.5.38",
83
+ "vue-eslint-parser": "^10.1.3",
84
+ "vue-tsc": "^3.3.5"
85
+ },
86
+ "exports": {
87
+ "./account": {
88
+ "types": "./keycloakify-vue/account/index.d.ts",
89
+ "import": "./keycloakify-vue/account/index.js",
90
+ "default": "./keycloakify-vue/account/index.js"
91
+ },
92
+ "./account/DefaultPage.vue": {
93
+ "types": "./keycloakify-vue/account/DefaultPage.vue.d.ts",
94
+ "import": "./keycloakify-vue/account/DefaultPage.vue",
95
+ "default": "./keycloakify-vue/account/DefaultPage.vue"
96
+ },
97
+ "./account/i18n": {
98
+ "types": "./keycloakify-vue/account/i18n/index.d.ts",
99
+ "import": "./keycloakify-vue/account/i18n/index.js",
100
+ "default": "./keycloakify-vue/account/i18n/index.js"
101
+ },
102
+ "./account/i18n/i18n": {
103
+ "types": "./keycloakify-vue/account/i18n/i18n.d.ts",
104
+ "import": "./keycloakify-vue/account/i18n/i18n.js",
105
+ "default": "./keycloakify-vue/account/i18n/i18n.js"
106
+ },
107
+ "./account/i18n/i18nBuilder": {
108
+ "types": "./keycloakify-vue/account/i18n/i18nBuilder.d.ts",
109
+ "import": "./keycloakify-vue/account/i18n/i18nBuilder.js",
110
+ "default": "./keycloakify-vue/account/i18n/i18nBuilder.js"
111
+ },
112
+ "./account/i18n/useI18n": {
113
+ "types": "./keycloakify-vue/account/i18n/useI18n.d.ts",
114
+ "import": "./keycloakify-vue/account/i18n/useI18n.js",
115
+ "default": "./keycloakify-vue/account/i18n/useI18n.js"
116
+ },
117
+ "./account/KcContext": {
118
+ "types": "./keycloakify-vue/account/KcContext/index.d.ts",
119
+ "import": "./keycloakify-vue/account/KcContext/index.js",
120
+ "default": "./keycloakify-vue/account/KcContext/index.js"
121
+ },
122
+ "./account/pages/Account.vue": {
123
+ "types": "./keycloakify-vue/account/pages/Account.vue.d.ts",
124
+ "import": "./keycloakify-vue/account/pages/Account.vue",
125
+ "default": "./keycloakify-vue/account/pages/Account.vue"
126
+ },
127
+ "./account/pages/Applications.vue": {
128
+ "types": "./keycloakify-vue/account/pages/Applications.vue.d.ts",
129
+ "import": "./keycloakify-vue/account/pages/Applications.vue",
130
+ "default": "./keycloakify-vue/account/pages/Applications.vue"
131
+ },
132
+ "./account/pages/FederatedIdentity.vue": {
133
+ "types": "./keycloakify-vue/account/pages/FederatedIdentity.vue.d.ts",
134
+ "import": "./keycloakify-vue/account/pages/FederatedIdentity.vue",
135
+ "default": "./keycloakify-vue/account/pages/FederatedIdentity.vue"
136
+ },
137
+ "./account/pages/Log.vue": {
138
+ "types": "./keycloakify-vue/account/pages/Log.vue.d.ts",
139
+ "import": "./keycloakify-vue/account/pages/Log.vue",
140
+ "default": "./keycloakify-vue/account/pages/Log.vue"
141
+ },
142
+ "./account/pages/NotImplemented.vue": {
143
+ "types": "./keycloakify-vue/account/pages/NotImplemented.vue.d.ts",
144
+ "import": "./keycloakify-vue/account/pages/NotImplemented.vue",
145
+ "default": "./keycloakify-vue/account/pages/NotImplemented.vue"
146
+ },
147
+ "./account/pages/PageProps": {
148
+ "types": "./keycloakify-vue/account/pages/PageProps.d.ts",
149
+ "import": "./keycloakify-vue/account/pages/PageProps.js",
150
+ "default": "./keycloakify-vue/account/pages/PageProps.js"
151
+ },
152
+ "./account/pages/Password.vue": {
153
+ "types": "./keycloakify-vue/account/pages/Password.vue.d.ts",
154
+ "import": "./keycloakify-vue/account/pages/Password.vue",
155
+ "default": "./keycloakify-vue/account/pages/Password.vue"
156
+ },
157
+ "./account/pages/Sessions.vue": {
158
+ "types": "./keycloakify-vue/account/pages/Sessions.vue.d.ts",
159
+ "import": "./keycloakify-vue/account/pages/Sessions.vue",
160
+ "default": "./keycloakify-vue/account/pages/Sessions.vue"
161
+ },
162
+ "./account/pages/Totp.vue": {
163
+ "types": "./keycloakify-vue/account/pages/Totp.vue.d.ts",
164
+ "import": "./keycloakify-vue/account/pages/Totp.vue",
165
+ "default": "./keycloakify-vue/account/pages/Totp.vue"
166
+ },
167
+ "./account/Template.useInitialize": {
168
+ "types": "./keycloakify-vue/account/Template.useInitialize.d.ts",
169
+ "import": "./keycloakify-vue/account/Template.useInitialize.js",
170
+ "default": "./keycloakify-vue/account/Template.useInitialize.js"
171
+ },
172
+ "./account/Template.vue": {
173
+ "types": "./keycloakify-vue/account/Template.vue.d.ts",
174
+ "import": "./keycloakify-vue/account/Template.vue",
175
+ "default": "./keycloakify-vue/account/Template.vue"
176
+ },
177
+ "./account/TemplateProps": {
178
+ "types": "./keycloakify-vue/account/TemplateProps.d.ts",
179
+ "import": "./keycloakify-vue/account/TemplateProps.js",
180
+ "default": "./keycloakify-vue/account/TemplateProps.js"
181
+ },
182
+ "./login": {
183
+ "types": "./keycloakify-vue/login/index.d.ts",
184
+ "import": "./keycloakify-vue/login/index.js",
185
+ "default": "./keycloakify-vue/login/index.js"
186
+ },
187
+ "./login/components/AddRemoveButtonsMultiValuedAttribute.vue": {
188
+ "types": "./keycloakify-vue/login/components/AddRemoveButtonsMultiValuedAttribute.vue.d.ts",
189
+ "import": "./keycloakify-vue/login/components/AddRemoveButtonsMultiValuedAttribute.vue",
190
+ "default": "./keycloakify-vue/login/components/AddRemoveButtonsMultiValuedAttribute.vue"
191
+ },
192
+ "./login/components/FieldErrors.vue": {
193
+ "types": "./keycloakify-vue/login/components/FieldErrors.vue.d.ts",
194
+ "import": "./keycloakify-vue/login/components/FieldErrors.vue",
195
+ "default": "./keycloakify-vue/login/components/FieldErrors.vue"
196
+ },
197
+ "./login/components/GroupLabel.vue": {
198
+ "types": "./keycloakify-vue/login/components/GroupLabel.vue.d.ts",
199
+ "import": "./keycloakify-vue/login/components/GroupLabel.vue",
200
+ "default": "./keycloakify-vue/login/components/GroupLabel.vue"
201
+ },
202
+ "./login/components/InputFieldByType.vue": {
203
+ "types": "./keycloakify-vue/login/components/InputFieldByType.vue.d.ts",
204
+ "import": "./keycloakify-vue/login/components/InputFieldByType.vue",
205
+ "default": "./keycloakify-vue/login/components/InputFieldByType.vue"
206
+ },
207
+ "./login/components/InputFieldByTypeProps": {
208
+ "types": "./keycloakify-vue/login/components/InputFieldByTypeProps.d.ts",
209
+ "import": "./keycloakify-vue/login/components/InputFieldByTypeProps.js",
210
+ "default": "./keycloakify-vue/login/components/InputFieldByTypeProps.js"
211
+ },
212
+ "./login/components/inputLabel": {
213
+ "types": "./keycloakify-vue/login/components/inputLabel.d.ts",
214
+ "import": "./keycloakify-vue/login/components/inputLabel.js",
215
+ "default": "./keycloakify-vue/login/components/inputLabel.js"
216
+ },
217
+ "./login/components/InputTag.vue": {
218
+ "types": "./keycloakify-vue/login/components/InputTag.vue.d.ts",
219
+ "import": "./keycloakify-vue/login/components/InputTag.vue",
220
+ "default": "./keycloakify-vue/login/components/InputTag.vue"
221
+ },
222
+ "./login/components/InputTagSelects.vue": {
223
+ "types": "./keycloakify-vue/login/components/InputTagSelects.vue.d.ts",
224
+ "import": "./keycloakify-vue/login/components/InputTagSelects.vue",
225
+ "default": "./keycloakify-vue/login/components/InputTagSelects.vue"
226
+ },
227
+ "./login/components/LogoutOtherSessions.vue": {
228
+ "types": "./keycloakify-vue/login/components/LogoutOtherSessions.vue.d.ts",
229
+ "import": "./keycloakify-vue/login/components/LogoutOtherSessions.vue",
230
+ "default": "./keycloakify-vue/login/components/LogoutOtherSessions.vue"
231
+ },
232
+ "./login/components/PasswordWrapper.vue": {
233
+ "types": "./keycloakify-vue/login/components/PasswordWrapper.vue.d.ts",
234
+ "import": "./keycloakify-vue/login/components/PasswordWrapper.vue",
235
+ "default": "./keycloakify-vue/login/components/PasswordWrapper.vue"
236
+ },
237
+ "./login/components/SelectTag.vue": {
238
+ "types": "./keycloakify-vue/login/components/SelectTag.vue.d.ts",
239
+ "import": "./keycloakify-vue/login/components/SelectTag.vue",
240
+ "default": "./keycloakify-vue/login/components/SelectTag.vue"
241
+ },
242
+ "./login/components/TermsAcceptance.vue": {
243
+ "types": "./keycloakify-vue/login/components/TermsAcceptance.vue.d.ts",
244
+ "import": "./keycloakify-vue/login/components/TermsAcceptance.vue",
245
+ "default": "./keycloakify-vue/login/components/TermsAcceptance.vue"
246
+ },
247
+ "./login/components/TextareaTag.vue": {
248
+ "types": "./keycloakify-vue/login/components/TextareaTag.vue.d.ts",
249
+ "import": "./keycloakify-vue/login/components/TextareaTag.vue",
250
+ "default": "./keycloakify-vue/login/components/TextareaTag.vue"
251
+ },
252
+ "./login/components/UserProfileFormFields.vue": {
253
+ "types": "./keycloakify-vue/login/components/UserProfileFormFields.vue.d.ts",
254
+ "import": "./keycloakify-vue/login/components/UserProfileFormFields.vue",
255
+ "default": "./keycloakify-vue/login/components/UserProfileFormFields.vue"
256
+ },
257
+ "./login/components/UserProfileFormFieldsProps": {
258
+ "types": "./keycloakify-vue/login/components/UserProfileFormFieldsProps.d.ts",
259
+ "import": "./keycloakify-vue/login/components/UserProfileFormFieldsProps.js",
260
+ "default": "./keycloakify-vue/login/components/UserProfileFormFieldsProps.js"
261
+ },
262
+ "./login/DefaultPage.vue": {
263
+ "types": "./keycloakify-vue/login/DefaultPage.vue.d.ts",
264
+ "import": "./keycloakify-vue/login/DefaultPage.vue",
265
+ "default": "./keycloakify-vue/login/DefaultPage.vue"
266
+ },
267
+ "./login/i18n": {
268
+ "types": "./keycloakify-vue/login/i18n/index.d.ts",
269
+ "import": "./keycloakify-vue/login/i18n/index.js",
270
+ "default": "./keycloakify-vue/login/i18n/index.js"
271
+ },
272
+ "./login/i18n/i18n": {
273
+ "types": "./keycloakify-vue/login/i18n/i18n.d.ts",
274
+ "import": "./keycloakify-vue/login/i18n/i18n.js",
275
+ "default": "./keycloakify-vue/login/i18n/i18n.js"
276
+ },
277
+ "./login/i18n/i18nBuilder": {
278
+ "types": "./keycloakify-vue/login/i18n/i18nBuilder.d.ts",
279
+ "import": "./keycloakify-vue/login/i18n/i18nBuilder.js",
280
+ "default": "./keycloakify-vue/login/i18n/i18nBuilder.js"
281
+ },
282
+ "./login/i18n/useI18n": {
283
+ "types": "./keycloakify-vue/login/i18n/useI18n.d.ts",
284
+ "import": "./keycloakify-vue/login/i18n/useI18n.js",
285
+ "default": "./keycloakify-vue/login/i18n/useI18n.js"
286
+ },
287
+ "./login/lib/useUserProfileForm": {
288
+ "types": "./keycloakify-vue/login/lib/useUserProfileForm.d.ts",
289
+ "import": "./keycloakify-vue/login/lib/useUserProfileForm.js",
290
+ "default": "./keycloakify-vue/login/lib/useUserProfileForm.js"
291
+ },
292
+ "./login/pages/Code.vue": {
293
+ "types": "./keycloakify-vue/login/pages/Code.vue.d.ts",
294
+ "import": "./keycloakify-vue/login/pages/Code.vue",
295
+ "default": "./keycloakify-vue/login/pages/Code.vue"
296
+ },
297
+ "./login/pages/DeleteAccountConfirm.vue": {
298
+ "types": "./keycloakify-vue/login/pages/DeleteAccountConfirm.vue.d.ts",
299
+ "import": "./keycloakify-vue/login/pages/DeleteAccountConfirm.vue",
300
+ "default": "./keycloakify-vue/login/pages/DeleteAccountConfirm.vue"
301
+ },
302
+ "./login/pages/DeleteCredential.vue": {
303
+ "types": "./keycloakify-vue/login/pages/DeleteCredential.vue.d.ts",
304
+ "import": "./keycloakify-vue/login/pages/DeleteCredential.vue",
305
+ "default": "./keycloakify-vue/login/pages/DeleteCredential.vue"
306
+ },
307
+ "./login/pages/Error.vue": {
308
+ "types": "./keycloakify-vue/login/pages/Error.vue.d.ts",
309
+ "import": "./keycloakify-vue/login/pages/Error.vue",
310
+ "default": "./keycloakify-vue/login/pages/Error.vue"
311
+ },
312
+ "./login/pages/FrontchannelLogout.vue": {
313
+ "types": "./keycloakify-vue/login/pages/FrontchannelLogout.vue.d.ts",
314
+ "import": "./keycloakify-vue/login/pages/FrontchannelLogout.vue",
315
+ "default": "./keycloakify-vue/login/pages/FrontchannelLogout.vue"
316
+ },
317
+ "./login/pages/IdpReviewUserProfile.vue": {
318
+ "types": "./keycloakify-vue/login/pages/IdpReviewUserProfile.vue.d.ts",
319
+ "import": "./keycloakify-vue/login/pages/IdpReviewUserProfile.vue",
320
+ "default": "./keycloakify-vue/login/pages/IdpReviewUserProfile.vue"
321
+ },
322
+ "./login/pages/Info.vue": {
323
+ "types": "./keycloakify-vue/login/pages/Info.vue.d.ts",
324
+ "import": "./keycloakify-vue/login/pages/Info.vue",
325
+ "default": "./keycloakify-vue/login/pages/Info.vue"
326
+ },
327
+ "./login/pages/LinkIdpAction.vue": {
328
+ "types": "./keycloakify-vue/login/pages/LinkIdpAction.vue.d.ts",
329
+ "import": "./keycloakify-vue/login/pages/LinkIdpAction.vue",
330
+ "default": "./keycloakify-vue/login/pages/LinkIdpAction.vue"
331
+ },
332
+ "./login/pages/Login.vue": {
333
+ "types": "./keycloakify-vue/login/pages/Login.vue.d.ts",
334
+ "import": "./keycloakify-vue/login/pages/Login.vue",
335
+ "default": "./keycloakify-vue/login/pages/Login.vue"
336
+ },
337
+ "./login/pages/LoginConfigTotp.vue": {
338
+ "types": "./keycloakify-vue/login/pages/LoginConfigTotp.vue.d.ts",
339
+ "import": "./keycloakify-vue/login/pages/LoginConfigTotp.vue",
340
+ "default": "./keycloakify-vue/login/pages/LoginConfigTotp.vue"
341
+ },
342
+ "./login/pages/LoginIdpLinkConfirm.vue": {
343
+ "types": "./keycloakify-vue/login/pages/LoginIdpLinkConfirm.vue.d.ts",
344
+ "import": "./keycloakify-vue/login/pages/LoginIdpLinkConfirm.vue",
345
+ "default": "./keycloakify-vue/login/pages/LoginIdpLinkConfirm.vue"
346
+ },
347
+ "./login/pages/LoginIdpLinkConfirmOverride.vue": {
348
+ "types": "./keycloakify-vue/login/pages/LoginIdpLinkConfirmOverride.vue.d.ts",
349
+ "import": "./keycloakify-vue/login/pages/LoginIdpLinkConfirmOverride.vue",
350
+ "default": "./keycloakify-vue/login/pages/LoginIdpLinkConfirmOverride.vue"
351
+ },
352
+ "./login/pages/LoginIdpLinkEmail.vue": {
353
+ "types": "./keycloakify-vue/login/pages/LoginIdpLinkEmail.vue.d.ts",
354
+ "import": "./keycloakify-vue/login/pages/LoginIdpLinkEmail.vue",
355
+ "default": "./keycloakify-vue/login/pages/LoginIdpLinkEmail.vue"
356
+ },
357
+ "./login/pages/LoginOauth2DeviceVerifyUserCode.vue": {
358
+ "types": "./keycloakify-vue/login/pages/LoginOauth2DeviceVerifyUserCode.vue.d.ts",
359
+ "import": "./keycloakify-vue/login/pages/LoginOauth2DeviceVerifyUserCode.vue",
360
+ "default": "./keycloakify-vue/login/pages/LoginOauth2DeviceVerifyUserCode.vue"
361
+ },
362
+ "./login/pages/LoginOauthGrant.vue": {
363
+ "types": "./keycloakify-vue/login/pages/LoginOauthGrant.vue.d.ts",
364
+ "import": "./keycloakify-vue/login/pages/LoginOauthGrant.vue",
365
+ "default": "./keycloakify-vue/login/pages/LoginOauthGrant.vue"
366
+ },
367
+ "./login/pages/LoginOtp.vue": {
368
+ "types": "./keycloakify-vue/login/pages/LoginOtp.vue.d.ts",
369
+ "import": "./keycloakify-vue/login/pages/LoginOtp.vue",
370
+ "default": "./keycloakify-vue/login/pages/LoginOtp.vue"
371
+ },
372
+ "./login/pages/LoginPageExpired.vue": {
373
+ "types": "./keycloakify-vue/login/pages/LoginPageExpired.vue.d.ts",
374
+ "import": "./keycloakify-vue/login/pages/LoginPageExpired.vue",
375
+ "default": "./keycloakify-vue/login/pages/LoginPageExpired.vue"
376
+ },
377
+ "./login/pages/LoginPasskeysConditionalAuthenticate.useScript": {
378
+ "types": "./keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.useScript.d.ts",
379
+ "import": "./keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js",
380
+ "default": "./keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.useScript.js"
381
+ },
382
+ "./login/pages/LoginPasskeysConditionalAuthenticate.vue": {
383
+ "types": "./keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.vue.d.ts",
384
+ "import": "./keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.vue",
385
+ "default": "./keycloakify-vue/login/pages/LoginPasskeysConditionalAuthenticate.vue"
386
+ },
387
+ "./login/pages/LoginPassword.useScript": {
388
+ "types": "./keycloakify-vue/login/pages/LoginPassword.useScript.d.ts",
389
+ "import": "./keycloakify-vue/login/pages/LoginPassword.useScript.js",
390
+ "default": "./keycloakify-vue/login/pages/LoginPassword.useScript.js"
391
+ },
392
+ "./login/pages/LoginPassword.vue": {
393
+ "types": "./keycloakify-vue/login/pages/LoginPassword.vue.d.ts",
394
+ "import": "./keycloakify-vue/login/pages/LoginPassword.vue",
395
+ "default": "./keycloakify-vue/login/pages/LoginPassword.vue"
396
+ },
397
+ "./login/pages/LoginRecoveryAuthnCodeConfig.useScript": {
398
+ "types": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.useScript.d.ts",
399
+ "import": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js",
400
+ "default": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.useScript.js"
401
+ },
402
+ "./login/pages/LoginRecoveryAuthnCodeConfig.vue": {
403
+ "types": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.vue.d.ts",
404
+ "import": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.vue",
405
+ "default": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeConfig.vue"
406
+ },
407
+ "./login/pages/LoginRecoveryAuthnCodeInput.vue": {
408
+ "types": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeInput.vue.d.ts",
409
+ "import": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeInput.vue",
410
+ "default": "./keycloakify-vue/login/pages/LoginRecoveryAuthnCodeInput.vue"
411
+ },
412
+ "./login/pages/LoginResetOtp.vue": {
413
+ "types": "./keycloakify-vue/login/pages/LoginResetOtp.vue.d.ts",
414
+ "import": "./keycloakify-vue/login/pages/LoginResetOtp.vue",
415
+ "default": "./keycloakify-vue/login/pages/LoginResetOtp.vue"
416
+ },
417
+ "./login/pages/LoginResetPassword.vue": {
418
+ "types": "./keycloakify-vue/login/pages/LoginResetPassword.vue.d.ts",
419
+ "import": "./keycloakify-vue/login/pages/LoginResetPassword.vue",
420
+ "default": "./keycloakify-vue/login/pages/LoginResetPassword.vue"
421
+ },
422
+ "./login/pages/LoginUpdatePassword.vue": {
423
+ "types": "./keycloakify-vue/login/pages/LoginUpdatePassword.vue.d.ts",
424
+ "import": "./keycloakify-vue/login/pages/LoginUpdatePassword.vue",
425
+ "default": "./keycloakify-vue/login/pages/LoginUpdatePassword.vue"
426
+ },
427
+ "./login/pages/LoginUpdateProfile.vue": {
428
+ "types": "./keycloakify-vue/login/pages/LoginUpdateProfile.vue.d.ts",
429
+ "import": "./keycloakify-vue/login/pages/LoginUpdateProfile.vue",
430
+ "default": "./keycloakify-vue/login/pages/LoginUpdateProfile.vue"
431
+ },
432
+ "./login/pages/LoginUsername.useScript": {
433
+ "types": "./keycloakify-vue/login/pages/LoginUsername.useScript.d.ts",
434
+ "import": "./keycloakify-vue/login/pages/LoginUsername.useScript.js",
435
+ "default": "./keycloakify-vue/login/pages/LoginUsername.useScript.js"
436
+ },
437
+ "./login/pages/LoginUsername.vue": {
438
+ "types": "./keycloakify-vue/login/pages/LoginUsername.vue.d.ts",
439
+ "import": "./keycloakify-vue/login/pages/LoginUsername.vue",
440
+ "default": "./keycloakify-vue/login/pages/LoginUsername.vue"
441
+ },
442
+ "./login/pages/LoginVerifyEmail.vue": {
443
+ "types": "./keycloakify-vue/login/pages/LoginVerifyEmail.vue.d.ts",
444
+ "import": "./keycloakify-vue/login/pages/LoginVerifyEmail.vue",
445
+ "default": "./keycloakify-vue/login/pages/LoginVerifyEmail.vue"
446
+ },
447
+ "./login/pages/LoginX509Info.vue": {
448
+ "types": "./keycloakify-vue/login/pages/LoginX509Info.vue.d.ts",
449
+ "import": "./keycloakify-vue/login/pages/LoginX509Info.vue",
450
+ "default": "./keycloakify-vue/login/pages/LoginX509Info.vue"
451
+ },
452
+ "./login/pages/LogoutConfirm.vue": {
453
+ "types": "./keycloakify-vue/login/pages/LogoutConfirm.vue.d.ts",
454
+ "import": "./keycloakify-vue/login/pages/LogoutConfirm.vue",
455
+ "default": "./keycloakify-vue/login/pages/LogoutConfirm.vue"
456
+ },
457
+ "./login/pages/NotImplemented.vue": {
458
+ "types": "./keycloakify-vue/login/pages/NotImplemented.vue.d.ts",
459
+ "import": "./keycloakify-vue/login/pages/NotImplemented.vue",
460
+ "default": "./keycloakify-vue/login/pages/NotImplemented.vue"
461
+ },
462
+ "./login/pages/PageProps": {
463
+ "types": "./keycloakify-vue/login/pages/PageProps.d.ts",
464
+ "import": "./keycloakify-vue/login/pages/PageProps.js",
465
+ "default": "./keycloakify-vue/login/pages/PageProps.js"
466
+ },
467
+ "./login/pages/Register.vue": {
468
+ "types": "./keycloakify-vue/login/pages/Register.vue.d.ts",
469
+ "import": "./keycloakify-vue/login/pages/Register.vue",
470
+ "default": "./keycloakify-vue/login/pages/Register.vue"
471
+ },
472
+ "./login/pages/SamlPostForm.vue": {
473
+ "types": "./keycloakify-vue/login/pages/SamlPostForm.vue.d.ts",
474
+ "import": "./keycloakify-vue/login/pages/SamlPostForm.vue",
475
+ "default": "./keycloakify-vue/login/pages/SamlPostForm.vue"
476
+ },
477
+ "./login/pages/SelectAuthenticator.vue": {
478
+ "types": "./keycloakify-vue/login/pages/SelectAuthenticator.vue.d.ts",
479
+ "import": "./keycloakify-vue/login/pages/SelectAuthenticator.vue",
480
+ "default": "./keycloakify-vue/login/pages/SelectAuthenticator.vue"
481
+ },
482
+ "./login/pages/SelectOrganization.vue": {
483
+ "types": "./keycloakify-vue/login/pages/SelectOrganization.vue.d.ts",
484
+ "import": "./keycloakify-vue/login/pages/SelectOrganization.vue",
485
+ "default": "./keycloakify-vue/login/pages/SelectOrganization.vue"
486
+ },
487
+ "./login/pages/Terms.vue": {
488
+ "types": "./keycloakify-vue/login/pages/Terms.vue.d.ts",
489
+ "import": "./keycloakify-vue/login/pages/Terms.vue",
490
+ "default": "./keycloakify-vue/login/pages/Terms.vue"
491
+ },
492
+ "./login/pages/UpdateEmail.vue": {
493
+ "types": "./keycloakify-vue/login/pages/UpdateEmail.vue.d.ts",
494
+ "import": "./keycloakify-vue/login/pages/UpdateEmail.vue",
495
+ "default": "./keycloakify-vue/login/pages/UpdateEmail.vue"
496
+ },
497
+ "./login/pages/WebauthnAuthenticate.useScript": {
498
+ "types": "./keycloakify-vue/login/pages/WebauthnAuthenticate.useScript.d.ts",
499
+ "import": "./keycloakify-vue/login/pages/WebauthnAuthenticate.useScript.js",
500
+ "default": "./keycloakify-vue/login/pages/WebauthnAuthenticate.useScript.js"
501
+ },
502
+ "./login/pages/WebauthnAuthenticate.vue": {
503
+ "types": "./keycloakify-vue/login/pages/WebauthnAuthenticate.vue.d.ts",
504
+ "import": "./keycloakify-vue/login/pages/WebauthnAuthenticate.vue",
505
+ "default": "./keycloakify-vue/login/pages/WebauthnAuthenticate.vue"
506
+ },
507
+ "./login/pages/WebauthnError.vue": {
508
+ "types": "./keycloakify-vue/login/pages/WebauthnError.vue.d.ts",
509
+ "import": "./keycloakify-vue/login/pages/WebauthnError.vue",
510
+ "default": "./keycloakify-vue/login/pages/WebauthnError.vue"
511
+ },
512
+ "./login/pages/WebauthnRegister.useScript": {
513
+ "types": "./keycloakify-vue/login/pages/WebauthnRegister.useScript.d.ts",
514
+ "import": "./keycloakify-vue/login/pages/WebauthnRegister.useScript.js",
515
+ "default": "./keycloakify-vue/login/pages/WebauthnRegister.useScript.js"
516
+ },
517
+ "./login/pages/WebauthnRegister.vue": {
518
+ "types": "./keycloakify-vue/login/pages/WebauthnRegister.vue.d.ts",
519
+ "import": "./keycloakify-vue/login/pages/WebauthnRegister.vue",
520
+ "default": "./keycloakify-vue/login/pages/WebauthnRegister.vue"
521
+ },
522
+ "./login/Template.useInitialize": {
523
+ "types": "./keycloakify-vue/login/Template.useInitialize.d.ts",
524
+ "import": "./keycloakify-vue/login/Template.useInitialize.js",
525
+ "default": "./keycloakify-vue/login/Template.useInitialize.js"
526
+ },
527
+ "./login/Template.vue": {
528
+ "types": "./keycloakify-vue/login/Template.vue.d.ts",
529
+ "import": "./keycloakify-vue/login/Template.vue",
530
+ "default": "./keycloakify-vue/login/Template.vue"
531
+ },
532
+ "./login/TemplateProps": {
533
+ "types": "./keycloakify-vue/login/TemplateProps.d.ts",
534
+ "import": "./keycloakify-vue/login/TemplateProps.js",
535
+ "default": "./keycloakify-vue/login/TemplateProps.js"
536
+ },
537
+ "./tools/useInsertLinkTags": {
538
+ "types": "./keycloakify-vue/tools/useInsertLinkTags.d.ts",
539
+ "import": "./keycloakify-vue/tools/useInsertLinkTags.js",
540
+ "default": "./keycloakify-vue/tools/useInsertLinkTags.js"
541
+ },
542
+ "./tools/useInsertScriptTags": {
543
+ "types": "./keycloakify-vue/tools/useInsertScriptTags.d.ts",
544
+ "import": "./keycloakify-vue/tools/useInsertScriptTags.js",
545
+ "default": "./keycloakify-vue/tools/useInsertScriptTags.js"
546
+ },
547
+ "./tools/useSetClassName": {
548
+ "types": "./keycloakify-vue/tools/useSetClassName.d.ts",
549
+ "import": "./keycloakify-vue/tools/useSetClassName.js",
550
+ "default": "./keycloakify-vue/tools/useSetClassName.js"
551
+ }
552
+ }
553
+ }
@@ -0,0 +1,55 @@
1
+ <script setup lang="ts">
2
+ import type { KcContext } from 'keycloakify/account/KcContext';
3
+ import type { ClassKey } from 'keycloakify/account/lib/kcClsx';
4
+ import { computed, defineAsyncComponent, type Component } from 'vue';
5
+ import type { I18n } from './i18n/i18n';
6
+ import NotImplemented from './pages/NotImplemented.vue';
7
+
8
+ const Account = defineAsyncComponent(() => import('./pages/Account.vue'));
9
+ const Applications = defineAsyncComponent(() => import('./pages/Applications.vue'));
10
+ const FederatedIdentity = defineAsyncComponent(() => import('./pages/FederatedIdentity.vue'));
11
+ const Log = defineAsyncComponent(() => import('./pages/Log.vue'));
12
+ const Password = defineAsyncComponent(() => import('./pages/Password.vue'));
13
+ const Sessions = defineAsyncComponent(() => import('./pages/Sessions.vue'));
14
+ const Totp = defineAsyncComponent(() => import('./pages/Totp.vue'));
15
+
16
+ const props = defineProps<{
17
+ kcContext: KcContext;
18
+ i18n: I18n;
19
+ classes?: Partial<Record<ClassKey, string>>;
20
+ Template: Component;
21
+ doUseDefaultCss: boolean;
22
+ }>();
23
+
24
+ const pageComponent = computed<Component>(() => {
25
+ switch (props.kcContext.pageId) {
26
+ case 'account.ftl':
27
+ return Account;
28
+ case 'applications.ftl':
29
+ return Applications;
30
+ case 'federatedIdentity.ftl':
31
+ return FederatedIdentity;
32
+ case 'log.ftl':
33
+ return Log;
34
+ case 'password.ftl':
35
+ return Password;
36
+ case 'sessions.ftl':
37
+ return Sessions;
38
+ case 'totp.ftl':
39
+ return Totp;
40
+ default:
41
+ return NotImplemented;
42
+ }
43
+ });
44
+ </script>
45
+
46
+ <template>
47
+ <component
48
+ :is="pageComponent"
49
+ :kcContext="kcContext"
50
+ :i18n="i18n"
51
+ :classes="classes"
52
+ :Template="Template"
53
+ :doUseDefaultCss="doUseDefaultCss"
54
+ />
55
+ </template>
@@ -0,0 +1 @@
1
+ export type { ExtendKcContext } from 'keycloakify/account/KcContext';
@@ -0,0 +1,34 @@
1
+ import { assert } from 'keycloakify/tools/assert';
2
+ import type { Ref } from 'vue';
3
+ import { useInsertLinkTags } from '../tools/useInsertLinkTags';
4
+ import type { KcContext } from 'keycloakify/account/KcContext';
5
+
6
+ export type KcContextLike = {
7
+ url: {
8
+ resourcesCommonPath: string;
9
+ resourcesPath: string;
10
+ };
11
+ };
12
+
13
+ assert<keyof KcContextLike extends keyof KcContext ? true : false>();
14
+ assert<KcContext extends KcContextLike ? true : false>();
15
+
16
+ export function useInitialize(params: { kcContext: KcContextLike; doUseDefaultCss: boolean }): {
17
+ isReadyToRender: Ref<boolean>;
18
+ } {
19
+ const { kcContext, doUseDefaultCss } = params;
20
+ const { url } = kcContext;
21
+
22
+ const { areAllStyleSheetsLoaded } = useInsertLinkTags({
23
+ componentOrHookName: 'Template',
24
+ hrefs: !doUseDefaultCss
25
+ ? []
26
+ : [
27
+ `${url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly.min.css`,
28
+ `${url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly-additions.min.css`,
29
+ `${url.resourcesPath}/css/account.css`,
30
+ ],
31
+ });
32
+
33
+ return { isReadyToRender: areAllStyleSheetsLoaded };
34
+ }