@keycloakify/keycloak-account-ui 26.0.0-rc.3 → 260007.0.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 (464) hide show
  1. package/KcAccountUiLoader.d.ts +2 -4
  2. package/KcAccountUiLoader.js +34 -41
  3. package/KcAccountUiLoader.js.map +1 -1
  4. package/README.md +1 -50
  5. package/index.js.map +1 -1
  6. package/{KcAccountUi.js → keycloak-theme/account/KcAccountUi.tsx} +15 -7
  7. package/keycloak-theme/account/KcContext.ts +8 -0
  8. package/keycloak-theme/account/KcPage.tsx +11 -0
  9. package/{src → keycloak-theme/account}/account-security/AccountRow.tsx +8 -4
  10. package/{src → keycloak-theme/account}/account-security/DeviceActivity.tsx +11 -7
  11. package/{src → keycloak-theme/account}/account-security/LinkedAccounts.tsx +12 -8
  12. package/{src → keycloak-theme/account}/account-security/LinkedAccountsToolbar.tsx +4 -0
  13. package/{src → keycloak-theme/account}/account-security/SigningIn.tsx +12 -8
  14. package/{src → keycloak-theme/account}/api/constants.ts +4 -0
  15. package/{src → keycloak-theme/account}/api/methods.ts +9 -5
  16. package/{src → keycloak-theme/account}/api/parse-links.ts +4 -0
  17. package/{src → keycloak-theme/account}/api/parse-response.ts +6 -2
  18. package/{src → keycloak-theme/account}/api/representations.ts +4 -0
  19. package/{src → keycloak-theme/account}/api/request.ts +7 -3
  20. package/{src → keycloak-theme/account}/api.ts +11 -7
  21. package/{src → keycloak-theme/account}/applications/Applications.tsx +12 -8
  22. package/{src/public → keycloak-theme/account/assets}/content.ts +14 -20
  23. package/keycloak-theme/account/assets/favicon.svg +63 -0
  24. package/{src → keycloak-theme/account}/components/datalist/EmptyRow.tsx +4 -0
  25. package/{src → keycloak-theme/account}/components/page/Page.tsx +4 -0
  26. package/{src → keycloak-theme/account}/content/ContentComponent.tsx +10 -6
  27. package/keycloak-theme/account/content/fetchContent.ts +13 -0
  28. package/{src → keycloak-theme/account}/environment.ts +5 -1
  29. package/{src → keycloak-theme/account}/groups/Groups.tsx +9 -5
  30. package/{src → keycloak-theme/account/i18n}/i18n.ts +7 -5
  31. package/keycloak-theme/account/i18n/index.ts +5 -0
  32. package/{messages → keycloak-theme/account/i18n}/messages_ar.properties +8 -0
  33. package/{messages → keycloak-theme/account/i18n}/messages_ca.properties +8 -0
  34. package/{messages → keycloak-theme/account/i18n}/messages_cs.properties +8 -0
  35. package/{messages → keycloak-theme/account/i18n}/messages_da.properties +8 -0
  36. package/{messages → keycloak-theme/account/i18n}/messages_de.properties +8 -0
  37. package/{messages → keycloak-theme/account/i18n}/messages_el.properties +8 -0
  38. package/{messages → keycloak-theme/account/i18n}/messages_en.properties +8 -0
  39. package/{messages → keycloak-theme/account/i18n}/messages_es.properties +8 -0
  40. package/{messages → keycloak-theme/account/i18n}/messages_fa.properties +8 -0
  41. package/{messages → keycloak-theme/account/i18n}/messages_fi.properties +8 -0
  42. package/{messages → keycloak-theme/account/i18n}/messages_fr.properties +8 -0
  43. package/{messages → keycloak-theme/account/i18n}/messages_hu.properties +8 -0
  44. package/{messages → keycloak-theme/account/i18n}/messages_it.properties +8 -0
  45. package/{messages → keycloak-theme/account/i18n}/messages_ja.properties +8 -0
  46. package/{messages → keycloak-theme/account/i18n}/messages_ka.properties +8 -0
  47. package/{messages → keycloak-theme/account/i18n}/messages_lt.properties +8 -0
  48. package/{messages → keycloak-theme/account/i18n}/messages_lv.properties +8 -0
  49. package/{messages → keycloak-theme/account/i18n}/messages_nl.properties +8 -0
  50. package/{messages → keycloak-theme/account/i18n}/messages_no.properties +8 -0
  51. package/{messages → keycloak-theme/account/i18n}/messages_pl.properties +8 -0
  52. package/{messages → keycloak-theme/account/i18n}/messages_pt.properties +8 -0
  53. package/{messages → keycloak-theme/account/i18n}/messages_pt_BR.properties +8 -0
  54. package/{messages → keycloak-theme/account/i18n}/messages_ru.properties +8 -0
  55. package/{messages → keycloak-theme/account/i18n}/messages_sk.properties +8 -0
  56. package/{messages → keycloak-theme/account/i18n}/messages_sv.properties +8 -0
  57. package/{messages → keycloak-theme/account/i18n}/messages_th.properties +8 -0
  58. package/{messages → keycloak-theme/account/i18n}/messages_tr.properties +8 -0
  59. package/{messages → keycloak-theme/account/i18n}/messages_uk.properties +8 -0
  60. package/{messages → keycloak-theme/account/i18n}/messages_zh_CN.properties +8 -0
  61. package/{messages → keycloak-theme/account/i18n}/messages_zh_TW.properties +8 -0
  62. package/{src → keycloak-theme/account}/i18next.d.ts +4 -0
  63. package/{src → keycloak-theme/account}/oid4vci/Oid4Vci.tsx +9 -5
  64. package/{src → keycloak-theme/account}/organizations/Organizations.tsx +9 -5
  65. package/{src → keycloak-theme/account}/personal-info/PersonalInfo.tsx +13 -10
  66. package/{src → keycloak-theme/account}/resources/EditTheResource.tsx +8 -4
  67. package/{src → keycloak-theme/account}/resources/PermissionRequest.tsx +8 -4
  68. package/{src → keycloak-theme/account}/resources/ResourceToolbar.tsx +4 -0
  69. package/{src → keycloak-theme/account}/resources/Resources.tsx +6 -2
  70. package/{src → keycloak-theme/account}/resources/ResourcesTab.tsx +16 -12
  71. package/{src → keycloak-theme/account}/resources/ShareTheResource.tsx +9 -5
  72. package/{src → keycloak-theme/account}/resources/SharedWith.tsx +5 -1
  73. package/{src → keycloak-theme/account}/root/ErrorPage.tsx +4 -0
  74. package/{src → keycloak-theme/account}/root/Header.tsx +11 -6
  75. package/{src → keycloak-theme/account}/root/PageNav.tsx +9 -5
  76. package/{src → keycloak-theme/account}/root/Root.tsx +8 -4
  77. package/{src → keycloak-theme/account}/routes.tsx +18 -14
  78. package/{src → keycloak-theme/account}/utils/formatDate.ts +6 -3
  79. package/{src → keycloak-theme/account}/utils/joinPath.ts +4 -0
  80. package/{src → keycloak-theme/account}/utils/useAccountAlerts.ts +6 -2
  81. package/{src → keycloak-theme/account}/utils/usePromise.ts +4 -0
  82. package/package.json +18 -525
  83. package/src/KcAccountUiLoader.tsx +391 -370
  84. package/src/zKcContextLike.ts +31 -74
  85. package/tsconfig.tsbuildinfo +1 -0
  86. package/zKcContextLike.js +7 -7
  87. package/zKcContextLike.js.map +1 -1
  88. package/KcAccountUi.d.ts +0 -3
  89. package/KcAccountUi.js.map +0 -1
  90. package/account-security/AccountRow.d.ts +0 -8
  91. package/account-security/AccountRow.js +0 -37
  92. package/account-security/AccountRow.js.map +0 -1
  93. package/account-security/DeviceActivity.d.ts +0 -2
  94. package/account-security/DeviceActivity.js +0 -71
  95. package/account-security/DeviceActivity.js.map +0 -1
  96. package/account-security/LinkedAccounts.d.ts +0 -2
  97. package/account-security/LinkedAccounts.js +0 -40
  98. package/account-security/LinkedAccounts.js.map +0 -1
  99. package/account-security/LinkedAccountsToolbar.d.ts +0 -12
  100. package/account-security/LinkedAccountsToolbar.js +0 -24
  101. package/account-security/LinkedAccountsToolbar.js.map +0 -1
  102. package/account-security/SigningIn.d.ts +0 -2
  103. package/account-security/SigningIn.js +0 -65
  104. package/account-security/SigningIn.js.map +0 -1
  105. package/api/constants.d.ts +0 -2
  106. package/api/constants.js +0 -3
  107. package/api/constants.js.map +0 -1
  108. package/api/methods.d.ts +0 -31
  109. package/api/methods.js +0 -80
  110. package/api/methods.js.map +0 -1
  111. package/api/parse-links.d.ts +0 -5
  112. package/api/parse-links.js +0 -23
  113. package/api/parse-links.js.map +0 -1
  114. package/api/parse-response.d.ts +0 -5
  115. package/api/parse-response.js +0 -36
  116. package/api/parse-response.js.map +0 -1
  117. package/api/representations.d.ts +0 -202
  118. package/api/representations.js +0 -3
  119. package/api/representations.js.map +0 -1
  120. package/api/request.d.ts +0 -12
  121. package/api/request.js +0 -33
  122. package/api/request.js.map +0 -1
  123. package/api.d.ts +0 -13
  124. package/api.js +0 -46
  125. package/api.js.map +0 -1
  126. package/applications/Applications.d.ts +0 -2
  127. package/applications/Applications.js +0 -53
  128. package/applications/Applications.js.map +0 -1
  129. package/components/datalist/EmptyRow.d.ts +0 -5
  130. package/components/datalist/EmptyRow.js +0 -20
  131. package/components/datalist/EmptyRow.js.map +0 -1
  132. package/components/page/Page.d.ts +0 -7
  133. package/components/page/Page.js +0 -6
  134. package/components/page/Page.js.map +0 -1
  135. package/content/ContentComponent.d.ts +0 -2
  136. package/content/ContentComponent.js +0 -36
  137. package/content/ContentComponent.js.map +0 -1
  138. package/content/fetchContent.d.ts +0 -3
  139. package/content/fetchContent.js +0 -6
  140. package/content/fetchContent.js.map +0 -1
  141. package/environment.d.ts +0 -26
  142. package/environment.js +0 -3
  143. package/environment.js.map +0 -1
  144. package/groups/Groups.d.ts +0 -2
  145. package/groups/Groups.js +0 -45
  146. package/groups/Groups.js.map +0 -1
  147. package/i18n.d.ts +0 -4
  148. package/i18n.js +0 -32
  149. package/i18n.js.map +0 -1
  150. package/oid4vci/Oid4Vci.d.ts +0 -2
  151. package/oid4vci/Oid4Vci.js +0 -54
  152. package/oid4vci/Oid4Vci.js.map +0 -1
  153. package/organizations/Organizations.d.ts +0 -2
  154. package/organizations/Organizations.js +0 -19
  155. package/organizations/Organizations.js.map +0 -1
  156. package/personal-info/PersonalInfo.d.ts +0 -2
  157. package/personal-info/PersonalInfo.js +0 -69
  158. package/personal-info/PersonalInfo.js.map +0 -1
  159. package/public/content.d.ts +0 -37
  160. package/public/content.js +0 -50
  161. package/public/content.js.map +0 -1
  162. package/resources/EditTheResource.d.ts +0 -8
  163. package/resources/EditTheResource.js +0 -37
  164. package/resources/EditTheResource.js.map +0 -1
  165. package/resources/PermissionRequest.d.ts +0 -7
  166. package/resources/PermissionRequest.js +0 -40
  167. package/resources/PermissionRequest.js.map +0 -1
  168. package/resources/ResourceToolbar.d.ts +0 -12
  169. package/resources/ResourceToolbar.js +0 -24
  170. package/resources/ResourceToolbar.js.map +0 -1
  171. package/resources/Resources.d.ts +0 -2
  172. package/resources/Resources.js +0 -13
  173. package/resources/Resources.js.map +0 -1
  174. package/resources/ResourcesTab.d.ts +0 -5
  175. package/resources/ResourcesTab.js +0 -104
  176. package/resources/ResourcesTab.js.map +0 -1
  177. package/resources/ShareTheResource.d.ts +0 -9
  178. package/resources/ShareTheResource.js +0 -71
  179. package/resources/ShareTheResource.js.map +0 -1
  180. package/resources/SharedWith.d.ts +0 -6
  181. package/resources/SharedWith.js +0 -8
  182. package/resources/SharedWith.js.map +0 -1
  183. package/root/ErrorPage.d.ts +0 -5
  184. package/root/ErrorPage.js +0 -29
  185. package/root/ErrorPage.js.map +0 -1
  186. package/root/Header.d.ts +0 -1
  187. package/root/Header.js +0 -31
  188. package/root/Header.js.map +0 -1
  189. package/root/PageNav.d.ts +0 -22
  190. package/root/PageNav.js +0 -47
  191. package/root/PageNav.js.map +0 -1
  192. package/root/Root.d.ts +0 -1
  193. package/root/Root.js +0 -12
  194. package/root/Root.js.map +0 -1
  195. package/routes.d.ts +0 -16
  196. package/routes.js +0 -75
  197. package/routes.js.map +0 -1
  198. package/src/KcAccountUi.tsx +0 -25
  199. package/src/content/fetchContent.ts +0 -13
  200. package/src/global.d.ts +0 -9
  201. package/src/public/logo.svg +0 -1
  202. package/src/root/header.module.css +0 -3
  203. package/src/ui-shared/alerts/AlertPanel.tsx +0 -43
  204. package/src/ui-shared/alerts/Alerts.tsx +0 -82
  205. package/src/ui-shared/buttons/FormSubmitButton.tsx +0 -47
  206. package/src/ui-shared/context/ErrorPage.tsx +0 -60
  207. package/src/ui-shared/context/HelpContext.tsx +0 -30
  208. package/src/ui-shared/context/KeycloakContext.tsx +0 -97
  209. package/src/ui-shared/context/environment.ts +0 -50
  210. package/src/ui-shared/continue-cancel/ContinueCancelModal.tsx +0 -75
  211. package/src/ui-shared/controls/FormErrorText.tsx +0 -23
  212. package/src/ui-shared/controls/FormLabel.tsx +0 -40
  213. package/src/ui-shared/controls/HelpItem.tsx +0 -43
  214. package/src/ui-shared/controls/KeycloakSpinner.tsx +0 -12
  215. package/src/ui-shared/controls/NumberControl.tsx +0 -93
  216. package/src/ui-shared/controls/OrganizationTable.tsx +0 -122
  217. package/src/ui-shared/controls/PasswordControl.tsx +0 -71
  218. package/src/ui-shared/controls/PasswordInput.tsx +0 -50
  219. package/src/ui-shared/controls/SwitchControl.tsx +0 -67
  220. package/src/ui-shared/controls/TextAreaControl.tsx +0 -60
  221. package/src/ui-shared/controls/TextControl.tsx +0 -75
  222. package/src/ui-shared/controls/keycloak-text-area/KeycloakTextArea.tsx +0 -23
  223. package/src/ui-shared/controls/select-control/SelectControl.tsx +0 -75
  224. package/src/ui-shared/controls/select-control/SingleSelectControl.tsx +0 -109
  225. package/src/ui-shared/controls/select-control/TypeaheadSelectControl.tsx +0 -285
  226. package/src/ui-shared/controls/table/KeycloakDataTable.tsx +0 -597
  227. package/src/ui-shared/controls/table/ListEmptyState.tsx +0 -86
  228. package/src/ui-shared/controls/table/PaginatingTableToolbar.tsx +0 -106
  229. package/src/ui-shared/controls/table/TableToolbar.tsx +0 -92
  230. package/src/ui-shared/icons/IconMapper.tsx +0 -63
  231. package/src/ui-shared/index.ts +0 -1
  232. package/src/ui-shared/main.ts +0 -96
  233. package/src/ui-shared/masthead/DefaultAvatar.tsx +0 -109
  234. package/src/ui-shared/masthead/KeycloakDropdown.tsx +0 -48
  235. package/src/ui-shared/masthead/Masthead.tsx +0 -161
  236. package/src/ui-shared/scroll-form/FormPanel.tsx +0 -29
  237. package/src/ui-shared/scroll-form/FormTitle.tsx +0 -28
  238. package/src/ui-shared/scroll-form/ScrollForm.tsx +0 -98
  239. package/src/ui-shared/scroll-form/ScrollPanel.tsx +0 -21
  240. package/src/ui-shared/scroll-form/form-title.module.css +0 -4
  241. package/src/ui-shared/scroll-form/scroll-form.module.css +0 -8
  242. package/src/ui-shared/select/KeycloakSelect.tsx +0 -49
  243. package/src/ui-shared/select/SingleSelect.tsx +0 -87
  244. package/src/ui-shared/select/TypeaheadSelect.tsx +0 -198
  245. package/src/ui-shared/user-profile/LocaleSelector.tsx +0 -51
  246. package/src/ui-shared/user-profile/MultiInputComponent.tsx +0 -146
  247. package/src/ui-shared/user-profile/OptionsComponent.tsx +0 -63
  248. package/src/ui-shared/user-profile/SelectComponent.tsx +0 -109
  249. package/src/ui-shared/user-profile/TextAreaComponent.tsx +0 -23
  250. package/src/ui-shared/user-profile/TextComponent.tsx +0 -32
  251. package/src/ui-shared/user-profile/UserProfileFields.tsx +0 -243
  252. package/src/ui-shared/user-profile/UserProfileGroup.tsx +0 -71
  253. package/src/ui-shared/user-profile/utils.ts +0 -170
  254. package/src/ui-shared/utils/ErrorBoundary.tsx +0 -77
  255. package/src/ui-shared/utils/createNamedContext.ts +0 -11
  256. package/src/ui-shared/utils/darkMode.ts +0 -19
  257. package/src/ui-shared/utils/errors.ts +0 -55
  258. package/src/ui-shared/utils/generateId.ts +0 -1
  259. package/src/ui-shared/utils/getRuleValue.ts +0 -17
  260. package/src/ui-shared/utils/isDefined.ts +0 -3
  261. package/src/ui-shared/utils/useFetch.ts +0 -44
  262. package/src/ui-shared/utils/useRequiredContext.ts +0 -24
  263. package/src/ui-shared/utils/useSetTimeout.ts +0 -40
  264. package/src/ui-shared/utils/useStorageItem.ts +0 -51
  265. package/src/ui-shared/utils/useStoredState.ts +0 -38
  266. package/ui-shared/alerts/AlertPanel.d.ts +0 -6
  267. package/ui-shared/alerts/AlertPanel.js +0 -6
  268. package/ui-shared/alerts/AlertPanel.js.map +0 -1
  269. package/ui-shared/alerts/Alerts.d.ts +0 -16
  270. package/ui-shared/alerts/Alerts.js +0 -37
  271. package/ui-shared/alerts/Alerts.js.map +0 -1
  272. package/ui-shared/buttons/FormSubmitButton.d.ts +0 -10
  273. package/ui-shared/buttons/FormSubmitButton.js +0 -26
  274. package/ui-shared/buttons/FormSubmitButton.js.map +0 -1
  275. package/ui-shared/context/ErrorPage.d.ts +0 -5
  276. package/ui-shared/context/ErrorPage.js +0 -24
  277. package/ui-shared/context/ErrorPage.js.map +0 -1
  278. package/ui-shared/context/HelpContext.d.ts +0 -9
  279. package/ui-shared/context/HelpContext.js +0 -14
  280. package/ui-shared/context/HelpContext.js.map +0 -1
  281. package/ui-shared/context/KeycloakContext.d.ts +0 -12
  282. package/ui-shared/context/KeycloakContext.js +0 -53
  283. package/ui-shared/context/KeycloakContext.js.map +0 -1
  284. package/ui-shared/context/environment.d.ts +0 -36
  285. package/ui-shared/context/environment.js +0 -27
  286. package/ui-shared/context/environment.js.map +0 -1
  287. package/ui-shared/continue-cancel/ContinueCancelModal.d.ts +0 -15
  288. package/ui-shared/continue-cancel/ContinueCancelModal.js +0 -27
  289. package/ui-shared/continue-cancel/ContinueCancelModal.js.map +0 -1
  290. package/ui-shared/controls/FormErrorText.d.ts +0 -5
  291. package/ui-shared/controls/FormErrorText.js +0 -19
  292. package/ui-shared/controls/FormErrorText.js.map +0 -1
  293. package/ui-shared/controls/FormLabel.d.ts +0 -13
  294. package/ui-shared/controls/FormLabel.js +0 -20
  295. package/ui-shared/controls/FormLabel.js.map +0 -1
  296. package/ui-shared/controls/HelpItem.d.ts +0 -9
  297. package/ui-shared/controls/HelpItem.js +0 -9
  298. package/ui-shared/controls/HelpItem.js.map +0 -1
  299. package/ui-shared/controls/KeycloakSpinner.d.ts +0 -1
  300. package/ui-shared/controls/KeycloakSpinner.js +0 -8
  301. package/ui-shared/controls/KeycloakSpinner.js.map +0 -1
  302. package/ui-shared/controls/NumberControl.d.ts +0 -13
  303. package/ui-shared/controls/NumberControl.js +0 -33
  304. package/ui-shared/controls/NumberControl.js.map +0 -1
  305. package/ui-shared/controls/OrganizationTable.d.ts +0 -16
  306. package/ui-shared/controls/OrganizationTable.js +0 -45
  307. package/ui-shared/controls/OrganizationTable.js.map +0 -1
  308. package/ui-shared/controls/PasswordControl.d.ts +0 -9
  309. package/ui-shared/controls/PasswordControl.js +0 -25
  310. package/ui-shared/controls/PasswordControl.js.map +0 -1
  311. package/ui-shared/controls/PasswordInput.d.ts +0 -7
  312. package/ui-shared/controls/PasswordInput.js +0 -25
  313. package/ui-shared/controls/PasswordInput.js.map +0 -1
  314. package/ui-shared/controls/SwitchControl.d.ts +0 -11
  315. package/ui-shared/controls/SwitchControl.js +0 -29
  316. package/ui-shared/controls/SwitchControl.js.map +0 -1
  317. package/ui-shared/controls/TextAreaControl.d.ts +0 -8
  318. package/ui-shared/controls/TextAreaControl.js +0 -12
  319. package/ui-shared/controls/TextAreaControl.js.map +0 -1
  320. package/ui-shared/controls/TextControl.d.ts +0 -11
  321. package/ui-shared/controls/TextControl.js +0 -24
  322. package/ui-shared/controls/TextControl.js.map +0 -1
  323. package/ui-shared/controls/keycloak-text-area/KeycloakTextArea.d.ts +0 -4
  324. package/ui-shared/controls/keycloak-text-area/KeycloakTextArea.js +0 -5
  325. package/ui-shared/controls/keycloak-text-area/KeycloakTextArea.js.map +0 -1
  326. package/ui-shared/controls/select-control/SelectControl.d.ts +0 -31
  327. package/ui-shared/controls/select-control/SelectControl.js +0 -28
  328. package/ui-shared/controls/select-control/SelectControl.js.map +0 -1
  329. package/ui-shared/controls/select-control/SingleSelectControl.d.ts +0 -3
  330. package/ui-shared/controls/select-control/SingleSelectControl.js +0 -43
  331. package/ui-shared/controls/select-control/SingleSelectControl.js.map +0 -1
  332. package/ui-shared/controls/select-control/TypeaheadSelectControl.d.ts +0 -3
  333. package/ui-shared/controls/select-control/TypeaheadSelectControl.js +0 -140
  334. package/ui-shared/controls/select-control/TypeaheadSelectControl.js.map +0 -1
  335. package/ui-shared/controls/table/KeycloakDataTable.d.ts +0 -64
  336. package/ui-shared/controls/table/KeycloakDataTable.js +0 -279
  337. package/ui-shared/controls/table/KeycloakDataTable.js.map +0 -1
  338. package/ui-shared/controls/table/ListEmptyState.d.ts +0 -20
  339. package/ui-shared/controls/table/ListEmptyState.js +0 -11
  340. package/ui-shared/controls/table/ListEmptyState.js.map +0 -1
  341. package/ui-shared/controls/table/PaginatingTableToolbar.d.ts +0 -21
  342. package/ui-shared/controls/table/PaginatingTableToolbar.js +0 -27
  343. package/ui-shared/controls/table/PaginatingTableToolbar.js.map +0 -1
  344. package/ui-shared/controls/table/TableToolbar.d.ts +0 -12
  345. package/ui-shared/controls/table/TableToolbar.js +0 -30
  346. package/ui-shared/controls/table/TableToolbar.js.map +0 -1
  347. package/ui-shared/icons/IconMapper.d.ts +0 -5
  348. package/ui-shared/icons/IconMapper.js +0 -40
  349. package/ui-shared/icons/IconMapper.js.map +0 -1
  350. package/ui-shared/index.d.ts +0 -1
  351. package/ui-shared/index.js +0 -2
  352. package/ui-shared/index.js.map +0 -1
  353. package/ui-shared/main.d.ts +0 -45
  354. package/ui-shared/main.js +0 -41
  355. package/ui-shared/main.js.map +0 -1
  356. package/ui-shared/masthead/DefaultAvatar.d.ts +0 -7
  357. package/ui-shared/masthead/DefaultAvatar.js +0 -26
  358. package/ui-shared/masthead/DefaultAvatar.js.map +0 -1
  359. package/ui-shared/masthead/KeycloakDropdown.d.ts +0 -10
  360. package/ui-shared/masthead/KeycloakDropdown.js +0 -23
  361. package/ui-shared/masthead/KeycloakDropdown.js.map +0 -1
  362. package/ui-shared/masthead/Masthead.d.ts +0 -19
  363. package/ui-shared/masthead/Masthead.js +0 -55
  364. package/ui-shared/masthead/Masthead.js.map +0 -1
  365. package/ui-shared/scroll-form/FormPanel.d.ts +0 -8
  366. package/ui-shared/scroll-form/FormPanel.js +0 -9
  367. package/ui-shared/scroll-form/FormPanel.js.map +0 -1
  368. package/ui-shared/scroll-form/FormTitle.d.ts +0 -8
  369. package/ui-shared/scroll-form/FormTitle.js +0 -19
  370. package/ui-shared/scroll-form/FormTitle.js.map +0 -1
  371. package/ui-shared/scroll-form/ScrollForm.d.ts +0 -15
  372. package/ui-shared/scroll-form/ScrollForm.js +0 -38
  373. package/ui-shared/scroll-form/ScrollForm.js.map +0 -1
  374. package/ui-shared/scroll-form/ScrollPanel.d.ts +0 -7
  375. package/ui-shared/scroll-form/ScrollPanel.js +0 -18
  376. package/ui-shared/scroll-form/ScrollPanel.js.map +0 -1
  377. package/ui-shared/scroll-form/form-title.module.css +0 -4
  378. package/ui-shared/scroll-form/scroll-form.module.css +0 -8
  379. package/ui-shared/select/KeycloakSelect.d.ts +0 -30
  380. package/ui-shared/select/KeycloakSelect.js +0 -31
  381. package/ui-shared/select/KeycloakSelect.js.map +0 -1
  382. package/ui-shared/select/SingleSelect.d.ts +0 -4
  383. package/ui-shared/select/SingleSelect.js +0 -46
  384. package/ui-shared/select/SingleSelect.js.map +0 -1
  385. package/ui-shared/select/TypeaheadSelect.d.ts +0 -2
  386. package/ui-shared/select/TypeaheadSelect.js +0 -96
  387. package/ui-shared/select/TypeaheadSelect.js.map +0 -1
  388. package/ui-shared/user-profile/LocaleSelector.d.ts +0 -7
  389. package/ui-shared/user-profile/LocaleSelector.js +0 -28
  390. package/ui-shared/user-profile/LocaleSelector.js.map +0 -1
  391. package/ui-shared/user-profile/MultiInputComponent.d.ts +0 -15
  392. package/ui-shared/user-profile/MultiInputComponent.js +0 -61
  393. package/ui-shared/user-profile/MultiInputComponent.js.map +0 -1
  394. package/ui-shared/user-profile/OptionsComponent.d.ts +0 -2
  395. package/ui-shared/user-profile/OptionsComponent.js +0 -29
  396. package/ui-shared/user-profile/OptionsComponent.js.map +0 -1
  397. package/ui-shared/user-profile/SelectComponent.d.ts +0 -2
  398. package/ui-shared/user-profile/SelectComponent.js +0 -56
  399. package/ui-shared/user-profile/SelectComponent.js.map +0 -1
  400. package/ui-shared/user-profile/TextAreaComponent.d.ts +0 -2
  401. package/ui-shared/user-profile/TextAreaComponent.js +0 -11
  402. package/ui-shared/user-profile/TextAreaComponent.js.map +0 -1
  403. package/ui-shared/user-profile/TextComponent.d.ts +0 -2
  404. package/ui-shared/user-profile/TextComponent.js +0 -14
  405. package/ui-shared/user-profile/TextComponent.js.map +0 -1
  406. package/ui-shared/user-profile/UserProfileFields.d.ts +0 -37
  407. package/ui-shared/user-profile/UserProfileFields.js +0 -94
  408. package/ui-shared/user-profile/UserProfileFields.js.map +0 -1
  409. package/ui-shared/user-profile/UserProfileGroup.d.ts +0 -12
  410. package/ui-shared/user-profile/UserProfileGroup.js +0 -15
  411. package/ui-shared/user-profile/UserProfileGroup.js.map +0 -1
  412. package/ui-shared/user-profile/utils.d.ts +0 -32
  413. package/ui-shared/user-profile/utils.js +0 -84
  414. package/ui-shared/user-profile/utils.js.map +0 -1
  415. package/ui-shared/utils/ErrorBoundary.d.ts +0 -26
  416. package/ui-shared/utils/ErrorBoundary.js +0 -29
  417. package/ui-shared/utils/ErrorBoundary.js.map +0 -1
  418. package/ui-shared/utils/createNamedContext.d.ts +0 -3
  419. package/ui-shared/utils/createNamedContext.js +0 -7
  420. package/ui-shared/utils/createNamedContext.js.map +0 -1
  421. package/ui-shared/utils/darkMode.d.ts +0 -1
  422. package/ui-shared/utils/darkMode.js +0 -16
  423. package/ui-shared/utils/darkMode.js.map +0 -1
  424. package/ui-shared/utils/errors.d.ts +0 -4
  425. package/ui-shared/utils/errors.js +0 -42
  426. package/ui-shared/utils/errors.js.map +0 -1
  427. package/ui-shared/utils/generateId.d.ts +0 -1
  428. package/ui-shared/utils/generateId.js +0 -2
  429. package/ui-shared/utils/generateId.js.map +0 -1
  430. package/ui-shared/utils/getRuleValue.d.ts +0 -2
  431. package/ui-shared/utils/getRuleValue.js +0 -12
  432. package/ui-shared/utils/getRuleValue.js.map +0 -1
  433. package/ui-shared/utils/isDefined.d.ts +0 -1
  434. package/ui-shared/utils/isDefined.js +0 -4
  435. package/ui-shared/utils/isDefined.js.map +0 -1
  436. package/ui-shared/utils/useFetch.d.ts +0 -17
  437. package/ui-shared/utils/useFetch.js +0 -38
  438. package/ui-shared/utils/useFetch.js.map +0 -1
  439. package/ui-shared/utils/useRequiredContext.d.ts +0 -9
  440. package/ui-shared/utils/useRequiredContext.js +0 -17
  441. package/ui-shared/utils/useRequiredContext.js.map +0 -1
  442. package/ui-shared/utils/useSetTimeout.d.ts +0 -1
  443. package/ui-shared/utils/useSetTimeout.js +0 -32
  444. package/ui-shared/utils/useSetTimeout.js.map +0 -1
  445. package/ui-shared/utils/useStorageItem.d.ts +0 -10
  446. package/ui-shared/utils/useStorageItem.js +0 -40
  447. package/ui-shared/utils/useStorageItem.js.map +0 -1
  448. package/ui-shared/utils/useStoredState.d.ts +0 -13
  449. package/ui-shared/utils/useStoredState.js +0 -21
  450. package/ui-shared/utils/useStoredState.js.map +0 -1
  451. package/utils/formatDate.d.ts +0 -4
  452. package/utils/formatDate.js +0 -12
  453. package/utils/formatDate.js.map +0 -1
  454. package/utils/joinPath.d.ts +0 -1
  455. package/utils/joinPath.js +0 -18
  456. package/utils/joinPath.js.map +0 -1
  457. package/utils/useAccountAlerts.d.ts +0 -4
  458. package/utils/useAccountAlerts.js +0 -19
  459. package/utils/useAccountAlerts.js.map +0 -1
  460. package/utils/usePromise.d.ts +0 -41
  461. package/utils/usePromise.js +0 -59
  462. package/utils/usePromise.js.map +0 -1
  463. /package/{public → keycloak-theme/account/assets}/logo.svg +0 -0
  464. /package/{root → keycloak-theme/account/root}/header.module.css +0 -0
