@dxc-technology/halstack-react 0.0.0-dfd09f9 → 0.0.0-e01c6f9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +1 -10
- package/BackgroundColorContext.js +5 -22
- package/HalstackContext.d.ts +1235 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -160
- package/accordion/Accordion.stories.tsx +103 -127
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +5 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +11 -16
- package/action-icon/ActionIcon.d.ts +4 -0
- package/action-icon/ActionIcon.js +43 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +23 -59
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +8 -19
- package/badge/types.d.ts +2 -1
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +30 -81
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +89 -0
- package/bulleted-list/BulletedList.stories.tsx +115 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +62 -113
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +18 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +58 -102
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +141 -180
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +12 -6
- package/chip/Chip.js +39 -79
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1381 -0
- package/common/variables.js +998 -1117
- package/container/Container.d.ts +4 -0
- package/container/Container.js +194 -0
- package/container/Container.stories.tsx +214 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +153 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +73 -107
- package/dialog/Dialog.stories.tsx +320 -167
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -304
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +67 -0
- package/dropdown/types.d.ts +32 -14
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +246 -357
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +50 -99
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +57 -115
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +3 -8
- package/footer/types.d.ts +21 -28
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +90 -170
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -19
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +82 -166
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +51 -48
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +13 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +61 -99
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +25 -53
- package/link/types.d.ts +15 -31
- package/main.d.ts +11 -12
- package/main.js +58 -109
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +90 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +75 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +701 -377
- package/number-input/types.d.ts +12 -6
- package/package.json +44 -46
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +34 -91
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +22 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -123
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -143
- package/password-input/types.d.ts +9 -8
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +71 -41
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +71 -116
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +46 -51
- package/select/Option.js +20 -50
- package/select/Select.js +168 -242
- package/select/Select.stories.tsx +525 -136
- package/select/Select.test.js +2009 -1696
- package/select/types.d.ts +16 -20
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +131 -71
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +148 -181
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.js +31 -75
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +143 -121
- package/switch/Switch.stories.tsx +41 -64
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +9 -5
- package/table/Table.js +8 -30
- package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +8 -8
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +113 -0
- package/tabs/Tabs.js +314 -141
- package/tabs/Tabs.stories.tsx +119 -11
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.js +33 -68
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +323 -547
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1403 -1376
- package/text-input/types.d.ts +53 -14
- package/textarea/Textarea.js +79 -131
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +10 -6
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +92 -106
- package/toggle-group/ToggleGroup.stories.tsx +49 -4
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -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 +1133 -1
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +121 -0
- package/wizard/Wizard.js +51 -91
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.js +0 -254
- 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/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → action-icon}/types.js +0 -0
- /package/{radio → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/select/types.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
export type OptionGroup = {
|
|
11
11
|
/**
|
|
12
12
|
* Label of the group to be shown in the select's listbox.
|
|
13
13
|
*/
|
|
@@ -17,7 +17,7 @@ declare type OptionGroup = {
|
|
|
17
17
|
*/
|
|
18
18
|
options: Option[];
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
export type Option = {
|
|
21
21
|
/**
|
|
22
22
|
* Element used as the icon that will be placed before the option label.
|
|
23
23
|
* It can be a url of an image or an inline SVG. If the url option
|
|
@@ -36,7 +36,7 @@ declare type Option = {
|
|
|
36
36
|
*/
|
|
37
37
|
value: string;
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
type CommonProps = {
|
|
40
40
|
/**
|
|
41
41
|
* Text to be placed above the select.
|
|
42
42
|
*/
|
|
@@ -45,9 +45,8 @@ declare type CommonProps = {
|
|
|
45
45
|
* Name attribute of the input element. This attribute will allow users
|
|
46
46
|
* to find the component's value during the submit event. In this event,
|
|
47
47
|
* the component's value will always be a regular string, for both single
|
|
48
|
-
* and multiple selection modes,
|
|
49
|
-
*
|
|
50
|
-
* separated by commas.
|
|
48
|
+
* and multiple selection modes, being a single option value in the first case
|
|
49
|
+
* and more than one value when multiple selection is available, separated by commas.
|
|
51
50
|
*/
|
|
52
51
|
name?: string;
|
|
53
52
|
/**
|
|
@@ -101,7 +100,7 @@ declare type CommonProps = {
|
|
|
101
100
|
*/
|
|
102
101
|
tabIndex?: number;
|
|
103
102
|
};
|
|
104
|
-
|
|
103
|
+
type SingleSelect = CommonProps & {
|
|
105
104
|
/**
|
|
106
105
|
* If true, the select component will support multiple selected options.
|
|
107
106
|
* In that case, value will be an array of strings with each selected
|
|
@@ -137,7 +136,7 @@ declare type SingleSelect = CommonProps & {
|
|
|
137
136
|
error?: string;
|
|
138
137
|
}) => void;
|
|
139
138
|
};
|
|
140
|
-
|
|
139
|
+
type MultipleSelect = CommonProps & {
|
|
141
140
|
/**
|
|
142
141
|
* If true, the select component will support multiple selected options.
|
|
143
142
|
* In that case, value will be an array of strings with each selected
|
|
@@ -173,11 +172,11 @@ declare type MultipleSelect = CommonProps & {
|
|
|
173
172
|
error?: string;
|
|
174
173
|
}) => void;
|
|
175
174
|
};
|
|
176
|
-
|
|
175
|
+
type Props = SingleSelect | MultipleSelect;
|
|
177
176
|
/**
|
|
178
177
|
* Single option of the select component.
|
|
179
178
|
*/
|
|
180
|
-
export
|
|
179
|
+
export type OptionProps = {
|
|
181
180
|
id: string;
|
|
182
181
|
option: Option;
|
|
183
182
|
onClick: (option: Option) => void;
|
|
@@ -190,7 +189,7 @@ export declare type OptionProps = {
|
|
|
190
189
|
/**
|
|
191
190
|
* Listbox from the select component.
|
|
192
191
|
*/
|
|
193
|
-
export
|
|
192
|
+
export type ListboxProps = {
|
|
194
193
|
id: string;
|
|
195
194
|
currentValue: string | string[];
|
|
196
195
|
options: Option[] | OptionGroup[];
|
|
@@ -201,13 +200,10 @@ export declare type ListboxProps = {
|
|
|
201
200
|
optionalItem: Option;
|
|
202
201
|
searchable: boolean;
|
|
203
202
|
handleOptionOnClick: (option: Option) => void;
|
|
203
|
+
styles: React.CSSProperties;
|
|
204
204
|
};
|
|
205
|
-
/**
|
|
206
|
-
* Reference to the listbox component.
|
|
207
|
-
*/
|
|
208
|
-
export declare type ListboxRefType = HTMLUListElement;
|
|
209
205
|
/**
|
|
210
206
|
* Reference to the select component.
|
|
211
207
|
*/
|
|
212
|
-
export
|
|
208
|
+
export type RefType = HTMLDivElement;
|
|
213
209
|
export default Props;
|
package/sidenav/Icons.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var icons = {
|
|
10
|
+
collapsedIcon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
+
height: "24px",
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
width: "24px",
|
|
15
|
+
fill: "currentColor"
|
|
16
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
17
|
+
d: "M0 0h24v24H0z",
|
|
18
|
+
fill: "none"
|
|
19
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
20
|
+
d: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
|
|
21
|
+
})),
|
|
22
|
+
collapsableIcon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
23
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
+
height: "24px",
|
|
25
|
+
viewBox: "0 0 24 24",
|
|
26
|
+
width: "24px",
|
|
27
|
+
fill: "currentColor"
|
|
28
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
29
|
+
d: "M0 0h24v24H0z",
|
|
30
|
+
fill: "none"
|
|
31
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
32
|
+
d: "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"
|
|
33
|
+
})),
|
|
34
|
+
externalLinkIcon: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
35
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
36
|
+
height: "24",
|
|
37
|
+
viewBox: "0 0 24 24",
|
|
38
|
+
width: "24",
|
|
39
|
+
fill: "currentColor"
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
41
|
+
d: "M0 0h24v24H0z",
|
|
42
|
+
fill: "none"
|
|
43
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
44
|
+
d: "M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"
|
|
45
|
+
}))
|
|
46
|
+
};
|
|
47
|
+
var _default = exports["default"] = icons;
|
package/sidenav/Sidenav.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import SidenavPropsType, {
|
|
1
|
+
import React from "react";
|
|
2
|
+
import SidenavPropsType, { SidenavGroupPropsType, SidenavLinkPropsType, SidenavSectionPropsType, SidenavTitlePropsType } from "./types.js";
|
|
3
3
|
declare const DxcSidenav: {
|
|
4
|
-
({
|
|
4
|
+
({ title, children }: SidenavPropsType): JSX.Element;
|
|
5
|
+
Section: ({ children }: SidenavSectionPropsType) => JSX.Element;
|
|
6
|
+
Group: ({ title, collapsable, icon, children }: SidenavGroupPropsType) => JSX.Element;
|
|
7
|
+
Link: React.ForwardRefExoticComponent<SidenavLinkPropsType & React.RefAttributes<HTMLAnchorElement>>;
|
|
5
8
|
Title: ({ children }: SidenavTitlePropsType) => JSX.Element;
|
|
6
|
-
Subtitle: ({ children }: SidenavSubtitlePropsType) => JSX.Element;
|
|
7
|
-
Link: ({ tabIndex, href, onClick, children }: SidenavLinkPropsType) => JSX.Element;
|
|
8
9
|
};
|
|
9
10
|
export default DxcSidenav;
|
package/sidenav/Sidenav.js
CHANGED
|
@@ -1,88 +1,136 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
16
14
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
17
|
-
|
|
18
|
-
var
|
|
19
|
-
|
|
15
|
+
var _variables = require("../common/variables");
|
|
16
|
+
var _SidenavContext = require("../layout/SidenavContext");
|
|
20
17
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
21
|
-
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
25
|
-
|
|
26
|
-
function _getRequireWildcardCache(
|
|
27
|
-
|
|
28
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
-
|
|
18
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
19
|
+
var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
|
|
20
|
+
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
21
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
22
|
+
var _excluded = ["href", "newWindow", "selected", "icon", "onClick", "tabIndex", "children"];
|
|
23
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
24
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
30
25
|
var DxcSidenav = function DxcSidenav(_ref) {
|
|
31
|
-
var
|
|
32
|
-
|
|
26
|
+
var title = _ref.title,
|
|
27
|
+
children = _ref.children;
|
|
33
28
|
var colorsTheme = (0, _useTheme["default"])();
|
|
34
29
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
35
30
|
theme: colorsTheme.sidenav
|
|
36
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
color: colorsTheme.sidenav.backgroundColor
|
|
31
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
32
|
+
direction: "column",
|
|
33
|
+
gap: "1rem"
|
|
40
34
|
}, children)));
|
|
41
35
|
};
|
|
42
|
-
|
|
43
36
|
var Title = function Title(_ref2) {
|
|
44
37
|
var children = _ref2.children;
|
|
45
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
38
|
+
return /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
39
|
+
horizontal: "1rem"
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavTitle, null, children));
|
|
46
41
|
};
|
|
47
|
-
|
|
48
|
-
var Subtitle = function Subtitle(_ref3) {
|
|
42
|
+
var Section = function Section(_ref3) {
|
|
49
43
|
var children = _ref3.children;
|
|
50
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
44
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
45
|
+
horizontal: "1rem"
|
|
46
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
47
|
+
direction: "column"
|
|
48
|
+
}, children)), /*#__PURE__*/_react["default"].createElement(Divider, null));
|
|
51
49
|
};
|
|
52
|
-
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
var GroupContext = /*#__PURE__*/_react["default"].createContext(null);
|
|
51
|
+
var Group = function Group(_ref4) {
|
|
52
|
+
var title = _ref4.title,
|
|
53
|
+
_ref4$collapsable = _ref4.collapsable,
|
|
54
|
+
collapsable = _ref4$collapsable === void 0 ? false : _ref4$collapsable,
|
|
55
|
+
icon = _ref4.icon,
|
|
56
|
+
children = _ref4.children;
|
|
57
|
+
var _useState = (0, _react.useState)(false),
|
|
58
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
59
|
+
collapsed = _useState2[0],
|
|
60
|
+
setCollapsed = _useState2[1];
|
|
61
|
+
var _useState3 = (0, _react.useState)(false),
|
|
62
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
63
|
+
isSelected = _useState4[0],
|
|
64
|
+
changeIsSelected = _useState4[1];
|
|
65
|
+
return /*#__PURE__*/_react["default"].createElement(GroupContext.Provider, {
|
|
66
|
+
value: changeIsSelected
|
|
67
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavGroup, null, collapsable && title ? /*#__PURE__*/_react["default"].createElement(SidenavGroupTitleButton, {
|
|
68
|
+
"aria-expanded": !collapsed,
|
|
69
|
+
onClick: function onClick() {
|
|
70
|
+
return setCollapsed(!collapsed);
|
|
71
|
+
},
|
|
72
|
+
selectedGroup: collapsed && isSelected
|
|
73
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
74
|
+
alignItems: "center",
|
|
75
|
+
gap: "0.5rem"
|
|
76
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
77
|
+
src: icon
|
|
78
|
+
}) : icon, title), collapsed ? _Icons["default"].collapsedIcon : _Icons["default"].collapsableIcon) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
79
|
+
src: icon
|
|
80
|
+
}) : icon, title), !collapsed && children));
|
|
64
81
|
};
|
|
65
|
-
|
|
66
|
-
var
|
|
82
|
+
var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
|
|
83
|
+
var href = _ref5.href,
|
|
84
|
+
_ref5$newWindow = _ref5.newWindow,
|
|
85
|
+
newWindow = _ref5$newWindow === void 0 ? false : _ref5$newWindow,
|
|
86
|
+
_ref5$selected = _ref5.selected,
|
|
87
|
+
selected = _ref5$selected === void 0 ? false : _ref5$selected,
|
|
88
|
+
icon = _ref5.icon,
|
|
89
|
+
onClick = _ref5.onClick,
|
|
90
|
+
_ref5$tabIndex = _ref5.tabIndex,
|
|
91
|
+
tabIndex = _ref5$tabIndex === void 0 ? 0 : _ref5$tabIndex,
|
|
92
|
+
children = _ref5.children,
|
|
93
|
+
otherProps = (0, _objectWithoutProperties2["default"])(_ref5, _excluded);
|
|
94
|
+
var changeIsGroupSelected = (0, _react.useContext)(GroupContext);
|
|
95
|
+
var setIsSidenavVisibleResponsive = (0, _SidenavContext.useResponsiveSidenavVisibility)();
|
|
96
|
+
var handleClick = function handleClick($event) {
|
|
97
|
+
onClick === null || onClick === void 0 ? void 0 : onClick($event);
|
|
98
|
+
setIsSidenavVisibleResponsive === null || setIsSidenavVisibleResponsive === void 0 ? void 0 : setIsSidenavVisibleResponsive(false);
|
|
99
|
+
};
|
|
100
|
+
(0, _react.useEffect)(function () {
|
|
101
|
+
changeIsGroupSelected === null || changeIsGroupSelected === void 0 ? void 0 : changeIsGroupSelected(function (isGroupSelected) {
|
|
102
|
+
return !isGroupSelected ? selected : isGroupSelected;
|
|
103
|
+
});
|
|
104
|
+
}, [selected, changeIsGroupSelected]);
|
|
105
|
+
return /*#__PURE__*/_react["default"].createElement(SidenavLink, (0, _extends2["default"])({
|
|
106
|
+
selected: selected,
|
|
107
|
+
href: href ? href : undefined,
|
|
108
|
+
target: href ? newWindow ? "_blank" : "_self" : undefined,
|
|
109
|
+
ref: ref,
|
|
110
|
+
tabIndex: tabIndex,
|
|
111
|
+
onClick: handleClick
|
|
112
|
+
}, otherProps), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
113
|
+
alignItems: "center",
|
|
114
|
+
gap: "0.5rem"
|
|
115
|
+
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
116
|
+
src: icon
|
|
117
|
+
}) : icon, children), newWindow && _Icons["default"].externalLinkIcon);
|
|
118
|
+
});
|
|
119
|
+
var SidenavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: 280px;\n @media (max-width: ", "rem) {\n width: 100vw;\n }\n padding: 2rem 1rem;\n background-color: ", ";\n\n overflow-y: auto;\n overflow-x: hidden;\n ::-webkit-scrollbar {\n width: 2px;\n }\n ::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 3px;\n }\n ::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 3px;\n }\n"])), _variables.responsiveSizes.medium, function (props) {
|
|
67
120
|
return props.theme.backgroundColor;
|
|
68
|
-
}, function (props) {
|
|
69
|
-
return props.padding ? "calc(300px - ".concat(_variables.spaces[props.padding], " - ").concat(_variables.spaces[props.padding], ")") : "300px";
|
|
70
|
-
}, function (props) {
|
|
71
|
-
return props.padding ? _variables.spaces[props.padding] : "";
|
|
72
121
|
}, function (props) {
|
|
73
122
|
return props.theme.scrollBarTrackColor;
|
|
74
123
|
}, function (props) {
|
|
75
124
|
return props.theme.scrollBarThumbColor;
|
|
76
125
|
});
|
|
77
|
-
|
|
78
|
-
var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n margin-bottom: 16px;\n"])), function (props) {
|
|
126
|
+
var SidenavTitle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n"])), function (props) {
|
|
79
127
|
return props.theme.titleFontFamily;
|
|
80
|
-
}, function (props) {
|
|
81
|
-
return props.theme.titleFontSize;
|
|
82
128
|
}, function (props) {
|
|
83
129
|
return props.theme.titleFontStyle;
|
|
84
130
|
}, function (props) {
|
|
85
131
|
return props.theme.titleFontWeight;
|
|
132
|
+
}, function (props) {
|
|
133
|
+
return props.theme.titleFontSize;
|
|
86
134
|
}, function (props) {
|
|
87
135
|
return props.theme.titleFontColor;
|
|
88
136
|
}, function (props) {
|
|
@@ -90,33 +138,42 @@ var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_te
|
|
|
90
138
|
}, function (props) {
|
|
91
139
|
return props.theme.titleFontTextTransform;
|
|
92
140
|
});
|
|
93
|
-
|
|
94
|
-
var
|
|
95
|
-
|
|
141
|
+
var Divider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n\n &:last-child {\n display: none;\n }\n"])));
|
|
142
|
+
var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n a {\n padding: 0.5rem 1.2rem 0.5rem 2.25rem;\n }\n"])));
|
|
143
|
+
var SidenavGroupTitle = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
144
|
+
return props.theme.groupTitleFontFamily;
|
|
96
145
|
}, function (props) {
|
|
97
|
-
return props.theme.
|
|
146
|
+
return props.theme.groupTitleFontStyle;
|
|
98
147
|
}, function (props) {
|
|
99
|
-
return props.theme.
|
|
148
|
+
return props.theme.groupTitleFontWeight;
|
|
100
149
|
}, function (props) {
|
|
101
|
-
return props.theme.
|
|
150
|
+
return props.theme.groupTitleFontSize;
|
|
151
|
+
});
|
|
152
|
+
var SidenavGroupTitleButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 0.5rem 1.2rem;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n }\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
153
|
+
return props.theme.groupTitleFontFamily;
|
|
154
|
+
}, function (props) {
|
|
155
|
+
return props.theme.groupTitleFontStyle;
|
|
156
|
+
}, function (props) {
|
|
157
|
+
return props.theme.groupTitleFontWeight;
|
|
102
158
|
}, function (props) {
|
|
103
|
-
return props.theme.
|
|
159
|
+
return props.theme.groupTitleFontSize;
|
|
104
160
|
}, function (props) {
|
|
105
|
-
return props.theme.
|
|
161
|
+
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: transparent;");
|
|
162
|
+
}, function (props) {
|
|
163
|
+
return props.theme.linkFocusColor;
|
|
106
164
|
}, function (props) {
|
|
107
|
-
return props.theme.
|
|
165
|
+
return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedHoverFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: ").concat(props.theme.groupTitleHoverBackgroundColor, ";");
|
|
166
|
+
}, function (props) {
|
|
167
|
+
return props.selectedGroup ? "#333" : props.theme.groupTitleActiveBackgroundColor;
|
|
108
168
|
});
|
|
109
|
-
|
|
110
|
-
var SideNavMenuLink = _styledComponents["default"].a(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n margin: ", ";\n cursor: pointer;\n\n :focus-visible {\n outline: 2px solid ", ";\n outline-offset: 1px;\n }\n"])), function (props) {
|
|
169
|
+
var SidenavLink = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n padding: 0.5rem 1.2rem;\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n font-size: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n text-decoration: ", ";\n cursor: pointer;\n\n ", "\n\n &:focus, &:focus-visible {\n outline: 2px solid ", ";\n outline-offset: -2px;\n }\n &:hover {\n ", "\n }\n &:active {\n color: #fff;\n background-color: ", ";\n outline: 2px solid #0095ff;\n outline-offset: -2px;\n }\n\n img,\n svg {\n height: 16px;\n width: 16px;\n }\n"])), function (props) {
|
|
111
170
|
return props.theme.linkFontFamily;
|
|
112
|
-
}, function (props) {
|
|
113
|
-
return props.theme.linkFontSize;
|
|
114
171
|
}, function (props) {
|
|
115
172
|
return props.theme.linkFontStyle;
|
|
116
173
|
}, function (props) {
|
|
117
174
|
return props.theme.linkFontWeight;
|
|
118
175
|
}, function (props) {
|
|
119
|
-
return props.theme.
|
|
176
|
+
return props.theme.linkFontSize;
|
|
120
177
|
}, function (props) {
|
|
121
178
|
return props.theme.linkFontLetterSpacing;
|
|
122
179
|
}, function (props) {
|
|
@@ -124,13 +181,16 @@ var SideNavMenuLink = _styledComponents["default"].a(_templateObject4 || (_templ
|
|
|
124
181
|
}, function (props) {
|
|
125
182
|
return props.theme.linkTextDecoration;
|
|
126
183
|
}, function (props) {
|
|
127
|
-
return "".concat(props.theme.
|
|
184
|
+
return props.selected ? "color: ".concat(props.theme.linkSelectedFontColor, "; background-color: ").concat(props.theme.linkSelectedBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: transparent;");
|
|
128
185
|
}, function (props) {
|
|
129
186
|
return props.theme.linkFocusColor;
|
|
187
|
+
}, function (props) {
|
|
188
|
+
return props.selected ? "color: ".concat(props.theme.linkSelectedHoverFontColor, "; background-color: ").concat(props.theme.linkSelectedHoverBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: ").concat(props.theme.linkHoverBackgroundColor, ";");
|
|
189
|
+
}, function (props) {
|
|
190
|
+
return props.selected ? "#333" : "#4d4d4d";
|
|
130
191
|
});
|
|
131
|
-
|
|
132
|
-
DxcSidenav.
|
|
133
|
-
DxcSidenav.Subtitle = Subtitle;
|
|
192
|
+
DxcSidenav.Section = Section;
|
|
193
|
+
DxcSidenav.Group = Group;
|
|
134
194
|
DxcSidenav.Link = Link;
|
|
135
|
-
|
|
136
|
-
exports["default"] =
|
|
195
|
+
DxcSidenav.Title = Title;
|
|
196
|
+
var _default = exports["default"] = DxcSidenav;
|