@keycloak/keycloak-admin-ui 26.5.6 → 26.6.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 (84) hide show
  1. package/lib/.vite/manifest.json +40 -40
  2. package/lib/{AddJWTAuthorizationGrant-B9fNafs-.js → AddJWTAuthorizationGrant-CeMENUIM.js} +19 -19
  3. package/lib/{AddJWTAuthorizationGrant-B9fNafs-.js.map → AddJWTAuthorizationGrant-CeMENUIM.js.map} +1 -1
  4. package/lib/{AddKubernetesConnect-_-fIYkCu.js → AddKubernetesConnect-0RUT9aV2.js} +13 -13
  5. package/lib/{AddKubernetesConnect-_-fIYkCu.js.map → AddKubernetesConnect-0RUT9aV2.js.map} +1 -1
  6. package/lib/{AddOAuth2-GWdhXpZu.js → AddOAuth2-Cw67bzVu.js} +12 -12
  7. package/lib/{AddOAuth2-GWdhXpZu.js.map → AddOAuth2-Cw67bzVu.js.map} +1 -1
  8. package/lib/{AddSpiffeConnect-CEycf6Um.js → AddSpiffeConnect-Cd9x7mR2.js} +9 -9
  9. package/lib/{AddSpiffeConnect-CEycf6Um.js.map → AddSpiffeConnect-Cd9x7mR2.js.map} +1 -1
  10. package/lib/{CreateFlow-C1gSi1GV.js → CreateFlow-9cA71I0U.js} +10 -10
  11. package/lib/{CreateFlow-C1gSi1GV.js.map → CreateFlow-9cA71I0U.js.map} +1 -1
  12. package/lib/DetailOrganization-C14l_h62.js +204 -0
  13. package/lib/DetailOrganization-C14l_h62.js.map +1 -0
  14. package/lib/{ExecutorForm-D3r69dqU.js → ExecutorForm-BwTQyA36.js} +17 -17
  15. package/lib/{ExecutorForm-D3r69dqU.js.map → ExecutorForm-BwTQyA36.js.map} +1 -1
  16. package/lib/{FlowDetails-DNNCBfY5.js → FlowDetails-BpGnLs_D.js} +1998 -2039
  17. package/lib/FlowDetails-BpGnLs_D.js.map +1 -0
  18. package/lib/NewOrganization-SUmXcFih.js +36 -0
  19. package/lib/{NewOrganization-KSp9gXMo.js.map → NewOrganization-SUmXcFih.js.map} +1 -1
  20. package/lib/{PermissionConfigurationDetails-LVkEXehk.js → PermissionConfigurationDetails-B7AeRfGJ.js} +118 -118
  21. package/lib/{PermissionConfigurationDetails-LVkEXehk.js.map → PermissionConfigurationDetails-B7AeRfGJ.js.map} +1 -1
  22. package/lib/{PermissionDetails-DlPJ8m6r.js → PermissionDetails-CY6ytovN.js} +79 -79
  23. package/lib/{PermissionDetails-DlPJ8m6r.js.map → PermissionDetails-CY6ytovN.js.map} +1 -1
  24. package/lib/{RealmSection-BKt0CL1J.js → RealmSection-CMquQhw3.js} +26 -26
  25. package/lib/{RealmSection-BKt0CL1J.js.map → RealmSection-CMquQhw3.js.map} +1 -1
  26. package/lib/{ResourceDetails-CV230nyS.js → ResourceDetails-BsRxSUu-.js} +36 -36
  27. package/lib/ResourceDetails-BsRxSUu-.js.map +1 -0
  28. package/lib/{ScopeDetails-BleAAOMS.js → ScopeDetails-puMEG5G1.js} +27 -27
  29. package/lib/{ScopeDetails-BleAAOMS.js.map → ScopeDetails-puMEG5G1.js.map} +1 -1
  30. package/lib/{ScopePicker-BpZ35vej.js → ScopePicker-Bc9l9PJg.js} +15 -15
  31. package/lib/{ScopePicker-BpZ35vej.js.map → ScopePicker-Bc9l9PJg.js.map} +1 -1
  32. package/lib/WorkflowDetailForm-B-cQjnC9.js +147 -0
  33. package/lib/WorkflowDetailForm-B-cQjnC9.js.map +1 -0
  34. package/lib/{WorkflowsSection-C6tPZTDa.js → WorkflowsSection-BB9dHYmO.js} +20 -20
  35. package/lib/{WorkflowsSection-C6tPZTDa.js.map → WorkflowsSection-BB9dHYmO.js.map} +1 -1
  36. package/lib/client-scopes/details/oid4vciAttributes.d.ts +4 -0
  37. package/lib/clients/keys/Certificate.d.ts +3 -1
  38. package/lib/components/dynamic/MapComponent.d.ts +1 -1
  39. package/lib/components/key-value-form/KeyValueInput.d.ts +4 -1
  40. package/lib/components/realm-loa-mapping/RealmLoAMapping.d.ts +13 -0
  41. package/lib/components/role-mapping/queries.d.ts +1 -2
  42. package/lib/components/role-mapping/resource.d.ts +33 -0
  43. package/lib/components/view-header/ViewHeader.d.ts +2 -1
  44. package/lib/context/auth/admin-ui-endpoint.d.ts +1 -0
  45. package/lib/context/group-resource/GroupResourceContext.d.ts +9 -0
  46. package/lib/groups/GroupsSection.d.ts +3 -1
  47. package/lib/groups/MembersModal.d.ts +5 -1
  48. package/lib/groups/MembershipsModal.d.ts +2 -1
  49. package/lib/groups/routes/Groups.d.ts +3 -0
  50. package/lib/help-urls.d.ts +1 -0
  51. package/lib/i18n/constants.d.ts +1 -0
  52. package/lib/i18n/i18n.d.ts +0 -1
  53. package/lib/{index-D3mEQ9NL.js → index-iLxEY-Jz.js} +44585 -35236
  54. package/lib/{index-D3mEQ9NL.js.map → index-iLxEY-Jz.js.map} +1 -1
  55. package/lib/index.d.ts +6 -4
  56. package/lib/keycloak-admin-ui.css +1 -1
  57. package/lib/keycloak-admin-ui.js +298 -294
  58. package/lib/organizations/routes/EditOrganization.d.ts +1 -1
  59. package/lib/realm-settings/routes/ThemesTab.d.ts +1 -1
  60. package/lib/realm-settings/themes/BackgroundContext.d.ts +9 -0
  61. package/lib/realm-settings/themes/ColorControl.d.ts +8 -0
  62. package/lib/realm-settings/themes/DefaultColorAccordion.d.ts +7 -0
  63. package/lib/realm-settings/themes/FileNameDialog.d.ts +1 -1
  64. package/lib/realm-settings/themes/LoginPreviewWindow.d.ts +5 -0
  65. package/lib/realm-settings/themes/LoginThemeProperties.d.ts +63 -0
  66. package/lib/realm-settings/themes/PatternflyVars.d.ts +29 -8
  67. package/lib/realm-settings/themes/QuickTheme.d.ts +17 -0
  68. package/lib/realm-settings/themes/ThemeColors.d.ts +3 -3
  69. package/lib/realm-settings/themes/ThemesTab.d.ts +0 -6
  70. package/lib/realm-settings/themes/UploadJar.d.ts +1 -1
  71. package/lib/realm-settings/themes/fileUtils.d.ts +1 -0
  72. package/lib/user/UserWorkflows.d.ts +5 -0
  73. package/lib/user/routes/User.d.ts +1 -1
  74. package/lib/user/utils/user-profile.d.ts +10 -0
  75. package/lib/utils/useIsFeatureEnabled.d.ts +4 -1
  76. package/package.json +10 -9
  77. package/lib/DetailOrganization-CV52xkX3.js +0 -194
  78. package/lib/DetailOrganization-CV52xkX3.js.map +0 -1
  79. package/lib/FlowDetails-DNNCBfY5.js.map +0 -1
  80. package/lib/NewOrganization-KSp9gXMo.js +0 -36
  81. package/lib/ResourceDetails-CV230nyS.js.map +0 -1
  82. package/lib/WorkflowDetailForm-CH1O9UEB.js +0 -4938
  83. package/lib/WorkflowDetailForm-CH1O9UEB.js.map +0 -1
  84. package/lib/theme/login.css +0 -94
