@databiosphere/findable-ui 23.0.0 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release-please-manifest.json +1 -1
- package/.storybook/preview.js +4 -37
- package/CHANGELOG.md +25 -0
- package/jest.config.js +1 -0
- package/lib/components/Export/components/ExportForm/exportForm.styles.d.ts +2 -2
- package/lib/components/Filter/components/FilterLabel/filterLabel.styles.d.ts +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.d.ts +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/Button/button.styles.d.ts +1 -1
- package/lib/components/Layout/components/Outline/outline.styles.d.ts +1 -1
- package/lib/components/Loading/loading.stories.d.ts +3 -31
- package/lib/components/Login/components/Button/button.styles.d.ts +1 -1
- package/lib/components/Stepper/components/Step/components/StepContent/stepContent.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepContent/stepContent.js +7 -0
- package/lib/components/Stepper/components/Step/components/StepContent/stepContent.styles.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepContent/stepContent.styles.js +17 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.js +8 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.styles.d.ts +5 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.styles.js +15 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/contants.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/contants.js +4 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/constants.d.ts +1 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/constants.js +1 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/stepIcon.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/stepIcon.js +6 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/stepIcon.styles.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/stepIcon.styles.js +27 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/stories/stepIcon.stories.d.ts +9 -0
- package/lib/components/Stepper/components/Step/components/StepIcon/stories/stepIcon.stories.js +38 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/constants.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/constants.js +11 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/icon.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/icon.js +9 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/stories/contants.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/stories/contants.js +3 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/stories/icon.stories.d.ts +6 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/stories/icon.stories.js +20 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/types.d.ts +7 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/types.js +1 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/constants.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/constants.js +6 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/label.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/label.js +6 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/label.styles.d.ts +5 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/label.styles.js +7 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/stories/label.stories.d.ts +7 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/stories/label.stories.js +21 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Optional/constants.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Optional/constants.js +5 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Optional/optional.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/components/Optional/optional.js +6 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/constants.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/constants.js +8 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stepLabel.d.ts +2 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stepLabel.js +6 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stepLabel.styles.d.ts +3 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stepLabel.styles.js +12 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stories/contants.d.ts +4 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stories/contants.js +15 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stories/stepLabel.stories.d.ts +8 -0
- package/lib/components/Stepper/components/Step/components/StepLabel/stories/stepLabel.stories.js +37 -0
- package/lib/components/Stepper/components/Step/constants.d.ts +2 -0
- package/lib/components/Stepper/components/Step/constants.js +4 -0
- package/lib/components/Stepper/components/Step/step.d.ts +3 -0
- package/lib/components/Stepper/components/Step/step.js +6 -0
- package/lib/components/Stepper/components/Step/step.styles.d.ts +5 -0
- package/lib/components/Stepper/components/Step/step.styles.js +31 -0
- package/lib/components/Stepper/components/Step/stories/contants.d.ts +4 -0
- package/lib/components/Stepper/components/Step/stories/contants.js +14 -0
- package/lib/components/Stepper/components/Step/stories/step.stories.d.ts +8 -0
- package/lib/components/Stepper/components/Step/stories/step.stories.js +62 -0
- package/lib/components/common/Form/components/Input/input.styles.d.ts +1 -1
- package/lib/components/common/Form/components/Select/select.js +2 -1
- package/lib/components/common/Form/components/Select/select.styles.d.ts +1 -1
- package/lib/components/common/Input/input.styles.d.ts +1 -1
- package/lib/components/common/KeyValuePairs/components/KeyElType/keyElType.d.ts +2 -5
- package/lib/components/common/KeyValuePairs/components/KeyElType/keyElType.js +6 -2
- package/lib/components/common/KeyValuePairs/components/ValueElType/valueElType.d.ts +2 -5
- package/lib/components/common/KeyValuePairs/components/ValueElType/valueElType.js +6 -2
- package/lib/storybook/controls/constants.d.ts +4 -0
- package/lib/storybook/controls/constants.js +6 -0
- package/lib/storybook/controls/types.d.ts +4 -0
- package/lib/storybook/controls/types.js +5 -0
- package/lib/storybook/controls/utils.d.ts +9 -0
- package/lib/storybook/controls/utils.js +10 -0
- package/lib/storybook/decorators.d.ts +2 -0
- package/lib/storybook/decorators.js +11 -0
- package/lib/storybook/loremIpsum.d.ts +4 -0
- package/lib/storybook/loremIpsum.js +4 -0
- package/lib/storybook/parameters.d.ts +2 -0
- package/lib/storybook/parameters.js +12 -0
- package/lib/styles/common/mui/stepper.d.ts +7 -0
- package/lib/styles/common/mui/stepper.js +7 -0
- package/lib/styles/common/mui/svgIcon.d.ts +9 -0
- package/lib/styles/common/mui/svgIcon.js +26 -0
- package/lib/styles/common/mui/typography.js +1 -0
- package/lib/tests/mui/constants.d.ts +4 -0
- package/lib/tests/mui/constants.js +4 -0
- package/lib/theme/common/components.js +0 -4
- package/lib/theme/common/typography.d.ts +5 -1
- package/lib/theme/common/typography.js +10 -1
- package/lib/theme/theme.js +1 -0
- package/lib/utils/tests.d.ts +12 -0
- package/lib/utils/tests.js +20 -0
- package/package.json +1 -1
- package/src/components/Loading/loading.stories.tsx +2 -2
- package/src/components/Stepper/components/Step/components/StepContent/stepContent.styles.ts +18 -0
- package/src/components/Stepper/components/Step/components/StepContent/stepContent.tsx +16 -0
- package/src/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.styles.ts +19 -0
- package/src/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.tsx +20 -0
- package/src/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/contants.ts +6 -0
- package/src/components/Stepper/components/Step/components/StepIcon/constants.ts +1 -0
- package/src/components/Stepper/components/Step/components/StepIcon/stepIcon.styles.ts +32 -0
- package/src/components/Stepper/components/Step/components/StepIcon/stepIcon.tsx +21 -0
- package/src/components/Stepper/components/Step/components/StepIcon/stories/stepIcon.stories.tsx +52 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/constants.ts +14 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/icon.tsx +13 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/stories/contants.ts +6 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/stories/icon.stories.tsx +30 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/components/Icon/types.ts +8 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/constants.ts +8 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/label.styles.ts +8 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/label.tsx +10 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Label/stories/label.stories.tsx +31 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Optional/constants.ts +7 -0
- package/src/components/Stepper/components/Step/components/StepLabel/components/Optional/optional.tsx +9 -0
- package/src/components/Stepper/components/Step/components/StepLabel/constants.ts +10 -0
- package/src/components/Stepper/components/Step/components/StepLabel/stepLabel.styles.ts +13 -0
- package/src/components/Stepper/components/Step/components/StepLabel/stepLabel.tsx +10 -0
- package/src/components/Stepper/components/Step/components/StepLabel/stories/contants.ts +19 -0
- package/src/components/Stepper/components/Step/components/StepLabel/stories/stepLabel.stories.tsx +48 -0
- package/src/components/Stepper/components/Step/constants.ts +6 -0
- package/src/components/Stepper/components/Step/step.styles.ts +33 -0
- package/src/components/Stepper/components/Step/step.tsx +12 -0
- package/src/components/Stepper/components/Step/stories/contants.ts +18 -0
- package/src/components/Stepper/components/Step/stories/step.stories.tsx +87 -0
- package/src/components/common/Form/components/Select/select.tsx +8 -1
- package/src/components/common/KeyValuePairs/components/KeyElType/keyElType.tsx +14 -9
- package/src/components/common/KeyValuePairs/components/ValueElType/valueElType.tsx +8 -9
- package/src/storybook/controls/constants.ts +12 -0
- package/src/storybook/controls/types.ts +4 -0
- package/src/storybook/controls/utils.ts +18 -0
- package/src/storybook/decorators.tsx +17 -0
- package/src/storybook/loremIpsum.ts +5 -0
- package/src/storybook/parameters.ts +14 -0
- package/src/styles/common/mui/stepper.ts +14 -0
- package/src/styles/common/mui/svgIcon.ts +35 -0
- package/src/styles/common/mui/typography.ts +1 -0
- package/src/tests/mui/constants.ts +4 -0
- package/src/theme/common/components.ts +0 -4
- package/src/theme/common/typography.ts +11 -0
- package/src/theme/theme.ts +1 -0
- package/src/utils/tests.ts +20 -0
- package/tests/setup.ts +6 -0
- package/tests/stepIcon.test.tsx +42 -0
- package/types/data-explorer-ui.d.ts +3 -0
package/lib/utils/tests.d.ts
CHANGED
|
@@ -10,3 +10,15 @@ export declare function getAnchorEl(id: string): HTMLAnchorElement;
|
|
|
10
10
|
* @returns HTML button element.
|
|
11
11
|
*/
|
|
12
12
|
export declare function getButtonById(id: string): HTMLButtonElement;
|
|
13
|
+
/**
|
|
14
|
+
* Returns class names of the given element.
|
|
15
|
+
* @param element - Element.
|
|
16
|
+
* @returns element class names.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getClassNames(element?: Element | null): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Returns tag name of the given element.
|
|
21
|
+
* @param element - Element.
|
|
22
|
+
* @returns element tag name.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getTagName(element?: Element | null): string | null;
|
package/lib/utils/tests.js
CHANGED
|
@@ -15,3 +15,23 @@ export function getAnchorEl(id) {
|
|
|
15
15
|
export function getButtonById(id) {
|
|
16
16
|
return screen.getByTestId(id);
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Returns class names of the given element.
|
|
20
|
+
* @param element - Element.
|
|
21
|
+
* @returns element class names.
|
|
22
|
+
*/
|
|
23
|
+
export function getClassNames(element) {
|
|
24
|
+
if (!element)
|
|
25
|
+
return null;
|
|
26
|
+
return element.getAttribute("class");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Returns tag name of the given element.
|
|
30
|
+
* @param element - Element.
|
|
31
|
+
* @returns element tag name.
|
|
32
|
+
*/
|
|
33
|
+
export function getTagName(element) {
|
|
34
|
+
if (!element)
|
|
35
|
+
return null;
|
|
36
|
+
return element.tagName.toLowerCase();
|
|
37
|
+
}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import React from "react";
|
|
|
3
3
|
import { PAPER_PANEL_STYLE } from "../common/Paper/paper";
|
|
4
4
|
import { Loading } from "./loading";
|
|
5
5
|
|
|
6
|
-
const meta = {
|
|
6
|
+
const meta: Meta<typeof Loading> = {
|
|
7
7
|
argTypes: {
|
|
8
8
|
appear: { control: "boolean" },
|
|
9
9
|
iconSize: { control: "select", options: ["small", "medium", "large"] },
|
|
@@ -30,7 +30,7 @@ const meta = {
|
|
|
30
30
|
),
|
|
31
31
|
],
|
|
32
32
|
title: "Components/Communication/Loading",
|
|
33
|
-
}
|
|
33
|
+
};
|
|
34
34
|
|
|
35
35
|
export default meta;
|
|
36
36
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import styled from "@emotion/styled";
|
|
2
|
+
import { StepContent } from "@mui/material";
|
|
3
|
+
import { smokeMain } from "../../../../../../styles/common/mixins/colors";
|
|
4
|
+
import { sectionPadding } from "../../../../../common/Section/section.styles";
|
|
5
|
+
|
|
6
|
+
export const StyledStepContent = styled(StepContent)`
|
|
7
|
+
&.MuiStepContent-root {
|
|
8
|
+
.MuiCollapse-wrapperInner.MuiCollapse-vertical {
|
|
9
|
+
> .MuiGrid2-root {
|
|
10
|
+
${sectionPadding};
|
|
11
|
+
border-top: 1px solid ${smokeMain};
|
|
12
|
+
display: grid;
|
|
13
|
+
gap: 24px;
|
|
14
|
+
justify-items: flex-start;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Grid2, StepContentProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { BaseComponentProps } from "../../../../../types";
|
|
4
|
+
import { StyledStepContent } from "./stepContent.styles";
|
|
5
|
+
|
|
6
|
+
export const StepContent = ({
|
|
7
|
+
children,
|
|
8
|
+
className,
|
|
9
|
+
...props /* MuiStepContentProps */
|
|
10
|
+
}: BaseComponentProps & StepContentProps): JSX.Element => {
|
|
11
|
+
return (
|
|
12
|
+
<StyledStepContent className={className} {...props}>
|
|
13
|
+
<Grid2>{children}</Grid2>
|
|
14
|
+
</StyledStepContent>
|
|
15
|
+
);
|
|
16
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import styled from "@emotion/styled";
|
|
2
|
+
import { SvgIcon } from "@mui/material";
|
|
3
|
+
import {
|
|
4
|
+
inkLight,
|
|
5
|
+
smokeDark,
|
|
6
|
+
} from "../../../../../../../../styles/common/mixins/colors";
|
|
7
|
+
|
|
8
|
+
export const StyledSvgIcon = styled(SvgIcon)`
|
|
9
|
+
&.MuiSvgIcon-root {
|
|
10
|
+
border-radius: 50%;
|
|
11
|
+
box-sizing: content-box;
|
|
12
|
+
padding: 4px;
|
|
13
|
+
|
|
14
|
+
&.Mui-completed {
|
|
15
|
+
border: 2px solid ${smokeDark};
|
|
16
|
+
color: ${inkLight};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { stepIconClasses } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { TestIdProps } from "../../../../../../../types";
|
|
4
|
+
import { StyledSvgIcon } from "./completedIcon.styles";
|
|
5
|
+
import { SVG_ICON_PROPS } from "./contants";
|
|
6
|
+
|
|
7
|
+
export const CompletedIcon = ({ testId }: TestIdProps): JSX.Element => {
|
|
8
|
+
return (
|
|
9
|
+
<StyledSvgIcon
|
|
10
|
+
{...SVG_ICON_PROPS}
|
|
11
|
+
className={stepIconClasses.completed}
|
|
12
|
+
data-testid={testId}
|
|
13
|
+
>
|
|
14
|
+
<path
|
|
15
|
+
d="M7.18129 13.1814C7.08109 13.1814 6.98419 13.1625 6.89059 13.1247C6.79699 13.0875 6.7064 13.0251 6.61879 12.9375L3.44989 9.7686C3.2999 9.61857 3.22819 9.42813 3.23479 9.1971C3.24079 8.96551 3.3188 8.77471 3.46879 8.6247C3.61879 8.47471 3.80629 8.3997 4.03129 8.3997C4.25629 8.3997 4.4438 8.47471 4.59379 8.6247L7.21909 11.25L13.4255 5.0436C13.5755 4.89361 13.7597 4.8186 13.9781 4.8186C14.1971 4.8186 14.3816 4.89361 14.5316 5.0436C14.6816 5.19361 14.7566 5.37811 14.7566 5.5971C14.7566 5.81551 14.6816 5.99971 14.5316 6.1497L7.74379 12.9375C7.65619 13.0251 7.56559 13.0875 7.47199 13.1247C7.37839 13.1625 7.2815 13.1814 7.18129 13.1814Z"
|
|
16
|
+
fill="currentColor"
|
|
17
|
+
/>
|
|
18
|
+
</StyledSvgIcon>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const STEP_ICON_TEST_ID = "step-icon";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import styled from "@emotion/styled";
|
|
2
|
+
import { StepIcon } from "@mui/material";
|
|
3
|
+
import {
|
|
4
|
+
inkLight,
|
|
5
|
+
primaryMain,
|
|
6
|
+
smokeDark,
|
|
7
|
+
} from "../../../../../../styles/common/mixins/colors";
|
|
8
|
+
|
|
9
|
+
export const StyledStepIcon = styled(StepIcon)`
|
|
10
|
+
&.MuiSvgIcon-root {
|
|
11
|
+
border: 2px solid ${smokeDark};
|
|
12
|
+
border-radius: 50%;
|
|
13
|
+
color: transparent;
|
|
14
|
+
height: 32px;
|
|
15
|
+
width: 32px;
|
|
16
|
+
|
|
17
|
+
.MuiStepIcon-text {
|
|
18
|
+
fill: ${inkLight};
|
|
19
|
+
font-size: 13px;
|
|
20
|
+
font-weight: 600;
|
|
21
|
+
line-height: 24px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&.Mui-active {
|
|
25
|
+
border-color: ${primaryMain};
|
|
26
|
+
|
|
27
|
+
.MuiStepIcon-text {
|
|
28
|
+
fill: ${primaryMain};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { StepIconProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { TestIdProps } from "../../../../../types";
|
|
4
|
+
import { CompletedIcon } from "./components/CompletedIcon/completedIcon";
|
|
5
|
+
import { StyledStepIcon } from "./stepIcon.styles";
|
|
6
|
+
|
|
7
|
+
export const StepIcon = ({
|
|
8
|
+
completed,
|
|
9
|
+
icon,
|
|
10
|
+
testId,
|
|
11
|
+
...props
|
|
12
|
+
}: StepIconProps & TestIdProps): JSX.Element => {
|
|
13
|
+
return (
|
|
14
|
+
<StyledStepIcon
|
|
15
|
+
completed={completed}
|
|
16
|
+
data-testid={testId}
|
|
17
|
+
icon={completed ? <CompletedIcon testId={testId} /> : icon}
|
|
18
|
+
{...props}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
};
|
package/src/components/Stepper/components/Step/components/StepIcon/stories/stepIcon.stories.tsx
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import React, { Fragment } from "react";
|
|
3
|
+
import { StepIcon } from "../stepIcon";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof StepIcon> = {
|
|
6
|
+
component: StepIcon,
|
|
7
|
+
decorators: [
|
|
8
|
+
(Story, context): JSX.Element => (
|
|
9
|
+
<div style={{ display: "grid", gap: 24 }}>
|
|
10
|
+
<Story {...context} />
|
|
11
|
+
</div>
|
|
12
|
+
),
|
|
13
|
+
],
|
|
14
|
+
title: "Components/Stepper/StepIcon",
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default meta;
|
|
18
|
+
type Story = StoryObj<typeof meta>;
|
|
19
|
+
|
|
20
|
+
export const Active: Story = {
|
|
21
|
+
args: {
|
|
22
|
+
active: true,
|
|
23
|
+
completed: false,
|
|
24
|
+
icon: 1,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const Completed: Story = {
|
|
29
|
+
args: {
|
|
30
|
+
active: false,
|
|
31
|
+
completed: true,
|
|
32
|
+
icon: 1,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const Default: Story = {
|
|
37
|
+
args: {
|
|
38
|
+
active: false,
|
|
39
|
+
completed: false,
|
|
40
|
+
icon: 1,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const AllStates: Story = {
|
|
45
|
+
render: () => (
|
|
46
|
+
<Fragment>
|
|
47
|
+
<StepIcon active={false} completed={false} icon={1} />
|
|
48
|
+
<StepIcon active={true} completed={false} icon={2} />
|
|
49
|
+
<StepIcon active={false} completed={true} icon={3} />
|
|
50
|
+
</Fragment>
|
|
51
|
+
),
|
|
52
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Info } from "@mui/icons-material";
|
|
2
|
+
import { SvgIconProps, TooltipProps } from "@mui/material";
|
|
3
|
+
import { SVG_ICON_PROPS as MUI_SVG_ICON_PROPS } from "../../../../../../../../../../styles/common/mui/svgIcon";
|
|
4
|
+
|
|
5
|
+
export const SVG_ICON_PROPS: SvgIconProps = {
|
|
6
|
+
color: MUI_SVG_ICON_PROPS.COLOR.INK_LIGHT,
|
|
7
|
+
component: Info,
|
|
8
|
+
fontSize: MUI_SVG_ICON_PROPS.FONT_SIZE.XSMALL,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const TOOLTIP_PROPS: Omit<TooltipProps, "children" | "title"> = {
|
|
12
|
+
disableInteractive: true,
|
|
13
|
+
slotProps: { tooltip: { sx: { maxWidth: 196, textAlign: "center" } } },
|
|
14
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SvgIcon, Tooltip } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { SVG_ICON_PROPS, TOOLTIP_PROPS } from "./constants";
|
|
4
|
+
import { IconProps } from "./types";
|
|
5
|
+
|
|
6
|
+
export const Icon = ({ slotProps }: IconProps): JSX.Element | null => {
|
|
7
|
+
if (!slotProps?.tooltip?.title) return null;
|
|
8
|
+
return (
|
|
9
|
+
<Tooltip {...TOOLTIP_PROPS} {...slotProps?.tooltip}>
|
|
10
|
+
<SvgIcon {...SVG_ICON_PROPS} {...slotProps?.svgIcon} />
|
|
11
|
+
</Tooltip>
|
|
12
|
+
);
|
|
13
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
import { CONTROL_TYPE } from "../../../../../../../../../../../storybook/controls/types";
|
|
4
|
+
import { configureControls } from "../../../../../../../../../../../storybook/controls/utils";
|
|
5
|
+
import { LOREM_IPSUM } from "../../../../../../../../../../../storybook/loremIpsum";
|
|
6
|
+
import { Icon } from "../icon";
|
|
7
|
+
import { DISABLED_CONTROLS } from "./contants";
|
|
8
|
+
|
|
9
|
+
const meta: Meta<typeof Icon> = {
|
|
10
|
+
argTypes: configureControls<ComponentProps<typeof Icon>>(
|
|
11
|
+
DISABLED_CONTROLS,
|
|
12
|
+
CONTROL_TYPE.DISABLED
|
|
13
|
+
),
|
|
14
|
+
component: Icon,
|
|
15
|
+
title: "Components/Stepper/StepLabel/Icon",
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export default meta;
|
|
19
|
+
|
|
20
|
+
type Story = StoryObj<typeof meta>;
|
|
21
|
+
|
|
22
|
+
export const Default: Story = {
|
|
23
|
+
args: {
|
|
24
|
+
slotProps: {
|
|
25
|
+
tooltip: {
|
|
26
|
+
title: LOREM_IPSUM.SHORT,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
package/src/components/Stepper/components/Step/components/StepLabel/components/Label/constants.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TypographyProps } from "@mui/material";
|
|
2
|
+
import { TYPOGRAPHY_PROPS as MUI_TYPOGRAPHY_PROPS } from "../../../../../../../../styles/common/mui/typography";
|
|
3
|
+
|
|
4
|
+
export const TYPOGRAPHY_PROPS: TypographyProps = {
|
|
5
|
+
color: MUI_TYPOGRAPHY_PROPS.COLOR.INK_MAIN,
|
|
6
|
+
component: "div",
|
|
7
|
+
variant: MUI_TYPOGRAPHY_PROPS.VARIANT.TEXT_HEADING_XSMALL,
|
|
8
|
+
};
|
package/src/components/Stepper/components/Step/components/StepLabel/components/Label/label.tsx
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TypographyProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { TYPOGRAPHY_PROPS } from "./constants";
|
|
4
|
+
import { StyledTypography } from "./label.styles";
|
|
5
|
+
|
|
6
|
+
export const Label = ({
|
|
7
|
+
...props /* MuiTypographyProps */
|
|
8
|
+
}: TypographyProps): JSX.Element => {
|
|
9
|
+
return <StyledTypography {...TYPOGRAPHY_PROPS} {...props} />;
|
|
10
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { composeStories, type Meta, type StoryObj } from "@storybook/react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import * as stories from "../components/Icon/stories/icon.stories";
|
|
4
|
+
import { Label } from "../label";
|
|
5
|
+
|
|
6
|
+
const { Default: Icon } = composeStories(stories);
|
|
7
|
+
|
|
8
|
+
const meta: Meta<typeof Label> = {
|
|
9
|
+
component: Label,
|
|
10
|
+
parameters: { controls: { disable: true } },
|
|
11
|
+
title: "Components/Stepper/StepLabel/Label",
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default meta;
|
|
15
|
+
|
|
16
|
+
type Story = StoryObj<typeof meta>;
|
|
17
|
+
|
|
18
|
+
export const Default: Story = {
|
|
19
|
+
args: { children: "Annotation Files" },
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const WithIcon: Story = {
|
|
23
|
+
args: {
|
|
24
|
+
children: (
|
|
25
|
+
<>
|
|
26
|
+
Annotation Files
|
|
27
|
+
<Icon />
|
|
28
|
+
</>
|
|
29
|
+
),
|
|
30
|
+
},
|
|
31
|
+
};
|
package/src/components/Stepper/components/Step/components/StepLabel/components/Optional/constants.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TypographyProps } from "@mui/material";
|
|
2
|
+
import { TYPOGRAPHY_PROPS as MUI_TYPOGRAPHY_PROPS } from "../../../../../../../../styles/common/mui/typography";
|
|
3
|
+
|
|
4
|
+
export const TYPOGRAPHY_PROPS: TypographyProps = {
|
|
5
|
+
color: MUI_TYPOGRAPHY_PROPS.COLOR.INK_LIGHT,
|
|
6
|
+
variant: MUI_TYPOGRAPHY_PROPS.VARIANT.TEXT_BODY_400,
|
|
7
|
+
};
|
package/src/components/Stepper/components/Step/components/StepLabel/components/Optional/optional.tsx
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Typography, TypographyProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { TYPOGRAPHY_PROPS } from "./constants";
|
|
4
|
+
|
|
5
|
+
export const Optional = ({
|
|
6
|
+
...props /* MuiTypographyProps */
|
|
7
|
+
}: TypographyProps): JSX.Element => {
|
|
8
|
+
return <Typography {...TYPOGRAPHY_PROPS} {...props} />;
|
|
9
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StepLabelProps } from "@mui/material";
|
|
2
|
+
import { StepIcon } from "../StepIcon/stepIcon";
|
|
3
|
+
import { Label } from "./components/Label/label";
|
|
4
|
+
|
|
5
|
+
export const STEP_LABEL_PROPS: StepLabelProps = {
|
|
6
|
+
slots: {
|
|
7
|
+
label: Label,
|
|
8
|
+
stepIcon: StepIcon,
|
|
9
|
+
},
|
|
10
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import styled from "@emotion/styled";
|
|
2
|
+
import { StepLabel } from "@mui/material";
|
|
3
|
+
|
|
4
|
+
export const StyledStepLabel = styled(StepLabel)`
|
|
5
|
+
.MuiStepLabel-iconContainer {
|
|
6
|
+
padding-right: 16px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.MuiStepLabel-labelContainer {
|
|
10
|
+
display: grid;
|
|
11
|
+
gap: 4px;
|
|
12
|
+
}
|
|
13
|
+
`;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StepLabelProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { STEP_LABEL_PROPS } from "./constants";
|
|
4
|
+
import { StyledStepLabel } from "./stepLabel.styles";
|
|
5
|
+
|
|
6
|
+
export const StepLabel = ({
|
|
7
|
+
...props /* MuiStepLabelProps */
|
|
8
|
+
}: StepLabelProps): JSX.Element => {
|
|
9
|
+
return <StyledStepLabel {...STEP_LABEL_PROPS} {...props} />;
|
|
10
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
import { MUI_CONTROLS } from "../../../../../../../storybook/controls/constants";
|
|
3
|
+
import { StepLabel } from "../stepLabel";
|
|
4
|
+
|
|
5
|
+
export const DISABLED_CONTROLS: (keyof ComponentProps<typeof StepLabel>)[] = [
|
|
6
|
+
...MUI_CONTROLS,
|
|
7
|
+
"children",
|
|
8
|
+
"error",
|
|
9
|
+
"icon",
|
|
10
|
+
"optional",
|
|
11
|
+
"slotProps",
|
|
12
|
+
"slots",
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
export const EXCLUDED_CONTROLS: (keyof ComponentProps<typeof StepLabel>)[] = [
|
|
16
|
+
"componentsProps", // deprecated
|
|
17
|
+
"StepIconComponent", // deprecated
|
|
18
|
+
"StepIconProps", // deprecated
|
|
19
|
+
];
|
package/src/components/Stepper/components/Step/components/StepLabel/stories/stepLabel.stories.tsx
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Meta, StoryObj, composeStories } from "@storybook/react";
|
|
2
|
+
import React, { ComponentProps } from "react";
|
|
3
|
+
import { CONTROL_TYPE } from "../../../../../../../storybook/controls/types";
|
|
4
|
+
import { configureControls } from "../../../../../../../storybook/controls/utils";
|
|
5
|
+
import * as stories from "../components/Label/stories/label.stories";
|
|
6
|
+
import { Optional } from "../components/Optional/optional";
|
|
7
|
+
import { StepLabel } from "../stepLabel";
|
|
8
|
+
import { DISABLED_CONTROLS, EXCLUDED_CONTROLS } from "./contants";
|
|
9
|
+
|
|
10
|
+
const { Default: Label, WithIcon: LabelWithIcon } = composeStories(stories);
|
|
11
|
+
|
|
12
|
+
const meta: Meta<typeof StepLabel> = {
|
|
13
|
+
argTypes: configureControls<ComponentProps<typeof StepLabel>>(
|
|
14
|
+
DISABLED_CONTROLS,
|
|
15
|
+
CONTROL_TYPE.DISABLED
|
|
16
|
+
),
|
|
17
|
+
component: StepLabel,
|
|
18
|
+
parameters: { controls: { exclude: EXCLUDED_CONTROLS } },
|
|
19
|
+
title: "Components/Stepper/StepLabel",
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default meta;
|
|
23
|
+
|
|
24
|
+
type Story = StoryObj<typeof meta>;
|
|
25
|
+
|
|
26
|
+
export const Active: Story = {
|
|
27
|
+
args: {
|
|
28
|
+
children: <LabelWithIcon />,
|
|
29
|
+
icon: 1,
|
|
30
|
+
slotProps: { stepIcon: { active: true } },
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const Completed: Story = {
|
|
35
|
+
args: {
|
|
36
|
+
children: <LabelWithIcon />,
|
|
37
|
+
icon: 1,
|
|
38
|
+
optional: <Optional>3 files selected</Optional>,
|
|
39
|
+
slotProps: { stepIcon: { completed: true } },
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const Default: Story = {
|
|
44
|
+
args: {
|
|
45
|
+
children: <Label />,
|
|
46
|
+
icon: 1,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { css } from "@emotion/react";
|
|
2
|
+
import styled from "@emotion/styled";
|
|
3
|
+
import { Step } from "@mui/material";
|
|
4
|
+
import { smokeLightest, white } from "../../../../styles/common/mixins/colors";
|
|
5
|
+
import { sectionPadding } from "../../../common/Section/section.styles";
|
|
6
|
+
|
|
7
|
+
export const StyledStep = styled(Step)`
|
|
8
|
+
&.MuiStep-root {
|
|
9
|
+
&.MuiStep-vertical {
|
|
10
|
+
background-color: ${smokeLightest};
|
|
11
|
+
|
|
12
|
+
.MuiStepLabel-root {
|
|
13
|
+
${sectionPadding};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.MuiStepContent-root {
|
|
17
|
+
border: none;
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&.Mui-completed {
|
|
23
|
+
background-color: ${white};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
${(props) =>
|
|
27
|
+
props.active &&
|
|
28
|
+
css`
|
|
29
|
+
background-color: ${white(props)};
|
|
30
|
+
`};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { StepProps } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { BaseComponentProps } from "../../../types";
|
|
4
|
+
import { STEP_PROPS } from "./constants";
|
|
5
|
+
import { StyledStep } from "./step.styles";
|
|
6
|
+
|
|
7
|
+
export const Step = ({
|
|
8
|
+
className,
|
|
9
|
+
...props /* MuiStepProps */
|
|
10
|
+
}: BaseComponentProps & StepProps): JSX.Element => {
|
|
11
|
+
return <StyledStep {...STEP_PROPS} className={className} {...props} />;
|
|
12
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ComponentProps } from "react";
|
|
2
|
+
import { MUI_CONTROLS } from "../../../../../storybook/controls/constants";
|
|
3
|
+
import { Step } from "../step";
|
|
4
|
+
|
|
5
|
+
export const BOOLEAN_CONTROLS: (keyof ComponentProps<typeof Step>)[] = [
|
|
6
|
+
"active",
|
|
7
|
+
"completed",
|
|
8
|
+
"disabled",
|
|
9
|
+
"expanded",
|
|
10
|
+
"last",
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
export const DISABLED_CONTROLS: (keyof ComponentProps<typeof Step>)[] = [
|
|
14
|
+
...MUI_CONTROLS,
|
|
15
|
+
"children",
|
|
16
|
+
"component",
|
|
17
|
+
"style",
|
|
18
|
+
];
|