@dxc-technology/halstack-react 0.0.0-efa7c74 → 0.0.0-f00a97a
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 +10 -0
- package/BackgroundColorContext.js +1 -4
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +15 -47
- package/accordion/Accordion.stories.tsx +307 -0
- package/accordion/Accordion.test.js +72 -0
- package/accordion/types.d.ts +8 -8
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +16 -17
- package/accordion-group/AccordionGroup.stories.tsx +225 -0
- package/accordion-group/AccordionGroup.test.js +151 -0
- package/accordion-group/types.d.ts +8 -8
- package/alert/Alert.js +6 -3
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -4
- package/badge/types.d.ts +5 -0
- package/{radio → badge}/types.js +0 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +341 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.js +24 -34
- package/box/Box.test.js +18 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +59 -82
- package/button/Button.stories.tsx +15 -8
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +8 -12
- package/card/Card.js +25 -28
- package/card/Card.stories.tsx +1 -1
- package/card/Card.test.js +50 -0
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +45 -41
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/Checkbox.test.js +78 -0
- package/checkbox/types.d.ts +8 -4
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +6 -8
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +282 -355
- package/date-input/DateInput.js +66 -55
- package/date-input/DateInput.stories.tsx +7 -7
- package/date-input/DateInput.test.js +479 -0
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +50 -53
- package/dialog/Dialog.stories.tsx +1 -2
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +2 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +242 -272
- package/dropdown/Dropdown.stories.tsx +312 -0
- package/dropdown/Dropdown.test.js +591 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +30 -19
- package/file-input/FileInput.d.ts +1 -1
- package/file-input/FileInput.js +165 -83
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.js +12 -8
- package/file-input/types.d.ts +32 -7
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +21 -0
- package/flex/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +32 -113
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +4 -4
- package/footer/types.d.ts +21 -17
- package/header/Header.js +97 -116
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +79 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +2 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.stories.tsx +3 -2
- package/heading/Heading.test.js +186 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +20 -0
- package/layout/ApplicationLayout.js +71 -135
- package/layout/ApplicationLayout.stories.tsx +161 -0
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +42 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -86
- package/link/Link.stories.tsx +99 -52
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +9 -29
- package/main.d.ts +12 -12
- package/main.js +64 -58
- package/number-input/NumberInput.js +14 -24
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +506 -0
- package/number-input/types.d.ts +17 -10
- package/package.json +14 -10
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.test.js +308 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +23 -19
- package/password-input/PasswordInput.stories.tsx +3 -3
- package/password-input/PasswordInput.test.js +180 -0
- package/password-input/types.d.ts +26 -21
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +59 -53
- package/progress-bar/ProgressBar.stories.jsx +13 -11
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +118 -0
- package/quick-nav/QuickNav.stories.tsx +264 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +141 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +281 -0
- package/radio-group/RadioGroup.stories.tsx +100 -0
- package/radio-group/RadioGroup.test.js +695 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/ResultsetTable.d.ts +1 -1
- package/resultsetTable/ResultsetTable.js +9 -4
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/resultsetTable/types.d.ts +6 -2
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +199 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +158 -380
- package/select/Select.stories.tsx +231 -176
- package/select/Select.test.js +2175 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +186 -54
- package/sidenav/Sidenav.stories.tsx +154 -139
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +7 -6
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +187 -0
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +3 -3
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +129 -57
- package/switch/Switch.stories.tsx +21 -43
- package/switch/Switch.test.js +212 -0
- package/switch/types.d.ts +9 -6
- package/table/Table.js +2 -2
- package/table/Table.stories.jsx +2 -1
- package/table/Table.test.js +26 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +17 -19
- package/tabs/Tabs.stories.tsx +7 -16
- package/tabs/Tabs.test.js +140 -0
- package/tabs/types.d.ts +27 -15
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +18 -28
- package/tag/Tag.stories.tsx +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +23 -14
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +55 -0
- package/text-input/TextInput.js +100 -124
- package/text-input/TextInput.stories.tsx +473 -0
- package/text-input/TextInput.test.js +1712 -0
- package/text-input/types.d.ts +44 -23
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +39 -79
- package/textarea/Textarea.stories.jsx +37 -15
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +137 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +15 -17
- package/toggle-group/ToggleGroup.stories.tsx +27 -32
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +47 -26
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +2 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +112 -58
- package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +33 -24
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +13 -12
- package/ThemeContext.js +0 -246
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/chip/index.d.ts +0 -22
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/select/index.d.ts +0 -131
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import styled from "styled-components";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
5
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
+
import DxcBulletedList from "./BulletedList";
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
title: "BulletedList",
|
|
10
|
+
component: DxcBulletedList,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const icon = (
|
|
14
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
|
|
15
|
+
<path d="M0 0h24v24H0V0z" fill="none" />
|
|
16
|
+
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
|
|
17
|
+
</svg>
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
export const Chromatic = () => (
|
|
21
|
+
<>
|
|
22
|
+
<ExampleContainer>
|
|
23
|
+
<Title title="Icon list" level={4} />
|
|
24
|
+
<DxcBulletedList type="icon" icon={icon}>
|
|
25
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
26
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
27
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
28
|
+
</DxcBulletedList>
|
|
29
|
+
<Title title="Number list" level={4} />
|
|
30
|
+
<DxcBulletedList type="number">
|
|
31
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
32
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
33
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
34
|
+
</DxcBulletedList>
|
|
35
|
+
<Title title="Square" level={4} />
|
|
36
|
+
<DxcBulletedList type="square">
|
|
37
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
38
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
39
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
40
|
+
</DxcBulletedList>
|
|
41
|
+
<Title title="Circle" level={4} />
|
|
42
|
+
<DxcBulletedList type="circle">
|
|
43
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
44
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
45
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
46
|
+
</DxcBulletedList>
|
|
47
|
+
<Title title="Disc" level={4} />
|
|
48
|
+
<DxcBulletedList>
|
|
49
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
50
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
51
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
52
|
+
</DxcBulletedList>
|
|
53
|
+
<Title title="Multiple lines" level={4} />
|
|
54
|
+
<Container>
|
|
55
|
+
<Title title="Number" level={4} />
|
|
56
|
+
<DxcBulletedList type="number">
|
|
57
|
+
<DxcBulletedList.Item>
|
|
58
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
59
|
+
dolore magna aliqua.
|
|
60
|
+
</DxcBulletedList.Item>
|
|
61
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
62
|
+
</DxcBulletedList>
|
|
63
|
+
</Container>
|
|
64
|
+
<Container>
|
|
65
|
+
<Title title="Square" level={4} />
|
|
66
|
+
<DxcBulletedList type="square">
|
|
67
|
+
<DxcBulletedList.Item>
|
|
68
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
69
|
+
dolore magna aliqua.
|
|
70
|
+
</DxcBulletedList.Item>
|
|
71
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
72
|
+
</DxcBulletedList>
|
|
73
|
+
</Container>
|
|
74
|
+
<Container>
|
|
75
|
+
<Title title="Circle" level={4} />
|
|
76
|
+
<DxcBulletedList type="circle">
|
|
77
|
+
<DxcBulletedList.Item>
|
|
78
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
79
|
+
dolore magna aliqua.
|
|
80
|
+
</DxcBulletedList.Item>
|
|
81
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
82
|
+
</DxcBulletedList>
|
|
83
|
+
</Container>
|
|
84
|
+
<Title title="Disc" level={4} />
|
|
85
|
+
<Container>
|
|
86
|
+
<DxcBulletedList>
|
|
87
|
+
<DxcBulletedList.Item>
|
|
88
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
89
|
+
dolore magna aliqua.
|
|
90
|
+
</DxcBulletedList.Item>
|
|
91
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
92
|
+
</DxcBulletedList>
|
|
93
|
+
</Container>
|
|
94
|
+
<Container>
|
|
95
|
+
<Title title="Icon" level={4} />
|
|
96
|
+
<DxcBulletedList type="icon" icon={icon}>
|
|
97
|
+
<DxcBulletedList.Item>
|
|
98
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
99
|
+
dolore magna aliqua.
|
|
100
|
+
</DxcBulletedList.Item>
|
|
101
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
102
|
+
</DxcBulletedList>
|
|
103
|
+
</Container>
|
|
104
|
+
</ExampleContainer>
|
|
105
|
+
<BackgroundColorProvider color="#333333">
|
|
106
|
+
<DarkContainerForBulletedList>
|
|
107
|
+
<Title title="Icon list" theme="dark" level={4} />
|
|
108
|
+
<DxcBulletedList type="icon" icon={icon}>
|
|
109
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
110
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
111
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
112
|
+
</DxcBulletedList>
|
|
113
|
+
<Title title="Number list" theme="dark" level={4} />
|
|
114
|
+
<DxcBulletedList type="number">
|
|
115
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
116
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
117
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
118
|
+
</DxcBulletedList>
|
|
119
|
+
<Title title="Square" theme="dark" level={4} />
|
|
120
|
+
<DxcBulletedList type="square">
|
|
121
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
122
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
123
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
124
|
+
</DxcBulletedList>
|
|
125
|
+
<Title title="Circle" theme="dark" level={4} />
|
|
126
|
+
<DxcBulletedList type="circle">
|
|
127
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
128
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
129
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
130
|
+
</DxcBulletedList>
|
|
131
|
+
<Title title="Disc" theme="dark" level={4} />
|
|
132
|
+
<DxcBulletedList>
|
|
133
|
+
<DxcBulletedList.Item>Code</DxcBulletedList.Item>
|
|
134
|
+
<DxcBulletedList.Item>Usage</DxcBulletedList.Item>
|
|
135
|
+
<DxcBulletedList.Item>Specifications</DxcBulletedList.Item>
|
|
136
|
+
</DxcBulletedList>
|
|
137
|
+
<Title title="Multiple lines" theme="dark" level={4} />
|
|
138
|
+
<Container>
|
|
139
|
+
<Title title="Number" theme="dark" level={4} />
|
|
140
|
+
<DxcBulletedList type="number">
|
|
141
|
+
<DxcBulletedList.Item>
|
|
142
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
143
|
+
dolore magna aliqua.
|
|
144
|
+
</DxcBulletedList.Item>
|
|
145
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
146
|
+
</DxcBulletedList>
|
|
147
|
+
</Container>
|
|
148
|
+
<Container>
|
|
149
|
+
<Title title="Square" theme="dark" level={4} />
|
|
150
|
+
<DxcBulletedList type="square">
|
|
151
|
+
<DxcBulletedList.Item>
|
|
152
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
153
|
+
dolore magna aliqua.
|
|
154
|
+
</DxcBulletedList.Item>
|
|
155
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
156
|
+
</DxcBulletedList>
|
|
157
|
+
</Container>
|
|
158
|
+
<Container>
|
|
159
|
+
<Title title="Circle" theme="dark" level={4} />
|
|
160
|
+
<DxcBulletedList type="circle">
|
|
161
|
+
<DxcBulletedList.Item>
|
|
162
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
163
|
+
dolore magna aliqua.
|
|
164
|
+
</DxcBulletedList.Item>
|
|
165
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
166
|
+
</DxcBulletedList>
|
|
167
|
+
</Container>
|
|
168
|
+
<Title title="Disc" theme="dark" level={4} />
|
|
169
|
+
<Container>
|
|
170
|
+
<DxcBulletedList>
|
|
171
|
+
<DxcBulletedList.Item>
|
|
172
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
173
|
+
dolore magna aliqua.
|
|
174
|
+
</DxcBulletedList.Item>
|
|
175
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
176
|
+
</DxcBulletedList>
|
|
177
|
+
</Container>
|
|
178
|
+
<Container>
|
|
179
|
+
<Title title="Icon" theme="dark" level={4} />
|
|
180
|
+
<DxcBulletedList type="icon" icon={icon}>
|
|
181
|
+
<DxcBulletedList.Item>
|
|
182
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
|
183
|
+
dolore magna aliqua.
|
|
184
|
+
</DxcBulletedList.Item>
|
|
185
|
+
<DxcBulletedList.Item>Text 2.</DxcBulletedList.Item>
|
|
186
|
+
</DxcBulletedList>
|
|
187
|
+
</Container>
|
|
188
|
+
</DarkContainerForBulletedList>
|
|
189
|
+
</BackgroundColorProvider>
|
|
190
|
+
</>
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
const Container = styled.div`
|
|
194
|
+
width: 400px;
|
|
195
|
+
`;
|
|
196
|
+
|
|
197
|
+
const DarkContainerForBulletedList = styled.div`
|
|
198
|
+
background-color: #333333;
|
|
199
|
+
padding: 5px;
|
|
200
|
+
`;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type SVG = React.ReactNode & (React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>);
|
|
3
|
+
declare type Props = {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
type?: "disc" | "circle" | "square" | "number" | "icon";
|
|
6
|
+
icon?: string | SVG;
|
|
7
|
+
};
|
|
8
|
+
export default Props;
|
|
9
|
+
export declare type BulletedListItemPropsType = {
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
};
|
package/button/Button.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import ButtonPropsType from "./types";
|
|
3
|
-
declare const DxcButton: ({ label, mode, disabled, iconPosition, type, icon,
|
|
3
|
+
declare const DxcButton: ({ label, mode, disabled, iconPosition, type, icon, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
|
|
4
4
|
export default DxcButton;
|
package/button/Button.js
CHANGED
|
@@ -9,13 +9,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
17
15
|
|
|
18
|
-
var
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
17
|
|
|
20
18
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
19
|
|
|
@@ -23,9 +21,9 @@ var _variables = require("../common/variables.js");
|
|
|
23
21
|
|
|
24
22
|
var _utils = require("../common/utils.js");
|
|
25
23
|
|
|
26
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
24
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
27
25
|
|
|
28
|
-
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext
|
|
26
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
29
27
|
|
|
30
28
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
31
29
|
|
|
@@ -33,6 +31,22 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
31
|
|
|
34
32
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
|
|
35
33
|
|
|
34
|
+
var sizes = {
|
|
35
|
+
small: "42px",
|
|
36
|
+
medium: "120px",
|
|
37
|
+
large: "240px",
|
|
38
|
+
fillParent: "100%",
|
|
39
|
+
fitContent: "fit-content"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var calculateWidth = function calculateWidth(margin, size) {
|
|
43
|
+
if (size === "fillParent") {
|
|
44
|
+
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return sizes[size];
|
|
48
|
+
};
|
|
49
|
+
|
|
36
50
|
var DxcButton = function DxcButton(_ref) {
|
|
37
51
|
var _ref$label = _ref.label,
|
|
38
52
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
@@ -45,88 +59,45 @@ var DxcButton = function DxcButton(_ref) {
|
|
|
45
59
|
_ref$type = _ref.type,
|
|
46
60
|
type = _ref$type === void 0 ? "button" : _ref$type,
|
|
47
61
|
icon = _ref.icon,
|
|
48
|
-
_ref$
|
|
49
|
-
|
|
50
|
-
_onClick = _ref.onClick,
|
|
62
|
+
_ref$onClick = _ref.onClick,
|
|
63
|
+
_onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
|
|
51
64
|
margin = _ref.margin,
|
|
52
65
|
_ref$size = _ref.size,
|
|
53
66
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
54
67
|
_ref$tabIndex = _ref.tabIndex,
|
|
55
68
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
69
|
+
|
|
56
70
|
var colorsTheme = (0, _useTheme["default"])();
|
|
57
71
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
72
|
+
|
|
73
|
+
var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
74
|
+
icon: icon,
|
|
75
|
+
iconPosition: iconPosition
|
|
76
|
+
}, label);
|
|
77
|
+
|
|
58
78
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
59
79
|
theme: colorsTheme.button
|
|
60
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
80
|
+
}, /*#__PURE__*/_react["default"].createElement(Button, {
|
|
61
81
|
type: type,
|
|
62
|
-
margin: margin,
|
|
63
82
|
mode: mode !== "primary" && mode !== "secondary" && mode !== "text" ? "primary" : mode,
|
|
64
83
|
disabled: disabled,
|
|
65
|
-
iconPosition: iconPosition,
|
|
66
|
-
size: size,
|
|
67
|
-
backgroundType: backgroundType,
|
|
68
|
-
icon: icon
|
|
69
|
-
}, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
70
|
-
type: type,
|
|
71
|
-
disabled: disabled,
|
|
72
|
-
disableRipple: true,
|
|
73
84
|
"aria-disabled": disabled,
|
|
74
85
|
tabIndex: disabled ? -1 : tabIndex,
|
|
86
|
+
backgroundType: backgroundType,
|
|
87
|
+
size: size,
|
|
88
|
+
margin: margin,
|
|
75
89
|
onClick: function onClick() {
|
|
76
90
|
_onClick();
|
|
77
91
|
}
|
|
78
|
-
}, label && /*#__PURE__*/_react["default"].createElement(
|
|
79
|
-
icon: icon,
|
|
80
|
-
iconPosition: iconPosition
|
|
81
|
-
}, label), icon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
92
|
+
}, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
82
93
|
label: label,
|
|
83
94
|
iconPosition: iconPosition
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
src: iconSrc
|
|
88
|
-
}))));
|
|
95
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
|
|
96
|
+
src: icon
|
|
97
|
+
}) : icon), label && iconPosition === "before" && labelComponent));
|
|
89
98
|
};
|
|
90
99
|
|
|
91
|
-
var
|
|
92
|
-
small: "42px",
|
|
93
|
-
medium: "120px",
|
|
94
|
-
large: "240px",
|
|
95
|
-
fillParent: "100%",
|
|
96
|
-
fitContent: "unset"
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
var calculateWidth = function calculateWidth(margin, size) {
|
|
100
|
-
if (size === "fillParent") {
|
|
101
|
-
return "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return sizes[size];
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n line-height: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n text-transform: none;\n white-space: nowrap;\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
108
|
-
return props.theme.labelFontLineHeight;
|
|
109
|
-
}, function (props) {
|
|
110
|
-
return props.theme.fontSize;
|
|
111
|
-
}, function (props) {
|
|
112
|
-
return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
|
|
113
|
-
}, function (props) {
|
|
114
|
-
return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
118
|
-
return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
|
|
119
|
-
}, function (props) {
|
|
120
|
-
return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
|
|
124
|
-
return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
|
|
125
|
-
}, function (props) {
|
|
126
|
-
return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n flex-direction: ", ";\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"])), function (props) {
|
|
100
|
+
var Button = _styledComponents["default"].button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n display: inline-flex;\n width: ", ";\n height: 40px;\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n cursor: pointer;\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px\n ", ";\n }\n ", "\n"])), function (props) {
|
|
130
101
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
131
102
|
}, function (props) {
|
|
132
103
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
@@ -138,8 +109,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
|
|
|
138
109
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
|
|
139
110
|
}, function (props) {
|
|
140
111
|
return calculateWidth(props.margin, props.size);
|
|
141
|
-
}, function (props) {
|
|
142
|
-
return props.disabled && "not-allowed" || "pointer";
|
|
143
112
|
}, function (props) {
|
|
144
113
|
return props.theme.paddingLeft;
|
|
145
114
|
}, function (props) {
|
|
@@ -148,8 +117,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
|
|
|
148
117
|
return props.theme.paddingTop;
|
|
149
118
|
}, function (props) {
|
|
150
119
|
return props.theme.paddingBottom;
|
|
151
|
-
}, function (props) {
|
|
152
|
-
return props.iconPosition === "after" && "row" || "row-reverse";
|
|
153
120
|
}, function (props) {
|
|
154
121
|
return props.theme.fontFamily;
|
|
155
122
|
}, function (props) {
|
|
@@ -158,22 +125,32 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
|
|
|
158
125
|
return props.theme.fontWeight;
|
|
159
126
|
}, function (props) {
|
|
160
127
|
return props.theme.labelLetterSpacing;
|
|
161
|
-
}, function (props) {
|
|
162
|
-
return props.size === "small" && "calc(100% - 22px)" || "unset";
|
|
163
128
|
}, function (props) {
|
|
164
129
|
return props.backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor;
|
|
165
130
|
}, function (props) {
|
|
166
131
|
var mode = props.mode,
|
|
167
|
-
backgroundType = props.backgroundType
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, "!important; \n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
|
|
171
|
-
} else if (mode === "secondary") {
|
|
172
|
-
return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
|
|
173
|
-
} else if (mode === "text") {
|
|
174
|
-
return "\n border-radius: ".concat(props.theme.textBorderRadius, ";\n border-width: ").concat(props.theme.textBorderThickness, ";\n border-style: ").concat(props.theme.textBorderStyle, ";\n font-family: ").concat(props.theme.textFontFamily, ";\n font-size: ").concat(props.theme.textFontSize, ";\n font-weight: ").concat(props.theme.textFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor:not-allowed;\n color: ").concat(backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, " !important;\n background-color: ").concat(backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n }\n ");
|
|
175
|
-
}
|
|
132
|
+
backgroundType = props.backgroundType,
|
|
133
|
+
disabled = props.disabled;
|
|
134
|
+
return "\n border-radius: ".concat(props.mode === "primary" ? props.theme.primaryBorderRadius : props.mode === "secondary" ? props.theme.secondaryBorderRadius : props.theme.textBorderRadius, ";\n border-width: ").concat(props.mode === "primary" ? props.theme.primaryBorderThickness : props.mode === "secondary" ? props.theme.secondaryBorderThickness : props.theme.textBorderThickness, ";\n border-style: ").concat(mode === "primary" ? props.theme.primaryBorderStyle : mode === "secondary" ? props.theme.secondaryBorderStyle : props.theme.textBorderStyle, ";\n font-family: ").concat(mode === "primary" ? props.theme.primaryFontFamily : mode === "secondary" ? props.theme.secondaryFontFamily : props.theme.textFontFamily, ";\n font-size: ").concat(mode === "primary" ? props.theme.primaryFontSize : mode === "secondary" ? props.theme.secondaryFontSize : props.theme.textFontSize, ";\n font-weight: ").concat(mode === "primary" ? props.theme.primaryFontWeight : mode === "secondary" ? props.theme.secondaryFontWeight : props.theme.textFontWeight, ";\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor : backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor : backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, ";\n border-color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor : "", ";\n &:hover {\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor : backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n }\n &:focus {\n border-color: ").concat(mode === "secondary" ? "transparent" : "", ";\n }\n &:active {\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor : backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, ";\n color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor : "", ";\n border-color: ").concat(mode === "secondary" ? "transparent" : "", ";\n outline: none;\n box-shadow: ").concat(!disabled ? "0 0 0 2px ".concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor) : "", ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor : backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n color: ").concat(mode === "primary" ? backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor : mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor : backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, ";\n border-color: ").concat(mode === "secondary" ? backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor : "", ";\n }\n ");
|
|
176
135
|
});
|
|
177
136
|
|
|
137
|
+
var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n line-height: ", ";\n font-size: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n text-transform: none;\n white-space: nowrap;\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
138
|
+
return props.theme.labelFontLineHeight;
|
|
139
|
+
}, function (props) {
|
|
140
|
+
return props.theme.fontSize;
|
|
141
|
+
}, function (props) {
|
|
142
|
+
return !props.icon || props.iconPosition === "before" ? "8px" : "0px";
|
|
143
|
+
}, function (props) {
|
|
144
|
+
return !props.icon || props.iconPosition === "after" ? "8px" : "0px";
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
var IconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n overflow: hidden;\n display: flex;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
148
|
+
return !props.label ? "0px" : props.iconPosition === "after" && props.label !== "" && "8px" || "8px";
|
|
149
|
+
}, function (props) {
|
|
150
|
+
return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
var ButtonIcon = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])));
|
|
154
|
+
|
|
178
155
|
var _default = DxcButton;
|
|
179
156
|
exports["default"] = _default;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import DxcButton from "./Button";
|
|
3
|
+
import DxcFlex from "./../flex/Flex";
|
|
3
4
|
import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
4
5
|
import Title from "../../.storybook/components/Title";
|
|
5
6
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
@@ -10,14 +11,12 @@ export default {
|
|
|
10
11
|
component: DxcButton,
|
|
11
12
|
};
|
|
12
13
|
|
|
13
|
-
const iconSVG = (
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
);
|
|
20
|
-
};
|
|
14
|
+
const iconSVG = (
|
|
15
|
+
<svg viewBox="0 0 24 24" fill="currentColor">
|
|
16
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
17
|
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
21
20
|
export const Chromatic = () => (
|
|
22
21
|
<>
|
|
23
22
|
<Title title="Primary" theme="light" level={2} />
|
|
@@ -272,5 +271,13 @@ export const Chromatic = () => (
|
|
|
272
271
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
273
272
|
<DxcButton label="Xxlarge margin" margin="xxlarge" />
|
|
274
273
|
</ExampleContainer>
|
|
274
|
+
<Title title="Inside a flex" theme="light" level={2} />
|
|
275
|
+
<ExampleContainer>
|
|
276
|
+
<DxcFlex direction="column" gap="0.75rem">
|
|
277
|
+
<DxcButton label="Button" />
|
|
278
|
+
<DxcButton label="Button" />
|
|
279
|
+
<DxcButton label="Button" />
|
|
280
|
+
</DxcFlex>
|
|
281
|
+
</ExampleContainer>
|
|
275
282
|
</>
|
|
276
283
|
);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Button = _interopRequireDefault(require("./Button"));
|
|
10
|
+
|
|
11
|
+
describe("Button component tests", function () {
|
|
12
|
+
test("Button renders with correct text", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
14
|
+
label: "Button"
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
18
|
+
expect(getByText("Button")).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
test("Calls correct function on click", function () {
|
|
21
|
+
var onClick = jest.fn();
|
|
22
|
+
|
|
23
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
24
|
+
label: "Button",
|
|
25
|
+
onClick: onClick
|
|
26
|
+
})),
|
|
27
|
+
getByText = _render2.getByText;
|
|
28
|
+
|
|
29
|
+
var button = getByText("Button");
|
|
30
|
+
|
|
31
|
+
_react2.fireEvent.click(button);
|
|
32
|
+
|
|
33
|
+
expect(onClick).toHaveBeenCalled();
|
|
34
|
+
});
|
|
35
|
+
});
|
package/button/types.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
-
declare type Margin = {
|
|
2
|
+
export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
export declare type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
declare type SVG = React.
|
|
9
|
+
export declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
10
|
declare type Props = {
|
|
11
11
|
/**
|
|
12
|
-
* Text to be placed
|
|
12
|
+
* Text to be placed in the button.
|
|
13
13
|
*/
|
|
14
14
|
label?: string;
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
16
|
+
* The available button modes.
|
|
17
17
|
*/
|
|
18
18
|
mode?: "primary" | "secondary" | "text";
|
|
19
19
|
/**
|
|
@@ -25,17 +25,13 @@ declare type Props = {
|
|
|
25
25
|
*/
|
|
26
26
|
iconPosition?: "before" | "after";
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* 'type' html prop of the button.
|
|
29
29
|
*/
|
|
30
30
|
type?: "button" | "reset" | "submit";
|
|
31
31
|
/**
|
|
32
|
-
* Element used as the icon that will be placed next to the
|
|
32
|
+
* Element or path used as the icon that will be placed next to the label.
|
|
33
33
|
*/
|
|
34
|
-
icon?: SVG;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated URL of the icon that will be placed next to the button label.
|
|
37
|
-
*/
|
|
38
|
-
iconSrc?: string;
|
|
34
|
+
icon?: string | SVG;
|
|
39
35
|
/**
|
|
40
36
|
* This function will be called when the user clicks the button.
|
|
41
37
|
*/
|