@dxc-technology/halstack-react 0.0.0-d3ac293 → 0.0.0-d3df47e
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/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +4 -21
- package/HalstackContext.d.ts +24 -139
- package/HalstackContext.js +11 -36
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +26 -83
- package/accordion/Accordion.stories.tsx +2 -114
- package/accordion/Accordion.test.js +18 -33
- package/accordion/types.d.ts +5 -17
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +27 -75
- package/accordion-group/AccordionGroup.stories.tsx +78 -77
- package/accordion-group/AccordionGroup.test.js +43 -71
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +6 -18
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +17 -56
- package/alert/Alert.test.js +28 -45
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +1 -0
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +16 -55
- package/box/Box.stories.tsx +25 -53
- package/box/Box.test.js +1 -6
- package/box/types.d.ts +3 -15
- package/bulleted-list/BulletedList.js +19 -53
- package/bulleted-list/BulletedList.stories.tsx +8 -93
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.d.ts +1 -1
- package/button/Button.js +66 -100
- package/button/Button.stories.tsx +9 -90
- package/button/Button.test.js +19 -16
- package/button/types.d.ts +8 -4
- package/card/Card.d.ts +1 -1
- package/card/Card.js +47 -88
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +10 -21
- package/card/types.d.ts +6 -12
- package/checkbox/Checkbox.js +85 -120
- package/checkbox/Checkbox.stories.tsx +16 -54
- package/checkbox/Checkbox.test.js +107 -63
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.js +34 -68
- package/chip/Chip.stories.tsx +25 -17
- package/chip/Chip.test.js +15 -28
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.js +2 -8
- package/common/variables.d.ts +24 -282
- package/common/variables.js +860 -1125
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.js +15 -59
- package/date-input/DateInput.js +50 -96
- package/date-input/DateInput.stories.tsx +11 -30
- package/date-input/DateInput.test.js +674 -701
- package/date-input/DatePicker.js +11 -42
- package/date-input/Icons.d.ts +6 -6
- package/date-input/Icons.js +6 -23
- package/date-input/YearPicker.js +8 -34
- package/date-input/types.d.ts +27 -21
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +15 -60
- package/dialog/Dialog.stories.tsx +215 -169
- package/dialog/Dialog.test.js +125 -187
- package/dialog/types.d.ts +18 -26
- package/dropdown/Dropdown.js +39 -93
- package/dropdown/Dropdown.test.js +391 -378
- package/dropdown/DropdownMenu.js +13 -20
- package/dropdown/DropdownMenuItem.js +5 -19
- package/dropdown/types.d.ts +17 -19
- package/file-input/FileInput.js +180 -249
- package/file-input/FileInput.stories.tsx +1 -1
- package/file-input/FileInput.test.js +356 -354
- package/file-input/FileItem.js +14 -41
- package/file-input/types.d.ts +10 -10
- package/flex/Flex.js +27 -39
- package/flex/Flex.stories.tsx +35 -26
- package/flex/types.d.ts +74 -9
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +69 -116
- package/footer/Footer.stories.tsx +38 -95
- package/footer/Footer.test.js +21 -33
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- package/footer/types.d.ts +25 -27
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +33 -116
- package/header/Header.stories.tsx +7 -71
- package/header/Header.test.js +12 -25
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +2 -7
- package/header/types.d.ts +5 -20
- package/heading/Heading.js +9 -31
- package/heading/Heading.test.js +70 -87
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.js +13 -21
- package/inset/Inset.stories.tsx +2 -1
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +5 -5
- package/layout/ApplicationLayout.js +28 -65
- package/layout/ApplicationLayout.stories.tsx +1 -1
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +5 -6
- package/link/Link.js +23 -44
- package/link/Link.test.js +23 -41
- package/link/types.d.ts +14 -14
- package/main.d.ts +7 -4
- package/main.js +32 -58
- package/nav-tabs/NavTabs.d.ts +2 -2
- package/nav-tabs/NavTabs.js +22 -54
- package/nav-tabs/NavTabs.stories.tsx +21 -5
- package/nav-tabs/NavTabs.test.js +38 -44
- package/nav-tabs/Tab.js +40 -72
- package/nav-tabs/types.d.ts +14 -15
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +700 -412
- package/number-input/types.d.ts +11 -5
- package/package.json +30 -28
- package/paginator/Icons.d.ts +5 -5
- package/paginator/Icons.js +5 -19
- package/paginator/Paginator.js +17 -47
- package/paginator/Paginator.test.js +229 -199
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +2 -3
- package/paragraph/Paragraph.js +3 -19
- package/paragraph/Paragraph.stories.tsx +0 -17
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +157 -140
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +21 -53
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
- package/progress-bar/ProgressBar.test.js +35 -52
- package/progress-bar/types.d.ts +4 -3
- package/quick-nav/QuickNav.js +4 -27
- package/quick-nav/QuickNav.stories.tsx +1 -1
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +31 -63
- package/radio-group/RadioGroup.js +45 -93
- package/radio-group/RadioGroup.stories.tsx +10 -10
- package/radio-group/RadioGroup.test.js +504 -470
- package/radio-group/types.d.ts +8 -8
- package/resultset-table/Icons.d.ts +7 -0
- package/{resultsetTable → resultset-table}/Icons.js +1 -5
- package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +1 -1
- package/{resultsetTable → resultset-table}/ResultsetTable.js +33 -63
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +19 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
- package/{resultsetTable → resultset-table}/types.d.ts +13 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.js +13 -39
- package/select/Option.js +17 -27
- package/select/Select.js +92 -166
- package/select/Select.stories.tsx +3 -3
- package/select/Select.test.js +1946 -1804
- package/select/types.d.ts +14 -15
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +2 -2
- package/sidenav/Sidenav.js +80 -150
- package/sidenav/Sidenav.stories.tsx +60 -60
- package/sidenav/Sidenav.test.js +3 -10
- package/sidenav/types.d.ts +31 -28
- package/slider/Slider.js +68 -126
- package/slider/Slider.test.js +107 -103
- package/slider/types.d.ts +4 -4
- package/spinner/Spinner.js +28 -72
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +28 -28
- package/spinner/Spinner.test.js +25 -34
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.js +49 -97
- package/switch/Switch.stories.tsx +0 -34
- package/switch/Switch.test.js +51 -96
- package/switch/types.d.ts +4 -4
- package/table/Table.d.ts +1 -1
- package/table/Table.js +23 -30
- package/table/{Table.stories.jsx → Table.stories.tsx} +98 -0
- package/table/Table.test.js +1 -6
- package/table/types.d.ts +12 -6
- package/tabs/Tab.js +19 -36
- package/tabs/Tabs.js +61 -144
- package/tabs/Tabs.stories.tsx +1 -1
- package/tabs/Tabs.test.js +65 -121
- package/tabs/types.d.ts +19 -19
- package/tag/Tag.js +26 -58
- package/tag/Tag.test.js +19 -30
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +5 -5
- package/text-input/Icons.js +1 -5
- package/text-input/Suggestion.js +11 -28
- package/text-input/Suggestions.d.ts +1 -1
- package/text-input/Suggestions.js +15 -65
- package/text-input/TextInput.js +217 -318
- package/text-input/TextInput.stories.tsx +48 -152
- package/text-input/TextInput.test.js +1210 -1194
- package/text-input/types.d.ts +25 -17
- package/textarea/Textarea.js +68 -111
- package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
- package/textarea/Textarea.test.js +151 -182
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +91 -105
- package/toggle-group/ToggleGroup.stories.tsx +7 -4
- package/toggle-group/ToggleGroup.test.js +68 -87
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.js +4 -13
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +21 -136
- package/useTheme.js +1 -8
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +2 -2
- package/utils/BaseTypography.js +16 -30
- package/utils/FocusLock.js +28 -43
- package/wizard/Wizard.js +15 -50
- package/wizard/Wizard.test.js +53 -80
- package/wizard/types.d.ts +8 -9
- package/card/ice-cream.jpg +0 -0
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/Icons.d.ts +0 -7
- package/slider/Slider.stories.tsx +0 -240
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
|
@@ -23,62 +23,62 @@ export const Chromatic = () => (
|
|
|
23
23
|
<>
|
|
24
24
|
<ExampleContainer>
|
|
25
25
|
<Title title="With label" theme="light" level={4} />
|
|
26
|
-
<DxcSpinner label="Label" value=
|
|
26
|
+
<DxcSpinner label="Label" value={50}></DxcSpinner>
|
|
27
27
|
<Title title="With value label" theme="light" level={4} />
|
|
28
|
-
<DxcSpinner value=
|
|
28
|
+
<DxcSpinner value={50} showValue></DxcSpinner>
|
|
29
29
|
<Title title="With label and value label" theme="light" level={4} />
|
|
30
|
-
<DxcSpinner label="Label" value=
|
|
30
|
+
<DxcSpinner label="Label" value={50} showValue></DxcSpinner>
|
|
31
31
|
<Title title="With 100%" theme="light" level={4} />
|
|
32
|
-
<DxcSpinner label="Label" value=
|
|
32
|
+
<DxcSpinner label="Label" value={100} showValue></DxcSpinner>
|
|
33
33
|
</ExampleContainer>
|
|
34
34
|
<Title title="Modes" theme="light" level={2} />
|
|
35
35
|
<ExampleContainer>
|
|
36
36
|
<Title title="Mode large" theme="light" level={4} />
|
|
37
|
-
<DxcSpinner mode="large" value=
|
|
37
|
+
<DxcSpinner mode="large" value={50}></DxcSpinner>
|
|
38
38
|
<Title title="Mode small" theme="light" level={4} />
|
|
39
|
-
<DxcSpinner mode="small" value=
|
|
39
|
+
<DxcSpinner mode="small" value={50}></DxcSpinner>
|
|
40
40
|
<Title title="Mode small with 100%" theme="light" level={4} />
|
|
41
|
-
<DxcSpinner mode="small" value=
|
|
41
|
+
<DxcSpinner mode="small" value={100} showValue></DxcSpinner>
|
|
42
42
|
</ExampleContainer>
|
|
43
43
|
<Title title="Margins with large mode" theme="light" level={2} />
|
|
44
44
|
<ExampleContainer>
|
|
45
45
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
46
|
-
<DxcSpinner margin="xxsmall" value=
|
|
46
|
+
<DxcSpinner margin="xxsmall" value={75}></DxcSpinner>
|
|
47
47
|
<Title title="Xsmall margin" theme="light" level={4} />
|
|
48
|
-
<DxcSpinner margin="xsmall" value=
|
|
48
|
+
<DxcSpinner margin="xsmall" value={75}></DxcSpinner>
|
|
49
49
|
<Title title="Small margin" theme="light" level={4} />
|
|
50
|
-
<DxcSpinner margin="small" value=
|
|
50
|
+
<DxcSpinner margin="small" value={75}></DxcSpinner>
|
|
51
51
|
<Title title="Medium margin" theme="light" level={4} />
|
|
52
|
-
<DxcSpinner margin="medium" value=
|
|
52
|
+
<DxcSpinner margin="medium" value={75}></DxcSpinner>
|
|
53
53
|
<Title title="Large margin" theme="light" level={4} />
|
|
54
|
-
<DxcSpinner margin="large" value=
|
|
54
|
+
<DxcSpinner margin="large" value={75}></DxcSpinner>
|
|
55
55
|
<Title title="Xlarge margin" theme="light" level={4} />
|
|
56
|
-
<DxcSpinner margin="xlarge" value=
|
|
56
|
+
<DxcSpinner margin="xlarge" value={75}></DxcSpinner>
|
|
57
57
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
58
|
-
<DxcSpinner margin="xxlarge" value=
|
|
58
|
+
<DxcSpinner margin="xxlarge" value={75}></DxcSpinner>
|
|
59
59
|
</ExampleContainer>
|
|
60
60
|
<Title title="Margins with small mode" theme="light" level={2} />
|
|
61
61
|
<ExampleContainer>
|
|
62
62
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
63
|
-
<DxcSpinner margin="xxsmall" mode="small" value=
|
|
63
|
+
<DxcSpinner margin="xxsmall" mode="small" value={75}></DxcSpinner>
|
|
64
64
|
<Title title="Xsmall margin" theme="light" level={4} />
|
|
65
|
-
<DxcSpinner margin="xsmall" mode="small" value=
|
|
65
|
+
<DxcSpinner margin="xsmall" mode="small" value={75}></DxcSpinner>
|
|
66
66
|
<Title title="Small margin" theme="light" level={4} />
|
|
67
|
-
<DxcSpinner margin="small" mode="small" value=
|
|
67
|
+
<DxcSpinner margin="small" mode="small" value={75}></DxcSpinner>
|
|
68
68
|
<Title title="Medium margin" theme="light" level={4} />
|
|
69
|
-
<DxcSpinner margin="medium" mode="small" value=
|
|
69
|
+
<DxcSpinner margin="medium" mode="small" value={75}></DxcSpinner>
|
|
70
70
|
<Title title="Large margin" theme="light" level={4} />
|
|
71
|
-
<DxcSpinner margin="large" mode="small" value=
|
|
71
|
+
<DxcSpinner margin="large" mode="small" value={75}></DxcSpinner>
|
|
72
72
|
<Title title="Xlarge margin" theme="light" level={4} />
|
|
73
|
-
<DxcSpinner margin="xlarge" mode="small" value=
|
|
73
|
+
<DxcSpinner margin="xlarge" mode="small" value={75}></DxcSpinner>
|
|
74
74
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
75
|
-
<DxcSpinner margin="xxlarge" mode="small" value=
|
|
75
|
+
<DxcSpinner margin="xxlarge" mode="small" value={75}></DxcSpinner>
|
|
76
76
|
</ExampleContainer>
|
|
77
77
|
<Title title="Opinionated theme" theme="light" level={2} />
|
|
78
78
|
<ExampleContainer>
|
|
79
79
|
<Title title="With label and value label" theme="light" level={4} />
|
|
80
80
|
<HalstackProvider theme={opinionatedTheme}>
|
|
81
|
-
<DxcSpinner label="Label" value=
|
|
81
|
+
<DxcSpinner label="Label" value={50} showValue></DxcSpinner>
|
|
82
82
|
</HalstackProvider>
|
|
83
83
|
</ExampleContainer>
|
|
84
84
|
</>
|
|
@@ -87,35 +87,35 @@ export const Chromatic = () => (
|
|
|
87
87
|
export const SpinnerOverlay = () => (
|
|
88
88
|
<ExampleContainer>
|
|
89
89
|
<Title title="Mode overlay" theme="light" level={4} />
|
|
90
|
-
<DxcSpinner mode="overlay" value=
|
|
90
|
+
<DxcSpinner mode="overlay" value={25}></DxcSpinner>
|
|
91
91
|
</ExampleContainer>
|
|
92
92
|
);
|
|
93
93
|
|
|
94
94
|
export const SpinnerOverlayWith100 = () => (
|
|
95
95
|
<ExampleContainer>
|
|
96
96
|
<Title title="Mode overlay" theme="light" level={4} />
|
|
97
|
-
<DxcSpinner mode="overlay" value=
|
|
97
|
+
<DxcSpinner mode="overlay" value={100}></DxcSpinner>
|
|
98
98
|
</ExampleContainer>
|
|
99
99
|
);
|
|
100
100
|
|
|
101
101
|
export const SpinnerOverlayWithLabel = () => (
|
|
102
102
|
<ExampleContainer>
|
|
103
103
|
<Title title="Mode overlay" theme="light" level={4} />
|
|
104
|
-
<DxcSpinner mode="overlay" value=
|
|
104
|
+
<DxcSpinner mode="overlay" value={50} label="Label"></DxcSpinner>
|
|
105
105
|
</ExampleContainer>
|
|
106
106
|
);
|
|
107
107
|
|
|
108
108
|
export const SpinnerOverlayWithValue = () => (
|
|
109
109
|
<ExampleContainer>
|
|
110
110
|
<Title title="Mode overlay" theme="light" level={4} />
|
|
111
|
-
<DxcSpinner mode="overlay" value=
|
|
111
|
+
<DxcSpinner mode="overlay" value={50} showValue></DxcSpinner>
|
|
112
112
|
</ExampleContainer>
|
|
113
113
|
);
|
|
114
114
|
|
|
115
115
|
export const SpinnerOverlayWithValueAndLabel = () => (
|
|
116
116
|
<ExampleContainer>
|
|
117
117
|
<Title title="Mode overlay" theme="light" level={4} />
|
|
118
|
-
<DxcSpinner mode="overlay" label="Label" value=
|
|
118
|
+
<DxcSpinner mode="overlay" label="Label" value={50} showValue></DxcSpinner>
|
|
119
119
|
</ExampleContainer>
|
|
120
120
|
);
|
|
121
121
|
|
|
@@ -123,7 +123,7 @@ export const SpinnerOverlayWithValueAndLabelOpinionated = () => (
|
|
|
123
123
|
<ExampleContainer>
|
|
124
124
|
<HalstackProvider theme={opinionatedTheme}>
|
|
125
125
|
<Title title="Mode overlay" theme="light" level={4} />
|
|
126
|
-
<DxcSpinner mode="overlay" label="Label" value=
|
|
126
|
+
<DxcSpinner mode="overlay" label="Label" value={50} showValue></DxcSpinner>
|
|
127
127
|
</HalstackProvider>
|
|
128
128
|
</ExampleContainer>
|
|
129
129
|
);
|
package/spinner/Spinner.test.js
CHANGED
|
@@ -1,64 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
|
|
10
|
-
|
|
11
7
|
describe("Spinner component tests", function () {
|
|
12
8
|
test("Spinner renders with correct label", function () {
|
|
13
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
label: "test-loading"
|
|
11
|
+
})),
|
|
12
|
+
getByText = _render.getByText;
|
|
18
13
|
expect(getByText("test-loading")).toBeTruthy();
|
|
19
14
|
});
|
|
20
15
|
test("Spinner shows value correctly", function () {
|
|
21
16
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
label: "test-loading",
|
|
18
|
+
value: 75,
|
|
19
|
+
showValue: true
|
|
20
|
+
})),
|
|
21
|
+
getByText = _render2.getByText;
|
|
28
22
|
expect(getByText("75%")).toBeTruthy();
|
|
29
23
|
});
|
|
30
24
|
test("Small spinner hides value and label correctly", function () {
|
|
31
25
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
26
|
+
mode: "small",
|
|
27
|
+
label: "test-loading",
|
|
28
|
+
value: 75,
|
|
29
|
+
showValue: true
|
|
30
|
+
})),
|
|
31
|
+
queryByText = _render3.queryByText;
|
|
39
32
|
expect(queryByText("test-loading")).toBeFalsy();
|
|
40
33
|
expect(queryByText("75%")).toBeFalsy();
|
|
41
34
|
});
|
|
42
35
|
test("Overlay spinner shows value and label correctly", function () {
|
|
43
36
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
37
|
+
mode: "overlay",
|
|
38
|
+
label: "test-loading",
|
|
39
|
+
value: 75,
|
|
40
|
+
showValue: true
|
|
41
|
+
})),
|
|
42
|
+
getByText = _render4.getByText;
|
|
51
43
|
expect(getByText("test-loading")).toBeTruthy();
|
|
52
44
|
expect(getByText("75%")).toBeTruthy();
|
|
53
45
|
});
|
|
54
46
|
test("Get spinner by role", function () {
|
|
55
47
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
48
|
+
label: "test-loading",
|
|
49
|
+
value: 75,
|
|
50
|
+
showValue: true
|
|
51
|
+
})),
|
|
52
|
+
getByRole = _render5.getByRole;
|
|
62
53
|
expect(getByRole("progressbar")).toBeTruthy();
|
|
63
54
|
});
|
|
64
55
|
});
|
package/spinner/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
type Margin = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Text to be placed inside the spinner.
|
|
11
11
|
*/
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
|
|
12
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
13
|
+
var DxcStatusLight = function DxcStatusLight(_ref) {
|
|
14
|
+
var _ref$mode = _ref.mode,
|
|
15
|
+
mode = _ref$mode === void 0 ? "default" : _ref$mode,
|
|
16
|
+
label = _ref.label,
|
|
17
|
+
_ref$size = _ref.size,
|
|
18
|
+
size = _ref$size === void 0 ? "medium" : _ref$size;
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement(StatusLightContainer, {
|
|
20
|
+
size: size,
|
|
21
|
+
"aria-label": "".concat(mode, ": ").concat(label),
|
|
22
|
+
"data-testid": "status_light-container"
|
|
23
|
+
}, /*#__PURE__*/_react["default"].createElement(StatusDot, {
|
|
24
|
+
mode: mode,
|
|
25
|
+
size: size,
|
|
26
|
+
"aria-hidden": "true",
|
|
27
|
+
"data-testid": "status-dot"
|
|
28
|
+
}), /*#__PURE__*/_react["default"].createElement(StatusLabel, {
|
|
29
|
+
mode: mode,
|
|
30
|
+
size: size
|
|
31
|
+
}, label));
|
|
32
|
+
};
|
|
33
|
+
var StatusLightContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n gap: ", ";\n"])), _coreTokens["default"].spacing_8);
|
|
34
|
+
var StatusDot = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n border-radius: 50%;\n background-color: ", ";\n"])), function (_ref2) {
|
|
35
|
+
var size = _ref2.size;
|
|
36
|
+
return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
|
|
37
|
+
}, function (_ref3) {
|
|
38
|
+
var size = _ref3.size;
|
|
39
|
+
return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
|
|
40
|
+
}, function (_ref4) {
|
|
41
|
+
var mode = _ref4.mode;
|
|
42
|
+
return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
|
|
43
|
+
});
|
|
44
|
+
var StatusLabel = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (_ref5) {
|
|
45
|
+
var size = _ref5.size;
|
|
46
|
+
return size === "small" && _coreTokens["default"].type_scale_01 || size === "medium" && _coreTokens["default"].type_scale_02 || size === "large" && _coreTokens["default"].type_scale_03 || _coreTokens["default"].type_scale_02;
|
|
47
|
+
}, _coreTokens["default"].type_sans, _coreTokens["default"].type_normal, _coreTokens["default"].type_semibold, function (_ref6) {
|
|
48
|
+
var mode = _ref6.mode;
|
|
49
|
+
return mode === "default" && _coreTokens["default"].color_grey_700 || mode === "error" && _coreTokens["default"].color_red_700 || mode === "info" && _coreTokens["default"].color_blue_700 || mode === "success" && _coreTokens["default"].color_green_700 || mode === "warning" && _coreTokens["default"].color_orange_700 || _coreTokens["default"].color_grey_700;
|
|
50
|
+
});
|
|
51
|
+
var _default = exports["default"] = DxcStatusLight;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Title from "../../.storybook/components/Title";
|
|
3
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
4
|
+
import DxcStatusLight from "./StatusLight";
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: "Status Light",
|
|
8
|
+
component: DxcStatusLight,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const Chromatic = () => (
|
|
12
|
+
<>
|
|
13
|
+
<ExampleContainer>
|
|
14
|
+
<Title title="Default light small" theme="light" level={4} />
|
|
15
|
+
<DxcStatusLight label="StatusLight" size="small" />
|
|
16
|
+
</ExampleContainer>
|
|
17
|
+
<ExampleContainer>
|
|
18
|
+
<Title title="Default light medium" theme="light" level={4} />
|
|
19
|
+
<DxcStatusLight label="StatusLight" />
|
|
20
|
+
</ExampleContainer>
|
|
21
|
+
<ExampleContainer>
|
|
22
|
+
<Title title="Default light large" theme="light" level={4} />
|
|
23
|
+
<DxcStatusLight label="StatusLight" size="large" />
|
|
24
|
+
</ExampleContainer>
|
|
25
|
+
<ExampleContainer>
|
|
26
|
+
<Title title="Info light small" theme="light" level={4} />
|
|
27
|
+
<DxcStatusLight label="StatusLight" mode="info" size="small" />
|
|
28
|
+
</ExampleContainer>
|
|
29
|
+
<ExampleContainer>
|
|
30
|
+
<Title title="Info light medium" theme="light" level={4} />
|
|
31
|
+
<DxcStatusLight label="StatusLight" mode="info" />
|
|
32
|
+
</ExampleContainer>
|
|
33
|
+
<ExampleContainer>
|
|
34
|
+
<Title title="Info light large" theme="light" level={4} />
|
|
35
|
+
<DxcStatusLight label="StatusLight" mode="info" size="large" />
|
|
36
|
+
</ExampleContainer>
|
|
37
|
+
<ExampleContainer>
|
|
38
|
+
<Title title="Success light small" theme="light" level={4} />
|
|
39
|
+
<DxcStatusLight label="StatusLight" mode="success" size="small" />
|
|
40
|
+
</ExampleContainer>
|
|
41
|
+
<ExampleContainer>
|
|
42
|
+
<Title title="Success lights medium" theme="light" level={4} />
|
|
43
|
+
<DxcStatusLight label="StatusLight" mode="success" />
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer>
|
|
46
|
+
<Title title="Success lights large" theme="light" level={4} />
|
|
47
|
+
<DxcStatusLight label="StatusLight" mode="success" size="large" />
|
|
48
|
+
</ExampleContainer>
|
|
49
|
+
<ExampleContainer>
|
|
50
|
+
<Title title="Warning light small" theme="light" level={4} />
|
|
51
|
+
<DxcStatusLight label="StatusLight" mode="warning" size="small" />
|
|
52
|
+
</ExampleContainer>
|
|
53
|
+
<ExampleContainer>
|
|
54
|
+
<Title title="Warning light medium" theme="light" level={4} />
|
|
55
|
+
<DxcStatusLight label="StatusLight" mode="warning" />
|
|
56
|
+
</ExampleContainer>
|
|
57
|
+
<ExampleContainer>
|
|
58
|
+
<Title title="Warning light large" theme="light" level={4} />
|
|
59
|
+
<DxcStatusLight label="StatusLight" mode="warning" size="large" />
|
|
60
|
+
</ExampleContainer>
|
|
61
|
+
<ExampleContainer>
|
|
62
|
+
<Title title="Error light small" theme="light" level={4} />
|
|
63
|
+
<DxcStatusLight label="StatusLight" mode="error" size="small" />
|
|
64
|
+
</ExampleContainer>
|
|
65
|
+
<ExampleContainer>
|
|
66
|
+
<Title title="Error lights medium" theme="light" level={4} />
|
|
67
|
+
<DxcStatusLight label="StatusLight" mode="error" />
|
|
68
|
+
</ExampleContainer>
|
|
69
|
+
<ExampleContainer>
|
|
70
|
+
<Title title="Error lights large" theme="light" level={4} />
|
|
71
|
+
<DxcStatusLight label="StatusLight" mode="error" size="large" />
|
|
72
|
+
</ExampleContainer>
|
|
73
|
+
</>
|
|
74
|
+
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _StatusLight = _interopRequireDefault(require("./StatusLight.tsx"));
|
|
7
|
+
describe("StatusLight component tests", function () {
|
|
8
|
+
test("StatusLight renders with correct label", function () {
|
|
9
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
10
|
+
label: "Status Light Test"
|
|
11
|
+
})),
|
|
12
|
+
getByText = _render.getByText;
|
|
13
|
+
expect(getByText("Status Light Test")).toBeTruthy();
|
|
14
|
+
});
|
|
15
|
+
test("StatusLight applies accessibility attributes", function () {
|
|
16
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_StatusLight["default"], {
|
|
17
|
+
label: "Status Light Test"
|
|
18
|
+
})),
|
|
19
|
+
getByTestId = _render2.getByTestId;
|
|
20
|
+
var statusLightContainer = getByTestId("status_light-container");
|
|
21
|
+
var statusDot = getByTestId("status-dot");
|
|
22
|
+
expect(statusLightContainer.getAttribute("aria-label")).toBe("default: Status Light Test");
|
|
23
|
+
expect(statusDot.getAttribute("aria-hidden")).toBe("true");
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type Mode = "default" | "info" | "success" | "warning" | "error";
|
|
2
|
+
type Size = "small" | "medium" | "large";
|
|
3
|
+
type Props = {
|
|
4
|
+
/**
|
|
5
|
+
* It will define the color of the light based on its semantic meaning.
|
|
6
|
+
*/
|
|
7
|
+
mode?: Mode;
|
|
8
|
+
/**
|
|
9
|
+
* An auxiliar text that will add some context to the status.
|
|
10
|
+
*/
|
|
11
|
+
label: string;
|
|
12
|
+
/**
|
|
13
|
+
* Size of the component. Should be defined based on its importance and/or available space.
|
|
14
|
+
*/
|
|
15
|
+
size?: Size;
|
|
16
|
+
};
|
|
17
|
+
export default Props;
|