@dxc-technology/halstack-react 0.0.0-c291a0c → 0.0.0-c3c521c
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 +1215 -6
- package/HalstackContext.js +125 -110
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -160
- package/accordion/Accordion.stories.tsx +102 -126
- 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 +47 -0
- package/action-icon/ActionIcon.stories.tsx +41 -0
- package/action-icon/ActionIcon.test.js +64 -0
- package/action-icon/types.d.ts +26 -0
- package/alert/Alert.js +20 -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 +142 -42
- package/badge/Badge.stories.tsx +210 -0
- package/badge/Badge.test.js +30 -0
- package/badge/types.d.ts +52 -3
- package/bleed/Bleed.js +13 -21
- package/bleed/Bleed.stories.tsx +64 -63
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -60
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/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 +63 -117
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +20 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +140 -182
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- 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 +1367 -0
- package/common/variables.js +909 -1140
- 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 +150 -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 -300
- 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 +241 -355
- 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 +45 -96
- 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 +70 -117
- package/footer/Footer.stories.tsx +60 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +3 -2
- package/footer/Icons.js +66 -7
- package/footer/types.d.ts +25 -26
- 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 +85 -168
- 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 +13 -21
- package/inset/Inset.stories.tsx +5 -4
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +50 -115
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +21 -32
- package/link/Link.js +25 -46
- package/link/Link.stories.tsx +73 -6
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +12 -13
- package/main.js +45 -103
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +28 -60
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
- package/nav-tabs/Tab.js +118 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- 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 +11 -5
- package/package.json +43 -46
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +23 -59
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +253 -226
- 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 -126
- package/password-input/PasswordInput.stories.tsx +1 -33
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +65 -91
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +27 -45
- 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 +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +101 -144
- 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.js +17 -49
- package/select/Option.js +27 -50
- package/select/Select.js +132 -202
- package/select/Select.stories.tsx +497 -152
- package/select/Select.test.js +1966 -1758
- package/select/types.d.ts +16 -19
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +127 -78
- 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/status-light/StatusLight.d.ts +4 -0
- package/status-light/StatusLight.js +51 -0
- package/status-light/StatusLight.stories.tsx +74 -0
- package/status-light/StatusLight.test.js +25 -0
- package/status-light/types.d.ts +17 -0
- package/status-light/types.js +5 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +145 -126
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- 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 +116 -0
- package/tabs/Tabs.js +314 -141
- package/tabs/Tabs.stories.tsx +120 -6
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.js +29 -61
- 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.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +84 -0
- package/text-input/TextInput.js +308 -506
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1402 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.js +70 -113
- package/textarea/Textarea.stories.tsx +174 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.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 +1119 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +124 -0
- package/wizard/Wizard.js +24 -66
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/inline/Inline.d.ts +0 -4
- package/inline/Inline.js +0 -54
- package/inline/Inline.stories.tsx +0 -264
- package/inline/types.d.ts +0 -32
- 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/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- 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 -4
- package/stack/Stack.js +0 -50
- package/stack/Stack.stories.tsx +0 -225
- package/stack/types.d.ts +0 -28
- package/tabs-nav/Tab.js +0 -132
- 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/{inline → action-icon}/types.js +0 -0
- /package/{list → 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/{tabs-nav → image}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/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,12 +200,10 @@ export declare type ListboxProps = {
|
|
|
201
200
|
optionalItem: Option;
|
|
202
201
|
searchable: boolean;
|
|
203
202
|
handleOptionOnClick: (option: Option) => void;
|
|
204
|
-
styles:
|
|
205
|
-
width: number;
|
|
206
|
-
};
|
|
203
|
+
styles: React.CSSProperties;
|
|
207
204
|
};
|
|
208
205
|
/**
|
|
209
206
|
* Reference to the select component.
|
|
210
207
|
*/
|
|
211
|
-
export
|
|
208
|
+
export type RefType = HTMLDivElement;
|
|
212
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,99 +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 _variables = require("../common/variables.js");
|
|
19
|
-
|
|
20
|
-
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
21
|
-
|
|
22
|
-
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
23
|
-
|
|
15
|
+
var _variables = require("../common/variables");
|
|
24
16
|
var _SidenavContext = require("../layout/SidenavContext");
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
17
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
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; }
|
|
32
25
|
var DxcSidenav = function DxcSidenav(_ref) {
|
|
33
|
-
var
|
|
34
|
-
|
|
26
|
+
var title = _ref.title,
|
|
27
|
+
children = _ref.children;
|
|
35
28
|
var colorsTheme = (0, _useTheme["default"])();
|
|
36
29
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
37
30
|
theme: colorsTheme.sidenav
|
|
38
|
-
}, /*#__PURE__*/_react["default"].createElement(SidenavContainer, {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
color: colorsTheme.sidenav.backgroundColor
|
|
31
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
32
|
+
direction: "column",
|
|
33
|
+
gap: "1rem"
|
|
42
34
|
}, children)));
|
|
43
35
|
};
|
|
44
|
-
|
|
45
36
|
var Title = function Title(_ref2) {
|
|
46
37
|
var children = _ref2.children;
|
|
47
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
38
|
+
return /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
|
|
39
|
+
horizontal: "1rem"
|
|
40
|
+
}, /*#__PURE__*/_react["default"].createElement(SidenavTitle, null, children));
|
|
48
41
|
};
|
|
49
|
-
|
|
50
|
-
var Subtitle = function Subtitle(_ref3) {
|
|
42
|
+
var Section = function Section(_ref3) {
|
|
51
43
|
var children = _ref3.children;
|
|
52
|
-
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));
|
|
53
49
|
};
|
|
54
|
-
|
|
55
|
-
var
|
|
56
|
-
var
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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));
|
|
81
|
+
};
|
|
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);
|
|
61
95
|
var setIsSidenavVisibleResponsive = (0, _SidenavContext.useResponsiveSidenavVisibility)();
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
96
|
+
var handleClick = function handleClick($event) {
|
|
97
|
+
onClick === null || onClick === void 0 ? void 0 : onClick($event);
|
|
65
98
|
setIsSidenavVisibleResponsive === null || setIsSidenavVisibleResponsive === void 0 ? void 0 : setIsSidenavVisibleResponsive(false);
|
|
66
99
|
};
|
|
67
|
-
|
|
68
|
-
|
|
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,
|
|
69
110
|
tabIndex: tabIndex,
|
|
70
|
-
href: href,
|
|
71
111
|
onClick: handleClick
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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) {
|
|
76
120
|
return props.theme.backgroundColor;
|
|
77
|
-
}, _variables.responsiveSizes.medium, function (props) {
|
|
78
|
-
return props.padding ? "calc(100vw - ".concat(_variables.spaces[props.padding], " - ").concat(_variables.spaces[props.padding], ")") : "100vw";
|
|
79
|
-
}, function (props) {
|
|
80
|
-
return props.padding ? "calc(300px - ".concat(_variables.spaces[props.padding], " - ").concat(_variables.spaces[props.padding], ")") : "300px";
|
|
81
|
-
}, function (props) {
|
|
82
|
-
return props.padding ? _variables.spaces[props.padding] : "";
|
|
83
121
|
}, function (props) {
|
|
84
122
|
return props.theme.scrollBarTrackColor;
|
|
85
123
|
}, function (props) {
|
|
86
124
|
return props.theme.scrollBarThumbColor;
|
|
87
125
|
});
|
|
88
|
-
|
|
89
|
-
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) {
|
|
90
127
|
return props.theme.titleFontFamily;
|
|
91
|
-
}, function (props) {
|
|
92
|
-
return props.theme.titleFontSize;
|
|
93
128
|
}, function (props) {
|
|
94
129
|
return props.theme.titleFontStyle;
|
|
95
130
|
}, function (props) {
|
|
96
131
|
return props.theme.titleFontWeight;
|
|
132
|
+
}, function (props) {
|
|
133
|
+
return props.theme.titleFontSize;
|
|
97
134
|
}, function (props) {
|
|
98
135
|
return props.theme.titleFontColor;
|
|
99
136
|
}, function (props) {
|
|
@@ -101,33 +138,42 @@ var SidenavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_te
|
|
|
101
138
|
}, function (props) {
|
|
102
139
|
return props.theme.titleFontTextTransform;
|
|
103
140
|
});
|
|
104
|
-
|
|
105
|
-
var
|
|
106
|
-
|
|
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;
|
|
145
|
+
}, function (props) {
|
|
146
|
+
return props.theme.groupTitleFontStyle;
|
|
107
147
|
}, function (props) {
|
|
108
|
-
return props.theme.
|
|
148
|
+
return props.theme.groupTitleFontWeight;
|
|
109
149
|
}, function (props) {
|
|
110
|
-
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;
|
|
111
156
|
}, function (props) {
|
|
112
|
-
return props.theme.
|
|
157
|
+
return props.theme.groupTitleFontWeight;
|
|
113
158
|
}, function (props) {
|
|
114
|
-
return props.theme.
|
|
159
|
+
return props.theme.groupTitleFontSize;
|
|
115
160
|
}, function (props) {
|
|
116
|
-
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;");
|
|
117
162
|
}, function (props) {
|
|
118
|
-
return props.theme.
|
|
163
|
+
return props.theme.linkFocusColor;
|
|
164
|
+
}, function (props) {
|
|
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;
|
|
119
168
|
});
|
|
120
|
-
|
|
121
|
-
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) {
|
|
122
170
|
return props.theme.linkFontFamily;
|
|
123
|
-
}, function (props) {
|
|
124
|
-
return props.theme.linkFontSize;
|
|
125
171
|
}, function (props) {
|
|
126
172
|
return props.theme.linkFontStyle;
|
|
127
173
|
}, function (props) {
|
|
128
174
|
return props.theme.linkFontWeight;
|
|
129
175
|
}, function (props) {
|
|
130
|
-
return props.theme.
|
|
176
|
+
return props.theme.linkFontSize;
|
|
131
177
|
}, function (props) {
|
|
132
178
|
return props.theme.linkFontLetterSpacing;
|
|
133
179
|
}, function (props) {
|
|
@@ -135,13 +181,16 @@ var SidenavMenuLink = _styledComponents["default"].a(_templateObject4 || (_templ
|
|
|
135
181
|
}, function (props) {
|
|
136
182
|
return props.theme.linkTextDecoration;
|
|
137
183
|
}, function (props) {
|
|
138
|
-
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;");
|
|
139
185
|
}, function (props) {
|
|
140
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";
|
|
141
191
|
});
|
|
142
|
-
|
|
143
|
-
DxcSidenav.
|
|
144
|
-
DxcSidenav.Subtitle = Subtitle;
|
|
192
|
+
DxcSidenav.Section = Section;
|
|
193
|
+
DxcSidenav.Group = Group;
|
|
145
194
|
DxcSidenav.Link = Link;
|
|
146
|
-
|
|
147
|
-
exports["default"] =
|
|
195
|
+
DxcSidenav.Title = Title;
|
|
196
|
+
var _default = exports["default"] = DxcSidenav;
|