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