@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,106 +0,0 @@
1
- import {
2
- Pagination,
3
- PaginationToggleTemplateProps,
4
- ToolbarItem,
5
- } from "@patternfly/react-core";
6
- import { PropsWithChildren, ReactNode } from "react";
7
- import { useTranslation } from "react-i18next";
8
-
9
- import { TableToolbar } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/TableToolbar";
10
-
11
- type KeycloakPaginationProps = {
12
- id?: string;
13
- count: number;
14
- first: number;
15
- max: number;
16
- onNextClick: (page: number) => void;
17
- onPreviousClick: (page: number) => void;
18
- onPerPageSelect: (max: number, first: number) => void;
19
- variant?: "top" | "bottom";
20
- };
21
-
22
- type TableToolbarProps = KeycloakPaginationProps & {
23
- searchTypeComponent?: ReactNode;
24
- toolbarItem?: ReactNode;
25
- subToolbar?: ReactNode;
26
- inputGroupName?: string;
27
- inputGroupPlaceholder?: string;
28
- inputGroupOnEnter?: (value: string) => void;
29
- };
30
-
31
- const KeycloakPagination = ({
32
- id,
33
- variant = "top",
34
- count,
35
- first,
36
- max,
37
- onNextClick,
38
- onPreviousClick,
39
- onPerPageSelect,
40
- }: KeycloakPaginationProps) => {
41
- const { t } = useTranslation();
42
- const page = Math.round(first / max);
43
- return (
44
- <Pagination
45
- widgetId={id}
46
- titles={{
47
- paginationAriaLabel: `${t("pagination")} ${variant} `,
48
- }}
49
- isCompact
50
- toggleTemplate={({
51
- firstIndex,
52
- lastIndex,
53
- }: PaginationToggleTemplateProps) => (
54
- <b>
55
- {firstIndex} - {lastIndex}
56
- </b>
57
- )}
58
- itemCount={count + page * max}
59
- page={page + 1}
60
- perPage={max}
61
- onNextClick={(_, p) => onNextClick((p - 1) * max)}
62
- onPreviousClick={(_, p) => onPreviousClick((p - 1) * max)}
63
- onPerPageSelect={(_, m, f) => onPerPageSelect(f - 1, m)}
64
- variant={variant}
65
- />
66
- );
67
- };
68
-
69
- export const PaginatingTableToolbar = ({
70
- count,
71
- searchTypeComponent,
72
- toolbarItem,
73
- subToolbar,
74
- children,
75
- inputGroupName,
76
- inputGroupPlaceholder,
77
- inputGroupOnEnter,
78
- ...rest
79
- }: PropsWithChildren<TableToolbarProps>) => {
80
- return (
81
- <TableToolbar
82
- searchTypeComponent={searchTypeComponent}
83
- toolbarItem={
84
- <>
85
- {toolbarItem}
86
- <ToolbarItem variant="pagination">
87
- <KeycloakPagination count={count} {...rest} />
88
- </ToolbarItem>
89
- </>
90
- }
91
- subToolbar={subToolbar}
92
- toolbarItemFooter={
93
- count !== 0 ? (
94
- <ToolbarItem variant="pagination">
95
- <KeycloakPagination count={count} variant="bottom" {...rest} />
96
- </ToolbarItem>
97
- ) : null
98
- }
99
- inputGroupName={inputGroupName}
100
- inputGroupPlaceholder={inputGroupPlaceholder}
101
- inputGroupOnEnter={inputGroupOnEnter}
102
- >
103
- {children}
104
- </TableToolbar>
105
- );
106
- };
@@ -1,92 +0,0 @@
1
- import {
2
- Divider,
3
- InputGroup,
4
- SearchInput,
5
- Toolbar,
6
- ToolbarContent,
7
- ToolbarItem,
8
- } from "@patternfly/react-core";
9
- import { KeyboardEvent, PropsWithChildren, ReactNode, useState } from "react";
10
- import { useTranslation } from "react-i18next";
11
-
12
- type TableToolbarProps = {
13
- toolbarItem?: ReactNode;
14
- subToolbar?: ReactNode;
15
- toolbarItemFooter?: ReactNode;
16
- searchTypeComponent?: ReactNode;
17
- inputGroupName?: string;
18
- inputGroupPlaceholder?: string;
19
- inputGroupOnEnter?: (value: string) => void;
20
- };
21
-
22
- export const TableToolbar = ({
23
- toolbarItem,
24
- subToolbar,
25
- toolbarItemFooter,
26
- children,
27
- searchTypeComponent,
28
- inputGroupName,
29
- inputGroupPlaceholder,
30
- inputGroupOnEnter,
31
- }: PropsWithChildren<TableToolbarProps>) => {
32
- const { t } = useTranslation();
33
- const [searchValue, setSearchValue] = useState<string>("");
34
-
35
- const onSearch = () => {
36
- if (searchValue !== "") {
37
- setSearchValue(searchValue);
38
- inputGroupOnEnter?.(searchValue);
39
- } else {
40
- setSearchValue("");
41
- inputGroupOnEnter?.("");
42
- }
43
- };
44
-
45
- const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {
46
- if (e.key === "Enter") {
47
- onSearch();
48
- }
49
- };
50
-
51
- return (
52
- <>
53
- <Toolbar>
54
- <ToolbarContent>
55
- {inputGroupName && (
56
- <ToolbarItem>
57
- <InputGroup data-testid={inputGroupName}>
58
- {searchTypeComponent}
59
- {inputGroupPlaceholder && (
60
- <SearchInput
61
- data-testid="table-search-input"
62
- placeholder={inputGroupPlaceholder}
63
- aria-label={t("search")}
64
- value={searchValue}
65
- onChange={(_, value) => {
66
- setSearchValue(value);
67
- }}
68
- onSearch={onSearch}
69
- onKeyDown={handleKeyDown}
70
- onClear={() => {
71
- setSearchValue("");
72
- inputGroupOnEnter?.("");
73
- }}
74
- />
75
- )}
76
- </InputGroup>
77
- </ToolbarItem>
78
- )}
79
- {toolbarItem}
80
- </ToolbarContent>
81
- </Toolbar>
82
- {subToolbar && (
83
- <Toolbar>
84
- <ToolbarContent>{subToolbar}</ToolbarContent>
85
- </Toolbar>
86
- )}
87
- <Divider />
88
- {children}
89
- <Toolbar>{toolbarItemFooter}</Toolbar>
90
- </>
91
- );
92
- };
@@ -1,63 +0,0 @@
1
- import { Icon } from "@patternfly/react-core";
2
- import {
3
- BitbucketIcon,
4
- CubeIcon,
5
- FacebookSquareIcon,
6
- GithubIcon,
7
- GitlabIcon,
8
- GoogleIcon,
9
- InstagramIcon,
10
- LinkedinIcon,
11
- MicrosoftIcon,
12
- OpenshiftIcon,
13
- PaypalIcon,
14
- StackOverflowIcon,
15
- TwitterIcon,
16
- } from "@patternfly/react-icons";
17
-
18
- type IconMapperProps = {
19
- icon: string;
20
- };
21
-
22
- export const IconMapper = ({ icon }: IconMapperProps) => {
23
- const SpecificIcon = getIcon(icon);
24
- return (
25
- <Icon size="lg">
26
- <SpecificIcon alt={icon} />
27
- </Icon>
28
- );
29
- };
30
-
31
- function getIcon(icon: string) {
32
- switch (icon) {
33
- case "github":
34
- return GithubIcon;
35
- case "facebook":
36
- return FacebookSquareIcon;
37
- case "gitlab":
38
- return GitlabIcon;
39
- case "google":
40
- return GoogleIcon;
41
- case "linkedin":
42
- case "linkedin-openid-connect":
43
- return LinkedinIcon;
44
-
45
- case "openshift-v3":
46
- case "openshift-v4":
47
- return OpenshiftIcon;
48
- case "stackoverflow":
49
- return StackOverflowIcon;
50
- case "twitter":
51
- return TwitterIcon;
52
- case "microsoft":
53
- return MicrosoftIcon;
54
- case "bitbucket":
55
- return BitbucketIcon;
56
- case "instagram":
57
- return InstagramIcon;
58
- case "paypal":
59
- return PaypalIcon;
60
- default:
61
- return CubeIcon;
62
- }
63
- }
@@ -1 +0,0 @@
1
- export * from './main';
@@ -1,96 +0,0 @@
1
- export {
2
- AlertProvider,
3
- useAlerts,
4
- type AddAlertFunction,
5
- type AddErrorFunction,
6
- type AlertProps,
7
- } from "@keycloakify/keycloak-account-ui/ui-shared/alerts/Alerts";
8
- export { ErrorPage } from "@keycloakify/keycloak-account-ui/ui-shared/context/ErrorPage";
9
- export { Help, useHelp } from "@keycloakify/keycloak-account-ui/ui-shared/context/HelpContext";
10
- export {
11
- KeycloakProvider,
12
- useEnvironment,
13
- type KeycloakContext,
14
- } from "@keycloakify/keycloak-account-ui/ui-shared/context/KeycloakContext";
15
- export {
16
- getInjectedEnvironment,
17
- type BaseEnvironment,
18
- } from "@keycloakify/keycloak-account-ui/ui-shared/context/environment";
19
- export { ContinueCancelModal } from "@keycloakify/keycloak-account-ui/ui-shared/continue-cancel/ContinueCancelModal";
20
- export {
21
- FormErrorText,
22
- type FormErrorTextProps,
23
- } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormErrorText";
24
- export { HelpItem } from "@keycloakify/keycloak-account-ui/ui-shared/controls/HelpItem";
25
- export { NumberControl } from "@keycloakify/keycloak-account-ui/ui-shared/controls/NumberControl";
26
- export { PasswordControl } from "@keycloakify/keycloak-account-ui/ui-shared/controls/PasswordControl";
27
- export { PasswordInput } from "@keycloakify/keycloak-account-ui/ui-shared/controls/PasswordInput";
28
- export {
29
- SelectControl,
30
- SelectVariant,
31
- } from "@keycloakify/keycloak-account-ui/ui-shared/controls/select-control/SelectControl";
32
- export type {
33
- SelectControlOption,
34
- SelectControlProps,
35
- } from "@keycloakify/keycloak-account-ui/ui-shared/controls/select-control/SelectControl";
36
- export {
37
- SwitchControl,
38
- type SwitchControlProps,
39
- } from "@keycloakify/keycloak-account-ui/ui-shared/controls/SwitchControl";
40
- export { TextAreaControl } from "@keycloakify/keycloak-account-ui/ui-shared/controls/TextAreaControl";
41
- export { TextControl } from "@keycloakify/keycloak-account-ui/ui-shared/controls/TextControl";
42
- export {
43
- KeycloakTextArea,
44
- type KeycloakTextAreaProps,
45
- } from "@keycloakify/keycloak-account-ui/ui-shared/controls/keycloak-text-area/KeycloakTextArea";
46
- export { IconMapper } from "@keycloakify/keycloak-account-ui/ui-shared/icons/IconMapper";
47
- export { FormPanel } from "@keycloakify/keycloak-account-ui/ui-shared/scroll-form/FormPanel";
48
- export { ScrollForm, mainPageContentId } from "@keycloakify/keycloak-account-ui/ui-shared/scroll-form/ScrollForm";
49
- export {
50
- FormSubmitButton,
51
- type FormSubmitButtonProps,
52
- } from "@keycloakify/keycloak-account-ui/ui-shared/buttons/FormSubmitButton";
53
- export { UserProfileFields } from "@keycloakify/keycloak-account-ui/ui-shared/user-profile/UserProfileFields";
54
- export {
55
- beerify,
56
- debeerify,
57
- isUserProfileError,
58
- label,
59
- setUserProfileServerError,
60
- } from "@keycloakify/keycloak-account-ui/ui-shared/user-profile/utils";
61
- export type { UserFormFields } from "@keycloakify/keycloak-account-ui/ui-shared/user-profile/utils";
62
- export { createNamedContext } from "@keycloakify/keycloak-account-ui/ui-shared/utils/createNamedContext";
63
- export {
64
- getErrorDescription,
65
- getErrorMessage,
66
- getNetworkErrorMessage,
67
- getNetworkErrorDescription,
68
- } from "@keycloakify/keycloak-account-ui/ui-shared/utils/errors";
69
- export { isDefined } from "@keycloakify/keycloak-account-ui/ui-shared/utils/isDefined";
70
- export { useRequiredContext } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useRequiredContext";
71
- export { useStoredState } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useStoredState";
72
- export { useSetTimeout } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useSetTimeout";
73
- export { generateId } from "@keycloakify/keycloak-account-ui/ui-shared/utils/generateId";
74
- export { default as KeycloakMasthead } from "@keycloakify/keycloak-account-ui/ui-shared/masthead/Masthead";
75
- export { KeycloakSelect } from "@keycloakify/keycloak-account-ui/ui-shared/select/KeycloakSelect";
76
- export type { Variant, KeycloakSelectProps } from "@keycloakify/keycloak-account-ui/ui-shared/select/KeycloakSelect";
77
- export { KeycloakDataTable } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/KeycloakDataTable";
78
- export type {
79
- Action,
80
- Field,
81
- DetailField,
82
- LoaderFunction,
83
- } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/KeycloakDataTable";
84
- export { PaginatingTableToolbar } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/PaginatingTableToolbar";
85
- export { TableToolbar } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/TableToolbar";
86
- export { ListEmptyState } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/ListEmptyState";
87
- export { KeycloakSpinner } from "@keycloakify/keycloak-account-ui/ui-shared/controls/KeycloakSpinner";
88
- export { useFetch } from "@keycloakify/keycloak-account-ui/ui-shared/utils/useFetch";
89
- export {
90
- useErrorBoundary,
91
- ErrorBoundaryFallback,
92
- ErrorBoundaryProvider,
93
- } from "@keycloakify/keycloak-account-ui/ui-shared/utils/ErrorBoundary";
94
- export type { FallbackProps } from "@keycloakify/keycloak-account-ui/ui-shared/utils/ErrorBoundary";
95
- export { OrganizationTable } from "@keycloakify/keycloak-account-ui/ui-shared/controls/OrganizationTable";
96
- export { initializeDarkMode } from "@keycloakify/keycloak-account-ui/ui-shared/utils/darkMode";
@@ -1,109 +0,0 @@
1
- import styles from "@patternfly/react-styles/css/components/Avatar/avatar";
2
- import { css } from "@patternfly/react-styles";
3
-
4
- type DefaultAvatarProps = {
5
- className?: string;
6
- border?: "light" | "dark";
7
- size?: "sm" | "md" | "lg" | "xl";
8
- };
9
-
10
- export const DefaultAvatar = ({
11
- className = "",
12
- border,
13
- size = "md",
14
- }: DefaultAvatarProps) => (
15
- <svg
16
- className={css(
17
- styles.avatar,
18
- styles.modifiers[size],
19
- border === "light" && styles.modifiers.light,
20
- border === "dark" && styles.modifiers.dark,
21
- className,
22
- )}
23
- enableBackground="new 0 0 36 36"
24
- version="1.1"
25
- viewBox="0 0 36 36"
26
- xmlns="http://www.w3.org/2000/svg"
27
- >
28
- <circle
29
- style={{ fillRule: "evenodd", clipRule: "evenodd", fill: "#FFFFFF" }}
30
- cx="18"
31
- cy="18.5"
32
- r="18"
33
- />
34
- <defs>
35
- <filter
36
- id="b"
37
- x="5.2"
38
- y="7.2"
39
- width="25.6"
40
- height="53.6"
41
- filterUnits="userSpaceOnUse"
42
- >
43
- <feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0" />
44
- </filter>
45
- </defs>
46
- <mask
47
- id="a"
48
- x="5.2"
49
- y="7.2"
50
- width="25.6"
51
- height="53.6"
52
- maskUnits="userSpaceOnUse"
53
- >
54
- <g style={{ filter: 'url("#b")' }}>
55
- <circle
56
- style={{ fillRule: "evenodd", clipRule: "evenodd", fill: "#FFFFFF" }}
57
- cx="18"
58
- cy="18.5"
59
- r="18"
60
- />
61
- </g>
62
- </mask>
63
- <g style={{ filter: 'url("#a")' }}>
64
- <g transform="translate(5.04 6.88)">
65
- <path
66
- style={{
67
- fillRule: "evenodd",
68
- clipRule: "evenodd",
69
- fill: "#BBBBBB",
70
- }}
71
- d="m22.6 18.1c-1.1-1.4-2.3-2.2-3.5-2.6s-1.8-0.6-6.3-0.6-6.1 0.7-6.1 0.7 0 0 0 0c-1.2 0.4-2.4 1.2-3.4 2.6-2.3 2.8-3.2 12.3-3.2 14.8 0 3.2 0.4 12.3 0.6 15.4 0 0-0.4 5.5 4 5.5l-0.3-6.3-0.4-3.5 0.2-0.9c0.9 0.4 3.6 1.2 8.6 1.2 5.3 0 8-0.9 8.8-1.3l0.2 1-0.2 3.6-0.3 6.3c3 0.1 3.7-3 3.8-4.4s0.6-12.6 0.6-16.5c0.1-2.6-0.8-12.1-3.1-15z"
72
- />
73
- <path
74
- style={{
75
- opacity: 0.1,
76
- fillRule: "evenodd",
77
- clipRule: "evenodd",
78
- }}
79
- d="m22.5 26c-0.1-2.1-1.5-2.8-4.8-2.8l2.2 9.6s1.8-1.7 3-1.8c0 0-0.4-4.6-0.4-5z"
80
- />
81
- <path
82
- style={{
83
- fillRule: "evenodd",
84
- clipRule: "evenodd",
85
- fill: "#BBBBBB",
86
- }}
87
- d="m12.7 13.2c-3.5 0-6.4-2.9-6.4-6.4s2.9-6.4 6.4-6.4 6.4 2.9 6.4 6.4-2.8 6.4-6.4 6.4z"
88
- />
89
- <path
90
- style={{
91
- opacity: 8.0e-2,
92
- fillRule: "evenodd",
93
- clipRule: "evenodd",
94
- fill: "#231F20",
95
- }}
96
- d="m9.4 6.8c0-3 2.1-5.5 4.9-6.3-0.5-0.1-1-0.2-1.6-0.2-3.5 0-6.4 2.9-6.4 6.4s2.9 6.4 6.4 6.4c0.6 0 1.1-0.1 1.6-0.2-2.8-0.6-4.9-3.1-4.9-6.1z"
97
- />
98
- <path
99
- style={{
100
- opacity: 0.1,
101
- fillRule: "evenodd",
102
- clipRule: "evenodd",
103
- }}
104
- d="m8.3 22.4c-2 0.4-2.9 1.4-3.1 3.5l-0.6 18.6s1.7 0.7 3.6 0.9l0.1-23z"
105
- />
106
- </g>
107
- </g>
108
- </svg>
109
- );
@@ -1,48 +0,0 @@
1
- import {
2
- Dropdown,
3
- DropdownList,
4
- DropdownProps,
5
- MenuToggle,
6
- } from "@patternfly/react-core";
7
- import { EllipsisVIcon } from "@patternfly/react-icons";
8
- import { ReactNode, useState } from "react";
9
-
10
- type KeycloakDropdownProps = Omit<DropdownProps, "toggle"> & {
11
- "data-testid"?: string;
12
- isKebab?: boolean;
13
- title?: ReactNode;
14
- dropDownItems: ReactNode[];
15
- };
16
-
17
- export const KeycloakDropdown = ({
18
- isKebab = false,
19
- title,
20
- dropDownItems,
21
- ...rest
22
- }: KeycloakDropdownProps) => {
23
- const [open, setOpen] = useState(false);
24
-
25
- return (
26
- <Dropdown
27
- {...rest}
28
- popperProps={{
29
- position: "right",
30
- }}
31
- onOpenChange={(isOpen) => setOpen(isOpen)}
32
- toggle={(ref) => (
33
- <MenuToggle
34
- data-testid={`${rest["data-testid"]}-toggle`}
35
- ref={ref}
36
- onClick={() => setOpen(!open)}
37
- isExpanded={open}
38
- variant={isKebab ? "plain" : "default"}
39
- >
40
- {isKebab ? <EllipsisVIcon /> : title}
41
- </MenuToggle>
42
- )}
43
- isOpen={open}
44
- >
45
- <DropdownList>{dropDownItems}</DropdownList>
46
- </Dropdown>
47
- );
48
- };
@@ -1,161 +0,0 @@
1
- import {
2
- Avatar,
3
- AvatarProps,
4
- DropdownItem,
5
- Masthead,
6
- MastheadBrand,
7
- MastheadBrandProps,
8
- MastheadContent,
9
- MastheadMainProps,
10
- MastheadToggle,
11
- PageToggleButton,
12
- Toolbar,
13
- ToolbarContent,
14
- ToolbarItem,
15
- } from "@patternfly/react-core";
16
- import { BarsIcon } from "@patternfly/react-icons";
17
- import { TFunction } from "i18next";
18
- import Keycloak, { type KeycloakTokenParsed } from "keycloak-js";
19
- import { ReactNode } from "react";
20
- import { useTranslation } from "react-i18next";
21
- import { DefaultAvatar } from "@keycloakify/keycloak-account-ui/ui-shared/masthead/DefaultAvatar";
22
- import { KeycloakDropdown } from "@keycloakify/keycloak-account-ui/ui-shared/masthead/KeycloakDropdown";
23
-
24
- function loggedInUserName(
25
- token: KeycloakTokenParsed | undefined,
26
- t: TFunction,
27
- ) {
28
- if (!token) {
29
- return t("unknownUser");
30
- }
31
-
32
- const givenName = token.given_name;
33
- const familyName = token.family_name;
34
- const preferredUsername = token.preferred_username;
35
-
36
- if (givenName && familyName) {
37
- return t("fullName", { givenName, familyName });
38
- }
39
-
40
- return givenName || familyName || preferredUsername || t("unknownUser");
41
- }
42
-
43
- type BrandLogo = MastheadBrandProps;
44
-
45
- type KeycloakMastheadProps = MastheadMainProps & {
46
- keycloak: Keycloak;
47
- brand: BrandLogo;
48
- avatar?: AvatarProps;
49
- features?: {
50
- hasLogout?: boolean;
51
- hasManageAccount?: boolean;
52
- hasUsername?: boolean;
53
- };
54
- kebabDropdownItems?: ReactNode[];
55
- dropdownItems?: ReactNode[];
56
- toolbarItems?: ReactNode[];
57
- };
58
-
59
- const KeycloakMasthead = ({
60
- keycloak,
61
- brand: { src, alt, className, ...brandProps },
62
- avatar,
63
- features: {
64
- hasLogout = true,
65
- hasManageAccount = true,
66
- hasUsername = true,
67
- } = {},
68
- kebabDropdownItems,
69
- dropdownItems = [],
70
- toolbarItems,
71
- ...rest
72
- }: KeycloakMastheadProps) => {
73
- const { t } = useTranslation();
74
- const extraItems = [];
75
- if (hasManageAccount) {
76
- extraItems.push(
77
- <DropdownItem
78
- key="manageAccount"
79
- onClick={() => keycloak.accountManagement()}
80
- >
81
- {t("manageAccount")}
82
- </DropdownItem>,
83
- );
84
- }
85
- if (hasLogout) {
86
- extraItems.push(
87
- <DropdownItem key="signOut" onClick={() => keycloak.logout()}>
88
- {t("signOut")}
89
- </DropdownItem>,
90
- );
91
- }
92
-
93
- const picture = keycloak.idTokenParsed?.picture;
94
- return (
95
- <Masthead {...rest}>
96
- <MastheadToggle>
97
- <PageToggleButton variant="plain" aria-label={t("navigation")}>
98
- <BarsIcon />
99
- </PageToggleButton>
100
- </MastheadToggle>
101
- <MastheadBrand {...brandProps}>
102
- <img src={src} alt={alt} className={className} />
103
- </MastheadBrand>
104
- <MastheadContent>
105
- <Toolbar>
106
- <ToolbarContent>
107
- {toolbarItems?.map((item, index) => (
108
- <ToolbarItem key={index} align={{ default: "alignRight" }}>
109
- {item}
110
- </ToolbarItem>
111
- ))}
112
- <ToolbarItem
113
- visibility={{
114
- default: "hidden",
115
- md: "visible",
116
- }} /** this user dropdown is hidden on mobile sizes */
117
- >
118
- <KeycloakDropdown
119
- data-testid="options"
120
- dropDownItems={[...dropdownItems, extraItems]}
121
- title={
122
- hasUsername
123
- ? loggedInUserName(keycloak.idTokenParsed, t)
124
- : undefined
125
- }
126
- />
127
- </ToolbarItem>
128
- <ToolbarItem
129
- align={{ default: "alignLeft" }}
130
- visibility={{
131
- md: "hidden",
132
- }}
133
- >
134
- <KeycloakDropdown
135
- data-testid="options-kebab"
136
- isKebab
137
- dropDownItems={[
138
- ...(kebabDropdownItems || dropdownItems),
139
- extraItems,
140
- ]}
141
- />
142
- </ToolbarItem>
143
- <ToolbarItem
144
- variant="overflow-menu"
145
- align={{ default: "alignRight" }}
146
- className="pf-v5-u-m-0-on-lg"
147
- >
148
- {picture || avatar?.src ? (
149
- <Avatar {...{ src: picture, alt: t("avatar"), ...avatar }} />
150
- ) : (
151
- <DefaultAvatar {...avatar} />
152
- )}
153
- </ToolbarItem>
154
- </ToolbarContent>
155
- </Toolbar>
156
- </MastheadContent>
157
- </Masthead>
158
- );
159
- };
160
-
161
- export default KeycloakMasthead;