@@ -1 +0,0 @@
1
- <svg id="Guides" xmlns="http://www.w3.org/2000/svg" viewBox="0 230 600 130"><defs><style>.cls-1{fill:none;}.cls-2{fill:#4d4d4d;}.cls-3{clip-path:url(#clip-path);}.cls-4{fill:url(#linear-gradient);}.cls-5{fill:#e1e1e1;}.cls-6{fill:#585858;}.cls-7{fill:#696969;}.cls-8{fill:#5e5e5e;}.cls-9{fill:#6d6d6d;}.cls-10{fill:#636363;}.cls-11{fill:#737373;}.cls-12{fill:#757575;}.cls-13{fill:#646464;}.cls-14{fill:#6c6c6c;}.cls-15{fill:#606060;}.cls-16{fill:#707070;}.cls-17{fill:#767676;}.cls-18{fill:#797979;}.cls-19{fill:#7f7f7f;}.cls-20{fill:#868686;}.cls-21{fill:#8a8a8a;}.cls-22{fill:#7d7d7d;}.cls-23{fill:#919191;}.cls-24{fill:#858585;}.cls-25{fill:#929292;}.cls-26{fill:#898989;}.cls-27{fill:#8f8f8f;}.cls-28{fill:#999;}.cls-29{fill:#979797;}.cls-30{fill:#9f9f9f;}.cls-31{fill:#a6a6a6;}.cls-32{fill:#a0a0a0;}.cls-33{fill:#9b9b9b;}.cls-34{fill:#9d9d9d;}.cls-35{fill:#a3a3a3;}.cls-36{fill:#aaa;}.cls-37{fill:#a9a9a9;}.cls-38{fill:#989898;}.cls-39{fill:#b1b1b1;}.cls-40{fill:#9e9e9e;}.cls-41{fill:#a4a4a4;}.cls-42{fill:#aeaeae;}.cls-43{fill:#ababab;}.cls-44{fill:#b4b4b4;}.cls-45{fill:#a2a2a2;}.cls-46{fill:#bcbcbc;}.cls-47{fill:#b8b8b8;}.cls-48{fill:#b0b0b0;}.cls-49{fill:#b9b9b9;}.cls-50{fill:#bfbfbf;}.cls-51{fill:#b5b5b5;}.cls-52{fill:#bdbdbd;}.cls-53{fill:#b6b6b6;}.cls-54{fill:#c3c3c3;}.cls-55{fill:#c9c9c9;}.cls-56{fill:#bbb;}.cls-57{fill:#c1c1c1;}.cls-58{fill:#c6c6c6;}.cls-59{fill:#cdcdcd;}.cls-60{fill:#ccc;}.cls-61{fill:#c2c2c2;}.cls-62{fill:#c8c8c8;}.cls-63{fill:#c7c7c7;}.cls-64{fill:#cecece;}.cls-65{fill:#d3d3d3;}.cls-66{fill:#d5d5d5;}.cls-67{fill:#d0d0d0;}.cls-68{fill:#d9d9d9;}.cls-69{fill:#d4d4d4;}.cls-70{fill:#d8d8d8;}.cls-71{fill:#e2e2e2;}.cls-72{fill:#e4e4e4;}.cls-73{fill:#dedede;}.cls-74{fill:#c5c5c5;}.cls-75{fill:#d1d1d1;}.cls-76{fill:#cbcbcb;}.cls-77{fill:#d7d7d7;}.cls-78{fill:#ddd;}.cls-79{fill:#e3e3e3;}.cls-80{fill:#00b8e3;}.cls-81{fill:#33c6e9;}.cls-82{fill:#008aaa;}</style><clipPath id="clip-path"><path class="cls-1" d="M580.49,328.6H567a0.58,0.58,0,0,1-.46-0.23l-1.05-1.43-2.88-3.87-7.86-10.58-4.39-5.92a0.56,0.56,0,0,0-.86,0l-4.6,5.12-0.52.59a0.55,0.55,0,0,0-.14.37V328a0.57,0.57,0,0,1-.56.56H532a0.56,0.56,0,0,1-.56-0.56V272a0.56,0.56,0,0,1,.56-0.56h11.63a0.56,0.56,0,0,1,.56.56v21.47a0.56,0.56,0,0,0,1,.38l6.42-7,9.55-10.39,4.48-4.87a0.56,0.56,0,0,1,.41-0.18h14.28a0.56,0.56,0,0,1,.56.58,0.63,0.63,0,0,1-.14.35l-6.43,7.15-10.7,11.9-4.46,5a0.55,0.55,0,0,0,0,.69l5.56,7.77,5.06,7.13,0.62,0.87,3.83,5.36,4,5.62,2.79,3.9A0.57,0.57,0,0,1,580.49,328.6ZM527,327.81a0.57,0.57,0,0,1-.51.79H514.11a0.55,0.55,0,0,1-.51-0.34l-0.25-.55h0l-4.78-11.11a0.55,0.55,0,0,0-.51-0.34H484.84a0.57,0.57,0,0,0-.52.34l-0.71,1.65-4.31,10v0a0.56,0.56,0,0,1-.5.32H466.43a0.56,0.56,0,0,1-.51-0.79l0.86-2,5.83-13.49h0l0.21-.48,0.25-.56,0.11-.28,1.94-4.5v0l0,0h0l15-34.67a0.57,0.57,0,0,1,.51-0.34h11.61a0.55,0.55,0,0,1,.51.34l7.79,18,3.85,8.91,4.31,10,8.15,18.87Zm-23.71-23.55-0.82-1.91-2.74-6.4L497,289.63a0.57,0.57,0,0,0-1,0l-4.86,11.21-1.48,3.42a0.56,0.56,0,0,0,.51.78h12.61A0.56,0.56,0,0,0,503.26,304.26Zm-36.64,6.44a24.47,24.47,0,0,1-1.14,2.55,28.69,28.69,0,0,1-5.52,7.42l0,0a30.51,30.51,0,0,1-3.13,2.68,29,29,0,0,1-16.14,5.72c-0.68,0-1.38.07-2.08,0.07a29.86,29.86,0,0,1-16.72-4.73,30.35,30.35,0,0,1-4.62-3.74c-0.57-.56-1.12-1.13-1.63-1.72a28.24,28.24,0,0,1-7-19.33,32.44,32.44,0,0,1,.37-5h0l-0.26-.38,0.42-.63a27.71,27.71,0,0,1,8.14-15.07,30.43,30.43,0,0,1,4.31-3.52,28.1,28.1,0,0,1,10.22-4.28h0a32.86,32.86,0,0,1,6.8-.67,29.36,29.36,0,0,1,21.35,8.47,28,28,0,0,1,8.53,17.89v0c0.1,1,.14,2.08.14,3.16A30.07,30.07,0,0,1,466.63,310.7Zm-11-11a18.72,18.72,0,0,0-4.4-12.46,7.21,7.21,0,0,0-.5-0.59,15.67,15.67,0,0,0-12.06-5.39,17.27,17.27,0,0,0-3.69.39,15.75,15.75,0,0,0-8.37,5,18.58,18.58,0,0,0-4.9,12.6c0,0.15,0,.29,0,0.45a18.54,18.54,0,0,0,4.91,13,16.28,16.28,0,0,0,1.48,1.44,15.69,15.69,0,0,0,3.22,2.21,16.71,16.71,0,0,0,14.94-.12,16.26,16.26,0,0,0,4-3c0.17-.17.34-0.34,0.5-0.52a18.55,18.55,0,0,0,2.77-3.92A19.13,19.13,0,0,0,455.6,299.69Zm-47.7,17.53H384.65a0.55,0.55,0,0,1-.56-0.55V272a0.55,0.55,0,0,0-.32-0.5,0.49,0.49,0,0,0-.24-0.06H371.9a0.56,0.56,0,0,0-.56.56v56a0.56,0.56,0,0,0,.56.56h36a0.56,0.56,0,0,0,.56-0.56V317.78A0.56,0.56,0,0,0,407.9,317.22Zm-63.24-47c-0.92-.08-1.85-0.11-2.8-0.11a29.36,29.36,0,0,0-21.31,8.51,30.65,30.65,0,0,0-2.88,3.25h0a28.57,28.57,0,0,0-5.83,18,30.78,30.78,0,0,0,1.86,10.9,26.61,26.61,0,0,0,2.87,5.6h0a28.23,28.23,0,0,0,3.79,4.53,28.92,28.92,0,0,0,5.7,4.34h0c0.51,0.29,1,.58,1.57.85q0.57,0.29,1.17.54h0a32.63,32.63,0,0,0,13.27,2.59,29.57,29.57,0,0,0,4.24-.3h0c0.88-.12,1.76-0.29,2.62-0.5a29.64,29.64,0,0,0,13.31-7.35c0.81-.74,1.61-1.55,2.39-2.4a0.57,0.57,0,0,0,0-.78l-7.38-7.59a0.54,0.54,0,0,0-.49-0.16,0.61,0.61,0,0,0-.33.2,18.73,18.73,0,0,1-15,7,16.65,16.65,0,0,1-5.78-1,16.21,16.21,0,0,1-5.91-3.85,15.61,15.61,0,0,1-3.74-5.94,20.28,20.28,0,0,1-1.09-6.85q0-7.43,4.44-12c0.22-.22.44-0.44,0.67-0.66a17.52,17.52,0,0,1,12.31-4.7,18.45,18.45,0,0,1,14.64,7,0.55,0.55,0,0,0,.84,0l7.18-8.14a0.58,0.58,0,0,0,0-.76A30,30,0,0,0,344.66,270.24Zm-32.26,5.82,2.17-3.78a0.56,0.56,0,0,0-.48-0.84H301.55a0.57,0.57,0,0,0-.48.28l-11.36,19.55h0l-0.61.45-0.46.35a0.58,0.58,0,0,1-.24-0.22l-0.19-.32-0.29-.48L276.7,271.71a0.57,0.57,0,0,0-.48-0.28H263.68a0.56,0.56,0,0,0-.48.84l5.44,9.5L278.47,299l4,6.93a0.57,0.57,0,0,1,.08.28V328a0.56,0.56,0,0,0,.56.56H294.7a0.56,0.56,0,0,0,.56-0.56V306.17a0.57,0.57,0,0,1,.08-0.28l2.8-4.9,10.64-18.61,2.18-3.79,1.44-2.53h0Zm-53.69,41.26H230.48a0.56,0.56,0,0,1-.56-0.56V306a0.57,0.57,0,0,1,.56-0.56H255a0.56,0.56,0,0,0,.56-0.56v-9.75a0.56,0.56,0,0,0-.56-0.56H230.48a0.56,0.56,0,0,1-.56-0.56V283.36a0.56,0.56,0,0,1,.56-0.56h27.34a0.56,0.56,0,0,0,.56-0.56V272a0.56,0.56,0,0,0-.56-0.56h-40.1a0.56,0.56,0,0,0-.56.56v56a0.56,0.56,0,0,0,.56.56h41a0.56,0.56,0,0,0,.56-0.56V317.87A0.56,0.56,0,0,0,258.72,317.31ZM210.59,327q-2.18-3-5.3-7.43-2.44-3.41-5.43-7.62l-0.2-.29q-7.44-10.46-10.43-14.62a0.56,0.56,0,0,1,0-.69l5.09-5.65h0l4.19-4.66,4-4.48,8.28-9.2a0.56,0.56,0,0,0-.42-0.93H196.18a0.57,0.57,0,0,0-.42.18l-8.85,9.61-11.6,12.62a0.56,0.56,0,0,1-1-.38V272a0.55,0.55,0,0,0-.56-0.55H162.15a0.56,0.56,0,0,0-.56.56v56a0.56,0.56,0,0,0,.56.56h11.63a0.56,0.56,0,0,0,.56-0.56V312.61a0.55,0.55,0,0,1,.14-0.37l2.42-2.71,2.7-3a0.56,0.56,0,0,1,.86,0l8.07,10.85,5.8,7.8,2.33,3.14a0.55,0.55,0,0,0,.45.23h13.51a0.57,0.57,0,0,0,.46-0.89Zm-55.66-55.65h-119a1.08,1.08,0,0,0-.91.51s0,0,0,0l-0.59,1-7.28,12.62-8,13.94a1,1,0,0,0,0,1.05l1.75,3L35,328.11a1.06,1.06,0,0,0,.92.53h119a1.18,1.18,0,0,0,1.17-1.18v-54.9A1.19,1.19,0,0,0,154.93,271.37Z"/></clipPath><linearGradient id="linear-gradient" x1="17.66" y1="300.84" x2="584.47" y2="300.84" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e6e6e6"/><stop offset="1" stop-color="#595959"/></linearGradient></defs><title>keycloak_deliverables</title><path class="cls-2" d="M135.1,271.36a1,1,0,0,1-.91-0.52l-15.91-27.58a1.08,1.08,0,0,0-.93-0.52H52.45a1,1,0,0,0-.91.52L35,271.88a0,0,0,0,0,0,0L19.08,299.47a1.07,1.07,0,0,0,0,1.05L35,328.1l16.53,28.65a1,1,0,0,0,.91.52h64.91a1.08,1.08,0,0,0,.93-0.52l15.92-27.58a1,1,0,0,1,.91-0.52h19.81a1.19,1.19,0,0,0,1.19-1.19v-54.9a1.19,1.19,0,0,0-1.19-1.19H135.1Z"/><g class="cls-3"><rect class="cls-4" x="17.66" y="262.56" width="566.81" height="76.56"/></g><path class="cls-5" d="M38.62,297.11l-17.78,6.45-1.75-3a1,1,0,0,1,0-1.05l8-13.94Z"/><path class="cls-6" d="M580.49,328.6h-7.34l-6.7-4.2,11.71-.59,2.79,3.9A0.57,0.57,0,0,1,580.49,328.6Z"/><path class="cls-6" d="M573.15,328.6H567a0.58,0.58,0,0,1-.46-0.23l-1.05-1.43,1-2.55Z"/><path class="cls-7" d="M580.89,272a0.63,0.63,0,0,1-.14.35l-6.43,7.15-0.4-4Z"/><path class="cls-8" d="M578.16,323.81l-11.71.59,7.72-6.21Z"/><path class="cls-9" d="M580.89,272l-7,3.49,1.19-4.07h5.23A0.56,0.56,0,0,1,580.89,272Z"/><path class="cls-10" d="M574.17,318.19l-7.72,6.21,3.89-11.57Z"/><polygon class="cls-11" points="575.1 271.43 573.91 275.5 567.14 271.43 575.1 271.43"/><path class="cls-12" d="M544.21,272v5.79l-12.75,1V272a0.56,0.56,0,0,1,.56-0.56h11.63A0.56,0.56,0,0,1,544.21,272Z"/><path class="cls-12" d="M573.91,275.5l-12.75,1,4.48-4.87a0.56,0.56,0,0,1,.41-0.18h1.09Z"/><path class="cls-13" d="M570.34,312.83l-3.89,11.57-3.86-1.32-7.86-10.58,9.93-7.67,5.06,7.13Z"/><polygon class="cls-9" points="544.22 277.78 544.22 284.06 531.46 279.23 531.46 278.77 544.22 277.78"/><polygon class="cls-9" points="574.31 279.51 563.61 291.41 551.61 286.86 561.16 276.48 573.91 275.5 574.31 279.51"/><path class="cls-14" d="M564.67,304.83l-9.93,7.67-4.39-5.92a0.56,0.56,0,0,0-.86,0l-4.6,5.12-13.42-30.46v-2l12.75,4.83v9.4a0.56,0.56,0,0,0,1,.38l6.42-7,12,4.54-4.46,5a0.55,0.55,0,0,0,0,.69Z"/><polygon class="cls-15" points="566.45 324.39 565.48 326.94 562.6 323.07 566.45 324.39"/><path class="cls-16" d="M544.88,311.65l-0.52.59a0.55,0.55,0,0,0-.14.37V315l-12.75-10.82v-23Z"/><path class="cls-10" d="M527,327.81a0.57,0.57,0,0,1-.51.79H524.6l2.26-1Z"/><path class="cls-10" d="M544.21,319.55V328a0.57,0.57,0,0,1-.56.56H532a0.56,0.56,0,0,1-.56-0.56v-2.6Z"/><path class="cls-9" d="M526.86,327.55l-2.26,1H514.11a0.55,0.55,0,0,1-.51-0.34l-0.25-.55h0l5.36-19Z"/><polygon class="cls-9" points="544.22 315.03 544.22 319.55 531.46 325.43 531.46 304.21 544.22 315.03"/><path class="cls-17" d="M518.71,308.68l-5.36,19-4.78-11.11a0.55,0.55,0,0,0-.51-0.34H484.83a0.57,0.57,0,0,0-.52.34l-0.71,1.65-10.8-6.39,0.25-.56L493.6,305h9.15a0.56,0.56,0,0,0,.51-0.78l-0.82-1.91,12-3.64Z"/><path class="cls-18" d="M493.6,305L473,311.29l0.11-.28,17.94-10.18-1.48,3.42a0.56,0.56,0,0,0,.51.78h3.46Z"/><polygon class="cls-18" points="514.4 298.71 502.44 302.35 499.71 295.95 510.55 289.8 514.4 298.71"/><path class="cls-12" d="M483.6,318.24l-4.31,10v0l-6.69-15.94h0l0.21-.48Z"/><path class="cls-19" d="M510.55,289.8l-10.84,6.15L497,289.63a0.57,0.57,0,0,0-1,0l-4.86,11.21L473.16,311l1.94-4.5v0l0,0h0l19.84-35h7.26a0.55,0.55,0,0,1,.51.34Z"/><path class="cls-20" d="M466.21,287.57a28.28,28.28,0,0,1,2.25,8.91Z"/><path class="cls-20" d="M495,271.43l-19.84,35,15-34.67a0.57,0.57,0,0,1,.51-0.34H495Z"/><path class="cls-21" d="M468.6,299.65a30.07,30.07,0,0,1-2,11.05l-13.16-1.93a19.13,19.13,0,0,0,2.14-9.09,18.72,18.72,0,0,0-4.4-12.46l5.14-11.66a29.67,29.67,0,0,1,3.59,3,28.15,28.15,0,0,1,6.27,9l2.25,8.91v0C468.55,297.52,468.6,298.57,468.6,299.65Z"/><path class="cls-22" d="M454,316.16l11.5-2.91a28.69,28.69,0,0,1-5.52,7.42Z"/><path class="cls-22" d="M479.28,328.27a0.56,0.56,0,0,1-.5.32h-8.34l-3.67-2.78,5.83-13.49Z"/><path class="cls-18" d="M454,316.16l6,4.51,0,0a30.51,30.51,0,0,1-3.13,2.68Z"/><path class="cls-18" d="M470.44,328.6h-4a0.56,0.56,0,0,1-.51-0.79l0.86-2Z"/><path class="cls-20" d="M466.62,310.7a24.47,24.47,0,0,1-1.14,2.55L454,316.16l-3.79-2.95c0.17-.17.34-0.34,0.5-0.52a18.55,18.55,0,0,0,2.77-3.92Z"/><path class="cls-22" d="M456.81,323.38a29,29,0,0,1-16.14,5.72L454,316.16Z"/><path class="cls-23" d="M456.34,275.56l-5.14,11.66a7.21,7.21,0,0,0-.5-0.59,15.67,15.67,0,0,0-12.06-5.39,17.27,17.27,0,0,0-3.69.39l-3.16-10.84a32.86,32.86,0,0,1,6.8-.67A29.62,29.62,0,0,1,456.34,275.56Z"/><path class="cls-24" d="M454,316.16L440.67,329.1c-0.68,0-1.38.07-2.08,0.07a29.86,29.86,0,0,1-16.72-4.73l1.49-8,7.92-.07a16.71,16.71,0,0,0,14.94-.12Z"/><path class="cls-25" d="M434.95,281.64a15.75,15.75,0,0,0-8.37,5,18.58,18.58,0,0,0-4.9,12.6L409,294.4l-0.29-.11,0.42-.63,12.44-18.59a28.1,28.1,0,0,1,10.22-4.28h0Z"/><path class="cls-26" d="M428.06,314.13a15.69,15.69,0,0,0,3.22,2.21l-7.92.07Z"/><path class="cls-26" d="M454,316.16l-7.76.07a16.26,16.26,0,0,0,4-3Z"/><path class="cls-27" d="M428.06,314.13l-4.69,2.28L409,294.68h0l-0.26-.38L409,294.4l12.68,4.84c0,0.15,0,.29,0,0.45a18.54,18.54,0,0,0,4.91,13A16.28,16.28,0,0,0,428.06,314.13Z"/><path class="cls-28" d="M421.56,275.07l-12.44,18.59a27.71,27.71,0,0,1,8.14-15.07A30.43,30.43,0,0,1,421.56,275.07Z"/><path class="cls-26" d="M386.64,328.6l21.82-7.24V328a0.56,0.56,0,0,1-.56.56H386.64Z"/><path class="cls-26" d="M423.36,316.41l-1.49,8a30.35,30.35,0,0,1-4.62-3.74c-0.57-.56-1.12-1.13-1.63-1.72Z"/><path class="cls-23" d="M408.46,317.78v3.57l-21.82,7.24H374.82l11.23-11.38H407.9A0.56,0.56,0,0,1,408.46,317.78Z"/><path class="cls-23" d="M423.36,316.41L415.63,319a28.24,28.24,0,0,1-7-19.33,32.44,32.44,0,0,1,.37-5Z"/><path class="cls-29" d="M386.05,317.22L374.82,328.6H371.9a0.56,0.56,0,0,1-.56-0.56v0l12.75-36v24.72a0.55,0.55,0,0,0,.56.55h1.4Z"/><path class="cls-30" d="M384.09,272v3.18l-0.32-3.69A0.55,0.55,0,0,1,384.09,272Z"/><path class="cls-31" d="M365.07,280.45a0.58,0.58,0,0,1,0,.76l-7.18,8.14a0.55,0.55,0,0,1-.84,0,19,19,0,0,0-9.61-6.37l-2.79-12.73A30,30,0,0,1,365.07,280.45Z"/><path class="cls-31" d="M377.09,271.43l-5.75,5.84V272a0.56,0.56,0,0,1,.56-0.56h5.19Z"/><path class="cls-32" d="M384.09,275.17v13.77l-12.75,3.53v-15.2l5.75-5.84h6.44a0.49,0.49,0,0,1,.24.06Z"/><path class="cls-33" d="M364.7,317.9a0.57,0.57,0,0,1,0,.78c-0.78.86-1.58,1.66-2.39,2.4l-5.5-10.94a0.54,0.54,0,0,1,.49.16Z"/><polygon class="cls-33" points="384.09 288.94 384.09 291.95 371.34 327.99 371.34 292.47 384.09 288.94"/><path class="cls-28" d="M362.34,321.09A29.64,29.64,0,0,1,349,328.43l0.75-12.85a19.5,19.5,0,0,0,6.72-5.24,0.61,0.61,0,0,1,.33-0.2Z"/><path class="cls-34" d="M349.78,315.59L349,328.43c-0.86.21-1.74,0.38-2.62,0.5h0l-17.51-2.29h0q-0.6-.26-1.17-0.54l8.08-9.77a16.65,16.65,0,0,0,5.78,1A19.47,19.47,0,0,0,349.78,315.59Z"/><path class="cls-35" d="M335.75,316.33l-8.08,9.77c-0.53-.27-1.05-0.55-1.57-0.85h0l-9.49-8.88h0a26.61,26.61,0,0,1-2.87-5.6l12.39-4.21a15.61,15.61,0,0,0,3.74,5.94A16.21,16.21,0,0,0,335.75,316.33Z"/><polygon class="cls-36" points="308.33 277.29 312.4 276.06 310.96 278.59 308.33 277.29"/><path class="cls-36" d="M347.46,283a18.89,18.89,0,0,0-5-.66,17.52,17.52,0,0,0-12.31,4.7c-0.24.22-.46,0.44-0.67,0.66l-11.78-5.78h0a30.65,30.65,0,0,1,2.88-3.25,29.36,29.36,0,0,1,21.31-8.51c1,0,1.88,0,2.8.11Z"/><polygon class="cls-37" points="308.33 277.29 310.96 278.59 308.78 282.38 308.33 277.29"/><path class="cls-37" d="M325,299.68a20.28,20.28,0,0,0,1.09,6.85l-12.39,4.21a30.78,30.78,0,0,1-1.86-10.9,28.57,28.57,0,0,1,5.83-18l11.78,5.78Q325,292.25,325,299.68Z"/><path class="cls-38" d="M328.86,326.64h0Z"/><path class="cls-38" d="M346.38,328.94a29.57,29.57,0,0,1-4.24.3,32.63,32.63,0,0,1-13.27-2.59Z"/><path class="cls-39" d="M314.57,272.27L312.4,276l-4.08,1.25-2.05-5.86h7.81A0.56,0.56,0,0,1,314.57,272.27Z"/><polygon class="cls-40" points="295.26 321.73 295.26 323.23 292.37 321.31 295.26 321.73"/><path class="cls-34" d="M295.26,323.23V328a0.56,0.56,0,0,1-.56.56H292l0.39-7.29Z"/><polygon class="cls-41" points="292.37 321.31 295.26 319.82 295.26 321.73 292.37 321.31"/><path class="cls-41" d="M326.09,325.25a28.92,28.92,0,0,1-5.7-4.34,28.23,28.23,0,0,1-3.79-4.53Z"/><polygon class="cls-42" points="308.78 282.38 298.14 300.99 287.74 292.74 288.63 292.07 289.09 291.72 289.7 291.27 289.7 291.26 289.71 291.25 308.33 277.29 308.78 282.38"/><path class="cls-43" d="M298.14,301l-2.8,4.9a0.57,0.57,0,0,0-.08.28v13.66l-2.89,1.48-4.63-28.57Z"/><path class="cls-44" d="M288.4,291.85a0.58,0.58,0,0,0,.24.22l-0.89.67,0.47-1.21Z"/><path class="cls-44" d="M308.33,277.29l-18.62,14,11.36-19.55a0.57,0.57,0,0,1,.48-0.28h4.72Z"/><polygon class="cls-45" points="292.37 321.31 291.98 328.6 283.15 328.6 292.37 321.31"/><path class="cls-46" d="M258.38,272v3.9l-7.76-4.46h7.2A0.56,0.56,0,0,1,258.38,272Z"/><path class="cls-46" d="M287.92,291l-0.18,1.69-19.11-11-5.44-9.5a0.56,0.56,0,0,1,.48-0.84h12.54a0.57,0.57,0,0,1,.48.28Z"/><polygon class="cls-47" points="288.21 291.53 287.74 292.74 287.92 291.05 288.21 291.53"/><path class="cls-37" d="M292.37,321.31l-9.22,7.29h-0.09a0.56,0.56,0,0,1-.56-0.56V323.7Z"/><path class="cls-48" d="M282.51,316.14v-10a0.57,0.57,0,0,0-.08-0.28l-4-6.93,9.28-6.23,4.63,28.57Z"/><path class="cls-42" d="M256.1,328.6l3.17-6.88V328a0.56,0.56,0,0,1-.56.56H256.1Z"/><polygon class="cls-42" points="292.37 321.31 282.5 323.7 282.5 316.14 292.37 321.31"/><path class="cls-49" d="M258.38,275.89v6.35a0.56,0.56,0,0,1-.56.56h-5.39l-6.2-11.37h4.38Z"/><polygon class="cls-49" points="287.74 292.74 278.47 298.96 268.63 281.77 287.74 292.74"/><polygon class="cls-50" points="252.44 282.8 246.77 282.8 238.32 271.89 238.99 271.43 246.24 271.43 252.44 282.8"/><path class="cls-51" d="M259.28,317.87v3.85l-3.17,6.88h-4.35l-33.24-16,11.41-1.24v5.43a0.56,0.56,0,0,0,.56.56h28.24A0.56,0.56,0,0,1,259.28,317.87Z"/><polygon class="cls-52" points="246.77 282.8 233.01 282.8 238.32 271.89 246.77 282.8"/><path class="cls-52" d="M255.52,295.13v9.75a0.56,0.56,0,0,1-.56.56H230.48a0.57,0.57,0,0,0-.56.56v5.31l-11.41,1.24,11.41-23.42V294a0.56,0.56,0,0,0,.56.56H255A0.56,0.56,0,0,1,255.52,295.13Z"/><polygon class="cls-53" points="251.75 328.6 223.55 328.6 218.51 312.55 251.75 328.6"/><path class="cls-54" d="M238.32,271.9L233,282.8h-2.53a0.56,0.56,0,0,0-.56.56v5.78l-11.41,23.42-1.34-2.2V281.77Z"/><path class="cls-55" d="M210.87,272.36l-8.28,9.2-1.53-10.13h9.39A0.56,0.56,0,0,1,210.87,272.36Z"/><path class="cls-55" d="M238.32,271.9l-21.16,9.87V272a0.56,0.56,0,0,1,.56-0.56h17.6Z"/><path class="cls-56" d="M205.29,319.58q3.12,4.39,5.3,7.43l-12.93-3.38Z"/><path class="cls-56" d="M223.55,328.6h-5.83a0.56,0.56,0,0,1-.56-0.56V313.27l1.34-.71Z"/><path class="cls-53" d="M210.63,328.6H199.16l-1.49-5L210.59,327l0.49,0.69A0.57,0.57,0,0,1,210.63,328.6Z"/><path class="cls-57" d="M199.86,312q3,4.22,5.43,7.62l-7.62,4,2-12Z"/><polygon class="cls-57" points="218.51 312.55 217.17 313.27 217.17 310.36 218.51 312.55"/><path class="cls-58" d="M199.66,311.67l-2,12-9.12-6.2-8.07-10.85a0.56,0.56,0,0,0-.86,0l-2.7,3-14.5-9.85,32-9-5.09,5.65a0.56,0.56,0,0,0,0,.69Q192.21,301.2,199.66,311.67Z"/><path class="cls-47" d="M199.16,328.6h-2a0.55,0.55,0,0,1-.45-0.23l-2.33-3.14,3.33-1.61Z"/><polygon class="cls-59" points="168.07 273.44 174.34 271.98 174.34 276.03 168.07 273.44"/><path class="cls-59" d="M202.6,281.56l-4,4.48-11.65-4.82,8.85-9.61a0.57,0.57,0,0,1,.42-0.18h4.89Z"/><path class="cls-60" d="M198.57,286l-4.19,4.66h0l-32,9,5.66-26.25,6.27,2.59v17.43a0.56,0.56,0,0,0,1,.38l11.61-12.62Z"/><path class="cls-61" d="M162.4,299.68l14.5,9.85-2.42,2.71a0.55,0.55,0,0,0-.14.37V328a0.56,0.56,0,0,1-.56.56h-0.16Z"/><polygon class="cls-61" points="197.66 323.63 194.34 325.23 188.54 317.43 197.66 323.63"/><polygon class="cls-62" points="144.39 302.26 156.11 300.59 156.11 314.18 144.39 302.26"/><polygon class="cls-62" points="173.62 328.6 170.3 328.6 161.59 319.74 161.59 299.8 162.4 299.69 173.62 328.6"/><path class="cls-61" d="M144.39,302.26l11.72,11.92v13.28a1.18,1.18,0,0,1-1.17,1.18H141.31Z"/><path class="cls-61" d="M170.3,328.6h-8.15a0.56,0.56,0,0,1-.56-0.56v-8.3Z"/><polygon class="cls-63" points="144.39 302.26 141.31 328.63 124.91 328.63 119.94 316.67 144.39 302.26"/><polygon class="cls-64" points="144.39 302.26 156.11 288 156.11 300.59 144.39 302.26"/><polygon class="cls-64" points="168.07 273.44 162.4 299.69 161.59 299.8 161.59 281.32 168.07 273.44"/><path class="cls-65" d="M156.11,272.55V288l-11.72,14.27-8.84-30.9h19.37A1.19,1.19,0,0,1,156.11,272.55Z"/><polygon class="cls-65" points="168.07 273.44 161.59 281.32 161.59 272.06 168.07 273.44"/><polygon class="cls-58" points="124.91 328.63 116.26 328.63 114.02 325.42 119.94 316.67 124.91 328.63"/><polygon class="cls-66" points="144.39 302.26 111.96 288.55 129.02 271.36 135.56 271.36 144.39 302.26"/><path class="cls-67" d="M112,288.55l8,28.12,24.45-14.41Z"/><polygon class="cls-50" points="116.26 328.63 113.92 328.63 114.02 325.42 116.26 328.63"/><polygon class="cls-68" points="129.02 271.36 111.96 288.55 108.88 273.18 115.46 271.36 129.02 271.36"/><path class="cls-69" d="M112,288.55l-39.37,9.08L114,325.42Z"/><path class="cls-67" d="M112,288.55L114,325.42l5.92-8.75Z"/><path class="cls-68" d="M108.88,273.18L72.59,297.63,112,288.55Z"/><polygon class="cls-70" points="72.59 297.63 55.52 328.63 45.8 328.63 38.62 297.11 72.59 297.63"/><path class="cls-71" d="M55.09,271.36L38.62,297.11l-4.2-24.2,0.59-1s0,0,0,0a1.08,1.08,0,0,1,.91-0.51H55.09Z"/><path class="cls-70" d="M45.8,328.63H35.93A1.06,1.06,0,0,1,35,328.1L20.83,303.56l17.78-6.45Z"/><polygon class="cls-72" points="38.62 297.11 27.13 285.53 34.41 272.91 38.62 297.11"/><polygon class="cls-73" points="90.57 271.36 79.22 271.36 61.83 271.36 72.59 297.63 108.88 273.18 97.94 271.36 90.57 271.36"/><polygon class="cls-73" points="57.34 271.36 55.09 271.36 38.62 297.11 72.59 297.63 61.83 271.36 57.34 271.36"/><polygon class="cls-74" points="106.12 328.63 112.45 328.63 113.92 328.63 114.02 325.42 106.12 328.63"/><polygon class="cls-67" points="114.02 325.42 72.59 297.63 80.05 328.63 90.57 328.63 106.12 328.63 114.02 325.42"/><polygon class="cls-75" points="55.52 328.63 57.34 328.63 79.22 328.63 80.05 328.63 72.59 297.63 55.52 328.63"/><polygon class="cls-62" points="238.99 271.43 238.32 271.89 238 271.43 238.99 271.43"/><polygon class="cls-76" points="238.32 271.89 235.33 271.43 238 271.43 238.32 271.89"/><path class="cls-75" d="M174.34,272l-6.27,1.45,1.72-2h4A0.55,0.55,0,0,1,174.34,272Z"/><polygon class="cls-77" points="169.79 271.43 168.07 273.44 167.72 271.43 169.79 271.43"/><path class="cls-68" d="M168.07,273.44l-6.48-1.38V272a0.56,0.56,0,0,1,.56-0.56h5.57Z"/><polygon class="cls-78" points="108.99 271.36 108.88 273.18 115.46 271.36 112.45 271.36 108.99 271.36"/><polygon class="cls-79" points="97.94 271.36 108.88 273.18 107.87 271.36 97.94 271.36"/><polygon class="cls-71" points="107.87 271.36 108.88 273.18 108.99 271.36 107.87 271.36"/><path class="cls-80" d="M79.11,271.86l-16,27.72A0.93,0.93,0,0,0,63,300H51.83l22-38.05a0.86,0.86,0,0,1,.33.32l0,0,5,8.65A1,1,0,0,1,79.11,271.86Z"/><path class="cls-81" d="M79.09,329.16l-5,8.61a1,1,0,0,1-.34.32L51.82,300H63a0.85,0.85,0,0,0,.11.43,0.1,0.1,0,0,0,0,0l16,27.7A0.94,0.94,0,0,1,79.09,329.16Z"/><path class="cls-82" d="M73.78,262L51.83,300h0l-5.51,9.54L41,300.46a0.85,0.85,0,0,1-.11-0.43,0.93,0.93,0,0,1,.12-0.45l5.33-9.23,16.18-28a0.94,0.94,0,0,1,.82-0.48h9.93A1,1,0,0,1,73.78,262Z"/><path class="cls-80" d="M73.78,338.09a1,1,0,0,1-.47.13H63.38a0.94,0.94,0,0,1-.82-0.48L47.77,312.12l-1.46-2.54L51.82,300Z"/><path class="cls-82" d="M118,300L96,338.09a1,1,0,0,1-.33-0.32l0,0-5-8.63a1,1,0,0,1,0-.89l16-27.72a0.93,0.93,0,0,0,.13-0.48H118Z"/><path class="cls-80" d="M128.83,300a0.93,0.93,0,0,1-.13.48l-21.52,37.26a0.94,0.94,0,0,1-.8.44H96.46a1,1,0,0,1-.48-0.13L118,300l5.51-9.53,5.23,9.06A0.92,0.92,0,0,1,128.83,300Z"/><path class="cls-80" d="M118,300H106.78a0.92,0.92,0,0,0-.13-0.47l-16-27.69a0.94,0.94,0,0,1,0-1l5-8.62A1,1,0,0,1,96,262Z"/><path class="cls-81" d="M123.46,290.48h0L118,300,96,262a1,1,0,0,1,.48-0.13h9.92a0.94,0.94,0,0,1,.8.44Z"/></svg>
@@ -1,3 +0,0 @@
1
- .brand {
2
- height: 35px;
3
- }
@@ -1,43 +0,0 @@
1
- import {
2
- AlertGroup,
3
- Alert,
4
- AlertActionCloseButton,
5
- AlertVariant,
6
- } from "@patternfly/react-core";
7
-
8
- import type { AlertEntry } from "@keycloakify/keycloak-account-ui/ui-shared/alerts/Alerts";
9
-
10
- export type AlertPanelProps = {
11
- alerts: AlertEntry[];
12
- onCloseAlert: (id: number) => void;
13
- };
14
-
15
- export function AlertPanel({ alerts, onCloseAlert }: AlertPanelProps) {
16
- return (
17
- <AlertGroup
18
- data-testid="global-alerts"
19
- isToast
20
- style={{ whiteSpace: "pre-wrap" }}
21
- >
22
- {alerts.map(({ id, variant, message, description }, index) => (
23
- <Alert
24
- key={id}
25
- data-testid={index === 0 ? "last-alert" : undefined}
26
- isLiveRegion
27
- variant={AlertVariant[variant]}
28
- component="p"
29
- variantLabel=""
30
- title={message}
31
- actionClose={
32
- <AlertActionCloseButton
33
- title={message}
34
- onClose={() => onCloseAlert(id)}
35
- />
36
- }
37
- >
38
- {description && <p>{description}</p>}
39
- </Alert>
40
- ))}
41
- </AlertGroup>
42
- );
43
- }
@@ -1,82 +0,0 @@
1
- import { AlertVariant } from "@patternfly/react-core";
2
- import { PropsWithChildren, useCallback, useMemo, useState } from "react";
3
- import { useTranslation } from "react-i18next";
4
-
5
- import { createNamedContext } from "@keycloakify/keycloak-account-ui/ui-shared/utils/createNamedContext";
6
- import { getErrorDescription, getErrorMessage } from "@keycloakify/keycloak-account-ui/ui-shared/utils/errors";
7
- import { generateId } from "@keycloakify/keycloak-account-ui/ui-shared/utils/generateId";
8
- import { useRequiredContext } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useRequiredContext";
9
- import { useSetTimeout } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useSetTimeout";
10
- import { AlertPanel } from "@keycloakify/keycloak-account-ui/ui-shared/alerts/AlertPanel";
11
-
12
- const ALERT_TIMEOUT = 8000;
13
-
14
- export type AddAlertFunction = (
15
- message: string,
16
- variant?: AlertVariant,
17
- description?: string,
18
- ) => void;
19
-
20
- export type AddErrorFunction = (messageKey: string, error: unknown) => void;
21
-
22
- export type AlertProps = {
23
- addAlert: AddAlertFunction;
24
- addError: AddErrorFunction;
25
- };
26
-
27
- const AlertContext = createNamedContext<AlertProps | undefined>(
28
- "AlertContext",
29
- undefined,
30
- );
31
-
32
- export const useAlerts = () => useRequiredContext(AlertContext);
33
-
34
- export type AlertEntry = {
35
- id: number;
36
- message: string;
37
- variant: AlertVariant;
38
- description?: string;
39
- };
40
-
41
- export const AlertProvider = ({ children }: PropsWithChildren) => {
42
- const { t } = useTranslation();
43
- const setTimeout = useSetTimeout();
44
- const [alerts, setAlerts] = useState<AlertEntry[]>([]);
45
-
46
- const removeAlert = (id: number) =>
47
- setAlerts((alerts) => alerts.filter((alert) => alert.id !== id));
48
-
49
- const addAlert = useCallback<AddAlertFunction>(
50
- (message, variant = AlertVariant.success, description) => {
51
- const alert: AlertEntry = {
52
- id: generateId(),
53
- message,
54
- variant,
55
- description,
56
- };
57
-
58
- setAlerts((alerts) => [alert, ...alerts]);
59
- setTimeout(() => removeAlert(alert.id), ALERT_TIMEOUT);
60
- },
61
- [setTimeout],
62
- );
63
-
64
- const addError = useCallback<AddErrorFunction>(
65
- (messageKey, error) => {
66
- const message = t(messageKey, { error: getErrorMessage(error) });
67
- const description = getErrorDescription(error);
68
-
69
- addAlert(message, AlertVariant.danger, description);
70
- },
71
- [addAlert, t],
72
- );
73
-
74
- const value = useMemo(() => ({ addAlert, addError }), [addAlert, addError]);
75
-
76
- return (
77
- <AlertContext.Provider value={value}>
78
- <AlertPanel alerts={alerts} onCloseAlert={removeAlert} />
79
- {children}
80
- </AlertContext.Provider>
81
- );
82
- };
@@ -1,47 +0,0 @@
1
- import { Button, ButtonProps } from "@patternfly/react-core";
2
- import { PropsWithChildren } from "react";
3
- import { FieldValues, FormState } from "react-hook-form";
4
-
5
- export type FormSubmitButtonProps = Omit<ButtonProps, "isDisabled"> & {
6
- formState: FormState<FieldValues>;
7
- allowNonDirty?: boolean;
8
- allowInvalid?: boolean;
9
- isDisabled?: boolean;
10
- };
11
-
12
- const isSubmittable = (
13
- formState: FormState<FieldValues>,
14
- allowNonDirty: boolean,
15
- allowInvalid: boolean,
16
- ) => {
17
- return (
18
- (formState.isValid || allowInvalid) &&
19
- (formState.isDirty || allowNonDirty) &&
20
- !formState.isLoading &&
21
- !formState.isValidating &&
22
- !formState.isSubmitting
23
- );
24
- };
25
-
26
- export const FormSubmitButton = ({
27
- formState,
28
- isDisabled = false,
29
- allowInvalid = false,
30
- allowNonDirty = false,
31
- children,
32
- ...rest
33
- }: PropsWithChildren<FormSubmitButtonProps>) => {
34
- return (
35
- <Button
36
- variant="primary"
37
- isDisabled={
38
- (formState && !isSubmittable(formState, allowNonDirty, allowInvalid)) ||
39
- isDisabled
40
- }
41
- {...rest}
42
- type="submit"
43
- >
44
- {children}
45
- </Button>
46
- );
47
- };
@@ -1,60 +0,0 @@
1
- import {
2
- Button,
3
- Modal,
4
- ModalVariant,
5
- Page,
6
- Text,
7
- TextContent,
8
- TextVariants,
9
- } from "@patternfly/react-core";
10
- import { useTranslation } from "react-i18next";
11
-
12
- type ErrorPageProps = {
13
- error?: unknown;
14
- };
15
-
16
- export const ErrorPage = (props: ErrorPageProps) => {
17
- const { t } = useTranslation();
18
- const error = props.error;
19
- const errorMessage = getErrorMessage(error);
20
-
21
- function onRetry() {
22
- location.href = location.origin + location.pathname;
23
- }
24
-
25
- return (
26
- <Page>
27
- <Modal
28
- variant={ModalVariant.small}
29
- title={t("somethingWentWrong")}
30
- titleIconVariant="danger"
31
- showClose={false}
32
- isOpen
33
- actions={[
34
- <Button key="tryAgain" variant="primary" onClick={onRetry}>
35
- {t("tryAgain")}
36
- </Button>,
37
- ]}
38
- >
39
- <TextContent>
40
- <Text>{t("somethingWentWrongDescription")}</Text>
41
- {errorMessage && (
42
- <Text component={TextVariants.small}>{errorMessage}</Text>
43
- )}
44
- </TextContent>
45
- </Modal>
46
- </Page>
47
- );
48
- };
49
-
50
- function getErrorMessage(error: unknown): string | null {
51
- if (typeof error === "string") {
52
- return error;
53
- }
54
-
55
- if (error instanceof Error) {
56
- return error.message;
57
- }
58
-
59
- return null;
60
- }
@@ -1,30 +0,0 @@
1
- import { PropsWithChildren } from "react";
2
- import { createNamedContext } from "@keycloakify/keycloak-account-ui/ui-shared/utils/createNamedContext";
3
- import { useRequiredContext } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useRequiredContext";
4
- import { useStoredState } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useStoredState";
5
-
6
- type HelpContextProps = {
7
- enabled: boolean;
8
- toggleHelp: () => void;
9
- };
10
-
11
- export const HelpContext = createNamedContext<HelpContextProps | undefined>(
12
- "HelpContext",
13
- undefined,
14
- );
15
-
16
- export const useHelp = () => useRequiredContext(HelpContext);
17
-
18
- export const Help = ({ children }: PropsWithChildren) => {
19
- const [enabled, setHelp] = useStoredState(localStorage, "helpEnabled", true);
20
-
21
- function toggleHelp() {
22
- setHelp(!enabled);
23
- }
24
-
25
- return (
26
- <HelpContext.Provider value={{ enabled, toggleHelp }}>
27
- {children}
28
- </HelpContext.Provider>
29
- );
30
- };
@@ -1,97 +0,0 @@
1
- import { Spinner } from "@patternfly/react-core";
2
- import Keycloak from "keycloak-js";
3
- import {
4
- PropsWithChildren,
5
- createContext,
6
- useContext,
7
- useEffect,
8
- useMemo,
9
- useRef,
10
- useState,
11
- } from "react";
12
- import { AlertProvider } from "@keycloakify/keycloak-account-ui/ui-shared/alerts/Alerts";
13
- import { ErrorPage } from "@keycloakify/keycloak-account-ui/ui-shared/context/ErrorPage";
14
- import { Help } from "@keycloakify/keycloak-account-ui/ui-shared/context/HelpContext";
15
- import { BaseEnvironment } from "@keycloakify/keycloak-account-ui/ui-shared/context/environment";
16
-
17
- export type KeycloakContext<T extends BaseEnvironment = BaseEnvironment> =
18
- KeycloakContextProps<T> & {
19
- keycloak: Keycloak;
20
- };
21
-
22
- const createKeycloakEnvContext = <T extends BaseEnvironment>() =>
23
- createContext<KeycloakContext<T> | undefined>(undefined);
24
-
25
- let KeycloakEnvContext: any;
26
-
27
- export const useEnvironment = <
28
- T extends BaseEnvironment = BaseEnvironment,
29
- >() => {
30
- const context = useContext<KeycloakContext<T>>(KeycloakEnvContext);
31
- if (!context)
32
- throw Error(
33
- "no environment provider in the hierarchy make sure to add the provider",
34
- );
35
- return context;
36
- };
37
-
38
- interface KeycloakContextProps<T extends BaseEnvironment> {
39
- environment: T;
40
- }
41
-
42
- export const KeycloakProvider = <T extends BaseEnvironment>({
43
- environment,
44
- children,
45
- }: PropsWithChildren<KeycloakContextProps<T>>) => {
46
- KeycloakEnvContext = createKeycloakEnvContext<T>();
47
- const calledOnce = useRef(false);
48
- const [init, setInit] = useState(false);
49
- const [error, setError] = useState<unknown>();
50
- const keycloak = useMemo(() => {
51
- const keycloak = new Keycloak({
52
- url: environment.serverBaseUrl,
53
- realm: environment.realm,
54
- clientId: environment.clientId,
55
- });
56
-
57
- keycloak.onAuthLogout = () => keycloak.login();
58
-
59
- return keycloak;
60
- }, [environment]);
61
-
62
- useEffect(() => {
63
- // only needed in dev mode
64
- if (calledOnce.current) {
65
- return;
66
- }
67
-
68
- const init = () =>
69
- keycloak.init({
70
- onLoad: "check-sso",
71
- pkceMethod: "S256",
72
- responseMode: "query",
73
- });
74
-
75
- init()
76
- .then(() => setInit(true))
77
- .catch((error) => setError(error));
78
-
79
- calledOnce.current = true;
80
- }, [keycloak]);
81
-
82
- if (error) {
83
- return <ErrorPage error={error} />;
84
- }
85
-
86
- if (!init) {
87
- return <Spinner />;
88
- }
89
-
90
- return (
91
- <KeycloakEnvContext.Provider value={{ environment, keycloak }}>
92
- <AlertProvider>
93
- <Help>{children}</Help>
94
- </AlertProvider>
95
- </KeycloakEnvContext.Provider>
96
- );
97
- };
@@ -1,50 +0,0 @@
1
- /** The base environment variables that are shared between the Admin and Account Consoles. */
2
- export type BaseEnvironment = {
3
- /**
4
- * The URL to the root of the Keycloak server, including the path if present, this is **NOT** always equivalent to the URL of the Admin Console.
5
- * For example, the Keycloak server could be hosted on `auth.example.com` and Admin Console may be hosted on `admin.example.com/some/path`.
6
- *
7
- * Note that this URL is normalized not to include a trailing slash, so take this into account when constructing URLs.
8
- *
9
- * @see {@link https://www.keycloak.org/server/hostname#_administration_console}
10
- */
11
- serverBaseUrl: string;
12
- /** The identifier of the realm used to authenticate the user. */
13
- realm: string;
14
- /** The identifier of the client used to authenticate the user. */
15
- clientId: string;
16
- /** The base URL of the resources. */
17
- resourceUrl: string;
18
- /** The source URL for the the logo image. */
19
- logo: string;
20
- /** The URL to be followed when the logo is clicked. */
21
- logoUrl: string;
22
- };
23
-
24
- /**
25
- * Extracts the environment variables from the document, these variables are injected by Keycloak as a script tag, the contents of which can be parsed as JSON. For example:
26
- *
27
- *```html
28
- * <script id="environment" type="application/json">
29
- * {
30
- * "realm": "master",
31
- * "clientId": "security-admin-console",
32
- * "etc": "..."
33
- * }
34
- * </script>
35
- * ```
36
- */
37
- export function getInjectedEnvironment<T>(): T {
38
- const element = document.getElementById("environment");
39
- const contents = element?.textContent;
40
-
41
- if (typeof contents !== "string") {
42
- throw new Error("Environment variables not found in the document.");
43
- }
44
-
45
- try {
46
- return JSON.parse(contents);
47
- } catch {
48
- throw new Error("Unable to parse environment variables as JSON.");
49
- }
50
- }
@@ -1,75 +0,0 @@
1
- import { ReactNode, useState } from "react";
2
- import { Button, ButtonProps, Modal, ModalProps } from "@patternfly/react-core";
3
-
4
- export type ContinueCancelModalProps = Omit<ModalProps, "ref" | "children"> & {
5
- modalTitle: string;
6
- continueLabel: string;
7
- cancelLabel: string;
8
- buttonTitle: string | ReactNode;
9
- buttonVariant?: ButtonProps["variant"];
10
- buttonTestRole?: string;
11
- isDisabled?: boolean;
12
- onContinue: () => void;
13
- component?: React.ElementType<any> | React.ComponentType<any>;
14
- children?: ReactNode;
15
- };
16
-
17
- export const ContinueCancelModal = ({
18
- modalTitle,
19
- continueLabel,
20
- cancelLabel,
21
- buttonTitle,
22
- isDisabled,
23
- buttonVariant,
24
- buttonTestRole,
25
- onContinue,
26
- component = Button,
27
- children,
28
- ...rest
29
- }: ContinueCancelModalProps) => {
30
- const [open, setOpen] = useState(false);
31
- const Component = component;
32
-
33
- return (
34
- <>
35
- <Component
36
- variant={buttonVariant}
37
- onClick={() => setOpen(true)}
38
- isDisabled={isDisabled}
39
- data-testrole={buttonTestRole}
40
- >
41
- {buttonTitle}
42
- </Component>
43
- <Modal
44
- variant="small"
45
- {...rest}
46
- title={modalTitle}
47
- isOpen={open}
48
- onClose={() => setOpen(false)}
49
- actions={[
50
- <Button
51
- id="modal-confirm"
52
- key="confirm"
53
- variant="primary"
54
- onClick={() => {
55
- setOpen(false);
56
- onContinue();
57
- }}
58
- >
59
- {continueLabel}
60
- </Button>,
61
- <Button
62
- id="modal-cancel"
63
- key="cancel"
64
- variant="secondary"
65
- onClick={() => setOpen(false)}
66
- >
67
- {cancelLabel}
68
- </Button>,
69
- ]}
70
- >
71
- {children}
72
- </Modal>
73
- </>
74
- );
75
- };
@@ -1,23 +0,0 @@
1
- import {
2
- FormHelperText,
3
- FormHelperTextProps,
4
- HelperText,
5
- HelperTextItem,
6
- } from "@patternfly/react-core";
7
- import { ExclamationCircleIcon } from "@patternfly/react-icons";
8
-
9
- export type FormErrorTextProps = FormHelperTextProps & {
10
- message: string;
11
- };
12
-
13
- export const FormErrorText = ({ message, ...props }: FormErrorTextProps) => {
14
- return (
15
- <FormHelperText {...props}>
16
- <HelperText>
17
- <HelperTextItem icon={<ExclamationCircleIcon />} variant="error">
18
- {message}
19
- </HelperTextItem>
20
- </HelperText>
21
- </FormHelperText>
22
- );
23
- };
@@ -1,40 +0,0 @@
1
- import { FormGroup, FormGroupProps } from "@patternfly/react-core";
2
- import { PropsWithChildren, ReactNode } from "react";
3
- import { FieldError, FieldValues, Merge } from "react-hook-form";
4
- import { FormErrorText } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormErrorText";
5
- import { HelpItem } from "@keycloakify/keycloak-account-ui/ui-shared/controls/HelpItem";
6
-
7
- export type FieldProps<T extends FieldValues = FieldValues> = {
8
- label?: string;
9
- name: string;
10
- labelIcon?: string | ReactNode;
11
- error?: FieldError | Merge<FieldError, T>;
12
- isRequired: boolean;
13
- };
14
-
15
- type FormLabelProps = FieldProps & Omit<FormGroupProps, "label" | "labelIcon">;
16
-
17
- export const FormLabel = ({
18
- name,
19
- label,
20
- labelIcon,
21
- error,
22
- children,
23
- ...rest
24
- }: PropsWithChildren<FormLabelProps>) => (
25
- <FormGroup
26
- label={label || name}
27
- fieldId={name}
28
- labelIcon={
29
- labelIcon ? (
30
- <HelpItem helpText={labelIcon} fieldLabelId={name} />
31
- ) : undefined
32
- }
33
- {...rest}
34
- >
35
- {children}
36
- {error && (
37
- <FormErrorText data-testid={`${name}-helper`} message={error.message} />
38
- )}
39
- </FormGroup>
40
- );
@@ -1,43 +0,0 @@
1
- import { Icon, Popover } from "@patternfly/react-core";
2
- import { HelpIcon } from "@patternfly/react-icons";
3
- import { ReactNode } from "react";
4
- import { useHelp } from "@keycloakify/keycloak-account-ui/ui-shared/context/HelpContext";
5
-
6
- type HelpItemProps = {
7
- helpText: string | ReactNode;
8
- fieldLabelId: string;
9
- noVerticalAlign?: boolean;
10
- unWrap?: boolean;
11
- };
12
-
13
- export const HelpItem = ({
14
- helpText,
15
- fieldLabelId,
16
- noVerticalAlign = true,
17
- unWrap = false,
18
- }: HelpItemProps) => {
19
- const { enabled } = useHelp();
20
- return enabled ? (
21
- <Popover bodyContent={helpText}>
22
- <>
23
- {!unWrap && (
24
- <button
25
- data-testid={`help-label-${fieldLabelId}`}
26
- aria-label={fieldLabelId}
27
- onClick={(e) => e.preventDefault()}
28
- className="pf-v5-c-form__group-label-help"
29
- >
30
- <Icon isInline={noVerticalAlign}>
31
- <HelpIcon />
32
- </Icon>
33
- </button>
34
- )}
35
- {unWrap && (
36
- <Icon isInline={noVerticalAlign}>
37
- <HelpIcon />
38
- </Icon>
39
- )}
40
- </>
41
- </Popover>
42
- ) : null;
43
- };
@@ -1,12 +0,0 @@
1
- import { Bullseye, Spinner } from "@patternfly/react-core";
2
- import { useTranslation } from "react-i18next";
3
-
4
- export const KeycloakSpinner = () => {
5
- const { t } = useTranslation();
6
-
7
- return (
8
- <Bullseye>
9
- <Spinner aria-label={t("spinnerLoading")} />
10
- </Bullseye>
11
- );
12
- };