@strapi/admin 5.28.0 → 5.30.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 (73) hide show
  1. package/dist/admin/admin/src/components/FormInputs/Json.js +1 -1
  2. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  3. package/dist/admin/admin/src/components/FormInputs/Json.mjs +1 -1
  4. package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/FormInputs/String.js +2 -1
  6. package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
  7. package/dist/admin/admin/src/components/FormInputs/String.mjs +2 -1
  8. package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/SubNav.js +9 -2
  10. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  11. package/dist/admin/admin/src/components/SubNav.mjs +9 -2
  12. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/Theme.js +34 -1
  14. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  15. package/dist/admin/admin/src/components/Theme.mjs +34 -1
  16. package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
  17. package/dist/admin/admin/src/pages/Auth/components/Login.js +1 -1
  18. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  19. package/dist/admin/admin/src/pages/Auth/components/Login.mjs +1 -1
  20. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  21. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  22. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  23. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js +1 -0
  24. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
  25. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs +1 -0
  26. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
  27. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +1 -0
  28. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  29. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +1 -0
  30. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
  31. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +1 -0
  32. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  33. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +1 -0
  34. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  35. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -1
  36. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
  37. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -1
  38. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
  39. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +1 -1
  40. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  41. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
  42. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
  43. package/dist/admin/admin/src/pages/UseCasePage.js +1 -0
  44. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  45. package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -0
  46. package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
  47. package/dist/admin/admin/src/translations/en.json.js +6 -0
  48. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  49. package/dist/admin/admin/src/translations/en.json.mjs +6 -0
  50. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  51. package/dist/admin/src/components/SubNav.d.ts +1 -1
  52. package/dist/server/server/src/controllers/authentication.js +6 -6
  53. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  54. package/dist/server/server/src/controllers/authentication.mjs +6 -6
  55. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  56. package/dist/server/server/src/register.js +2 -1
  57. package/dist/server/server/src/register.js.map +1 -1
  58. package/dist/server/server/src/register.mjs +2 -1
  59. package/dist/server/server/src/register.mjs.map +1 -1
  60. package/dist/server/server/src/services/user.js +30 -0
  61. package/dist/server/server/src/services/user.js.map +1 -1
  62. package/dist/server/server/src/services/user.mjs +30 -0
  63. package/dist/server/server/src/services/user.mjs.map +1 -1
  64. package/dist/server/shared/utils/session-auth.js +11 -4
  65. package/dist/server/shared/utils/session-auth.js.map +1 -1
  66. package/dist/server/shared/utils/session-auth.mjs +11 -4
  67. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  68. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  69. package/dist/server/src/register.d.ts.map +1 -1
  70. package/dist/server/src/services/user.d.ts.map +1 -1
  71. package/dist/shared/utils/session-auth.d.ts +2 -2
  72. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  73. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"CreatePage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"CreatePage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","current","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","variant","onClick","resetForm","loading","startIcon","Check","title","subtitle","navigationAction","BackButton","fallback","Content","direction","alignItems","Box","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","col","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
@@ -78,7 +78,8 @@ const RoleForm = ({ disabled, role, values, errors, onChange, onBlur })=>{
78
78
  disabled: disabled,
79
79
  onChange: onChange,
80
80
  onBlur: onBlur,
81
- value: values.name || ''
81
+ value: values.name || '',
82
+ type: "text"
82
83
  }),
