@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,93 +0,0 @@
1
- import {
2
- NumberInput,
3
- NumberInputProps,
4
- ValidatedOptions,
5
- } from "@patternfly/react-core";
6
- import {
7
- Controller,
8
- ControllerProps,
9
- FieldPath,
10
- FieldValues,
11
- UseControllerProps,
12
- useFormContext,
13
- } from "react-hook-form";
14
-
15
- import { getRuleValue } from "@keycloakify/keycloak-account-ui/ui-shared/utils/getRuleValue";
16
- import { FormLabel } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormLabel";
17
-
18
- export type NumberControlOption = {
19
- key: string;
20
- value: string;
21
- };
22
-
23
- export type NumberControlProps<
24
- T extends FieldValues,
25
- P extends FieldPath<T> = FieldPath<T>,
26
- > = Omit<NumberInputProps, "name" | "isRequired" | "required"> &
27
- UseControllerProps<T, P> & {
28
- name: string;
29
- label?: string;
30
- labelIcon?: string;
31
- controller: Omit<ControllerProps, "name" | "render">;
32
- };
33
-
34
- export const NumberControl = <
35
- T extends FieldValues,
36
- P extends FieldPath<T> = FieldPath<T>,
37
- >({
38
- name,
39
- label,
40
- controller,
41
- labelIcon,
42
- ...rest
43
- }: NumberControlProps<T, P>) => {
44
- const {
45
- control,
46
- formState: { errors },
47
- } = useFormContext();
48
-
49
- return (
50
- <FormLabel
51
- name={name}
52
- label={label}
53
- isRequired={controller.rules?.required === true}
54
- error={errors[name]}
55
- labelIcon={labelIcon}
56
- >
57
- <Controller
58
- {...controller}
59
- name={name}
60
- control={control}
61
- render={({ field }) => {
62
- const required = !!controller.rules?.required;
63
- const min = getRuleValue(controller.rules?.min);
64
- const value = field.value ?? controller.defaultValue;
65
- const setValue = (newValue: number) =>
66
- field.onChange(
67
- min !== undefined ? Math.max(newValue, Number(min)) : newValue,
68
- );
69
-
70
- return (
71
- <NumberInput
72
- {...rest}
73
- id={name}
74
- value={value}
75
- validated={
76
- errors[name] ? ValidatedOptions.error : ValidatedOptions.default
77
- }
78
- required={required}
79
- min={Number(min)}
80
- max={Number(controller.rules?.max)}
81
- onPlus={() => setValue(value + 1)}
82
- onMinus={() => setValue(value - 1)}
83
- onChange={(event) => {
84
- const newValue = Number(event.currentTarget.value);
85
- setValue(!isNaN(newValue) ? newValue : controller.defaultValue);
86
- }}
87
- />
88
- );
89
- }}
90
- />
91
- </FormLabel>
92
- );
93
- };
@@ -1,122 +0,0 @@
1
- import OrganizationRepresentation from "@keycloak/keycloak-admin-client/lib/defs/organizationRepresentation";
2
- import { Badge, Chip, ChipGroup } from "@patternfly/react-core";
3
- import { TableText } from "@patternfly/react-table";
4
- import { FunctionComponent, PropsWithChildren, ReactNode } from "react";
5
- import { useTranslation } from "react-i18next";
6
- import { KeycloakDataTable, LoaderFunction } from "@keycloakify/keycloak-account-ui/ui-shared/controls/table/KeycloakDataTable";
7
-
8
- type OrgDetailLinkProps = {
9
- link: FunctionComponent<
10
- PropsWithChildren<{ organization: OrganizationRepresentation }>
11
- >;
12
- organization: OrganizationRepresentation;
13
- };
14
-
15
- const OrgDetailLink = ({ link, organization }: OrgDetailLinkProps) => {
16
- const { t } = useTranslation();
17
- const Component = link;
18
- return (
19
- <TableText wrapModifier="truncate">
20
- <Component organization={organization}>
21
- {organization.name}
22
- {!organization.enabled && (
23
- <Badge
24
- key={`${organization.id}-disabled`}
25
- isRead
26
- className="pf-v5-u-ml-sm"
27
- >
28
- {t("disabled")}
29
- </Badge>
30
- )}
31
- </Component>
32
- </TableText>
33
- );
34
- };
35
-
36
- const Domains = (org: OrganizationRepresentation) => {
37
- const { t } = useTranslation();
38
- return (
39
- <ChipGroup
40
- numChips={2}
41
- expandedText={t("hide")}
42
- collapsedText={t("showRemaining")}
43
- >
44
- {org.domains?.map((dn) => {
45
- const name = typeof dn === "string" ? dn : dn.name;
46
- return (
47
- <Chip key={name} isReadOnly>
48
- {name}
49
- </Chip>
50
- );
51
- })}
52
- </ChipGroup>
53
- );
54
- };
55
-
56
- type OrganizationTableProps = PropsWithChildren & {
57
- loader:
58
- | LoaderFunction<OrganizationRepresentation>
59
- | OrganizationRepresentation[];
60
- link: FunctionComponent<
61
- PropsWithChildren<{ organization: OrganizationRepresentation }>
62
- >;
63
- toolbarItem?: ReactNode;
64
- isPaginated?: boolean;
65
- onSelect?: (orgs: OrganizationRepresentation[]) => void;
66
- onDelete?: (org: OrganizationRepresentation) => void;
67
- deleteLabel?: string;
68
- };
69
-
70
- export const OrganizationTable = ({
71
- loader,
72
- toolbarItem,
73
- isPaginated = false,
74
- onSelect,
75
- onDelete,
76
- deleteLabel = "delete",
77
- link,
78
- children,
79
- }: OrganizationTableProps) => {
80
- const { t } = useTranslation();
81
-
82
- return (
83
- <KeycloakDataTable
84
- loader={loader}
85
- isPaginated={isPaginated}
86
- ariaLabelKey="organizationList"
87
- searchPlaceholderKey="searchOrganization"
88
- toolbarItem={toolbarItem}
89
- onSelect={onSelect}
90
- canSelectAll={onSelect !== undefined}
91
- actions={
92
- onDelete
93
- ? [
94
- {
95
- title: t(deleteLabel),
96
- onRowClick: onDelete,
97
- },
98
- ]
99
- : undefined
100
- }
101
- columns={[
102
- {
103
- name: "name",
104
- displayKey: "name",
105
- cellRenderer: (row) => (
106
- <OrgDetailLink link={link} organization={row} />
107
- ),
108
- },
109
- {
110
- name: "domains",
111
- displayKey: "domains",
112
- cellRenderer: Domains,
113
- },
114
- {
115
- name: "description",
116
- displayKey: "description",
117
- },
118
- ]}
119
- emptyState={children}
120
- />
121
- );
122
- };
@@ -1,71 +0,0 @@
1
- import {
2
- FormHelperText,
3
- HelperText,
4
- HelperTextItem,
5
- ValidatedOptions,
6
- } from "@patternfly/react-core";
7
- import {
8
- FieldPath,
9
- FieldValues,
10
- PathValue,
11
- UseControllerProps,
12
- useController,
13
- } from "react-hook-form";
14
- import { FormLabel } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormLabel";
15
- import { PasswordInput, PasswordInputProps } from "@keycloakify/keycloak-account-ui/ui-shared/controls/PasswordInput";
16
-
17
- export type PasswordControlProps<
18
- T extends FieldValues,
19
- P extends FieldPath<T> = FieldPath<T>,
20
- > = UseControllerProps<T, P> &
21
- Omit<PasswordInputProps, "name" | "isRequired" | "required"> & {
22
- label: string;
23
- labelIcon?: string;
24
- isDisabled?: boolean;
25
- helperText?: string;
26
- };
27
-
28
- export const PasswordControl = <
29
- T extends FieldValues,
30
- P extends FieldPath<T> = FieldPath<T>,
31
- >(
32
- props: PasswordControlProps<T, P>,
33
- ) => {
34
- const { labelIcon, ...rest } = props;
35
- const required = !!props.rules?.required;
36
- const defaultValue = props.defaultValue ?? ("" as PathValue<T, P>);
37
-
38
- const { field, fieldState } = useController({
39
- ...props,
40
- defaultValue,
41
- });
42
-
43
- return (
44
- <FormLabel
45
- name={props.name}
46
- label={props.label}
47
- labelIcon={labelIcon}
48
- isRequired={required}
49
- error={fieldState.error}
50
- >
51
- <PasswordInput
52
- isRequired={required}
53
- id={props.name}
54
- data-testid={props.name}
55
- validated={
56
- fieldState.error ? ValidatedOptions.error : ValidatedOptions.default
57
- }
58
- isDisabled={props.isDisabled}
59
- {...rest}
60
- {...field}
61
- />
62
- {props.helperText && (
63
- <FormHelperText>
64
- <HelperText>
65
- <HelperTextItem>{props.helperText}</HelperTextItem>
66
- </HelperText>
67
- </FormHelperText>
68
- )}
69
- </FormLabel>
70
- );
71
- };
@@ -1,50 +0,0 @@
1
- import {
2
- Button,
3
- InputGroup,
4
- InputGroupItem,
5
- TextInput,
6
- type TextInputProps,
7
- } from "@patternfly/react-core";
8
- import { EyeIcon, EyeSlashIcon } from "@patternfly/react-icons";
9
- import { MutableRefObject, Ref, forwardRef, useState } from "react";
10
- import { useTranslation } from "react-i18next";
11
-
12
- export type PasswordInputProps = TextInputProps & {
13
- hasReveal?: boolean;
14
- };
15
-
16
- const PasswordInputBase = ({
17
- hasReveal = true,
18
- innerRef,
19
- ...rest
20
- }: PasswordInputProps) => {
21
- const { t } = useTranslation();
22
- const [hidePassword, setHidePassword] = useState(true);
23
- return (
24
- <InputGroup>
25
- <InputGroupItem isFill>
26
- <TextInput
27
- {...rest}
28
- type={hidePassword ? "password" : "text"}
29
- ref={innerRef}
30
- />
31
- </InputGroupItem>
32
- {hasReveal && (
33
- <Button
34
- variant="control"
35
- aria-label={t("showPassword")}
36
- onClick={() => setHidePassword(!hidePassword)}
37
- >
38
- {hidePassword ? <EyeIcon /> : <EyeSlashIcon />}
39
- </Button>
40
- )}
41
- </InputGroup>
42
- );
43
- };
44
-
45
- export const PasswordInput = forwardRef(
46
- (props: PasswordInputProps, ref: Ref<HTMLInputElement>) => (
47
- <PasswordInputBase {...props} innerRef={ref as MutableRefObject<any>} />
48
- ),
49
- );
50
- PasswordInput.displayName = "PasswordInput";
@@ -1,67 +0,0 @@
1
- import {
2
- Controller,
3
- FieldValues,
4
- FieldPath,
5
- UseControllerProps,
6
- PathValue,
7
- useFormContext,
8
- } from "react-hook-form";
9
- import { SwitchProps, Switch } from "@patternfly/react-core";
10
- import { FormLabel } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormLabel";
11
-
12
- export type SwitchControlProps<
13
- T extends FieldValues,
14
- P extends FieldPath<T> = FieldPath<T>,
15
- > = Omit<SwitchProps, "name" | "defaultValue" | "ref"> &
16
- UseControllerProps<T, P> & {
17
- name: string;
18
- label?: string;
19
- labelIcon?: string;
20
- labelOn: string;
21
- labelOff: string;
22
- stringify?: boolean;
23
- };
24
-
25
- export const SwitchControl = <
26
- T extends FieldValues,
27
- P extends FieldPath<T> = FieldPath<T>,
28
- >({
29
- labelOn,
30
- stringify,
31
- defaultValue,
32
- labelIcon,
33
- ...props
34
- }: SwitchControlProps<T, P>) => {
35
- const fallbackValue = stringify ? "false" : false;
36
- const defValue = defaultValue ?? (fallbackValue as PathValue<T, P>);
37
- const { control } = useFormContext();
38
- return (
39
- <FormLabel
40
- hasNoPaddingTop
41
- name={props.name}
42
- isRequired={props.rules?.required === true}
43
- label={props.label}
44
- labelIcon={labelIcon}
45
- >
46
- <Controller
47
- control={control}
48
- name={props.name}
49
- defaultValue={defValue}
50
- render={({ field: { onChange, value } }) => (
51
- <Switch
52
- {...props}
53
- id={props.name}
54
- data-testid={props.name}
55
- label={labelOn}
56
- isChecked={stringify ? value === "true" : value}
57
- onChange={(e, checked) => {
58
- const value = stringify ? checked.toString() : checked;
59
- props.onChange?.(e, checked);
60
- onChange(value);
61
- }}
62
- />
63
- )}
64
- />
65
- </FormLabel>
66
- );
67
- };
@@ -1,60 +0,0 @@
1
- import {
2
- TextArea,
3
- TextAreaProps,
4
- ValidatedOptions,
5
- } from "@patternfly/react-core";
6
- import {
7
- FieldPath,
8
- FieldValues,
9
- PathValue,
10
- UseControllerProps,
11
- useController,
12
- } from "react-hook-form";
13
-
14
- import { FormLabel } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormLabel";
15
-
16
- export type TextAreaControlProps<
17
- T extends FieldValues,
18
- P extends FieldPath<T> = FieldPath<T>,
19
- > = UseControllerProps<T, P> &
20
- TextAreaProps & {
21
- label: string;
22
- labelIcon?: string;
23
- isDisabled?: boolean;
24
- };
25
-
26
- export const TextAreaControl = <
27
- T extends FieldValues,
28
- P extends FieldPath<T> = FieldPath<T>,
29
- >(
30
- props: TextAreaControlProps<T, P>,
31
- ) => {
32
- const required = !!props.rules?.required;
33
- const defaultValue = props.defaultValue ?? ("" as PathValue<T, P>);
34
-
35
- const { field, fieldState } = useController({
36
- ...props,
37
- defaultValue,
38
- });
39
-
40
- return (
41
- <FormLabel
42
- isRequired={required}
43
- label={props.label}
44
- labelIcon={props.labelIcon}
45
- name={props.name}
46
- error={fieldState.error}
47
- >
48
- <TextArea
49
- isRequired={required}
50
- id={props.name}
51
- data-testid={props.name}
52
- validated={
53
- fieldState.error ? ValidatedOptions.error : ValidatedOptions.default
54
- }
55
- isDisabled={props.isDisabled}
56
- {...field}
57
- />
58
- </FormLabel>
59
- );
60
- };
@@ -1,75 +0,0 @@
1
- import {
2
- FormHelperText,
3
- HelperText,
4
- HelperTextItem,
5
- TextInput,
6
- TextInputProps,
7
- ValidatedOptions,
8
- } from "@patternfly/react-core";
9
- import { ReactNode } from "react";
10
- import {
11
- FieldPath,
12
- FieldValues,
13
- PathValue,
14
- UseControllerProps,
15
- useController,
16
- } from "react-hook-form";
17
-
18
- import { FormLabel } from "@keycloakify/keycloak-account-ui/ui-shared/controls/FormLabel";
19
-
20
- export type TextControlProps<
21
- T extends FieldValues,
22
- P extends FieldPath<T> = FieldPath<T>,
23
- > = UseControllerProps<T, P> &
24
- Omit<TextInputProps, "name" | "isRequired" | "required"> & {
25
- label: string;
26
- labelIcon?: string | ReactNode;
27
- isDisabled?: boolean;
28
- helperText?: string;
29
- "data-testid"?: string;
30
- };
31
-
32
- export const TextControl = <
33
- T extends FieldValues,
34
- P extends FieldPath<T> = FieldPath<T>,
35
- >(
36
- props: TextControlProps<T, P>,
37
- ) => {
38
- const { labelIcon, helperText, ...rest } = props;
39
- const required = !!props.rules?.required;
40
- const defaultValue = props.defaultValue ?? ("" as PathValue<T, P>);
41
-
42
- const { field, fieldState } = useController({
43
- ...props,
44
- defaultValue,
45
- });
46
-
47
- return (
48
- <FormLabel
49
- name={props.name}
50
- label={props.label}
51
- labelIcon={labelIcon}
52
- isRequired={required}
53
- error={fieldState.error}
54
- >
55
- <TextInput
56
- isRequired={required}
57
- id={props.name}
58
- data-testid={props["data-testid"] || props.name}
59
- validated={
60
- fieldState.error ? ValidatedOptions.error : ValidatedOptions.default
61
- }
62
- isDisabled={props.isDisabled}
63
- {...rest}
64
- {...field}
65
- />
66
- {helperText && (
67
- <FormHelperText>
68
- <HelperText>
69
- <HelperTextItem>{helperText}</HelperTextItem>
70
- </HelperText>
71
- </FormHelperText>
72
- )}
73
- </FormLabel>
74
- );
75
- };
@@ -1,23 +0,0 @@
1
- // TODO: Remove code once the following issue has been fixed:
2
- // https://github.com/patternfly/patternfly-react/issues/10192
3
- import { TextArea } from "@patternfly/react-core";
4
- import {
5
- ComponentProps,
6
- HTMLProps,
7
- type ForwardRefExoticComponent,
8
- type RefAttributes,
9
- } from "react";
10
-
11
- // PatternFly changes the signature of the 'onFocus' and 'onBlur' handlers for textarea elements.
12
- // This causes issues with React Hook Form as it expects the default signature for a textarea element.
13
- // So we have to create this wrapper component that takes care of converting these signatures for us.
14
-
15
- export type KeycloakTextAreaProps = Omit<
16
- ComponentProps<typeof TextArea>,
17
- "onFocus" | "onBlur"
18
- > &
19
- Pick<HTMLProps<HTMLTextAreaElement>, "onFocus" | "onBlur">;
20
-
21
- export const KeycloakTextArea = TextArea as ForwardRefExoticComponent<
22
- KeycloakTextAreaProps & RefAttributes<HTMLTextAreaElement>
23
- >;
@@ -1,75 +0,0 @@
1
- import { ChipGroupProps, SelectProps } from "@patternfly/react-core";
2
- import {
3
- ControllerProps,
4
- FieldPath,
5
- FieldValues,
6
- UseControllerProps,
7
- } from "react-hook-form";
8
- import { SingleSelectControl } from "@keycloakify/keycloak-account-ui/ui-shared/controls/select-control/SingleSelectControl";
9
- import { TypeaheadSelectControl } from "@keycloakify/keycloak-account-ui/ui-shared/controls/select-control/TypeaheadSelectControl";
10
-
11
- type Variant = `${SelectVariant}`;
12
-
13
- export enum SelectVariant {
14
- single = "single",
15
- typeahead = "typeahead",
16
- typeaheadMulti = "typeaheadMulti",
17
- }
18
-
19
- export type SelectControlOption = {
20
- key: string;
21
- value: string;
22
- };
23
-
24
- export type OptionType = string[] | SelectControlOption[];
25
-
26
- export type SelectControlProps<
27
- T extends FieldValues,
28
- P extends FieldPath<T> = FieldPath<T>,
29
- > = Omit<
30
- SelectProps,
31
- | "name"
32
- | "toggle"
33
- | "selections"
34
- | "onSelect"
35
- | "onClear"
36
- | "isOpen"
37
- | "onFilter"
38
- | "variant"
39
- > &
40
- UseControllerProps<T, P> & {
41
- name: string;
42
- label?: string;
43
- options: OptionType;
44
- labelIcon?: string;
45
- controller: Omit<ControllerProps, "name" | "render">;
46
- onFilter?: (value: string) => void;
47
- variant?: Variant;
48
- isDisabled?: boolean;
49
- menuAppendTo?: string;
50
- placeholderText?: string;
51
- chipGroupProps?: ChipGroupProps;
52
- };
53
-
54
- export const isSelectBasedOptions = (
55
- options: OptionType,
56
- ): options is SelectControlOption[] => typeof options[0] !== "string";
57
-
58
- export const isString = (
59
- option: SelectControlOption | string,
60
- ): option is string => typeof option === "string";
61
- export const key = (option: SelectControlOption | string) =>
62
- isString(option) ? option : option.key;
63
-
64
- export const SelectControl = <
65
- T extends FieldValues,
66
- P extends FieldPath<T> = FieldPath<T>,
67
- >({
68
- variant = SelectVariant.single,
69
- ...rest
70
- }: SelectControlProps<T, P>) =>
71
- variant === SelectVariant.single ? (
72
- <SingleSelectControl {...rest} />
73
- ) : (
74
- <TypeaheadSelectControl {...rest} variant={variant} />
75
- );