@dxc-technology/halstack-react 0.0.0-1d5e7bf → 0.0.0-1da0f40
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/HalstackContext.js +98 -50
- package/accordion/Accordion.js +117 -104
- package/accordion/Accordion.stories.tsx +103 -15
- package/accordion/Accordion.test.js +10 -11
- package/accordion/types.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +21 -46
- package/accordion-group/types.d.ts +10 -3
- package/alert/Alert.js +1 -1
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/bleed/Bleed.stories.tsx +63 -63
- package/box/Box.js +2 -4
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +1 -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/button/Button.js +50 -70
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +7 -7
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +92 -99
- package/checkbox/Checkbox.stories.tsx +131 -59
- package/checkbox/Checkbox.test.js +94 -17
- package/checkbox/types.d.ts +6 -2
- package/chip/Chip.js +16 -22
- package/chip/Chip.stories.tsx +96 -9
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- package/common/variables.js +333 -299
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +134 -237
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +494 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +51 -0
- package/dialog/Dialog.js +79 -68
- package/dialog/Dialog.stories.tsx +230 -123
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -249
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +174 -219
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +39 -63
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/footer/Footer.stories.tsx +99 -1
- package/footer/Footer.test.js +14 -26
- package/footer/types.d.ts +2 -1
- package/header/Header.js +87 -87
- package/header/Header.stories.tsx +152 -9
- package/header/Header.test.js +2 -2
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.stories.tsx +4 -4
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +36 -64
- package/layout/ApplicationLayout.stories.tsx +80 -44
- package/layout/types.d.ts +17 -27
- package/link/Link.js +2 -2
- package/link/Link.stories.tsx +72 -5
- package/link/Link.test.js +2 -4
- package/link/types.d.ts +1 -1
- package/main.d.ts +6 -10
- package/main.js +28 -60
- package/{tabs-nav → nav-tabs}/NavTabs.js +6 -6
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
- package/{tabs-nav → nav-tabs}/Tab.js +38 -20
- package/{tabs-nav → nav-tabs}/types.d.ts +1 -1
- package/number-input/NumberInput.test.js +44 -8
- package/package.json +16 -21
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +6 -12
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +45 -48
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.test.js +14 -13
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +59 -53
- package/progress-bar/ProgressBar.stories.jsx +38 -3
- package/progress-bar/ProgressBar.test.js +68 -23
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.js +17 -16
- package/quick-nav/QuickNav.stories.tsx +124 -32
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +24 -24
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +124 -97
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +48 -107
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +41 -64
- package/resultsetTable/types.d.ts +2 -2
- package/select/Listbox.js +4 -10
- package/select/Option.js +11 -24
- package/select/Select.js +54 -50
- package/select/Select.stories.tsx +494 -149
- package/select/Select.test.js +393 -327
- package/select/types.d.ts +3 -5
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +174 -55
- package/sidenav/Sidenav.stories.tsx +249 -149
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +120 -95
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +122 -22
- package/slider/types.d.ts +6 -2
- package/spinner/Spinner.js +2 -2
- package/spinner/Spinner.stories.jsx +27 -1
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +135 -68
- package/switch/Switch.stories.tsx +41 -30
- package/switch/Switch.test.js +145 -18
- package/switch/types.d.ts +6 -2
- package/table/Table.js +1 -1
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +119 -5
- package/tabs/Tabs.test.js +217 -7
- package/tabs/types.d.ts +15 -5
- package/tag/Tag.js +1 -1
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.js +38 -9
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +195 -292
- package/text-input/TextInput.stories.tsx +280 -185
- package/text-input/TextInput.test.js +736 -725
- package/text-input/types.d.ts +22 -3
- package/textarea/Textarea.stories.jsx +60 -1
- package/textarea/Textarea.test.js +1 -1
- package/toggle-group/ToggleGroup.stories.tsx +42 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/toggle-group/types.d.ts +1 -1
- 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/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +139 -0
- package/wizard/Wizard.js +9 -16
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +5 -4
- package/common/RequiredComponent.js +0 -32
- package/inline/Inline.d.ts +0 -4
- package/inline/Inline.js +0 -60
- package/inline/Inline.stories.tsx +0 -319
- package/inline/types.d.ts +0 -36
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -89
- package/list/types.d.ts +0 -7
- 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/stack/Stack.d.ts +0 -4
- package/stack/Stack.js +0 -56
- package/stack/Stack.stories.tsx +0 -263
- package/stack/types.d.ts +0 -32
- package/tabs-nav/types.js +0 -5
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- /package/{inline → bulleted-list}/types.js +0 -0
- /package/{list → flex}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{row → nav-tabs}/types.js +0 -0
- /package/{stack → typography}/types.js +0 -0
|
@@ -2,21 +2,34 @@ import React from "react";
|
|
|
2
2
|
import DxcProgressBar from "./ProgressBar";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
5
6
|
|
|
6
7
|
export default {
|
|
7
8
|
title: "ProgressBar",
|
|
8
9
|
component: DxcProgressBar,
|
|
9
10
|
};
|
|
10
11
|
|
|
12
|
+
const opinionatedTheme = {
|
|
13
|
+
progressBar: {
|
|
14
|
+
accentColor: "#5f249f",
|
|
15
|
+
baseColor: "#e6e6e6",
|
|
16
|
+
fontColor: "#000000",
|
|
17
|
+
overlayColor: "#000000b3",
|
|
18
|
+
overlayFontColor: "#ffffff",
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
11
22
|
export const Chromatic = () => (
|
|
12
23
|
<>
|
|
13
24
|
<ExampleContainer>
|
|
14
25
|
<Title title="Without labels" theme="light" level={4} />
|
|
15
26
|
<DxcProgressBar value={50} showValue />
|
|
16
27
|
<Title title="With helperText" theme="light" level={4} />
|
|
17
|
-
<DxcProgressBar helperText="Helper text" value={
|
|
28
|
+
<DxcProgressBar helperText="Helper text" value={24} showValue />
|
|
18
29
|
<Title title="Without default value" theme="light" level={4} />
|
|
19
30
|
<DxcProgressBar label="Loading..." showValue />
|
|
31
|
+
<Title title="With full value" theme="light" level={4} />
|
|
32
|
+
<DxcProgressBar label="Loading..." value={100} showValue />
|
|
20
33
|
</ExampleContainer>
|
|
21
34
|
<Title title="Margins" theme="light" level={2} />
|
|
22
35
|
<ExampleContainer>
|
|
@@ -44,15 +57,37 @@ export const Chromatic = () => (
|
|
|
44
57
|
<DxcProgressBar label="Margin xlarge" margin="xlarge" value={50} showValue />
|
|
45
58
|
</ExampleContainer>
|
|
46
59
|
<ExampleContainer>
|
|
47
|
-
<Title title="
|
|
60
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
48
61
|
<DxcProgressBar label="Margin xxlarge" margin="xxlarge" value={50} showValue />
|
|
49
62
|
</ExampleContainer>
|
|
63
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
64
|
+
<ExampleContainer>
|
|
65
|
+
<Title title="Label and helper text" theme="light" level={4} />
|
|
66
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
67
|
+
<DxcProgressBar label="Loading..." helperText="Helper text" value={24} showValue />
|
|
68
|
+
</HalstackProvider>
|
|
69
|
+
</ExampleContainer>
|
|
70
|
+
<ExampleContainer>
|
|
71
|
+
<Title title="Without default value" theme="light" level={4} />
|
|
72
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
73
|
+
<DxcProgressBar label="Loading..." helperText="Helper text" showValue />
|
|
74
|
+
</HalstackProvider>
|
|
75
|
+
</ExampleContainer>
|
|
50
76
|
</>
|
|
51
77
|
);
|
|
52
78
|
|
|
53
79
|
export const ProgressBarOverlay = () => (
|
|
54
80
|
<ExampleContainer>
|
|
55
81
|
<Title title="Overlay" theme="dark" level={4} />
|
|
56
|
-
<DxcProgressBar label="Overlay" helperText="Helper text" overlay
|
|
82
|
+
<DxcProgressBar label="Overlay" helperText="Helper text" overlay showValue value={50} />
|
|
83
|
+
</ExampleContainer>
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
export const ProgressBarOverlayOpinionated = () => (
|
|
87
|
+
<ExampleContainer>
|
|
88
|
+
<Title title="Overlay" theme="dark" level={4} />
|
|
89
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
90
|
+
<DxcProgressBar label="Overlay" helperText="Helper text" overlay showValue value={50} />
|
|
91
|
+
</HalstackProvider>
|
|
57
92
|
</ExampleContainer>
|
|
58
93
|
);
|
|
@@ -6,60 +6,105 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
6
6
|
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
8
|
|
|
9
|
-
var _ProgressBar = _interopRequireDefault(require("./ProgressBar"));
|
|
9
|
+
var _ProgressBar = _interopRequireDefault(require("./ProgressBar.tsx"));
|
|
10
10
|
|
|
11
11
|
describe("ProgressBar component tests", function () {
|
|
12
|
-
test("ProgressBar renders with label", function () {
|
|
12
|
+
test("ProgressBar renders with label and helperText", function () {
|
|
13
13
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
14
|
-
label: "test-label"
|
|
14
|
+
label: "test-label",
|
|
15
|
+
helperText: "helper-text"
|
|
15
16
|
})),
|
|
16
17
|
getByText = _render.getByText;
|
|
17
18
|
|
|
18
19
|
expect(getByText("test-label")).toBeTruthy();
|
|
20
|
+
expect(getByText("helper-text")).toBeTruthy();
|
|
19
21
|
});
|
|
20
|
-
test("
|
|
22
|
+
test("ProgressBar renders with default value", function () {
|
|
23
|
+
var value = 0;
|
|
24
|
+
|
|
21
25
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
22
|
-
|
|
23
|
-
overlay: true
|
|
26
|
+
showValue: true
|
|
24
27
|
})),
|
|
25
|
-
getByText = _render2.getByText
|
|
28
|
+
getByText = _render2.getByText,
|
|
29
|
+
getByRole = _render2.getByRole;
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
var progressBar = getByRole("progressbar");
|
|
32
|
+
expect(getByText("0 %")).toBeTruthy();
|
|
33
|
+
expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
|
|
28
34
|
});
|
|
29
|
-
test("ProgressBar renders with
|
|
35
|
+
test("ProgressBar renders with value", function () {
|
|
36
|
+
var value = 25;
|
|
37
|
+
|
|
30
38
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
31
|
-
showValue: true
|
|
39
|
+
showValue: true,
|
|
40
|
+
value: value
|
|
32
41
|
})),
|
|
33
|
-
getByText = _render3.getByText
|
|
42
|
+
getByText = _render3.getByText,
|
|
43
|
+
getByRole = _render3.getByRole;
|
|
34
44
|
|
|
35
|
-
|
|
45
|
+
var progressBar = getByRole("progressbar");
|
|
46
|
+
expect(getByText("25 %")).toBeTruthy();
|
|
47
|
+
expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
|
|
36
48
|
});
|
|
37
|
-
test("
|
|
49
|
+
test("ProgressBar renders with negative value", function () {
|
|
50
|
+
var value = 0;
|
|
51
|
+
|
|
38
52
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
39
53
|
showValue: true,
|
|
40
|
-
|
|
54
|
+
value: -20
|
|
41
55
|
})),
|
|
42
|
-
getByText = _render4.getByText
|
|
56
|
+
getByText = _render4.getByText,
|
|
57
|
+
getByRole = _render4.getByRole;
|
|
43
58
|
|
|
59
|
+
var progressBar = getByRole("progressbar");
|
|
44
60
|
expect(getByText("0 %")).toBeTruthy();
|
|
61
|
+
expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
|
|
45
62
|
});
|
|
46
|
-
test("ProgressBar renders
|
|
47
|
-
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"],
|
|
63
|
+
test("ProgressBar renders as indeterminate", function () {
|
|
64
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], null)),
|
|
65
|
+
getByRole = _render5.getByRole;
|
|
66
|
+
|
|
67
|
+
var progressBar = getByRole("progressbar");
|
|
68
|
+
expect(progressBar.getAttribute("aria-valuenow")).toBe(null);
|
|
69
|
+
});
|
|
70
|
+
test("Overlay progressBar renders with label and helperText", function () {
|
|
71
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
72
|
+
label: "test-label",
|
|
73
|
+
helperText: "helper-text",
|
|
74
|
+
overlay: true
|
|
75
|
+
})),
|
|
76
|
+
getByText = _render6.getByText;
|
|
77
|
+
|
|
78
|
+
expect(getByText("test-label")).toBeTruthy();
|
|
79
|
+
expect(getByText("helper-text")).toBeTruthy();
|
|
80
|
+
});
|
|
81
|
+
test("Overlay progressBar renders with default value", function () {
|
|
82
|
+
var value = 0;
|
|
83
|
+
|
|
84
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
48
85
|
showValue: true,
|
|
49
|
-
|
|
86
|
+
overlay: true
|
|
50
87
|
})),
|
|
51
|
-
getByText =
|
|
88
|
+
getByText = _render7.getByText,
|
|
89
|
+
getByRole = _render7.getByRole;
|
|
52
90
|
|
|
53
|
-
|
|
91
|
+
var progressBar = getByRole("progressbar");
|
|
92
|
+
expect(getByText("0 %")).toBeTruthy();
|
|
93
|
+
expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
|
|
54
94
|
});
|
|
55
95
|
test("Overlay progressBar renders with value", function () {
|
|
56
|
-
var
|
|
96
|
+
var value = 25;
|
|
97
|
+
|
|
98
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ProgressBar["default"], {
|
|
57
99
|
showValue: true,
|
|
58
|
-
value:
|
|
100
|
+
value: value,
|
|
59
101
|
overlay: true
|
|
60
102
|
})),
|
|
61
|
-
getByText =
|
|
103
|
+
getByText = _render8.getByText,
|
|
104
|
+
getByRole = _render8.getByRole;
|
|
62
105
|
|
|
106
|
+
var progressBar = getByRole("progressbar");
|
|
63
107
|
expect(getByText("25 %")).toBeTruthy();
|
|
108
|
+
expect(progressBar.getAttribute("aria-valuenow")).toEqual(value.toString());
|
|
64
109
|
});
|
|
65
110
|
});
|
package/progress-bar/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
-
declare type Size = {
|
|
1
|
+
export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
2
|
+
export declare type Size = {
|
|
3
3
|
top?: Space;
|
|
4
4
|
bottom?: Space;
|
|
5
5
|
left?: Space;
|
|
6
6
|
right?: Space;
|
|
7
7
|
};
|
|
8
|
-
declare type Props = {
|
|
8
|
+
export declare type Props = {
|
|
9
9
|
/**
|
|
10
10
|
* Text to be placed above the progress bar.
|
|
11
11
|
*/
|
|
@@ -34,4 +34,3 @@ declare type Props = {
|
|
|
34
34
|
*/
|
|
35
35
|
margin?: Space | Size;
|
|
36
36
|
};
|
|
37
|
-
export default Props;
|
package/quick-nav/QuickNav.js
CHANGED
|
@@ -21,11 +21,11 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
|
21
21
|
|
|
22
22
|
var _Heading = _interopRequireDefault(require("../heading/Heading"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
25
25
|
|
|
26
26
|
var _Inset = _interopRequireDefault(require("../inset/Inset"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _Typography = _interopRequireDefault(require("../typography/Typography"));
|
|
29
29
|
|
|
30
30
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
31
|
|
|
@@ -42,36 +42,37 @@ var DxcQuickNav = function DxcQuickNav(_ref) {
|
|
|
42
42
|
var colorsTheme = (0, _useTheme["default"])();
|
|
43
43
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
44
44
|
theme: colorsTheme.quickNav
|
|
45
|
-
}, /*#__PURE__*/_react["default"].createElement(QuickNavContainer, null, /*#__PURE__*/_react["default"].createElement(
|
|
46
|
-
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement(QuickNavContainer, null, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
46
|
+
direction: "column",
|
|
47
|
+
gap: "0.5rem"
|
|
47
48
|
}, /*#__PURE__*/_react["default"].createElement(_Heading["default"], {
|
|
48
49
|
level: 4,
|
|
49
50
|
text: title || translatedLabels.quickNav.contentTitle
|
|
50
|
-
}), /*#__PURE__*/_react["default"].createElement(ListColumn, null,
|
|
51
|
-
gutter: "0.5rem"
|
|
52
|
-
}, links.map(function (link) {
|
|
51
|
+
}), /*#__PURE__*/_react["default"].createElement(ListColumn, null, links.map(function (link) {
|
|
53
52
|
var _link$links;
|
|
54
53
|
|
|
55
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
56
55
|
key: link.label
|
|
57
56
|
}, /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
58
57
|
space: "0.25rem"
|
|
59
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
58
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, /*#__PURE__*/_react["default"].createElement(Link, {
|
|
60
59
|
href: "#".concat((0, _slugify["default"])(link === null || link === void 0 ? void 0 : link.label, {
|
|
61
60
|
lower: true
|
|
62
61
|
}))
|
|
63
|
-
}, link === null || link === void 0 ? void 0 : link.label), /*#__PURE__*/_react["default"].createElement(
|
|
64
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
62
|
+
}, link === null || link === void 0 ? void 0 : link.label), /*#__PURE__*/_react["default"].createElement(ListSecondColumn, null, (_link$links = link.links) === null || _link$links === void 0 ? void 0 : _link$links.map(function (sublink) {
|
|
63
|
+
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
65
64
|
key: sublink.label
|
|
66
65
|
}, /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
67
66
|
horizontal: "0.5rem"
|
|
68
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
69
|
-
href: "#".concat((0, _slugify["default"])(
|
|
67
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, /*#__PURE__*/_react["default"].createElement(Link, {
|
|
68
|
+
href: "#".concat((0, _slugify["default"])(link === null || link === void 0 ? void 0 : link.label, {
|
|
69
|
+
lower: true
|
|
70
|
+
}), "-").concat((0, _slugify["default"])(sublink === null || sublink === void 0 ? void 0 : sublink.label, {
|
|
70
71
|
lower: true
|
|
71
72
|
}))
|
|
72
73
|
}, sublink === null || sublink === void 0 ? void 0 : sublink.label))));
|
|
73
74
|
})))));
|
|
74
|
-
})))))
|
|
75
|
+
})))));
|
|
75
76
|
};
|
|
76
77
|
|
|
77
78
|
var QuickNavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n border-left: 2px solid ", ";\n"])), function (props) {
|
|
@@ -86,9 +87,9 @@ var QuickNavContainer = _styledComponents["default"].div(_templateObject || (_te
|
|
|
86
87
|
return props.theme.dividerBorderColor;
|
|
87
88
|
});
|
|
88
89
|
|
|
89
|
-
var ListColumn = _styledComponents["default"].ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
90
|
+
var ListColumn = _styledComponents["default"].ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n margin: 0;\n padding: 0;\n list-style-type: none;\n"])));
|
|
90
91
|
|
|
91
|
-
var
|
|
92
|
+
var ListSecondColumn = _styledComponents["default"].ul(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style-type: none;\n"])));
|
|
92
93
|
|
|
93
94
|
var Link = _styledComponents["default"].a(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n display: block;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: fit-content;\n max-width: 100%;\n\n &:hover {\n color: ", ";\n }\n &:focus {\n outline-color: ", ";\n outline-style: ", ";\n outline-width: ", ";\n border-radius: ", ";\n }\n"])), function (props) {
|
|
94
95
|
return props.theme.fontSize;
|
|
@@ -2,42 +2,77 @@ 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
11
|
title: "QuickNav",
|
|
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
|
-
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
label: "Components",
|
|
54
|
+
links: [
|
|
55
|
+
{
|
|
56
|
+
label: "Introduction",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: "Accordion",
|
|
22
60
|
},
|
|
23
61
|
],
|
|
24
62
|
},
|
|
25
63
|
{
|
|
26
64
|
label: "Principles very very very very very very very very long",
|
|
27
|
-
id: "principles",
|
|
28
65
|
links: [
|
|
29
|
-
{ label: "Color very very very very very very very very long"
|
|
30
|
-
{ label: "Spacingveryveryveryveryveryveryveryverylong"
|
|
31
|
-
{ label: "Typography"
|
|
66
|
+
{ label: "Color very very very very very very very very long" },
|
|
67
|
+
{ label: "Spacingveryveryveryveryveryveryveryverylong" },
|
|
68
|
+
{ label: "Typography" },
|
|
32
69
|
],
|
|
33
70
|
},
|
|
34
71
|
{
|
|
35
72
|
label: "Componentsveryveryveryveryveryveryveryverylong",
|
|
36
|
-
id: "components",
|
|
37
73
|
links: [
|
|
38
74
|
{
|
|
39
75
|
label: "Accordion",
|
|
40
|
-
id: "accordion",
|
|
41
76
|
},
|
|
42
77
|
],
|
|
43
78
|
},
|
|
@@ -48,19 +83,25 @@ export const Chromatic = () => (
|
|
|
48
83
|
<ExampleContainer>
|
|
49
84
|
<Title title="Default" level={4} />
|
|
50
85
|
<QuickNavContainer>
|
|
51
|
-
<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} />
|
|
52
93
|
</QuickNavContainer>
|
|
53
94
|
</ExampleContainer>
|
|
54
95
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
55
96
|
<Title title="Link hovered" level={4} />
|
|
56
97
|
<QuickNavContainer>
|
|
57
|
-
<DxcQuickNav links={links}
|
|
98
|
+
<DxcQuickNav links={links} />
|
|
58
99
|
</QuickNavContainer>
|
|
59
100
|
</ExampleContainer>
|
|
60
101
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
61
102
|
<Title title="Link focus" level={4} />
|
|
62
103
|
<QuickNavContainer>
|
|
63
|
-
<DxcQuickNav links={links}
|
|
104
|
+
<DxcQuickNav links={links} />
|
|
64
105
|
</QuickNavContainer>
|
|
65
106
|
</ExampleContainer>
|
|
66
107
|
<ExampleContainer>
|
|
@@ -69,7 +110,7 @@ export const Chromatic = () => (
|
|
|
69
110
|
<ContentContainer>
|
|
70
111
|
<Content id="overview">
|
|
71
112
|
<DxcHeading level={1} text="Overview" margin={{ bottom: "small" }} />
|
|
72
|
-
<
|
|
113
|
+
<DxcParagraph>
|
|
73
114
|
Halstack is the DXC Technology's open source design system for insurance products and digital experiences.
|
|
74
115
|
Our system provides all the tools and resources needed to create superior, beautiful but above all,
|
|
75
116
|
functional user experiences. Halstack is the DXC Technology's open source design system for insurance
|
|
@@ -86,10 +127,10 @@ export const Chromatic = () => (
|
|
|
86
127
|
create superior, beautiful but above all, functional user experiences.Halstack is the DXC Technology's
|
|
87
128
|
open source design system for insurance products and digital experiences. Our system provides all the
|
|
88
129
|
tools and resources needed to create superior, beautiful but above all, functional user experiences.
|
|
89
|
-
</
|
|
90
|
-
<Content id="introduction">
|
|
130
|
+
</DxcParagraph>
|
|
131
|
+
<Content id="overview-introduction">
|
|
91
132
|
<DxcHeading level={2} text="Introduction" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
92
|
-
<
|
|
133
|
+
<DxcParagraph>
|
|
93
134
|
Design principles Halstack design principles are the fundamental part of DXC Technology's approach to
|
|
94
135
|
provide guidance for development teams in order to deliver delightful and consistent user experiences to
|
|
95
136
|
our customers: Balance Consistency Visual hierarchy All our components, design tokens, accessibility
|
|
@@ -119,14 +160,59 @@ export const Chromatic = () => (
|
|
|
119
160
|
to use and contribute back to. We are charmed to receive external contributions to help us find bugs,
|
|
120
161
|
design new features, or help us improve the project documentation. If you're interested, definitely
|
|
121
162
|
check out our contribution guidelines.
|
|
122
|
-
</
|
|
163
|
+
</DxcParagraph>
|
|
123
164
|
</Content>
|
|
124
165
|
</Content>
|
|
125
|
-
<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">
|
|
126
212
|
<DxcHeading level={1} text="Principles" margin={{ top: "small", bottom: "xsmall" }} />
|
|
127
|
-
<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">
|
|
128
214
|
<DxcHeading level={2} text="Color" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
129
|
-
<
|
|
215
|
+
<DxcParagraph>
|
|
130
216
|
The color palette is an essential asset as a communication resource of our design system. Halstack color
|
|
131
217
|
palette brings a unified consistency and helps in guiding the user's perception order. Our color palette
|
|
132
218
|
is based in the HSL model . All our color families are calculated using the lightness value of the
|
|
@@ -159,11 +245,11 @@ export const Chromatic = () => (
|
|
|
159
245
|
tokens to manage color. Appart from a multi-purpose greyscale family, purple and blue are the core color
|
|
160
246
|
families used in our set of components. Additional families as red, green and yellow help as feedback
|
|
161
247
|
role-based color palettes and must not be used outside this context.
|
|
162
|
-
</
|
|
248
|
+
</DxcParagraph>
|
|
163
249
|
</Content>
|
|
164
|
-
<Content id="
|
|
250
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-spacingveryveryveryveryveryveryveryverylong">
|
|
165
251
|
<DxcHeading level={2} text="Spacing" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
166
|
-
<
|
|
252
|
+
<DxcParagraph>
|
|
167
253
|
In the search of consistent alignment between the elements we provide a spacing scale based on a root
|
|
168
254
|
values of 8px and 4px. The numbers 4 and 8 are easily multiplied, they provide flexible and consistent,
|
|
169
255
|
yet distinct enough, steps between them.In the search of consistent alignment between the elements we
|
|
@@ -181,11 +267,11 @@ export const Chromatic = () => (
|
|
|
181
267
|
consistent, yet distinct enough, steps between them.In the search of consistent alignment between the
|
|
182
268
|
elements we provide a spacing scale based on a root values of 8px and 4px. The numbers 4 and 8 are
|
|
183
269
|
easily multiplied, they provide flexible and consistent, yet distinct enough, steps between them.
|
|
184
|
-
</
|
|
270
|
+
</DxcParagraph>
|
|
185
271
|
</Content>
|
|
186
|
-
<Content id="typography">
|
|
272
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-typography">
|
|
187
273
|
<DxcHeading level={2} text="Typography" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
188
|
-
<
|
|
274
|
+
<DxcParagraph>
|
|
189
275
|
Our selected typography helps in structuring our user's experience based on the visual impact that it
|
|
190
276
|
has on the user interface content. It defines what is the first noticeable piece of information or data
|
|
191
277
|
based on the font shape, size, color, or type and it highlights some pieces of text over the rest. Some
|
|
@@ -217,26 +303,32 @@ export const Chromatic = () => (
|
|
|
217
303
|
Halstack Design System include headers, body, taglines, captions, and labels. Make sure you include all
|
|
218
304
|
the different typographic variants in order to enhance the application's content structure, including
|
|
219
305
|
the Heading component which defines different levels of page and section titles.
|
|
220
|
-
</
|
|
306
|
+
</DxcParagraph>
|
|
221
307
|
</Content>
|
|
222
308
|
</Content>
|
|
223
|
-
<Content id="
|
|
309
|
+
<Content id="componentsveryveryveryveryveryveryveryverylong">
|
|
224
310
|
<DxcHeading level={1} text="Components" margin={{ top: "small", bottom: "xsmall" }} />
|
|
225
|
-
<Content id="accordion">
|
|
311
|
+
<Content id="componentsveryveryveryveryveryveryveryverylong-accordion">
|
|
226
312
|
<DxcHeading level={2} text="Accordion" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
227
|
-
<
|
|
313
|
+
<DxcParagraph>
|
|
228
314
|
Accordions are used to group similar content and hide or show it depending on user needs or preferences.
|
|
229
315
|
Accordions give users more granular control over the interface and help digest content in stages, rather
|
|
230
316
|
than all at once.
|
|
231
|
-
</
|
|
317
|
+
</DxcParagraph>
|
|
232
318
|
</Content>
|
|
233
319
|
</Content>
|
|
234
320
|
</ContentContainer>
|
|
235
321
|
<QuickNavContainer>
|
|
236
|
-
<DxcQuickNav title="Sections" links={links}
|
|
322
|
+
<DxcQuickNav title="Sections" links={links} />
|
|
237
323
|
</QuickNavContainer>
|
|
238
324
|
</Container>
|
|
239
325
|
</ExampleContainer>
|
|
326
|
+
<Title title="Opinionated theme" level={2} />
|
|
327
|
+
<ExampleContainer>
|
|
328
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
329
|
+
<DxcQuickNav links={defaultLinks} />
|
|
330
|
+
</HalstackProvider>
|
|
331
|
+
</ExampleContainer>
|
|
240
332
|
</>
|
|
241
333
|
);
|
|
242
334
|
|
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;
|