83
84
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
84
85
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"RoleForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","Error","Textarea"],"mappings":";;;;;;AAuBA,MAAMA,QAAW,GAAA,CAAC,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAiB,GAAA;IACnF,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAACC,CAAAA,gBAAAA,EAAAA;QAAIC,UAAW,EAAA,UAAA;QAAWC,OAAS,EAAA,CAAA;QAAGC,MAAO,EAAA,cAAA;QAAeC,SAAS,EAAA,IAAA;AACpE,QAAA,QAAA,gBAAAC,eAACC,CAAAA,iBAAAA,EAAAA;YAAKC,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUC,GAAK,EAAA,CAAA;;8BACjDJ,eAACC,CAAAA,iBAAAA,EAAAA;oBAAKI,cAAe,EAAA,eAAA;;sCACnBL,eAACL,CAAAA,gBAAAA,EAAAA;;8CACCD,cAACC,CAAAA,gBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAAD,cAACY,CAAAA,uBAAAA,EAAAA;wCAAWC,UAAW,EAAA,MAAA;kDACpBpB,IACGA,GAAAA,IAAAA,CAAKqB,IAAI,GACThB,aAAc,CAAA;4CACZiB,EAAI,EAAA,gBAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;;8CAGRhB,cAACC,CAAAA,gBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAAD,cAACY,CAAAA,uBAAAA,EAAAA;wCAAWK,SAAU,EAAA,YAAA;wCAAaC,OAAQ,EAAA,IAAA;kDACxCzB,IACGA,GAAAA,IAAAA,CAAK0B,WAAW,GAChBrB,aAAc,CAAA;4CACZiB,EAAI,EAAA,iCAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;;;;sCAIVhB,cAACoB,CAAAA,mBAAAA,EAAAA;4BAAO5B,QAAQ,EAAA,IAAA;4BAAC0B,OAAQ,EAAA,WAAA;sCACtBpB,aACC,CAAA;gCACEiB,EAAI,EAAA,4CAAA;gCACJC,cACE,EAAA;6BAEJ,EAAA;AAAEK,gCAAAA,MAAAA,EAAQ5B,KAAK6B;AAAW,6BAAA;;;;AAIhC,8BAAAhB,eAAA,CAACiB,kBAAKC,IAAI,EAAA;oBAACd,GAAK,EAAA,CAAA;;AACd,sCAAAV,cAAA,CAACuB,kBAAKE,IAAI,EAAA;4BAACC,GAAK,EAAA,CAAA;4BAAGlB,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;oDAC/CH,eAAA,CAACqB,mBAAMH,IAAI,EAAA;gCACTV,IAAK,EAAA,MAAA;gCACLc,KAAOjC,EAAAA,MAAAA,CAAOmB,IAAI,IAAIhB,aAAc,CAAA;AAAEiB,oCAAAA,EAAAA,EAAIpB,OAAOmB;AAAK,iCAAA,CAAA;gCACtDe,QAAQ,EAAA,IAAA;;AAER,kDAAA7B,cAAA,CAAC2B,mBAAMG,KAAK,EAAA;kDACThC,aAAc,CAAA;4CACbiB,EAAI,EAAA,aAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;kDAEFhB,cAAC+B,CAAAA,sBAAAA,EAAAA;wCACCvC,QAAUA,EAAAA,QAAAA;wCACVI,QAAUA,EAAAA,QAAAA;wCACVC,MAAQA,EAAAA,MAAAA;wCACRmC,KAAOtC,EAAAA,MAAAA,CAAOoB,IAAI,IAAI;;AAExB,kDAAAd,cAAA,CAAC2B,mBAAMM,KAAK,EAAA,EAAA;;;;AAGhB,sCAAAjC,cAAA,CAACuB,kBAAKE,IAAI,EAAA;4BAACC,GAAK,EAAA,CAAA;4BAAGlB,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;oDAC/CH,eAAA,CAACqB,mBAAMH,IAAI,EAAA;gCACTV,IAAK,EAAA,aAAA;gCACLc,KAAOjC,EAAAA,MAAAA,CAAOwB,WAAW,IAAIrB,aAAc,CAAA;AAAEiB,oCAAAA,EAAAA,EAAIpB,OAAOwB;AAAY,iCAAA,CAAA;;AAEpE,kDAAAnB,cAAA,CAAC2B,mBAAMG,KAAK,EAAA;kDACThC,aAAc,CAAA;4CACbiB,EAAI,EAAA,oBAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;kDAEFhB,cAACkC,CAAAA,qBAAAA,EAAAA;wCACC1C,QAAUA,EAAAA,QAAAA;wCACVI,QAAUA,EAAAA,QAAAA;wCACVC,MAAQA,EAAAA,MAAAA;AACRmC,wCAAAA,KAAAA,EAAOtC,OAAOyB;;AAEhB,kDAAAnB,cAAA,CAAC2B,mBAAMM,KAAK,EAAA,EAAA;;;;;;;;;AAO1B;;;;"}
1
+ {"version":3,"file":"RoleForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","type","Error","Textarea"],"mappings":"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"}
@@ -76,7 +76,8 @@ const RoleForm = ({ disabled, role, values, errors, onChange, onBlur })=>{
76
76
  disabled: disabled,
77
77
  onChange: onChange,
78
78
  onBlur: onBlur,
79
- value: values.name || ''
79
+ value: values.name || '',
80
+ type: "text"
80
81
  }),
81
82
  /*#__PURE__*/ jsx(Field.Error, {})
82
83
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"RoleForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","Error","Textarea"],"mappings":"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"}
1
+ {"version":3,"file":"RoleForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n type=\"text\"\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n"],"names":["RoleForm","disabled","role","values","errors","onChange","onBlur","formatMessage","useIntl","_jsx","Box","background","padding","shadow","hasRadius","_jsxs","Flex","direction","alignItems","gap","justifyContent","Typography","fontWeight","name","id","defaultMessage","textColor","variant","description","Button","number","usersCount","Grid","Root","Item","col","Field","error","required","Label","TextInput","value","type","Error","Textarea"],"mappings":"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"}
@@ -103,7 +103,7 @@ const HeadersInput = ()=>{
103
103
  id: 'Settings.webhooks.value',
104
104
  defaultMessage: 'Value'
105
105
  }),
106
- type: "string"
106
+ type: "text"
107
107
  })
