@dxc-technology/halstack-react 0.0.0-f53e801 → 0.0.0-f54247d
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 +7 -8
- package/accordion/Accordion.js +122 -103
- package/accordion/Accordion.stories.tsx +1 -2
- package/accordion/Accordion.test.js +9 -10
- package/accordion/types.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +1 -21
- package/accordion-group/AccordionGroup.stories.tsx +27 -1
- package/accordion-group/AccordionGroup.test.js +20 -45
- package/accordion-group/types.d.ts +9 -2
- package/alert/Alert.js +1 -1
- package/box/Box.js +1 -1
- package/box/types.d.ts +1 -0
- 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 +79 -59
- package/checkbox/Checkbox.test.js +93 -16
- package/checkbox/types.d.ts +6 -2
- package/common/variables.js +27 -19
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +77 -222
- package/date-input/DateInput.stories.tsx +30 -17
- package/date-input/DateInput.test.js +411 -138
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +160 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +115 -0
- package/date-input/types.d.ts +53 -0
- package/dialog/Dialog.js +4 -4
- package/dialog/Dialog.stories.tsx +56 -0
- package/dialog/types.d.ts +1 -0
- package/dropdown/Dropdown.js +38 -34
- package/dropdown/Dropdown.test.js +19 -25
- package/dropdown/DropdownMenuItem.js +1 -1
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +177 -219
- package/file-input/FileInput.stories.tsx +38 -10
- package/file-input/FileInput.test.js +53 -12
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +38 -63
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +1 -1
- package/flex/Flex.js +31 -19
- package/flex/types.d.ts +14 -3
- package/footer/Footer.stories.tsx +8 -1
- package/footer/types.d.ts +1 -0
- package/header/Header.stories.tsx +4 -4
- package/header/types.d.ts +1 -0
- package/layout/ApplicationLayout.stories.tsx +1 -0
- package/link/Link.js +1 -1
- package/number-input/NumberInput.test.js +43 -7
- package/package.json +14 -19
- package/paginator/Paginator.js +2 -2
- package/paginator/Paginator.test.js +1 -1
- package/password-input/PasswordInput.test.js +13 -12
- package/quick-nav/QuickNav.js +11 -12
- package/quick-nav/QuickNav.stories.tsx +97 -19
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +15 -13
- package/radio-group/RadioGroup.stories.tsx +1 -0
- package/radio-group/RadioGroup.test.js +123 -96
- 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 +23 -41
- package/resultsetTable/types.d.ts +2 -2
- package/select/Listbox.js +0 -1
- package/select/Select.js +3 -1
- package/select/Select.stories.tsx +2 -5
- package/select/Select.test.js +267 -209
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +118 -93
- package/slider/Slider.stories.tsx +7 -1
- package/slider/Slider.test.js +87 -24
- package/slider/types.d.ts +6 -2
- package/switch/Switch.d.ts +3 -3
- package/switch/Switch.js +94 -83
- package/switch/Switch.test.js +26 -13
- package/switch/types.d.ts +6 -1
- package/table/Table.js +1 -1
- package/table/Table.test.js +1 -1
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.js +360 -104
- package/tabs/Tabs.stories.tsx +74 -0
- package/tabs/Tabs.test.js +217 -6
- package/tabs/types.d.ts +14 -4
- package/tabs-nav/Tab.js +1 -1
- package/tag/Tag.js +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.js +7 -5
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +179 -263
- package/text-input/TextInput.stories.tsx +189 -181
- package/text-input/TextInput.test.js +639 -727
- package/text-input/types.d.ts +21 -2
- package/common/RequiredComponent.js +0 -32
|
@@ -83,7 +83,7 @@ describe("Number input component tests", function () {
|
|
|
83
83
|
})),
|
|
84
84
|
getByRole = _render8.getByRole;
|
|
85
85
|
|
|
86
|
-
var input = getByRole("
|
|
86
|
+
var input = getByRole("spinbutton");
|
|
87
87
|
|
|
88
88
|
_userEvent["default"].type(input, "1");
|
|
89
89
|
|
|
@@ -366,12 +366,7 @@ describe("Number input component tests", function () {
|
|
|
366
366
|
expect(number.value).toBe("10");
|
|
367
367
|
});
|
|
368
368
|
test("Increment and decrement the value with min, max and step", function () {
|
|
369
|
-
var onBlur = jest.fn(
|
|
370
|
-
var value = _ref3.value,
|
|
371
|
-
error = _ref3.error;
|
|
372
|
-
expect(value).toBe("1");
|
|
373
|
-
expect(error).toBe("Value must be greater than or equal to 5.");
|
|
374
|
-
});
|
|
369
|
+
var onBlur = jest.fn();
|
|
375
370
|
|
|
376
371
|
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
377
372
|
label: "Number input label",
|
|
@@ -389,6 +384,10 @@ describe("Number input component tests", function () {
|
|
|
389
384
|
|
|
390
385
|
_react2.fireEvent.blur(number);
|
|
391
386
|
|
|
387
|
+
expect(onBlur).toHaveBeenCalledWith({
|
|
388
|
+
value: "1",
|
|
389
|
+
error: "Value must be greater than or equal to 5."
|
|
390
|
+
});
|
|
392
391
|
var increment = getAllByRole("button")[1];
|
|
393
392
|
|
|
394
393
|
_userEvent["default"].click(increment);
|
|
@@ -503,4 +502,41 @@ describe("Number input component tests", function () {
|
|
|
503
502
|
var increment = getAllByRole("button")[1];
|
|
504
503
|
expect(increment.getAttribute("aria-label")).toBe("Increment value");
|
|
505
504
|
});
|
|
505
|
+
test("Number input submits correct values in a form", function () {
|
|
506
|
+
var handlerOnSubmit = jest.fn(function (e) {
|
|
507
|
+
e.preventDefault();
|
|
508
|
+
var formData = new FormData(e.target);
|
|
509
|
+
var formProps = Object.fromEntries(formData);
|
|
510
|
+
expect(formProps).toStrictEqual({
|
|
511
|
+
data: "0"
|
|
512
|
+
});
|
|
513
|
+
});
|
|
514
|
+
|
|
515
|
+
var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
|
|
516
|
+
onSubmit: handlerOnSubmit
|
|
517
|
+
}, /*#__PURE__*/_react["default"].createElement(_NumberInput["default"], {
|
|
518
|
+
label: "Number input label",
|
|
519
|
+
name: "data"
|
|
520
|
+
}), /*#__PURE__*/_react["default"].createElement("button", {
|
|
521
|
+
type: "submit"
|
|
522
|
+
}, "Submit"))),
|
|
523
|
+
getByText = _render23.getByText,
|
|
524
|
+
getAllByRole = _render23.getAllByRole;
|
|
525
|
+
|
|
526
|
+
var less = getAllByRole("button")[0];
|
|
527
|
+
var more = getAllByRole("button")[1];
|
|
528
|
+
var submit = getByText("Submit");
|
|
529
|
+
|
|
530
|
+
_userEvent["default"].click(more);
|
|
531
|
+
|
|
532
|
+
expect(handlerOnSubmit).not.toHaveBeenCalled();
|
|
533
|
+
|
|
534
|
+
_userEvent["default"].click(less);
|
|
535
|
+
|
|
536
|
+
expect(handlerOnSubmit).not.toHaveBeenCalled();
|
|
537
|
+
|
|
538
|
+
_userEvent["default"].click(submit);
|
|
539
|
+
|
|
540
|
+
expect(handlerOnSubmit).toHaveBeenCalled();
|
|
541
|
+
});
|
|
506
542
|
});
|
package/package.json
CHANGED
|
@@ -1,41 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxc-technology/halstack-react",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-f54247d",
|
|
4
4
|
"description": "DXC Halstack React components library",
|
|
5
5
|
"repository": "dxc-technology/halstack-react",
|
|
6
|
-
"homepage": "
|
|
6
|
+
"homepage": "https://developer.dxc.com/halstack",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "DXC Technology",
|
|
10
10
|
"email": "DigitalInsurance@dxc.com",
|
|
11
|
-
"url": "https://dxc.com"
|
|
11
|
+
"url": "https://developer.dxc.com"
|
|
12
12
|
},
|
|
13
13
|
"main": "./main.js",
|
|
14
14
|
"types": "./main.d.ts",
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"react": "^18.
|
|
17
|
-
"react-dom": "^18.
|
|
16
|
+
"react": "^18.x",
|
|
17
|
+
"react-dom": "^18.x",
|
|
18
18
|
"styled-components": "^5.0.1"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@
|
|
22
|
-
"@material-ui/core": "4.11.1",
|
|
23
|
-
"@material-ui/icons": "4.4.3",
|
|
24
|
-
"@material-ui/lab": "4.0.0-alpha.17",
|
|
25
|
-
"@material-ui/pickers": "3.2.2",
|
|
26
|
-
"@material-ui/styles": "4.0.2",
|
|
27
|
-
"@radix-ui/react-popover": "^0.1.6",
|
|
21
|
+
"@radix-ui/react-popover": "0.1.6",
|
|
28
22
|
"@types/styled-components": "^5.1.24",
|
|
29
23
|
"@types/uuid": "^8.3.4",
|
|
30
24
|
"color": "^3.1.3",
|
|
31
25
|
"dayjs": "^1.11.1",
|
|
32
|
-
"prop-types": "^15.7.2",
|
|
33
26
|
"rgb-hex": "^3.0.0",
|
|
34
27
|
"slugify": "^1.6.5",
|
|
35
28
|
"uuid": "^8.3.2"
|
|
36
29
|
},
|
|
37
30
|
"scripts": {
|
|
38
|
-
"test": "jest",
|
|
31
|
+
"test": "jest --env=jsdom",
|
|
39
32
|
"test:watch": "npm test -- --watch --coverage",
|
|
40
33
|
"build": "babel src --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose && node ../scripts/build/copy-package.js && tsc ",
|
|
41
34
|
"build:watch": "babel src --watch --extensions .js,.jsx,.ts,.tsx --out-dir ../dist --copy-files --verbose",
|
|
@@ -57,7 +50,7 @@
|
|
|
57
50
|
"@storybook/react": "^6.4.9",
|
|
58
51
|
"@storybook/testing-library": "0.0.7",
|
|
59
52
|
"@testing-library/react": "^13.0.0",
|
|
60
|
-
"@testing-library/user-event": "^
|
|
53
|
+
"@testing-library/user-event": "^13.0.0",
|
|
61
54
|
"@types/react": "^18.0.18",
|
|
62
55
|
"babel-jest": "^24.8.0",
|
|
63
56
|
"babel-loader": "^8.0.6",
|
|
@@ -72,9 +65,10 @@
|
|
|
72
65
|
"eslint-plugin-react-hooks": "^4.2.0",
|
|
73
66
|
"eslint-plugin-storybook": "^0.5.5",
|
|
74
67
|
"identity-obj-proxy": "^3.0.0",
|
|
75
|
-
"jest": "^
|
|
76
|
-
"
|
|
77
|
-
"react
|
|
68
|
+
"jest": "^29.2.2",
|
|
69
|
+
"jest-environment-jsdom": "^29.3.1",
|
|
70
|
+
"react": "^18.x",
|
|
71
|
+
"react-dom": "^18.x",
|
|
78
72
|
"react-test-renderer": "^16.8.6",
|
|
79
73
|
"storybook-addon-pseudo-states": "^1.0.0",
|
|
80
74
|
"styled-components": "^5.0.1",
|
|
@@ -84,7 +78,8 @@
|
|
|
84
78
|
"moduleNameMapper": {
|
|
85
79
|
"\\.(css|less|scss|sass)$": "identity-obj-proxy",
|
|
86
80
|
"\\.(svg)$": "<rootDir>/test/mocks/svgMock.js",
|
|
87
|
-
"\\.(png)$": "<rootDir>/test/mocks/pngMock.js"
|
|
81
|
+
"\\.(png)$": "<rootDir>/test/mocks/pngMock.js",
|
|
82
|
+
"^uuid$": "uuid"
|
|
88
83
|
}
|
|
89
84
|
}
|
|
90
85
|
}
|
package/paginator/Paginator.js
CHANGED
|
@@ -153,7 +153,7 @@ var ItemsPageContainer = _styledComponents["default"].span(_templateObject3 || (
|
|
|
153
153
|
|
|
154
154
|
var ItemsLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n"])));
|
|
155
155
|
|
|
156
|
-
var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left:
|
|
156
|
+
var GoToLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 0.5rem;\n margin-left: 0.5rem;\n"])));
|
|
157
157
|
|
|
158
158
|
var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: ", ";\n margin-left: ", ";\n"])), function (props) {
|
|
159
159
|
return props.theme.totalItemsContainerMarginRight;
|
|
@@ -163,7 +163,7 @@ var TotalItemsContainer = _styledComponents["default"].span(_templateObject6 ||
|
|
|
163
163
|
|
|
164
164
|
var LabelsContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n gap: 0.5rem;\n width: 100%;\n justify-content: flex-end;\n align-items: center;\n"])));
|
|
165
165
|
|
|
166
|
-
var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])));
|
|
166
|
+
var PageToSelectContainer = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n margin-right: 0.5rem;\n\n label {\n height: 0px;\n }\n label + .MuiInput-formControl {\n margin-top: 0px;\n }\n"])));
|
|
167
167
|
|
|
168
168
|
var TextContainer = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
169
169
|
|
|
@@ -77,7 +77,7 @@ describe("Paginator component tests", function () {
|
|
|
77
77
|
})),
|
|
78
78
|
getByText = _render3.getByText;
|
|
79
79
|
|
|
80
|
-
expect(getByText("Items per page")).toBeTruthy();
|
|
80
|
+
expect(getByText("Items per page:")).toBeTruthy();
|
|
81
81
|
});
|
|
82
82
|
test("Paginator renders with itemsPerPageOptions", function () {
|
|
83
83
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Paginator["default"], {
|
|
@@ -46,9 +46,9 @@ describe("Password input component tests", function () {
|
|
|
46
46
|
label: "Password input",
|
|
47
47
|
onChange: onChange
|
|
48
48
|
})),
|
|
49
|
-
|
|
49
|
+
getByLabelText = _render4.getByLabelText;
|
|
50
50
|
|
|
51
|
-
var passwordInput =
|
|
51
|
+
var passwordInput = getByLabelText("Password input");
|
|
52
52
|
|
|
53
53
|
_userEvent["default"].type(passwordInput, "Pa$$w0rd");
|
|
54
54
|
|
|
@@ -64,9 +64,9 @@ describe("Password input component tests", function () {
|
|
|
64
64
|
label: "Password input",
|
|
65
65
|
onBlur: onBlur
|
|
66
66
|
})),
|
|
67
|
-
|
|
67
|
+
getByLabelText = _render5.getByLabelText;
|
|
68
68
|
|
|
69
|
-
var passwordInput =
|
|
69
|
+
var passwordInput = getByLabelText("Password input");
|
|
70
70
|
|
|
71
71
|
_userEvent["default"].type(passwordInput, "Pa$$w0rd");
|
|
72
72
|
|
|
@@ -83,9 +83,9 @@ describe("Password input component tests", function () {
|
|
|
83
83
|
clearable: true
|
|
84
84
|
})),
|
|
85
85
|
getAllByRole = _render6.getAllByRole,
|
|
86
|
-
|
|
86
|
+
getByLabelText = _render6.getByLabelText;
|
|
87
87
|
|
|
88
|
-
var passwordInput =
|
|
88
|
+
var passwordInput = getByLabelText("Password input");
|
|
89
89
|
|
|
90
90
|
_userEvent["default"].type(passwordInput, "Pa$$w0rd");
|
|
91
91
|
|
|
@@ -101,9 +101,9 @@ describe("Password input component tests", function () {
|
|
|
101
101
|
label: "Password input"
|
|
102
102
|
})),
|
|
103
103
|
getAllByRole = _render7.getAllByRole,
|
|
104
|
-
|
|
104
|
+
getByLabelText = _render7.getByLabelText;
|
|
105
105
|
|
|
106
|
-
var passwordInput =
|
|
106
|
+
var passwordInput = getByLabelText("Password input");
|
|
107
107
|
|
|
108
108
|
_userEvent["default"].type(passwordInput, "Pa$$w0rd");
|
|
109
109
|
|
|
@@ -117,9 +117,9 @@ describe("Password input component tests", function () {
|
|
|
117
117
|
clearable: true
|
|
118
118
|
})),
|
|
119
119
|
getAllByRole = _render8.getAllByRole,
|
|
120
|
-
|
|
120
|
+
getByLabelText = _render8.getByLabelText;
|
|
121
121
|
|
|
122
|
-
var passwordInput =
|
|
122
|
+
var passwordInput = getByLabelText("Password input");
|
|
123
123
|
|
|
124
124
|
_userEvent["default"].type(passwordInput, "Pa$$w0rd");
|
|
125
125
|
|
|
@@ -164,9 +164,10 @@ describe("Password input component tests", function () {
|
|
|
164
164
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_PasswordInput["default"], {
|
|
165
165
|
label: "Password input"
|
|
166
166
|
})),
|
|
167
|
-
getByRole = _render10.getByRole
|
|
167
|
+
getByRole = _render10.getByRole,
|
|
168
|
+
getByLabelText = _render10.getByLabelText;
|
|
168
169
|
|
|
169
|
-
var passwordInput =
|
|
170
|
+
var passwordInput = getByLabelText("Password input");
|
|
170
171
|
expect(passwordInput.getAttribute("aria-autocomplete")).toBeNull();
|
|
171
172
|
expect(passwordInput.getAttribute("aria-controls")).toBeNull();
|
|
172
173
|
expect(passwordInput.getAttribute("aria-expanded")).toBeNull();
|
package/quick-nav/QuickNav.js
CHANGED
|
@@ -48,13 +48,10 @@ var DxcQuickNav = function DxcQuickNav(_ref) {
|
|
|
48
48
|
}, /*#__PURE__*/_react["default"].createElement(_Heading["default"], {
|
|
49
49
|
level: 4,
|
|
50
50
|
text: title || translatedLabels.quickNav.contentTitle
|
|
51
|
-
}), /*#__PURE__*/_react["default"].createElement(ListColumn, null,
|
|
52
|
-
direction: "column",
|
|
53
|
-
gap: "0.5rem"
|
|
54
|
-
}, links.map(function (link) {
|
|
51
|
+
}), /*#__PURE__*/_react["default"].createElement(ListColumn, null, links.map(function (link) {
|
|
55
52
|
var _link$links;
|
|
56
53
|
|
|
57
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
58
55
|
key: link.label
|
|
59
56
|
}, /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
60
57
|
space: "0.25rem"
|
|
@@ -62,18 +59,20 @@ var DxcQuickNav = function DxcQuickNav(_ref) {
|
|
|
62
59
|
href: "#".concat((0, _slugify["default"])(link === null || link === void 0 ? void 0 : link.label, {
|
|
63
60
|
lower: true
|
|
64
61
|
}))
|
|
65
|
-
}, link === null || link === void 0 ? void 0 : link.label), (_link$links = link.links) === null || _link$links === void 0 ? void 0 : _link$links.map(function (sublink) {
|
|
66
|
-
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", {
|
|
67
64
|
key: sublink.label
|
|
68
65
|
}, /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
69
66
|
horizontal: "0.5rem"
|
|
70
67
|
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, /*#__PURE__*/_react["default"].createElement(Link, {
|
|
71
|
-
href: "#".concat((0, _slugify["default"])(
|
|
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, {
|
|
72
71
|
lower: true
|
|
73
72
|
}))
|
|
74
73
|
}, sublink === null || sublink === void 0 ? void 0 : sublink.label))));
|
|
75
|
-
}))));
|
|
76
|
-
})))))
|
|
74
|
+
})))));
|
|
75
|
+
})))));
|
|
77
76
|
};
|
|
78
77
|
|
|
79
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) {
|
|
@@ -88,9 +87,9 @@ var QuickNavContainer = _styledComponents["default"].div(_templateObject || (_te
|
|
|
88
87
|
return props.theme.dividerBorderColor;
|
|
89
88
|
});
|
|
90
89
|
|
|
91
|
-
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"])));
|
|
92
91
|
|
|
93
|
-
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"])));
|
|
94
93
|
|
|
95
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) {
|
|
96
95
|
return props.theme.fontSize;
|
|
@@ -11,33 +11,60 @@ export default {
|
|
|
11
11
|
component: DxcQuickNav,
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
+
const defaultLinks = [
|
|
15
|
+
{
|
|
16
|
+
label: "Overview",
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
label: "Principles",
|
|
20
|
+
links: [{ label: "Color" }, { label: "Spacing" }, { label: "Typography" }],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
label: "Components",
|
|
24
|
+
links: [
|
|
25
|
+
{
|
|
26
|
+
label: "Accordion",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
label: "Button",
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
];
|
|
34
|
+
|
|
14
35
|
const links = [
|
|
15
36
|
{
|
|
16
37
|
label: "Overview",
|
|
17
|
-
id: "overview",
|
|
18
38
|
links: [
|
|
19
39
|
{
|
|
20
40
|
label: "Introduction",
|
|
21
|
-
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
label: "Components",
|
|
46
|
+
links: [
|
|
47
|
+
{
|
|
48
|
+
label: "Introduction",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: "Accordion",
|
|
22
52
|
},
|
|
23
53
|
],
|
|
24
54
|
},
|
|
25
55
|
{
|
|
26
56
|
label: "Principles very very very very very very very very long",
|
|
27
|
-
id: "principles",
|
|
28
57
|
links: [
|
|
29
|
-
{ label: "Color very very very very very very very very long"
|
|
30
|
-
{ label: "Spacingveryveryveryveryveryveryveryverylong"
|
|
31
|
-
{ label: "Typography"
|
|
58
|
+
{ label: "Color very very very very very very very very long" },
|
|
59
|
+
{ label: "Spacingveryveryveryveryveryveryveryverylong" },
|
|
60
|
+
{ label: "Typography" },
|
|
32
61
|
],
|
|
33
62
|
},
|
|
34
63
|
{
|
|
35
64
|
label: "Componentsveryveryveryveryveryveryveryverylong",
|
|
36
|
-
id: "components",
|
|
37
65
|
links: [
|
|
38
66
|
{
|
|
39
67
|
label: "Accordion",
|
|
40
|
-
id: "accordion",
|
|
41
68
|
},
|
|
42
69
|
],
|
|
43
70
|
},
|
|
@@ -48,19 +75,25 @@ export const Chromatic = () => (
|
|
|
48
75
|
<ExampleContainer>
|
|
49
76
|
<Title title="Default" level={4} />
|
|
50
77
|
<QuickNavContainer>
|
|
51
|
-
<DxcQuickNav links={
|
|
78
|
+
<DxcQuickNav links={defaultLinks} />
|
|
79
|
+
</QuickNavContainer>
|
|
80
|
+
</ExampleContainer>
|
|
81
|
+
<ExampleContainer>
|
|
82
|
+
<Title title="Text overflow" level={4} />
|
|
83
|
+
<QuickNavContainer>
|
|
84
|
+
<DxcQuickNav links={links} />
|
|
52
85
|
</QuickNavContainer>
|
|
53
86
|
</ExampleContainer>
|
|
54
87
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
55
88
|
<Title title="Link hovered" level={4} />
|
|
56
89
|
<QuickNavContainer>
|
|
57
|
-
<DxcQuickNav links={links}
|
|
90
|
+
<DxcQuickNav links={links} />
|
|
58
91
|
</QuickNavContainer>
|
|
59
92
|
</ExampleContainer>
|
|
60
93
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
61
94
|
<Title title="Link focus" level={4} />
|
|
62
95
|
<QuickNavContainer>
|
|
63
|
-
<DxcQuickNav links={links}
|
|
96
|
+
<DxcQuickNav links={links} />
|
|
64
97
|
</QuickNavContainer>
|
|
65
98
|
</ExampleContainer>
|
|
66
99
|
<ExampleContainer>
|
|
@@ -87,7 +120,44 @@ export const Chromatic = () => (
|
|
|
87
120
|
open source design system for insurance products and digital experiences. Our system provides all the
|
|
88
121
|
tools and resources needed to create superior, beautiful but above all, functional user experiences.
|
|
89
122
|
</DxcParagraph>
|
|
90
|
-
<Content id="introduction">
|
|
123
|
+
<Content id="overview-introduction">
|
|
124
|
+
<DxcHeading level={2} text="Introduction" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
125
|
+
<DxcParagraph>
|
|
126
|
+
Design principles Halstack design principles are the fundamental part of DXC Technology's approach to
|
|
127
|
+
provide guidance for development teams in order to deliver delightful and consistent user experiences to
|
|
128
|
+
our customers: Balance Consistency Visual hierarchy All our components, design tokens, accessibility
|
|
129
|
+
guidelines, responsive design techniques, and layout proposals have been carefully curated by DXC design
|
|
130
|
+
and engineering teams with the objective of creating a unique visual language and ecosystem for our
|
|
131
|
+
applications. This is the DXC way of creating User Experiences. Open Source Halstack is an open source
|
|
132
|
+
design system, this means that we work towards DXC Technology bussines needs, but it is open for anyone
|
|
133
|
+
to use and contribute back to. We are charmed to receive external contributions to help us find bugs,
|
|
134
|
+
design new features, or help us improve the project documentation. If you're interested, definitely
|
|
135
|
+
check out our contribution guidelines.Design principles Halstack design principles are the fundamental
|
|
136
|
+
part of DXC Technology's approach to provide guidance for development teams in order to deliver
|
|
137
|
+
delightful and consistent user experiences to our customers: Balance Consistency Visual hierarchy All
|
|
138
|
+
our components, design tokens, accessibility guidelines, responsive design techniques, and layout
|
|
139
|
+
proposals have been carefully curated by DXC design and engineering teams with the objective of creating
|
|
140
|
+
a unique visual language and ecosystem for our applications. This is the DXC way of creating User
|
|
141
|
+
Experiences. Open Source Halstack is an open source design system, this means that we work towards DXC
|
|
142
|
+
Technology bussines needs, but it is open for anyone to use and contribute back to. We are charmed to
|
|
143
|
+
receive external contributions to help us find bugs, design new features, or help us improve the project
|
|
144
|
+
documentation. If you're interested, definitely check out our contribution guidelines.Design principles
|
|
145
|
+
Halstack design principles are the fundamental part of DXC Technology's approach to provide guidance for
|
|
146
|
+
development teams in order to deliver delightful and consistent user experiences to our customers:
|
|
147
|
+
Balance Consistency Visual hierarchy All our components, design tokens, accessibility guidelines,
|
|
148
|
+
responsive design techniques, and layout proposals have been carefully curated by DXC design and
|
|
149
|
+
engineering teams with the objective of creating a unique visual language and ecosystem for our
|
|
150
|
+
applications. This is the DXC way of creating User Experiences. Open Source Halstack is an open source
|
|
151
|
+
design system, this means that we work towards DXC Technology bussines needs, but it is open for anyone
|
|
152
|
+
to use and contribute back to. We are charmed to receive external contributions to help us find bugs,
|
|
153
|
+
design new features, or help us improve the project documentation. If you're interested, definitely
|
|
154
|
+
check out our contribution guidelines.
|
|
155
|
+
</DxcParagraph>
|
|
156
|
+
</Content>
|
|
157
|
+
</Content>
|
|
158
|
+
<Content id="components">
|
|
159
|
+
<DxcHeading level={1} text="Components" margin={{ top: "small", bottom: "xsmall" }} />
|
|
160
|
+
<Content id="components-introduction">
|
|
91
161
|
<DxcHeading level={2} text="Introduction" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
92
162
|
<DxcParagraph>
|
|
93
163
|
Design principles Halstack design principles are the fundamental part of DXC Technology's approach to
|
|
@@ -121,10 +191,18 @@ export const Chromatic = () => (
|
|
|
121
191
|
check out our contribution guidelines.
|
|
122
192
|
</DxcParagraph>
|
|
123
193
|
</Content>
|
|
194
|
+
<Content id="components-accordion">
|
|
195
|
+
<DxcHeading level={2} text="Accordion" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
196
|
+
<DxcParagraph>
|
|
197
|
+
Accordions are used to group similar content and hide or show it depending on user needs or preferences.
|
|
198
|
+
Accordions give users more granular control over the interface and help digest content in stages, rather
|
|
199
|
+
than all at once.
|
|
200
|
+
</DxcParagraph>
|
|
201
|
+
</Content>
|
|
124
202
|
</Content>
|
|
125
|
-
<Content id="principles">
|
|
203
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long">
|
|
126
204
|
<DxcHeading level={1} text="Principles" margin={{ top: "small", bottom: "xsmall" }} />
|
|
127
|
-
<Content id="color">
|
|
205
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-color-very-very-very-very-very-very-very-very-long">
|
|
128
206
|
<DxcHeading level={2} text="Color" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
129
207
|
<DxcParagraph>
|
|
130
208
|
The color palette is an essential asset as a communication resource of our design system. Halstack color
|
|
@@ -161,7 +239,7 @@ export const Chromatic = () => (
|
|
|
161
239
|
role-based color palettes and must not be used outside this context.
|
|
162
240
|
</DxcParagraph>
|
|
163
241
|
</Content>
|
|
164
|
-
<Content id="
|
|
242
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-spacingveryveryveryveryveryveryveryverylong">
|
|
165
243
|
<DxcHeading level={2} text="Spacing" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
166
244
|
<DxcParagraph>
|
|
167
245
|
In the search of consistent alignment between the elements we provide a spacing scale based on a root
|
|
@@ -183,7 +261,7 @@ export const Chromatic = () => (
|
|
|
183
261
|
easily multiplied, they provide flexible and consistent, yet distinct enough, steps between them.
|
|
184
262
|
</DxcParagraph>
|
|
185
263
|
</Content>
|
|
186
|
-
<Content id="typography">
|
|
264
|
+
<Content id="principles-very-very-very-very-very-very-very-very-long-typography">
|
|
187
265
|
<DxcHeading level={2} text="Typography" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
188
266
|
<DxcParagraph>
|
|
189
267
|
Our selected typography helps in structuring our user's experience based on the visual impact that it
|
|
@@ -220,9 +298,9 @@ export const Chromatic = () => (
|
|
|
220
298
|
</DxcParagraph>
|
|
221
299
|
</Content>
|
|
222
300
|
</Content>
|
|
223
|
-
<Content id="
|
|
301
|
+
<Content id="componentsveryveryveryveryveryveryveryverylong">
|
|
224
302
|
<DxcHeading level={1} text="Components" margin={{ top: "small", bottom: "xsmall" }} />
|
|
225
|
-
<Content id="accordion">
|
|
303
|
+
<Content id="componentsveryveryveryveryveryveryveryverylong-accordion">
|
|
226
304
|
<DxcHeading level={2} text="Accordion" margin={{ top: "xsmall", bottom: "xsmall" }} />
|
|
227
305
|
<DxcParagraph>
|
|
228
306
|
Accordions are used to group similar content and hide or show it depending on user needs or preferences.
|
|
@@ -233,7 +311,7 @@ export const Chromatic = () => (
|
|
|
233
311
|
</Content>
|
|
234
312
|
</ContentContainer>
|
|
235
313
|
<QuickNavContainer>
|
|
236
|
-
<DxcQuickNav title="Sections" links={links}
|
|
314
|
+
<DxcQuickNav title="Sections" links={links} />
|
|
237
315
|
</QuickNavContainer>
|
|
238
316
|
</Container>
|
|
239
317
|
</ExampleContainer>
|
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;
|