@@ -1,36 +0,0 @@
1
- import { jsxs as e, Fragment as v, jsx as a } from "react/jsx-runtime";
2
- import { u as h, _ as z, a as f, b as p, V as S, P as F, c as O, F as A, aP as b, A as y, e as P, B as w, aW as x, aT as C, aU as E } from "./index-D3mEQ9NL.js";
3
- import { useTranslation as T } from "react-i18next";
4
- import { useNavigate as j, Link as k } from "react-router-dom";
5
- function G() {
6
- const { adminClient: s } = h(), { addAlert: c, addError: d } = z(), { t } = T(), l = j(), { realm: r } = f(), i = p({ mode: "onChange" }), { handleSubmit: m, formState: g } = i;
7
- return /* @__PURE__ */ e(v, { children: [
8
- /* @__PURE__ */ a(S, { titleKey: "createOrganization" }),
9
- /* @__PURE__ */ a(F, { variant: "light", children: /* @__PURE__ */ a(O, { role: "anyone", onSubmit: m(async (n) => {
10
- try {
11
- const o = C(n), { id: u } = await s.organizations.create(o);
12
- c(t("organizationSaveSuccess")), l(E({ realm: r, id: u, tab: "settings" }));
13
- } catch (o) {
14
- d("organizationSaveError", o);
15
- }
16
- }), isHorizontal: !0, children: /* @__PURE__ */ e(A, { ...i, children: [
17
- /* @__PURE__ */ a(b, {}),
18
- /* @__PURE__ */ e(y, { children: [
19
- /* @__PURE__ */ a(P, { formState: g, "data-testid": "save", children: t("save") }),
20
- /* @__PURE__ */ a(
21
- w,
22
- {
23
- "data-testid": "cancel",
24
- variant: "link",
25
- component: (n) => /* @__PURE__ */ a(k, { ...n, to: x({ realm: r }) }),
26
- children: t("cancel")
27
- }
28
- )
29
- ] })
30
- ] }) }) })
31
- ] });
32
- }
33
- export {
34
- G as default
35
- };
36
- //# sourceMappingURL=NewOrganization-KSp9gXMo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ResourceDetails-CV230nyS.js","sources":["../src/clients/authorization/ResourceDetails.tsx"],"sourcesContent":["import type ClientRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/clientRepresentation\";\nimport type ResourceRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/resourceRepresentation\";\nimport type ResourceServerRepresentation from \"@keycloak/keycloak-admin-client/lib/defs/resourceServerRepresentation\";\nimport {\n HelpItem,\n TextControl,\n useAlerts,\n useFetch,\n} from \"@keycloak/keycloak-ui-shared\";\nimport {\n ActionGroup,\n Alert,\n AlertVariant,\n Button,\n ButtonVariant,\n DropdownItem,\n FormGroup,\n PageSection,\n} from \"@patternfly/react-core\";\nimport { useState } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport { useAdminClient } from \"../../admin-client\";\nimport { DefaultSwitchControl } from \"../../components/SwitchControl\";\nimport { useConfirmDialog } from \"../../components/confirm-dialog/ConfirmDialog\";\nimport { FormAccess } from \"../../components/form/FormAccess\";\nimport { KeyValueInput } from \"../../components/key-value-form/KeyValueInput\";\nimport type { KeyValueType } from \"../../components/key-value-form/key-value-convert\";\nimport { KeycloakSpinner } from \"@keycloak/keycloak-ui-shared\";\nimport { MultiLineInput } from \"../../components/multi-line-input/MultiLineInput\";\nimport { ViewHeader } from \"../../components/view-header/ViewHeader\";\nimport { useAccess } from \"../../context/access/Access\";\nimport { convertFormValuesToObject, convertToFormValues } from \"../../util\";\nimport { useParams } from \"../../utils/useParams\";\nimport { toAuthorizationTab } from \"../routes/AuthenticationTab\";\nimport { ResourceDetailsParams, toResourceDetails } from \"../routes/Resource\";\nimport { ScopePicker } from \"./ScopePicker\";\nimport \"./resource-details.css\";\n\ntype SubmittedResource = Omit<\n ResourceRepresentation,\n \"attributes\" | \"scopes\"\n> & {\n attributes: KeyValueType[];\n};\n\nexport default function ResourceDetails() {\n const { adminClient } = useAdminClient();\n\n const { t } = useTranslation();\n const [client, setClient] = useState<ClientRepresentation>();\n const [resource, setResource] = useState<ResourceRepresentation>();\n\n const [permissions, setPermission] =\n useState<ResourceServerRepresentation[]>();\n\n const { addAlert, addError } = useAlerts();\n const form = useForm<SubmittedResource>({\n mode: \"onChange\",\n });\n const { setValue, handleSubmit } = form;\n\n const { id, resourceId, realm } = useParams<ResourceDetailsParams>();\n const navigate = useNavigate();\n\n const setupForm = (resource: ResourceRepresentation = {}) => {\n convertToFormValues(resource, setValue);\n };\n\n const { hasAccess } = useAccess();\n\n const isDisabled = !hasAccess(\"manage-authorization\");\n\n useFetch(\n () =>\n Promise.all([\n adminClient.clients.findOne({ id }),\n resourceId\n ? adminClient.clients.getResource({ id, resourceId })\n : Promise.resolve(undefined),\n resourceId\n ? adminClient.clients.listPermissionsByResource({ id, resourceId })\n : Promise.resolve(undefined),\n ]),\n ([client, resource, permissions]) => {\n if (!client) {\n throw new Error(t(\"notFound\"));\n }\n setClient(client);\n setPermission(permissions);\n setResource(resource);\n setupForm(resource);\n },\n [],\n );\n\n const submit = async (submitted: SubmittedResource) => {\n const resource = convertFormValuesToObject<\n SubmittedResource,\n ResourceRepresentation\n >(submitted);\n\n try {\n if (resourceId) {\n await adminClient.clients.updateResource({ id, resourceId }, resource);\n } else {\n const result = await adminClient.clients.createResource(\n { id },\n resource,\n );\n setResource(resource);\n navigate(toResourceDetails({ realm, id, resourceId: result._id! }));\n }\n addAlert(\n t((resourceId ? \"update\" : \"create\") + \"ResourceSuccess\"),\n AlertVariant.success,\n );\n } catch (error) {\n addError(\"resourceSaveError\", error);\n }\n };\n\n const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({\n titleKey: \"deleteResource\",\n children: (\n <>\n {t(\"deleteResourceConfirm\")}\n {permissions?.length !== 0 && (\n <Alert\n variant=\"warning\"\n isInline\n isPlain\n title={t(\"deleteResourceWarning\")}\n className=\"pf-v5-u-pt-lg\"\n >\n <p className=\"pf-v5-u-pt-xs\">\n {permissions?.map((permission) => (\n <strong key={permission.id} className=\"pf-v5-u-pr-md\">\n {permission.name}\n </strong>\n ))}\n </p>\n </Alert>\n )}\n </>\n ),\n continueButtonLabel: \"confirm\",\n onConfirm: async () => {\n try {\n await adminClient.clients.delResource({\n id,\n resourceId: resourceId!,\n });\n addAlert(t(\"resourceDeletedSuccess\"), AlertVariant.success);\n navigate(toAuthorizationTab({ realm, clientId: id, tab: \"resources\" }));\n } catch (error) {\n addError(\"resourceDeletedError\", error);\n }\n },\n });\n\n if (!client) {\n return <KeycloakSpinner />;\n }\n\n return (\n <>\n <DeleteConfirm />\n <ViewHeader\n titleKey={resourceId ? resource?.name! : \"createResource\"}\n dropdownItems={\n resourceId\n ? [\n <DropdownItem\n key=\"delete\"\n data-testid=\"delete-resource\"\n isDisabled={isDisabled}\n onClick={() => toggleDeleteDialog()}\n >\n {t(\"delete\")}\n </DropdownItem>,\n ]\n : undefined\n }\n />\n <PageSection variant=\"light\">\n <FormProvider {...form}>\n <FormAccess\n isHorizontal\n role=\"manage-authorization\"\n className=\"keycloak__resource-details__form\"\n onSubmit={handleSubmit(submit)}\n >\n <TextControl\n name={resourceId ? \"owner.name\" : \"\"}\n label={t(\"owner\")}\n labelIcon={t(\"ownerHelp\")}\n defaultValue={client.clientId}\n readOnly\n />\n <TextControl\n name={\"name\"}\n label={t(\"name\")}\n labelIcon={t(\"resourceNameHelp\")}\n rules={{ required: t(\"required\") }}\n />\n <TextControl\n name=\"displayName\"\n label={t(\"displayName\")}\n labelIcon={t(\"displayNameHelp\")}\n rules={{ required: t(\"required\") }}\n />\n <TextControl\n name=\"type\"\n label={t(\"type\")}\n labelIcon={t(\"resourceDetailsTypeHelp\")}\n />\n <FormGroup\n label={t(\"uris\")}\n fieldId=\"uris\"\n labelIcon={\n <HelpItem helpText={t(\"urisHelp\")} fieldLabelId=\"uris\" />\n }\n >\n <MultiLineInput\n name=\"uris\"\n type=\"url\"\n aria-label={t(\"uris\")}\n addButtonLabel=\"addUri\"\n />\n </FormGroup>\n <ScopePicker clientId={id} />\n <TextControl\n name=\"icon_uri\"\n label={t(\"iconUri\")}\n labelIcon={t(\"iconUriHelp\")}\n type=\"url\"\n />\n <DefaultSwitchControl\n name=\"ownerManagedAccess\"\n label={t(\"ownerManagedAccess\")}\n labelIcon={t(\"ownerManagedAccessHelp\")}\n />\n <FormGroup\n hasNoPaddingTop\n label={t(\"resourceAttribute\")}\n labelIcon={\n <HelpItem\n helpText={t(\"resourceAttributeHelp\")}\n fieldLabelId=\"resourceAttribute\"\n />\n }\n fieldId=\"resourceAttribute\"\n >\n <KeyValueInput name=\"attributes\" isDisabled={isDisabled} />\n </FormGroup>\n <ActionGroup>\n <div className=\"pf-v5-u-mt-md\">\n <Button\n variant={ButtonVariant.primary}\n type=\"submit\"\n data-testid=\"save\"\n >\n {t(\"save\")}\n </Button>\n\n <Button\n variant=\"link\"\n data-testid=\"cancel\"\n component={(props) => (\n <Link\n {...props}\n to={toAuthorizationTab({\n realm,\n clientId: id,\n tab: \"resources\",\n })}\n ></Link>\n )}\n >\n {t(\"cancel\")}\n </Button>\n </div>\n </ActionGroup>\n </FormAccess>\n </FormProvider>\n </PageSection>\n </>\n );\n}\n"],"names":["ResourceDetails","adminClient","useAdminClient","t","useTranslation","client","setClient","useState","resource","setResource","permissions","setPermission","addAlert","addError","useAlerts","form","useForm","setValue","handleSubmit","id","resourceId","realm","useParams","navigate","useNavigate","setupForm","convertToFormValues","hasAccess","useAccess","isDisabled","useFetch","submit","submitted","convertFormValuesToObject","result","toResourceDetails","AlertVariant","error","toggleDeleteDialog","DeleteConfirm","useConfirmDialog","jsxs","Fragment","jsx","Alert","permission","toAuthorizationTab","ViewHeader","DropdownItem","PageSection","FormProvider","FormAccess","TextControl","FormGroup","HelpItem","MultiLineInput","ScopePicker","DefaultSwitchControl","KeyValueInput","ActionGroup","Button","ButtonVariant","props","Link","KeycloakSpinner"],"mappings":"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"}