108
108
  }),
109
109
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
@@ -1 +1 @@
1
- {"version":3,"file":"HeadersInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"string\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
1
+ {"version":3,"file":"HeadersInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
@@ -82,7 +82,7 @@ const HeadersInput = ()=>{
82
82
  id: 'Settings.webhooks.value',
83
83
  defaultMessage: 'Value'
84
84
  }),
85
- type: "string"
85
+ type: "text"
86
86
  })
87
87
  }),
88
88
  /*#__PURE__*/ jsx(IconButton, {
@@ -1 +1 @@
1
- {"version":3,"file":"HeadersInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"string\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
1
+ {"version":3,"file":"HeadersInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
@@ -181,6 +181,7 @@ const UseCasePage = ()=>{
181
181
  })
182
182
  }),
183
183
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.TextInput, {
184
+ type: "text",
184
185
  value: otherRole,
185
186
  onChange: (e)=>setOtherRole(e.target.value)
186
187
  })
@@ -1 +1 @@
1
- {"version":3,"file":"UseCasePage.js","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput value={otherRole} onChange={(e) => setOtherRole(e.target.value)} />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
1
+ {"version":3,"file":"UseCasePage.js","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
@@ -160,6 +160,7 @@ const UseCasePage = ()=>{
160
160
  })
161
161
  }),
162
162
  /*#__PURE__*/ jsx(TextInput, {
163
+ type: "text",
163
164
  value: otherRole,
164
165
  onChange: (e)=>setOtherRole(e.target.value)
165
166
  })
@@ -1 +1 @@
1
- {"version":3,"file":"UseCasePage.mjs","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput value={otherRole} onChange={(e) => setOtherRole(e.target.value)} />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
1
+ {"version":3,"file":"UseCasePage.mjs","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
@@ -553,6 +553,8 @@ var en = {
553
553
  "app.components.PluginCard.more-details": "More details",
554
554
  "app.components.ToggleCheckbox.off-label": "False",
555
555
  "app.components.ToggleCheckbox.on-label": "True",
556
+ "app.components.ToggleCheckbox.enabled-label": "Enabled",
557
+ "app.components.ToggleCheckbox.disabled-label": "Disabled",
556
558
  "app.components.UpsellBanner.button": "Upgrade now",
557
559
  "app.components.UpsellBanner.intro": "Access to Growth plan features: ",
558
560
  "app.components.UpsellBanner.text": "As part of your trial, you can explore premium tools such as Content History, Releases, and Single Sign-On (SSO).",
@@ -691,6 +693,10 @@ var en = {
691
693
  "components.Blocks.popover.text.placeholder": "Enter link text",
692
694
  "components.Blocks.popover.link": "Link",
693
695
  "components.Blocks.popover.link.placeholder": "Paste link",
696
+ "components.Blocks.popover.link.rel": "Rel (optional)",
697
+ "components.Blocks.popover.link.rel.placeholder": "noopener, nofollow, noreferrer",
698
+ "components.Blocks.popover.link.target": "Target (optional)",
699
+ "components.Blocks.popover.link.target.placeholder": "_blank, _self, _parent, _top",
694
700
  "components.Blocks.popover.link.error": "Please enter valid link",
695
701
  "components.Blocks.popover.remove": "Remove",
696
702
  "components.Blocks.popover.edit": "Edit",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -549,6 +549,8 @@ var en = {
549
549
  "app.components.PluginCard.more-details": "More details",
550
550
  "app.components.ToggleCheckbox.off-label": "False",
551
551
  "app.components.ToggleCheckbox.on-label": "True",
552
+ "app.components.ToggleCheckbox.enabled-label": "Enabled",
553
+ "app.components.ToggleCheckbox.disabled-label": "Disabled",
552
554
  "app.components.UpsellBanner.button": "Upgrade now",
553
555
  "app.components.UpsellBanner.intro": "Access to Growth plan features: ",
554
556
  "app.components.UpsellBanner.text": "As part of your trial, you can explore premium tools such as Content History, Releases, and Single Sign-On (SSO).",
@@ -687,6 +689,10 @@ var en = {
687
689
  "components.Blocks.popover.text.placeholder": "Enter link text",
688
690
  "components.Blocks.popover.link": "Link",
689
691
  "components.Blocks.popover.link.placeholder": "Paste link",
692
+ "components.Blocks.popover.link.rel": "Rel (optional)",
693
+ "components.Blocks.popover.link.rel.placeholder": "noopener, nofollow, noreferrer",
694
+ "components.Blocks.popover.link.target": "Target (optional)",
695
+ "components.Blocks.popover.link.target.placeholder": "_blank, _self, _parent, _top",
690
696
  "components.Blocks.popover.link.error": "Please enter valid link",
691
697
  "components.Blocks.popover.remove": "Remove",
692
698
  "components.Blocks.popover.edit": "Edit",