mirror of
https://github.com/strapi/strapi.git
synced 2025-11-12 16:22:10 +00:00
[DS] Typography Users&Permissions/Roles (#11569)
* create a role done * edit a role done * list page done * updated tests * feedback fix * updated tests
This commit is contained in:
parent
8367872c74
commit
daf2e5010d
@ -1,13 +1,19 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import styled from 'styled-components';
|
||||||
import { Stack } from '@strapi/design-system/Stack';
|
import { Stack } from '@strapi/design-system/Stack';
|
||||||
import { Box } from '@strapi/design-system/Box';
|
import { Box } from '@strapi/design-system/Box';
|
||||||
import { H3, Text } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import map from 'lodash/map';
|
import map from 'lodash/map';
|
||||||
import tail from 'lodash/tail';
|
import tail from 'lodash/tail';
|
||||||
import { useIntl } from 'react-intl';
|
import { useIntl } from 'react-intl';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import getMethodColor from './getMethodColor';
|
import getMethodColor from './getMethodColor';
|
||||||
|
|
||||||
|
const MethodBox = styled(Box)`
|
||||||
|
margin: -1px;
|
||||||
|
border-radius: ${({ theme }) => theme.spaces[1]} 0 0 ${({ theme }) => theme.spaces[1]};
|
||||||
|
`;
|
||||||
|
|
||||||
function BoundRoute({ route }) {
|
function BoundRoute({ route }) {
|
||||||
const { formatMessage } = useIntl();
|
const { formatMessage } = useIntl();
|
||||||
|
|
||||||
@ -18,41 +24,31 @@ function BoundRoute({ route }) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack size={2}>
|
<Stack size={2}>
|
||||||
<H3>
|
<Typography variant="delta" as="h3">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: 'users-permissions.BoundRoute.title',
|
id: 'users-permissions.BoundRoute.title',
|
||||||
defaultMessage: 'Bound route to',
|
defaultMessage: 'Bound route to',
|
||||||
})}
|
})}
|
||||||
|
|
||||||
<span>{controller}</span>
|
<span>{controller}</span>
|
||||||
<Text style={{ fontSize: 'inherit', fontWeight: 'inherit' }} textColor="primary600">
|
<Typography variant="delta" textColor="primary600">
|
||||||
.{action}
|
.{action}
|
||||||
</Text>
|
</Typography>
|
||||||
</H3>
|
</Typography>
|
||||||
<Box hasRadius background="neutral0" borderColor="neutral200">
|
<Stack horizontal hasRadius background="neutral0" borderColor="neutral200" size={0}>
|
||||||
<Box
|
<MethodBox background={colors.background} borderColor={colors.border} padding={2}>
|
||||||
color={colors.text}
|
<Typography fontWeight="bold" textColor={colors.text}>
|
||||||
background={colors.background}
|
{method}
|
||||||
borderColor={colors.border}
|
</Typography>
|
||||||
padding={2}
|
</MethodBox>
|
||||||
hasRadius
|
<Box paddingLeft={2} paddingRight={2}>
|
||||||
style={{
|
|
||||||
display: 'inline-block',
|
|
||||||
margin: '-1px',
|
|
||||||
borderTopRightRadius: 0,
|
|
||||||
borderBottomRightRadius: 0,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Text bold>{method}</Text>
|
|
||||||
</Box>
|
|
||||||
<Box style={{ display: 'inline-block' }} paddingLeft={2} paddingRight={2}>
|
|
||||||
{map(formattedRoute, value => (
|
{map(formattedRoute, value => (
|
||||||
<Text key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>
|
<Typography key={value} textColor={value.includes(':') ? 'neutral600' : 'neutral900'}>
|
||||||
/{value}
|
/{value}
|
||||||
</Text>
|
</Typography>
|
||||||
))}
|
))}
|
||||||
</Box>
|
</Box>
|
||||||
</Box>
|
</Stack>
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
|||||||
import { Box } from '@strapi/design-system/Box';
|
import { Box } from '@strapi/design-system/Box';
|
||||||
import { Checkbox } from '@strapi/design-system/Checkbox';
|
import { Checkbox } from '@strapi/design-system/Checkbox';
|
||||||
import { Flex } from '@strapi/design-system/Flex';
|
import { Flex } from '@strapi/design-system/Flex';
|
||||||
import { TableLabel } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import { Grid, GridItem } from '@strapi/design-system/Grid';
|
import { Grid, GridItem } from '@strapi/design-system/Grid';
|
||||||
import CogIcon from '@strapi/icons/Cog';
|
import CogIcon from '@strapi/icons/Cog';
|
||||||
import { useIntl } from 'react-intl';
|
import { useIntl } from 'react-intl';
|
||||||
@ -61,7 +61,9 @@ const SubCategory = ({ subCategory }) => {
|
|||||||
<Box>
|
<Box>
|
||||||
<Flex justifyContent="space-between" alignItems="center">
|
<Flex justifyContent="space-between" alignItems="center">
|
||||||
<Box paddingRight={4}>
|
<Box paddingRight={4}>
|
||||||
<TableLabel textColor="neutral600">{subCategory.label}</TableLabel>
|
<Typography variant="sigma" textColor="neutral600">
|
||||||
|
{subCategory.label}
|
||||||
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
<Border />
|
<Border />
|
||||||
<Box paddingLeft={4}>
|
<Box paddingLeft={4}>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useIntl } from 'react-intl';
|
import { useIntl } from 'react-intl';
|
||||||
import { H3, Text } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import { Stack } from '@strapi/design-system/Stack';
|
import { Stack } from '@strapi/design-system/Stack';
|
||||||
import { GridItem } from '@strapi/design-system/Grid';
|
import { GridItem } from '@strapi/design-system/Grid';
|
||||||
import { get, isEmpty, takeRight, toLower, without } from 'lodash';
|
import { get, isEmpty, takeRight, toLower, without } from 'lodash';
|
||||||
@ -35,19 +35,19 @@ const Policies = () => {
|
|||||||
</Stack>
|
</Stack>
|
||||||
) : (
|
) : (
|
||||||
<Stack size={2}>
|
<Stack size={2}>
|
||||||
<H3>
|
<Typography variant="delta" as="h3">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: 'users-permissions.Policies.header.title',
|
id: 'users-permissions.Policies.header.title',
|
||||||
defaultMessage: 'Advanced settings',
|
defaultMessage: 'Advanced settings',
|
||||||
})}
|
})}
|
||||||
</H3>
|
</Typography>
|
||||||
<Text as="p" textColor="neutral600">
|
<Typography as="p" textColor="neutral600">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: 'users-permissions.Policies.header.hint',
|
id: 'users-permissions.Policies.header.hint',
|
||||||
defaultMessage:
|
defaultMessage:
|
||||||
"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route",
|
"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route",
|
||||||
})}
|
})}
|
||||||
</Text>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
)}
|
)}
|
||||||
</GridItem>
|
</GridItem>
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React, { memo, useReducer, useCallback, forwardRef, useImperativeHandle } from 'react';
|
import React, { memo, useReducer, useCallback, forwardRef, useImperativeHandle } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { H3, Text } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import { Stack } from '@strapi/design-system/Stack';
|
import { Stack } from '@strapi/design-system/Stack';
|
||||||
import { Grid, GridItem } from '@strapi/design-system/Grid';
|
import { Grid, GridItem } from '@strapi/design-system/Grid';
|
||||||
import { useIntl } from 'react-intl';
|
import { useIntl } from 'react-intl';
|
||||||
@ -67,18 +67,18 @@ const UsersPermissions = forwardRef(({ permissions, routes }, ref) => {
|
|||||||
<GridItem col={7} paddingTop={6} paddingBottom={6} paddingLeft={7} paddingRight={7}>
|
<GridItem col={7} paddingTop={6} paddingBottom={6} paddingLeft={7} paddingRight={7}>
|
||||||
<Stack size={4}>
|
<Stack size={4}>
|
||||||
<Stack size={2}>
|
<Stack size={2}>
|
||||||
<H3 as="h2">
|
<Typography variant="delta" as="h2">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: getTrad('Plugins.header.title'),
|
id: getTrad('Plugins.header.title'),
|
||||||
defaultMessage: 'Permissions',
|
defaultMessage: 'Permissions',
|
||||||
})}
|
})}
|
||||||
</H3>
|
</Typography>
|
||||||
<Text as="p" textColor="neutral600">
|
<Typography as="p" textColor="neutral600">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: getTrad('Plugins.header.description'),
|
id: getTrad('Plugins.header.description'),
|
||||||
defaultMessage: 'Only actions bound by a route are listed below.',
|
defaultMessage: 'Only actions bound by a route are listed below.',
|
||||||
})}
|
})}
|
||||||
</Text>
|
</Typography>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Permissions />
|
<Permissions />
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { Stack } from '@strapi/design-system/Stack';
|
|||||||
import { Box } from '@strapi/design-system/Box';
|
import { Box } from '@strapi/design-system/Box';
|
||||||
import { TextInput } from '@strapi/design-system/TextInput';
|
import { TextInput } from '@strapi/design-system/TextInput';
|
||||||
import { Textarea } from '@strapi/design-system/Textarea';
|
import { Textarea } from '@strapi/design-system/Textarea';
|
||||||
import { H3 } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import Check from '@strapi/icons/Check';
|
import Check from '@strapi/icons/Check';
|
||||||
import { GridItem, Grid } from '@strapi/design-system/Grid';
|
import { GridItem, Grid } from '@strapi/design-system/Grid';
|
||||||
import { Formik } from 'formik';
|
import { Formik } from 'formik';
|
||||||
@ -113,12 +113,12 @@ const EditPage = () => {
|
|||||||
paddingRight={7}
|
paddingRight={7}
|
||||||
>
|
>
|
||||||
<Stack size={4}>
|
<Stack size={4}>
|
||||||
<H3 as="h2">
|
<Typography variant="delta" as="h2">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: getTrad('EditPage.form.roles'),
|
id: getTrad('EditPage.form.roles'),
|
||||||
defaultMessage: 'Role details',
|
defaultMessage: 'Role details',
|
||||||
})}
|
})}
|
||||||
</H3>
|
</Typography>
|
||||||
<Grid gap={4}>
|
<Grid gap={4}>
|
||||||
<GridItem col={6}>
|
<GridItem col={6}>
|
||||||
<TextInput
|
<TextInput
|
||||||
|
|||||||
@ -580,17 +580,16 @@ describe('Admin | containers | RoleCreatePage', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.c17 {
|
.c17 {
|
||||||
|
color: #32324d;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
line-height: 1.25;
|
line-height: 1.25;
|
||||||
color: #32324d;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.c37 {
|
.c37 {
|
||||||
font-weight: 400;
|
color: #666687;
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
line-height: 1.43;
|
line-height: 1.43;
|
||||||
color: #666687;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.c32 {
|
.c32 {
|
||||||
@ -745,7 +744,7 @@ describe('Admin | containers | RoleCreatePage', () => {
|
|||||||
border: 1px solid #4945ff;
|
border: 1px solid #4945ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c39:hover:not([aria-disabled='true']) .sc-joeujd {
|
.c39:hover:not([aria-disabled='true']) .sc-eiWPNw {
|
||||||
color: #271fe0;
|
color: #271fe0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { Stack } from '@strapi/design-system/Stack';
|
|||||||
import { Box } from '@strapi/design-system/Box';
|
import { Box } from '@strapi/design-system/Box';
|
||||||
import { TextInput } from '@strapi/design-system/TextInput';
|
import { TextInput } from '@strapi/design-system/TextInput';
|
||||||
import { Textarea } from '@strapi/design-system/Textarea';
|
import { Textarea } from '@strapi/design-system/Textarea';
|
||||||
import { H3 } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import ArrowLeft from '@strapi/icons/ArrowLeft';
|
import ArrowLeft from '@strapi/icons/ArrowLeft';
|
||||||
import Check from '@strapi/icons/Check';
|
import Check from '@strapi/icons/Check';
|
||||||
import { Link } from '@strapi/design-system/Link';
|
import { Link } from '@strapi/design-system/Link';
|
||||||
@ -126,12 +126,12 @@ const EditPage = () => {
|
|||||||
paddingRight={7}
|
paddingRight={7}
|
||||||
>
|
>
|
||||||
<Stack size={4}>
|
<Stack size={4}>
|
||||||
<H3 as="h2">
|
<Typography variant="delta" as="h2">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: getTrad('EditPage.form.roles'),
|
id: getTrad('EditPage.form.roles'),
|
||||||
defaultMessage: 'Role details',
|
defaultMessage: 'Role details',
|
||||||
})}
|
})}
|
||||||
</H3>
|
</Typography>
|
||||||
<Grid gap={4}>
|
<Grid gap={4}>
|
||||||
<GridItem col={6}>
|
<GridItem col={6}>
|
||||||
<TextInput
|
<TextInput
|
||||||
|
|||||||
@ -579,17 +579,16 @@ describe('Admin | containers | RoleEditPage', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.c22 {
|
.c22 {
|
||||||
|
color: #32324d;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
line-height: 1.25;
|
line-height: 1.25;
|
||||||
color: #32324d;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.c42 {
|
.c42 {
|
||||||
font-weight: 400;
|
color: #666687;
|
||||||
font-size: 0.875rem;
|
font-size: 0.875rem;
|
||||||
line-height: 1.43;
|
line-height: 1.43;
|
||||||
color: #666687;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.c6 {
|
.c6 {
|
||||||
@ -817,7 +816,7 @@ describe('Admin | containers | RoleEditPage', () => {
|
|||||||
border: 1px solid #4945ff;
|
border: 1px solid #4945ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c44:hover:not([aria-disabled='true']) .sc-iAjLmB {
|
.c44:hover:not([aria-disabled='true']) .sc-heejUR {
|
||||||
color: #271fe0;
|
color: #271fe0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { IconButton } from '@strapi/design-system/IconButton';
|
import { IconButton } from '@strapi/design-system/IconButton';
|
||||||
import { Text } from '@strapi/design-system/Text';
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
import { Flex } from '@strapi/design-system/Flex';
|
import { Flex } from '@strapi/design-system/Flex';
|
||||||
import { Tbody, Tr, Td } from '@strapi/design-system/Table';
|
import { Tbody, Tr, Td } from '@strapi/design-system/Table';
|
||||||
import Pencil from '@strapi/icons/Pencil';
|
import Pencil from '@strapi/icons/Pencil';
|
||||||
@ -34,18 +34,18 @@ const TableBody = ({ sortedRoles, canDelete, permissions, setRoleToDelete, onDel
|
|||||||
{sortedRoles?.map(role => (
|
{sortedRoles?.map(role => (
|
||||||
<Tr key={role.name} {...onRowClick({ fn: () => handleClickEdit(role.id) })}>
|
<Tr key={role.name} {...onRowClick({ fn: () => handleClickEdit(role.id) })}>
|
||||||
<Td width="20%">
|
<Td width="20%">
|
||||||
<Text>{role.name}</Text>
|
<Typography>{role.name}</Typography>
|
||||||
</Td>
|
</Td>
|
||||||
<Td width="50%">
|
<Td width="50%">
|
||||||
<Text>{role.description}</Text>
|
<Typography>{role.description}</Typography>
|
||||||
</Td>
|
</Td>
|
||||||
<Td width="30%">
|
<Td width="30%">
|
||||||
<Text>
|
<Typography>
|
||||||
{`${role.nb_users} ${formatMessage({
|
{`${role.nb_users} ${formatMessage({
|
||||||
id: getTrad('Roles.users'),
|
id: getTrad('Roles.users'),
|
||||||
defaultMessage: 'users',
|
defaultMessage: 'users',
|
||||||
}).toLowerCase()}`}
|
}).toLowerCase()}`}
|
||||||
</Text>
|
</Typography>
|
||||||
</Td>
|
</Td>
|
||||||
<Td>
|
<Td>
|
||||||
<Flex justifyContent="end" {...stopPropagation}>
|
<Flex justifyContent="end" {...stopPropagation}>
|
||||||
|
|||||||
@ -1,19 +1,11 @@
|
|||||||
import React, { useMemo, useState } from 'react';
|
import React, { useMemo, useState } from 'react';
|
||||||
import {
|
import { Button } from '@strapi/design-system/Button';
|
||||||
Button,
|
import { HeaderLayout, Layout, ContentLayout, ActionLayout } from '@strapi/design-system/Layout';
|
||||||
HeaderLayout,
|
import { Main } from '@strapi/design-system/Main';
|
||||||
Layout,
|
import { Table, Tr, Thead, Th } from '@strapi/design-system/Table';
|
||||||
Main,
|
import { VisuallyHidden } from '@strapi/design-system/VisuallyHidden';
|
||||||
Table,
|
import { Typography } from '@strapi/design-system/Typography';
|
||||||
Tr,
|
import { useNotifyAT } from '@strapi/design-system/LiveRegions';
|
||||||
Thead,
|
|
||||||
Th,
|
|
||||||
TableLabel,
|
|
||||||
useNotifyAT,
|
|
||||||
ContentLayout,
|
|
||||||
ActionLayout,
|
|
||||||
VisuallyHidden,
|
|
||||||
} from '@strapi/design-system';
|
|
||||||
import Plus from '@strapi/icons/Plus';
|
import Plus from '@strapi/icons/Plus';
|
||||||
import {
|
import {
|
||||||
useTracking,
|
useTracking,
|
||||||
@ -166,25 +158,25 @@ const RoleListPage = () => {
|
|||||||
<Thead>
|
<Thead>
|
||||||
<Tr>
|
<Tr>
|
||||||
<Th>
|
<Th>
|
||||||
<TableLabel textColor="neutral600">
|
<Typography variant="sigma" textColor="neutral600">
|
||||||
{formatMessage({ id: getTrad('Roles.name'), defaultMessage: 'Name' })}
|
{formatMessage({ id: getTrad('Roles.name'), defaultMessage: 'Name' })}
|
||||||
</TableLabel>
|
</Typography>
|
||||||
</Th>
|
</Th>
|
||||||
<Th>
|
<Th>
|
||||||
<TableLabel textColor="neutral600">
|
<Typography variant="sigma" textColor="neutral600">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: getTrad('Roles.description'),
|
id: getTrad('Roles.description'),
|
||||||
defaultMessage: 'Description',
|
defaultMessage: 'Description',
|
||||||
})}
|
})}
|
||||||
</TableLabel>
|
</Typography>
|
||||||
</Th>
|
</Th>
|
||||||
<Th>
|
<Th>
|
||||||
<TableLabel textColor="neutral600">
|
<Typography variant="sigma" textColor="neutral600">
|
||||||
{formatMessage({
|
{formatMessage({
|
||||||
id: getTrad('Roles.users'),
|
id: getTrad('Roles.users'),
|
||||||
defaultMessage: 'Users',
|
defaultMessage: 'Users',
|
||||||
})}
|
})}
|
||||||
</TableLabel>
|
</Typography>
|
||||||
</Th>
|
</Th>
|
||||||
<Th>
|
<Th>
|
||||||
<VisuallyHidden>
|
<VisuallyHidden>
|
||||||
|
|||||||
@ -58,13 +58,6 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
} = render(App);
|
} = render(App);
|
||||||
|
|
||||||
expect(firstChild).toMatchInlineSnapshot(`
|
expect(firstChild).toMatchInlineSnapshot(`
|
||||||
.c9 {
|
|
||||||
color: #32324d;
|
|
||||||
font-weight: 600;
|
|
||||||
font-size: 2rem;
|
|
||||||
line-height: 1.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c14 {
|
.c14 {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #32324d;
|
color: #32324d;
|
||||||
@ -72,105 +65,11 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
line-height: 1.43;
|
line-height: 1.43;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c15 {
|
.c11 {
|
||||||
color: #666687;
|
|
||||||
font-size: 1rem;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c2 {
|
|
||||||
padding-bottom: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c5 {
|
|
||||||
background: #f6f6f9;
|
|
||||||
padding-top: 56px;
|
|
||||||
padding-right: 56px;
|
|
||||||
padding-bottom: 56px;
|
|
||||||
padding-left: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c12 {
|
|
||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c16 {
|
.c8 {
|
||||||
padding-right: 56px;
|
|
||||||
padding-left: 56px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c17 {
|
|
||||||
padding-bottom: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c6 {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
-webkit-flex-direction: row;
|
|
||||||
-ms-flex-direction: row;
|
|
||||||
flex-direction: row;
|
|
||||||
-webkit-box-pack: justify;
|
|
||||||
-webkit-justify-content: space-between;
|
|
||||||
-ms-flex-pack: justify;
|
|
||||||
justify-content: space-between;
|
|
||||||
-webkit-align-items: center;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c7 {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
-webkit-flex-direction: row;
|
|
||||||
-ms-flex-direction: row;
|
|
||||||
flex-direction: row;
|
|
||||||
-webkit-align-items: center;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c18 {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
-webkit-flex-direction: row;
|
|
||||||
-ms-flex-direction: row;
|
|
||||||
flex-direction: row;
|
|
||||||
-webkit-box-pack: justify;
|
|
||||||
-webkit-justify-content: space-between;
|
|
||||||
-ms-flex-pack: justify;
|
|
||||||
justify-content: space-between;
|
|
||||||
-webkit-align-items: flex-start;
|
|
||||||
-webkit-box-align: flex-start;
|
|
||||||
-ms-flex-align: flex-start;
|
|
||||||
align-items: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c19 {
|
|
||||||
display: -webkit-box;
|
|
||||||
display: -webkit-flex;
|
|
||||||
display: -ms-flexbox;
|
|
||||||
display: flex;
|
|
||||||
-webkit-flex-direction: row;
|
|
||||||
-ms-flex-direction: row;
|
|
||||||
flex-direction: row;
|
|
||||||
-webkit-align-items: center;
|
|
||||||
-webkit-box-align: center;
|
|
||||||
-ms-flex-align: center;
|
|
||||||
align-items: center;
|
|
||||||
-webkit-flex-wrap: wrap;
|
|
||||||
-ms-flex-wrap: wrap;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c10 {
|
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -webkit-flex;
|
display: -webkit-flex;
|
||||||
display: -ms-flexbox;
|
display: -ms-flexbox;
|
||||||
@ -184,21 +83,21 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c10 svg {
|
.c8 svg {
|
||||||
height: 12px;
|
height: 12px;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c10 svg > g,
|
.c8 svg > g,
|
||||||
.c10 svg path {
|
.c8 svg path {
|
||||||
fill: #ffffff;
|
fill: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c10[aria-disabled='true'] {
|
.c8[aria-disabled='true'] {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c10:after {
|
.c8:after {
|
||||||
-webkit-transition-property: all;
|
-webkit-transition-property: all;
|
||||||
transition-property: all;
|
transition-property: all;
|
||||||
-webkit-transition-duration: 0.2s;
|
-webkit-transition-duration: 0.2s;
|
||||||
@ -213,11 +112,11 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
border: 2px solid transparent;
|
border: 2px solid transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c10:focus-visible {
|
.c8:focus-visible {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c10:focus-visible:after {
|
.c8:focus-visible:after {
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -228,11 +127,11 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
border: 2px solid #4945ff;
|
border: 2px solid #4945ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c13 {
|
.c12 {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11 {
|
.c9 {
|
||||||
-webkit-align-items: center;
|
-webkit-align-items: center;
|
||||||
-webkit-box-align: center;
|
-webkit-box-align: center;
|
||||||
-ms-flex-align: center;
|
-ms-flex-align: center;
|
||||||
@ -244,7 +143,7 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
background: #4945ff;
|
background: #4945ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11 .c0 {
|
.c9 .c10 {
|
||||||
display: -webkit-box;
|
display: -webkit-box;
|
||||||
display: -webkit-flex;
|
display: -webkit-flex;
|
||||||
display: -ms-flexbox;
|
display: -ms-flexbox;
|
||||||
@ -255,65 +154,48 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11 .c8 {
|
.c9 .c13 {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11[aria-disabled='true'] {
|
.c9[aria-disabled='true'] {
|
||||||
border: 1px solid #dcdce4;
|
border: 1px solid #dcdce4;
|
||||||
background: #eaeaef;
|
background: #eaeaef;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11[aria-disabled='true'] .c8 {
|
.c9[aria-disabled='true'] .c13 {
|
||||||
color: #666687;
|
color: #666687;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11[aria-disabled='true'] svg > g,
|
.c9[aria-disabled='true'] svg > g,
|
||||||
.c11[aria-disabled='true'] svg path {
|
.c9[aria-disabled='true'] svg path {
|
||||||
fill: #666687;
|
fill: #666687;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11[aria-disabled='true']:active {
|
.c9[aria-disabled='true']:active {
|
||||||
border: 1px solid #dcdce4;
|
border: 1px solid #dcdce4;
|
||||||
background: #eaeaef;
|
background: #eaeaef;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11[aria-disabled='true']:active .c8 {
|
.c9[aria-disabled='true']:active .c13 {
|
||||||
color: #666687;
|
color: #666687;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11[aria-disabled='true']:active svg > g,
|
.c9[aria-disabled='true']:active svg > g,
|
||||||
.c11[aria-disabled='true']:active svg path {
|
.c9[aria-disabled='true']:active svg path {
|
||||||
fill: #666687;
|
fill: #666687;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11:hover {
|
.c9:hover {
|
||||||
border: 1px solid #7b79ff;
|
border: 1px solid #7b79ff;
|
||||||
background: #7b79ff;
|
background: #7b79ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c11:active {
|
.c9:active {
|
||||||
border: 1px solid #4945ff;
|
border: 1px solid #4945ff;
|
||||||
background: #4945ff;
|
background: #4945ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.c1 {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c3 {
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c20 > * + * {
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c4 {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.c32 {
|
.c32 {
|
||||||
color: #666687;
|
color: #666687;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@ -492,16 +374,134 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
height: 100vh;
|
height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.c1 {
|
||||||
|
padding-bottom: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c4 {
|
||||||
|
background: #f6f6f9;
|
||||||
|
padding-top: 56px;
|
||||||
|
padding-right: 56px;
|
||||||
|
padding-bottom: 56px;
|
||||||
|
padding-left: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c16 {
|
||||||
|
padding-right: 56px;
|
||||||
|
padding-left: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c17 {
|
||||||
|
padding-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c0 {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c2 {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c5 {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-box-pack: justify;
|
||||||
|
-webkit-justify-content: space-between;
|
||||||
|
-ms-flex-pack: justify;
|
||||||
|
justify-content: space-between;
|
||||||
|
-webkit-align-items: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c6 {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-align-items: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c18 {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-box-pack: justify;
|
||||||
|
-webkit-justify-content: space-between;
|
||||||
|
-ms-flex-pack: justify;
|
||||||
|
justify-content: space-between;
|
||||||
|
-webkit-align-items: flex-start;
|
||||||
|
-webkit-box-align: flex-start;
|
||||||
|
-ms-flex-align: flex-start;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c19 {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-align-items: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
|
-ms-flex-wrap: wrap;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c20 > * + * {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c7 {
|
||||||
|
color: #32324d;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 2rem;
|
||||||
|
line-height: 1.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c15 {
|
||||||
|
color: #666687;
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.c3 {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="c0 c1"
|
class="c0"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c2 c3"
|
class="c1 c2"
|
||||||
>
|
>
|
||||||
<main
|
<main
|
||||||
aria-busy="true"
|
aria-busy="true"
|
||||||
aria-labelledby="main-content-title"
|
aria-labelledby="main-content-title"
|
||||||
class="c4"
|
class="c3"
|
||||||
id="main-content"
|
id="main-content"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
>
|
>
|
||||||
@ -509,29 +509,29 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
style="height: 0px;"
|
style="height: 0px;"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c5"
|
class="c4"
|
||||||
data-strapi-header="true"
|
data-strapi-header="true"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c6"
|
class="c5"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c7"
|
class="c6"
|
||||||
>
|
>
|
||||||
<h1
|
<h1
|
||||||
class="c8 c9"
|
class="c7"
|
||||||
>
|
>
|
||||||
Roles
|
Roles
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
aria-disabled="false"
|
aria-disabled="false"
|
||||||
class="c10 c11"
|
class="c8 c9"
|
||||||
type="button"
|
type="button"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
class="c0 c12 c13"
|
class="c10 c11 c12"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
fill="none"
|
fill="none"
|
||||||
@ -547,30 +547,30 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<span
|
<span
|
||||||
class="c8 c14"
|
class="c13 c14"
|
||||||
>
|
>
|
||||||
Add new role
|
Add new role
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<p
|
<p
|
||||||
class="c8 c15"
|
class="c15"
|
||||||
>
|
>
|
||||||
List of roles
|
List of roles
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="c0 c16"
|
class="c16"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c17"
|
class="c17"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c18"
|
class="c18"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c0 c19 c20"
|
class="c19 c20"
|
||||||
wrap="wrap"
|
wrap="wrap"
|
||||||
>
|
>
|
||||||
<span>
|
<span>
|
||||||
@ -602,7 +602,7 @@ describe('Plugin | Users and Permissions | RoleListPage', () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="c0 c16"
|
class="c16"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="c23 c24"
|
class="c23 c24"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user