@dxc-technology/halstack-react 0.0.0-ff5083e → 0.0.0-ff6c8bf
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 +5 -22
- package/HalstackContext.d.ts +1240 -6
- package/HalstackContext.js +126 -111
- package/README.md +47 -0
- package/accordion/Accordion.accessibility.test.js +71 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +105 -160
- package/accordion/Accordion.stories.tsx +82 -148
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +6 -17
- package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
- package/accordion-group/AccordionGroup.d.ts +2 -2
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/AccordionGroupContext.d.ts +3 -0
- package/accordion-group/AccordionGroupContext.js +8 -0
- package/accordion-group/types.d.ts +12 -17
- package/action-icon/ActionIcon.accessibility.test.js +63 -0
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +48 -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.accessibility.test.js +95 -0
- package/alert/Alert.js +37 -127
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.accessibility.test.js +129 -0
- 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 +64 -63
- package/bleed/types.d.ts +2 -2
- package/box/Box.accessibility.test.js +33 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -60
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +169 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/bulleted-list/BulletedList.accessibility.test.js +119 -0
- package/bulleted-list/BulletedList.js +35 -63
- package/bulleted-list/BulletedList.stories.tsx +18 -106
- package/bulleted-list/types.d.ts +32 -5
- package/button/Button.accessibility.test.js +127 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +64 -117
- package/button/Button.stories.tsx +151 -100
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.accessibility.test.js +36 -0
- package/card/Card.d.ts +1 -1
- package/card/Card.js +49 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.accessibility.test.js +87 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +139 -181
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.accessibility.test.js +67 -0
- package/chip/Chip.js +45 -80
- package/chip/Chip.stories.tsx +107 -27
- package/chip/Chip.test.js +18 -33
- package/chip/types.d.ts +4 -4
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1392 -0
- package/common/variables.js +984 -1206
- 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/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
- package/contextual-menu/ContextualMenu.d.ts +5 -0
- package/contextual-menu/ContextualMenu.js +88 -0
- package/contextual-menu/ContextualMenu.stories.tsx +232 -0
- package/contextual-menu/ContextualMenu.test.js +205 -0
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +51 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +58 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.accessibility.test.js +228 -0
- package/date-input/DateInput.js +149 -299
- package/date-input/DateInput.stories.tsx +210 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +121 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.accessibility.test.js +69 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +61 -106
- package/dialog/Dialog.stories.tsx +326 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/divider/Divider.accessibility.test.js +33 -0
- package/divider/Divider.d.ts +4 -0
- package/divider/Divider.js +36 -0
- package/divider/Divider.stories.tsx +223 -0
- package/divider/Divider.test.js +38 -0
- package/divider/types.d.ts +21 -0
- package/dropdown/Dropdown.accessibility.test.js +180 -0
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +233 -303
- package/dropdown/Dropdown.stories.tsx +235 -57
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +71 -0
- package/dropdown/types.d.ts +35 -19
- package/file-input/FileInput.accessibility.test.js +160 -0
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +241 -391
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +306 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +56 -117
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.accessibility.test.js +125 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +73 -118
- package/footer/Footer.stories.tsx +99 -21
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +54 -23
- package/footer/types.d.ts +26 -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.accessibility.test.js +93 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +90 -183
- package/header/Header.stories.tsx +133 -38
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +5 -15
- package/header/types.d.ts +7 -21
- package/heading/Heading.accessibility.test.js +33 -0
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/icon/Icon.accessibility.test.js +30 -0
- package/icon/Icon.d.ts +4 -0
- package/icon/Icon.js +33 -0
- package/icon/Icon.stories.tsx +28 -0
- package/icon/types.d.ts +4 -0
- package/icon/types.js +5 -0
- package/image/Image.accessibility.test.js +56 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +129 -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 +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +57 -119
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +7 -5
- package/layout/Icons.js +41 -59
- package/layout/types.d.ts +21 -32
- package/link/Link.accessibility.test.js +108 -0
- package/link/Link.js +32 -51
- package/link/Link.stories.tsx +76 -9
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +14 -12
- package/main.js +51 -88
- package/nav-tabs/NavTabs.accessibility.test.js +44 -0
- package/nav-tabs/NavTabs.d.ts +7 -0
- package/{tabs-nav → nav-tabs}/NavTabs.js +30 -62
- package/nav-tabs/NavTabs.stories.tsx +279 -0
- package/nav-tabs/NavTabs.test.js +77 -0
- package/nav-tabs/NavTabsContext.d.ts +3 -0
- package/nav-tabs/NavTabsContext.js +8 -0
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +15 -16
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.accessibility.test.js +228 -0
- package/number-input/NumberInput.js +46 -36
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +860 -377
- package/number-input/NumberInputContext.d.ts +3 -4
- package/number-input/NumberInputContext.js +3 -14
- package/number-input/types.d.ts +17 -5
- package/package.json +51 -51
- package/paginator/Paginator.accessibility.test.js +79 -0
- package/paginator/Paginator.js +35 -68
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.accessibility.test.js +28 -0
- package/paragraph/Paragraph.d.ts +3 -4
- package/paragraph/Paragraph.js +7 -23
- package/paragraph/Paragraph.stories.tsx +1 -18
- package/password-input/PasswordInput.accessibility.test.js +153 -0
- package/password-input/PasswordInput.js +58 -127
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.accessibility.test.js +35 -0
- package/progress-bar/ProgressBar.js +68 -92
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.accessibility.test.js +57 -0
- package/quick-nav/QuickNav.js +24 -42
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.accessibility.test.js +97 -0
- package/radio-group/RadioGroup.js +68 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
- package/resultset-table/ResultsetTable.d.ts +7 -0
- package/resultset-table/ResultsetTable.js +171 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +168 -30
- package/resultset-table/ResultsetTable.test.js +381 -0
- package/{resultsetTable → resultset-table}/types.d.ts +44 -11
- package/resultset-table/types.js +5 -0
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +68 -65
- package/select/Option.js +35 -56
- package/select/Select.accessibility.test.js +228 -0
- package/select/Select.js +171 -214
- package/select/Select.stories.tsx +515 -190
- package/select/Select.test.js +1934 -1789
- package/select/types.d.ts +17 -21
- package/sidenav/Sidenav.accessibility.test.js +59 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +132 -78
- package/sidenav/Sidenav.stories.tsx +246 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/{layout → sidenav}/SidenavContext.d.ts +1 -1
- package/{layout → sidenav}/SidenavContext.js +3 -9
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.accessibility.test.js +104 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +149 -181
- package/slider/Slider.stories.tsx +64 -61
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.accessibility.test.js +96 -0
- package/spinner/Spinner.js +34 -74
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/status-light/StatusLight.accessibility.test.js +157 -0
- 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.accessibility.test.js +98 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +49 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/DropdownTheme.js +62 -0
- package/table/Table.accessibility.test.js +93 -0
- package/table/Table.d.ts +6 -2
- package/table/Table.js +78 -35
- package/table/Table.stories.tsx +663 -0
- package/table/Table.test.js +95 -8
- package/table/types.d.ts +34 -6
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +117 -0
- package/tabs/Tabs.accessibility.test.js +56 -0
- package/tabs/Tabs.js +303 -141
- package/tabs/Tabs.stories.tsx +124 -6
- package/tabs/Tabs.test.js +213 -77
- package/tabs/types.d.ts +30 -20
- package/tag/Tag.accessibility.test.js +69 -0
- package/tag/Tag.js +35 -67
- package/tag/Tag.stories.tsx +18 -8
- package/tag/Tag.test.js +18 -37
- package/tag/types.d.ts +9 -9
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +94 -0
- package/text-input/TextInput.accessibility.test.js +321 -0
- package/text-input/TextInput.js +316 -515
- package/text-input/TextInput.stories.tsx +276 -276
- package/text-input/TextInput.test.js +1419 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.accessibility.test.js +155 -0
- package/textarea/Textarea.js +71 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +94 -107
- package/toggle-group/ToggleGroup.stories.tsx +52 -7
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +28 -19
- package/typography/Typography.accessibility.test.js +339 -0
- package/typography/Typography.d.ts +2 -2
- package/typography/Typography.js +16 -124
- package/typography/Typography.stories.tsx +185 -162
- package/typography/types.d.ts +1 -1
- package/useTheme.d.ts +1144 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.accessibility.test.js +55 -0
- package/wizard/Wizard.js +34 -87
- package/wizard/Wizard.stories.tsx +59 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +9 -9
- package/card/ice-cream.jpg +0 -0
- package/common/OpenSans.css +0 -81
- package/common/RequiredComponent.js +0 -32
- package/common/fonts/OpenSans-Bold.ttf +0 -0
- package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/common/fonts/OpenSans-Italic.ttf +0 -0
- package/common/fonts/OpenSans-Light.ttf +0 -0
- package/common/fonts/OpenSans-LightItalic.ttf +0 -0
- package/common/fonts/OpenSans-Regular.ttf +0 -0
- package/common/fonts/OpenSans-SemiBold.ttf +0 -0
- package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/paginator/Icons.js +0 -66
- package/resultsetTable/ResultsetTable.d.ts +0 -4
- package/resultsetTable/ResultsetTable.js +0 -254
- package/resultsetTable/ResultsetTable.test.js +0 -306
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/select/Icons.d.ts +0 -10
- package/select/Icons.js +0 -93
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/table/Table.stories.jsx +0 -277
- package/tabs-nav/NavTabs.d.ts +0 -8
- package/tabs-nav/NavTabs.stories.tsx +0 -170
- package/tabs-nav/NavTabs.test.js +0 -82
- package/tabs-nav/Tab.js +0 -132
- package/textarea/Textarea.stories.jsx +0 -157
- package/typography/typographyContextTypes.d.ts +0 -16
- /package/{resultsetTable → action-icon}/types.js +0 -0
- /package/{row → breadcrumbs}/types.js +0 -0
- /package/{stack → container}/types.js +0 -0
- /package/{tabs-nav → contextual-menu}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → divider/types.js} +0 -0
- /package/{typography/typographyContextTypes.js → flex/types.js} +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
|
@@ -2,33 +2,78 @@ import React from "react";
|
|
|
2
2
|
import styled from "styled-components";
|
|
3
3
|
import DxcQuickNav from "./QuickNav";
|
|
4
4
|
import DxcHeading from "../heading/Heading";
|
|
5
|
-
import
|
|
5
|
+
import DxcParagraph from "../paragraph/Paragraph";
|
|
6
6
|
import Title from "../../.storybook/components/Title";
|
|
7
7
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
8
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
8
9
|
|
|
9
10
|
export default {
|
|
10
|
-
title: "
|
|
11
|
+
title: "Quick Nav",
|
|
11
12
|
component: DxcQuickNav,
|
|
12
13
|
};
|
|
13
14
|
|
|
15
|
+
const opinionatedTheme = {
|
|
16
|
+
quickNav: {
|
|
17
|
+
fontColor: "#666666",
|
|
18
|
+
accentColor: "#9a6bb2",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const defaultLinks = [
|
|
23
|
+
{
|
|
24
|
+
label: "Overview",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: "Principles",
|
|
28
|
+
links: [{ label: "Color" }, { label: "Spacing" }, { label: "Typography" }],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: "Components",
|
|
32
|
+
links: [
|
|
33
|
+
{
|
|
34
|
+
label: "Accordion",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: "Button",
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
|
|
14
43
|
const links = [
|
|
15
44
|
{
|
|
16
45
|
label: "Overview",
|
|
17
|
-
id: "overview",
|
|
18
46
|
links: [
|
|
19
47
|
{
|
|
20
48
|
label: "Introduction",
|
|
21
|
-
id: "introduction",
|
|
22
49
|
},
|
|
23
50
|
],
|
|
24
51
|
},
|
|
25
52
|
{
|
|
26
|
-
label: "
|
|
27
|
-
id: "principles",
|
|
53
|
+
label: "Components",
|
|
28
54
|
links: [
|
|
29
|
-
{
|
|
30
|
-
|
|
31
|
-
|
|
55
|
+
{
|
|
56
|
+
label: "Introduction",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: "Accordion",
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
label: "Principles very very very very very very very very long",
|
|
65
|
+
links: [
|
|
66
|
+
{ label: "Color very very very very very very very very long" },
|
|
67
|
+
{ label: "Spacingveryveryveryveryveryveryveryverylong" },
|
|
68
|
+
{ label: "Typography" },
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
label: "Componentsveryveryveryveryveryveryveryverylong",
|
|
73
|
+
links: [
|
|
74
|
+
{
|
|
75
|
+
label: "Accordion",
|
|
76
|
+
},
|
|
32
77
|
],
|
|
33
78
|
},
|
|
34
79
|
];
|
|
@@ -38,13 +83,25 @@ export const Chromatic = () => (
|
|
|
38
83
|
<ExampleContainer>
|
|
39
84
|
<Title title="Default" level={4} />
|
|
40
85
|
<QuickNavContainer>
|
|
41
|
-
<DxcQuickNav links={
|
|
86
|
+
<DxcQuickNav links={defaultLinks} />
|
|
87
|
+
</QuickNavContainer>
|
|
88
|
+
</ExampleContainer>
|
|
89
|
+
<ExampleContainer>
|
|
90
|
+
<Title title="Text overflow" level={4} />
|
|
91
|
+
<QuickNavContainer>
|
|
92
|
+
<DxcQuickNav links={links} />
|
|
42
93
|
</QuickNavContainer>
|
|
43
94
|
</ExampleContainer>
|
|
44
95
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
45
96
|
<Title title="Link hovered" level={4} />
|
|
46
97
|
<QuickNavContainer>
|
|
47
|
-
<DxcQuickNav links={links}
|
|
98
|
+
<DxcQuickNav links={links} />
|
|
99
|
+
</QuickNavContainer>
|
|
100
|
+
</ExampleContainer>
|
|
101
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
102
|
+
<Title title="Link focus" level={4} />
|
|
103
|
+
<QuickNavContainer>
|
|
104
|
+
<DxcQuickNav links={links} />
|
|
48
105
|
</QuickNavContainer>
|
|
49
106
|
</ExampleContainer>
|
|
50
107
|
<ExampleContainer>
|
|
@@ -53,7 +110,7 @@ export const Chromatic = () => (
|
|
|
53
110
|
<ContentContainer>
|
|
54
111
|
<Content id="overview">
|
|
55
112
|
<DxcHeading level={1} text="Overview" margin={{ bottom: "small" }} />
|
|
56
|
-
<
|
|
113
|
+
<DxcParagraph>
|
|
57
114
|
Halstack is the DXC Technology's open source design system for insurance products and digital experiences.
|
|
58
115
|
Our system provides all the tools and resources needed to create superior, beautiful but above all,
|
|
59
116
|
functional user experiences. Halstack is the DXC Technology's open source design system for insurance
|
|
@@ -70,10 +127,10 @@ export const Chromatic = () => (
|
|
|
70
127
|
create superior, beautiful but above all, functional user experiences.Halstack is the DXC Technology's
|
|
71
128
|
open source design system for insurance products and digital experiences. Our system provides all the
|
|
72
129
|
tools and resources needed to create superior, beautiful but above all, functional user experiences.
|
|
73
|
-
</
|
|
74
|
-
<Content id="introduction">
|
|
130
|
+
</DxcParagraph>
|
|
131
|
+
<Content id="overview-introduction">
|
|
75
132
|
<DxcHeading level={2} text="Introduction" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
76
|
-
<
|
|
133
|
+
<DxcParagraph>
|
|
77
134
|
Design principles Halstack design principles are the fundamental part of DXC Technology's approach to
|
|
78
135
|
provide guidance for development teams in order to deliver delightful and consistent user experiences to
|
|
79
136
|
our customers: Balance Consistency Visual hierarchy All our components, design tokens, accessibility
|
|
@@ -103,14 +160,59 @@ export const Chromatic = () => (
|
|
|
103
160
|
to use and contribute back to. We are charmed to receive external contributions to help us find bugs,
|
|
104
161
|
design new features, or help us improve the project documentation. If you're interested, definitely
|
|
105
162
|
check out our contribution guidelines.
|
|
106
|
-
</
|
|
163
|
+
</DxcParagraph>
|
|
107
164
|
</Content>
|
|
108
165
|
</Content>
|
|
109
|
-
<Content id="
|
|
166
|
+
<Content id="components">
|
|
167
|
+
<DxcHeading level={1} text="Components" margin={{ top: "small", bottom: "xsmall" }} />
|
|
168
|
+
<Content id="components-introduction">
|
|
169
|
+
<DxcHeading level={2} text="Introduction" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
170
|
+
<DxcParagraph>
|
|
171
|
+
Design principles Halstack design principles are the fundamental part of DXC Technology's approach to
|
|
172
|
+
provide guidance for development teams in order to deliver delightful and consistent user experiences to
|
|
173
|
+
our customers: Balance Consistency Visual hierarchy All our components, design tokens, accessibility
|
|
174
|
+
guidelines, responsive design techniques, and layout proposals have been carefully curated by DXC design
|
|
175
|
+
and engineering teams with the objective of creating a unique visual language and ecosystem for our
|
|
176
|
+
applications. This is the DXC way of creating User Experiences. Open Source Halstack is an open source
|
|
177
|
+
design system, this means that we work towards DXC Technology bussines needs, but it is open for anyone
|
|
178
|
+
to use and contribute back to. We are charmed to receive external contributions to help us find bugs,
|
|
179
|
+
design new features, or help us improve the project documentation. If you're interested, definitely
|
|
180
|
+
check out our contribution guidelines.Design principles Halstack design principles are the fundamental
|
|
181
|
+
part of DXC Technology's approach to provide guidance for development teams in order to deliver
|
|
182
|
+
delightful and consistent user experiences to our customers: Balance Consistency Visual hierarchy All
|
|
183
|
+
our components, design tokens, accessibility guidelines, responsive design techniques, and layout
|
|
184
|
+
proposals have been carefully curated by DXC design and engineering teams with the objective of creating
|
|
185
|
+
a unique visual language and ecosystem for our applications. This is the DXC way of creating User
|
|
186
|
+
Experiences. Open Source Halstack is an open source design system, this means that we work towards DXC
|
|
187
|
+
Technology bussines needs, but it is open for anyone to use and contribute back to. We are charmed to
|
|
188
|
+
receive external contributions to help us find bugs, design new features, or help us improve the project
|
|
189
|
+
documentation. If you're interested, definitely check out our contribution guidelines.Design principles
|
|
190
|
+
Halstack design principles are the fundamental part of DXC Technology's approach to provide guidance for
|
|
191
|
+
development teams in order to deliver delightful and consistent user experiences to our customers:
|
|
192
|
+
Balance Consistency Visual hierarchy All our components, design tokens, accessibility guidelines,
|
|
193
|
+
responsive design techniques, and layout proposals have been carefully curated by DXC design and
|
|
194
|
+
engineering teams with the objective of creating a unique visual language and ecosystem for our
|
|
195
|
+
applications. This is the DXC way of creating User Experiences. Open Source Halstack is an open source
|
|
196
|
+
design system, this means that we work towards DXC Technology bussines needs, but it is open for anyone
|
|
197
|
+
to use and contribute back to. We are charmed to receive external contributions to help us find bugs,
|
|
198
|
+
design new features, or help us improve the project documentation. If you're interested, definitely
|
|
199
|
+
check out our contribution guidelines.
|
|
200
|
+
</DxcParagraph>
|
|
201
|
+
</Content>
|
|
202
|
+
<Content id="components-accordion">
|
|
203
|
+
<DxcHeading level={2} text="Accordion" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
204
|
+
<DxcParagraph>
|
|
205
|
+
Accordions are used to group similar content and hide or show it depending on user needs or preferences.
|
|
206
|
+
Accordions give users more granular control over the interface and help digest content in stages, rather
|
|
207
|
+
than all at once.
|
|
208
|
+
</DxcParagraph>
|
|
209
|
+
</Content>
|
|
210
|
+
</Content>
|
|
211
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long">
|
|
110
212
|
<DxcHeading level={1} text="Principles" margin={{ top: "small", bottom: "xsmall" }} />
|
|
111
|
-
<Content id="color">
|
|
213
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-color-very-very-very-very-very-very-very-very-long">
|
|
112
214
|
<DxcHeading level={2} text="Color" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
113
|
-
<
|
|
215
|
+
<DxcParagraph>
|
|
114
216
|
The color palette is an essential asset as a communication resource of our design system. Halstack color
|
|
115
217
|
palette brings a unified consistency and helps in guiding the user's perception order. Our color palette
|
|
116
218
|
is based in the HSL model . All our color families are calculated using the lightness value of the
|
|
@@ -143,11 +245,11 @@ export const Chromatic = () => (
|
|
|
143
245
|
tokens to manage color. Appart from a multi-purpose greyscale family, purple and blue are the core color
|
|
144
246
|
families used in our set of components. Additional families as red, green and yellow help as feedback
|
|
145
247
|
role-based color palettes and must not be used outside this context.
|
|
146
|
-
</
|
|
248
|
+
</DxcParagraph>
|
|
147
249
|
</Content>
|
|
148
|
-
<Content id="
|
|
250
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-spacingveryveryveryveryveryveryveryverylong">
|
|
149
251
|
<DxcHeading level={2} text="Spacing" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
150
|
-
<
|
|
252
|
+
<DxcParagraph>
|
|
151
253
|
In the search of consistent alignment between the elements we provide a spacing scale based on a root
|
|
152
254
|
values of 8px and 4px. The numbers 4 and 8 are easily multiplied, they provide flexible and consistent,
|
|
153
255
|
yet distinct enough, steps between them.In the search of consistent alignment between the elements we
|
|
@@ -165,11 +267,11 @@ export const Chromatic = () => (
|
|
|
165
267
|
consistent, yet distinct enough, steps between them.In the search of consistent alignment between the
|
|
166
268
|
elements we provide a spacing scale based on a root values of 8px and 4px. The numbers 4 and 8 are
|
|
167
269
|
easily multiplied, they provide flexible and consistent, yet distinct enough, steps between them.
|
|
168
|
-
</
|
|
270
|
+
</DxcParagraph>
|
|
169
271
|
</Content>
|
|
170
|
-
<Content id="typography">
|
|
272
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-typography">
|
|
171
273
|
<DxcHeading level={2} text="Typography" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
172
|
-
<
|
|
274
|
+
<DxcParagraph>
|
|
173
275
|
Our selected typography helps in structuring our user's experience based on the visual impact that it
|
|
174
276
|
has on the user interface content. It defines what is the first noticeable piece of information or data
|
|
175
277
|
based on the font shape, size, color, or type and it highlights some pieces of text over the rest. Some
|
|
@@ -201,15 +303,32 @@ export const Chromatic = () => (
|
|
|
201
303
|
Halstack Design System include headers, body, taglines, captions, and labels. Make sure you include all
|
|
202
304
|
the different typographic variants in order to enhance the application's content structure, including
|
|
203
305
|
the Heading component which defines different levels of page and section titles.
|
|
204
|
-
</
|
|
306
|
+
</DxcParagraph>
|
|
307
|
+
</Content>
|
|
308
|
+
</Content>
|
|
309
|
+
<Content id="componentsveryveryveryveryveryveryveryverylong">
|
|
310
|
+
<DxcHeading level={1} text="Components" margin={{ top: "small", bottom: "xsmall" }} />
|
|
311
|
+
<Content id="componentsveryveryveryveryveryveryveryverylong-accordion">
|
|
312
|
+
<DxcHeading level={2} text="Accordion" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
313
|
+
<DxcParagraph>
|
|
314
|
+
Accordions are used to group similar content and hide or show it depending on user needs or preferences.
|
|
315
|
+
Accordions give users more granular control over the interface and help digest content in stages, rather
|
|
316
|
+
than all at once.
|
|
317
|
+
</DxcParagraph>
|
|
205
318
|
</Content>
|
|
206
319
|
</Content>
|
|
207
320
|
</ContentContainer>
|
|
208
321
|
<QuickNavContainer>
|
|
209
|
-
<DxcQuickNav title="Sections" links={links}
|
|
322
|
+
<DxcQuickNav title="Sections" links={links} />
|
|
210
323
|
</QuickNavContainer>
|
|
211
324
|
</Container>
|
|
212
325
|
</ExampleContainer>
|
|
326
|
+
<Title title="Opinionated theme" level={2} />
|
|
327
|
+
<ExampleContainer>
|
|
328
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
329
|
+
<DxcQuickNav links={defaultLinks} />
|
|
330
|
+
</HalstackProvider>
|
|
331
|
+
</ExampleContainer>
|
|
213
332
|
</>
|
|
214
333
|
);
|
|
215
334
|
|
package/quick-nav/types.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
type Link = {
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Label to be shown in the link.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
label: string;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Sublinks of the link.
|
|
8
8
|
*/
|
|
9
|
-
links
|
|
9
|
+
links?: Link[];
|
|
10
10
|
};
|
|
11
|
-
|
|
11
|
+
type Props = {
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Title of the quick nav component.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
title?: string;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Links to be shown inside the quick nav component.
|
|
18
18
|
*/
|
|
19
|
-
links
|
|
19
|
+
links: Link[];
|
|
20
20
|
};
|
|
21
21
|
export default Props;
|
package/radio-group/Radio.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { RadioProps } from "./types";
|
|
3
|
-
declare const _default: React.MemoExoticComponent<({
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ label, checked, onClick, error, disabled, focused, readOnly, tabIndex, }: RadioProps) => JSX.Element>;
|
|
4
4
|
export default _default;
|
package/radio-group/Radio.js
CHANGED
|
@@ -1,126 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
|
|
16
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
-
|
|
18
12
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
19
|
-
|
|
20
13
|
var _uuid = require("uuid");
|
|
21
|
-
|
|
22
14
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
23
|
-
|
|
24
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5
|
|
25
|
-
|
|
26
|
-
function
|
|
27
|
-
|
|
28
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
-
|
|
15
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
18
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
30
19
|
var DxcRadio = function DxcRadio(_ref) {
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
readonly = _ref.readonly,
|
|
40
|
-
tabIndex = _ref.tabIndex;
|
|
41
|
-
|
|
20
|
+
var label = _ref.label,
|
|
21
|
+
checked = _ref.checked,
|
|
22
|
+
onClick = _ref.onClick,
|
|
23
|
+
error = _ref.error,
|
|
24
|
+
disabled = _ref.disabled,
|
|
25
|
+
focused = _ref.focused,
|
|
26
|
+
readOnly = _ref.readOnly,
|
|
27
|
+
tabIndex = _ref.tabIndex;
|
|
42
28
|
var _useState = (0, _react.useState)("radio-".concat((0, _uuid.v4)())),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
29
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
30
|
+
radioLabelId = _useState2[0];
|
|
46
31
|
var ref = (0, _react.useRef)(null);
|
|
47
32
|
var colorsTheme = (0, _useTheme["default"])();
|
|
48
|
-
|
|
49
33
|
var handleOnClick = function handleOnClick() {
|
|
50
34
|
var _ref$current;
|
|
51
|
-
|
|
52
35
|
onClick();
|
|
53
|
-
|
|
36
|
+
document.activeElement !== (ref === null || ref === void 0 ? void 0 : ref.current) && (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus());
|
|
54
37
|
};
|
|
55
|
-
|
|
56
38
|
var _useState3 = (0, _react.useState)(true),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
(0, _react.useLayoutEffect)(function () {
|
|
39
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
40
|
+
firstUpdate = _useState4[0],
|
|
41
|
+
setFirstUpdate = _useState4[1];
|
|
42
|
+
(0, _react.useEffect)(function () {
|
|
62
43
|
var _ref$current2;
|
|
63
|
-
|
|
64
44
|
// Don't apply in the first render
|
|
65
45
|
if (firstUpdate) {
|
|
66
46
|
setFirstUpdate(false);
|
|
67
47
|
return;
|
|
68
48
|
}
|
|
69
|
-
|
|
70
49
|
focused && (ref === null || ref === void 0 ? void 0 : (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : _ref$current2.focus());
|
|
71
50
|
}, [focused]);
|
|
72
51
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
73
52
|
theme: colorsTheme.radioGroup
|
|
74
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
53
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(RadioContainer, {
|
|
75
54
|
error: error,
|
|
76
55
|
disabled: disabled,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// Prevents div's onClick from stealing the radio input's focus
|
|
80
|
-
event.preventDefault();
|
|
81
|
-
},
|
|
82
|
-
onClick: handleOnClick
|
|
56
|
+
readOnly: readOnly,
|
|
57
|
+
onClick: disabled ? undefined : handleOnClick
|
|
83
58
|
}, /*#__PURE__*/_react["default"].createElement(RadioInputContainer, null, /*#__PURE__*/_react["default"].createElement(RadioInput, {
|
|
84
59
|
error: error,
|
|
85
60
|
disabled: disabled,
|
|
86
|
-
|
|
61
|
+
readOnly: readOnly,
|
|
87
62
|
role: "radio",
|
|
88
|
-
"aria-checked":
|
|
89
|
-
"aria-disabled":
|
|
63
|
+
"aria-checked": checked,
|
|
64
|
+
"aria-disabled": disabled,
|
|
90
65
|
"aria-labelledby": radioLabelId,
|
|
91
66
|
tabIndex: disabled ? -1 : focused ? tabIndex : -1,
|
|
92
67
|
ref: ref
|
|
93
|
-
},
|
|
68
|
+
}, checked && /*#__PURE__*/_react["default"].createElement(Dot, {
|
|
94
69
|
disabled: disabled,
|
|
95
|
-
|
|
70
|
+
readOnly: readOnly,
|
|
96
71
|
error: error
|
|
97
72
|
}))), /*#__PURE__*/_react["default"].createElement(Label, {
|
|
98
73
|
id: radioLabelId,
|
|
99
74
|
disabled: disabled
|
|
100
|
-
},
|
|
75
|
+
}, label))));
|
|
101
76
|
};
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
77
|
+
var getRadioInputStateColor = function getRadioInputStateColor(props, state) {
|
|
78
|
+
switch (state) {
|
|
79
|
+
case "enabled":
|
|
80
|
+
return props.disabled ? props.theme.disabledRadioInputColor : props.error ? props.theme.errorRadioInputColor : props.readOnly ? props.theme.readOnlyRadioInputColor : props.theme.radioInputColor;
|
|
81
|
+
case "hover":
|
|
82
|
+
return props.error ? props.theme.hoverErrorRadioInputColor : props.readOnly ? props.theme.hoverReadOnlyRadioInputColor : props.theme.hoverRadioInputColor;
|
|
83
|
+
case "active":
|
|
84
|
+
return props.error ? props.theme.activeErrorRadioInputColor : props.readOnly ? props.theme.activeReadOnlyRadioInputColor : props.theme.activeRadioInputColor;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
var RadioInputContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
|
|
88
|
+
var RadioInput = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid ", ";\n border-radius: 50%;\n\n &:focus {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n ", "\n"])), function (props) {
|
|
89
|
+
return getRadioInputStateColor(props, "enabled");
|
|
107
90
|
}, function (props) {
|
|
108
|
-
return
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
var RadioInputContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n height: 24px;\n width: 24px;\n"])));
|
|
112
|
-
|
|
113
|
-
var RadioInput = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid\n ", ";\n border-radius: 50%;\n\n ", "\n"])), function (props) {
|
|
114
|
-
if (props.disabled) return props.theme.disabledRadioInputColor;else if (props.error) return props.theme.errorRadioInputColor;else if (props.readonly) return props.theme.readonlyRadioInputColor;else return props.theme.radioInputColor;
|
|
91
|
+
return props.theme.focusBorderColor;
|
|
115
92
|
}, function (props) {
|
|
116
|
-
return
|
|
93
|
+
return props.disabled && "pointer-events: none;";
|
|
117
94
|
});
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (props.disabled) return props.theme.disabledRadioInputColor;else if (props.error) return props.theme.errorRadioInputColor;else if (props.readonly) return props.theme.readonlyRadioInputColor;else return props.theme.radioInputColor;
|
|
95
|
+
var Dot = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n height: 10px;\n width: 10px;\n border-radius: 50%;\n background-color: ", ";\n"])), function (props) {
|
|
96
|
+
return getRadioInputStateColor(props, "enabled");
|
|
121
97
|
});
|
|
122
|
-
|
|
123
|
-
var Label = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
|
|
98
|
+
var Label = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: ", ";\n ", "\n"])), function (props) {
|
|
124
99
|
return props.theme.radioInputLabelMargin;
|
|
125
100
|
}, function (props) {
|
|
126
101
|
return props.theme.fontFamily;
|
|
@@ -133,9 +108,17 @@ var Label = _styledComponents["default"].span(_templateObject6 || (_templateObje
|
|
|
133
108
|
}, function (props) {
|
|
134
109
|
return props.theme.radioInputLabelLineHeight;
|
|
135
110
|
}, function (props) {
|
|
136
|
-
return props.disabled ? "color: ".concat(props.theme.disabledRadioInputLabelFontColor, ";
|
|
111
|
+
return props.disabled ? "color: ".concat(props.theme.disabledRadioInputLabelFontColor, ";") : "color: ".concat(props.theme.radioInputLabelFontColor);
|
|
137
112
|
});
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
113
|
+
var RadioContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n\n &:hover {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n &:active {\n ", " {\n border-color: ", ";\n }\n ", " {\n background-color: ", ";\n }\n }\n"])), function (props) {
|
|
114
|
+
return props.disabled ? "not-allowed" : props.readOnly ? "default" : "pointer";
|
|
115
|
+
}, RadioInput, function (props) {
|
|
116
|
+
return !props.disabled && getRadioInputStateColor(props, "hover");
|
|
117
|
+
}, Dot, function (props) {
|
|
118
|
+
return !props.disabled && getRadioInputStateColor(props, "hover");
|
|
119
|
+
}, RadioInput, function (props) {
|
|
120
|
+
return !props.disabled && getRadioInputStateColor(props, "active");
|
|
121
|
+
}, Dot, function (props) {
|
|
122
|
+
return !props.disabled && getRadioInputStateColor(props, "active");
|
|
123
|
+
});
|
|
124
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(DxcRadio);
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
9
|
+
var _RadioGroup = _interopRequireDefault(require("./RadioGroup.tsx"));
|
|
10
|
+
var options = [{
|
|
11
|
+
label: "Option 01",
|
|
12
|
+
value: "1"
|
|
13
|
+
}, {
|
|
14
|
+
label: "Option 02",
|
|
15
|
+
value: "2"
|
|
16
|
+
}, {
|
|
17
|
+
label: "Option 03",
|
|
18
|
+
value: "3"
|
|
19
|
+
}, {
|
|
20
|
+
label: "Option 04",
|
|
21
|
+
value: "4"
|
|
22
|
+
}, {
|
|
23
|
+
label: "Option 05",
|
|
24
|
+
value: "5",
|
|
25
|
+
disabled: true
|
|
26
|
+
}, {
|
|
27
|
+
label: "Option 06",
|
|
28
|
+
value: "6",
|
|
29
|
+
disabled: true
|
|
30
|
+
}, {
|
|
31
|
+
label: "Option 07",
|
|
32
|
+
value: "7",
|
|
33
|
+
disabled: true
|
|
34
|
+
}, {
|
|
35
|
+
label: "Option 08",
|
|
36
|
+
value: "8",
|
|
37
|
+
disabled: true
|
|
38
|
+
}, {
|
|
39
|
+
label: "Option 09",
|
|
40
|
+
value: "9"
|
|
41
|
+
}];
|
|
42
|
+
describe("Radio Group component accessibility tests", function () {
|
|
43
|
+
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
44
|
+
var _render, container, results;
|
|
45
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
49
|
+
label: "test-radioGroup-label",
|
|
50
|
+
options: options,
|
|
51
|
+
error: "Error",
|
|
52
|
+
defaultValue: "3",
|
|
53
|
+
helperText: "Helper Text",
|
|
54
|
+
name: "Name",
|
|
55
|
+
stacking: "row",
|
|
56
|
+
optionalItemLabel: "Optional",
|
|
57
|
+
optional: true
|
|
58
|
+
})), container = _render.container;
|
|
59
|
+
_context.next = 3;
|
|
60
|
+
return (0, _axeHelper.axe)(container);
|
|
61
|
+
case 3:
|
|
62
|
+
results = _context.sent;
|
|
63
|
+
expect(results).toHaveNoViolations();
|
|
64
|
+
case 5:
|
|
65
|
+
case "end":
|
|
66
|
+
return _context.stop();
|
|
67
|
+
}
|
|
68
|
+
}, _callee);
|
|
69
|
+
})));
|
|
70
|
+
it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
71
|
+
var _render2, container, results;
|
|
72
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
73
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
74
|
+
case 0:
|
|
75
|
+
_render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
|
|
76
|
+
label: "test-radioGroup-label",
|
|
77
|
+
options: options,
|
|
78
|
+
error: "Error",
|
|
79
|
+
defaultValue: "3",
|
|
80
|
+
helperText: "Helper Text",
|
|
81
|
+
name: "Name",
|
|
82
|
+
stacking: "row",
|
|
83
|
+
optionalItemLabel: "Optional",
|
|
84
|
+
readOnly: true
|
|
85
|
+
})), container = _render2.container;
|
|
86
|
+
_context2.next = 3;
|
|
87
|
+
return (0, _axeHelper.axe)(container);
|
|
88
|
+
case 3:
|
|
89
|
+
results = _context2.sent;
|
|
90
|
+
expect(results).toHaveNoViolations();
|
|
91
|
+
case 5:
|
|
92
|
+
case "end":
|
|
93
|
+
return _context2.stop();
|
|
94
|
+
}
|
|
95
|
+
}, _callee2);
|
|
96
|
+
})));
|
|
97
|
+
});
|