@dxc-technology/halstack-react 0.0.0-b646454 → 0.0.0-b915415

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.
Files changed (229) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +5 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +237 -2
  5. package/dist/V3Select/V3Select.js +549 -0
  6. package/dist/V3Select/index.d.ts +27 -0
  7. package/dist/V3Textarea/V3Textarea.js +264 -0
  8. package/dist/V3Textarea/index.d.ts +27 -0
  9. package/dist/accordion/Accordion.js +174 -63
  10. package/dist/accordion/index.d.ts +28 -0
  11. package/dist/accordion-group/AccordionGroup.js +186 -0
  12. package/dist/accordion-group/index.d.ts +16 -0
  13. package/dist/alert/Alert.js +183 -84
  14. package/dist/alert/index.d.ts +51 -0
  15. package/dist/badge/Badge.js +63 -0
  16. package/dist/box/Box.js +31 -23
  17. package/dist/box/index.d.ts +25 -0
  18. package/dist/button/Button.js +85 -28
  19. package/dist/button/Button.stories.js +14 -211
  20. package/dist/button/index.d.ts +24 -0
  21. package/dist/card/Card.js +72 -35
  22. package/dist/card/index.d.ts +22 -0
  23. package/dist/checkbox/Checkbox.js +107 -32
  24. package/dist/checkbox/index.d.ts +24 -0
  25. package/dist/chip/Chip.js +128 -36
  26. package/dist/chip/index.d.ts +22 -0
  27. package/dist/common/RequiredComponent.js +2 -8
  28. package/dist/common/utils.js +2 -22
  29. package/dist/common/variables.js +1451 -277
  30. package/dist/date/Date.js +81 -59
  31. package/dist/date/index.d.ts +27 -0
  32. package/dist/date-input/DateInput.js +400 -0
  33. package/dist/date-input/index.d.ts +95 -0
  34. package/dist/dialog/Dialog.js +58 -37
  35. package/dist/dialog/index.d.ts +18 -0
  36. package/dist/dropdown/Dropdown.js +205 -85
  37. package/dist/dropdown/index.d.ts +26 -0
  38. package/dist/file-input/FileInput.js +644 -0
  39. package/dist/file-input/FileItem.js +287 -0
  40. package/dist/file-input/index.d.ts +81 -0
  41. package/dist/footer/Footer.js +121 -46
  42. package/dist/footer/Icons.js +77 -0
  43. package/dist/footer/index.d.ts +25 -0
  44. package/dist/header/Header.js +200 -102
  45. package/dist/header/Icons.js +59 -0
  46. package/dist/header/index.d.ts +25 -0
  47. package/dist/heading/Heading.js +93 -16
  48. package/dist/heading/index.d.ts +17 -0
  49. package/dist/input-text/Icons.js +22 -0
  50. package/dist/input-text/InputText.js +289 -103
  51. package/dist/input-text/index.d.ts +36 -0
  52. package/dist/layout/ApplicationLayout.js +327 -0
  53. package/dist/layout/Icons.js +55 -0
  54. package/dist/link/Link.js +136 -35
  55. package/dist/link/index.d.ts +23 -0
  56. package/dist/main.d.ts +40 -0
  57. package/dist/main.js +112 -16
  58. package/dist/number-input/NumberInput.js +136 -0
  59. package/dist/number-input/NumberInputContext.js +16 -0
  60. package/dist/number-input/index.d.ts +113 -0
  61. package/dist/paginator/Icons.js +66 -0
  62. package/dist/paginator/Paginator.js +172 -63
  63. package/dist/paginator/index.d.ts +20 -0
  64. package/dist/password-input/PasswordInput.js +203 -0
  65. package/dist/password-input/index.d.ts +94 -0
  66. package/dist/progress-bar/ProgressBar.js +95 -38
  67. package/dist/progress-bar/index.d.ts +18 -0
  68. package/dist/radio/Radio.js +39 -17
  69. package/dist/radio/index.d.ts +23 -0
  70. package/dist/resultsetTable/ResultsetTable.js +93 -68
  71. package/dist/resultsetTable/index.d.ts +19 -0
  72. package/dist/select/Select.js +916 -265
  73. package/dist/select/index.d.ts +53 -0
  74. package/dist/sidenav/Sidenav.js +84 -141
  75. package/dist/sidenav/index.d.ts +13 -0
  76. package/dist/slider/Slider.js +219 -73
  77. package/dist/slider/index.d.ts +29 -0
  78. package/dist/spinner/Spinner.js +247 -59
  79. package/dist/spinner/index.d.ts +17 -0
  80. package/dist/switch/Switch.js +50 -27
  81. package/dist/switch/index.d.ts +24 -0
  82. package/dist/table/Table.js +58 -13
  83. package/dist/table/index.d.ts +13 -0
  84. package/dist/tabs/Tabs.js +207 -36
  85. package/dist/tabs/index.d.ts +19 -0
  86. package/dist/tag/Tag.js +100 -35
  87. package/dist/tag/index.d.ts +24 -0
  88. package/dist/text-input/TextInput.js +974 -0
  89. package/dist/text-input/index.d.ts +135 -0
  90. package/dist/textarea/Textarea.js +248 -106
  91. package/dist/textarea/index.d.ts +117 -0
  92. package/dist/toggle/Toggle.js +16 -19
  93. package/dist/toggle/index.d.ts +21 -0
  94. package/dist/toggle-group/ToggleGroup.js +327 -0
  95. package/dist/toggle-group/index.d.ts +21 -0
  96. package/dist/upload/Upload.js +13 -8
  97. package/dist/upload/buttons-upload/ButtonsUpload.js +32 -19
  98. package/dist/upload/buttons-upload/Icons.js +40 -0
  99. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  100. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  101. package/dist/upload/file-upload/FileToUpload.js +64 -33
  102. package/dist/upload/file-upload/Icons.js +66 -0
  103. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  104. package/dist/upload/index.d.ts +15 -0
  105. package/dist/upload/transaction/Icons.js +160 -0
  106. package/dist/upload/transaction/Transaction.js +42 -49
  107. package/dist/upload/transactions/Transactions.js +38 -20
  108. package/dist/useTheme.js +22 -0
  109. package/dist/wizard/Icons.js +65 -0
  110. package/dist/wizard/Wizard.js +138 -60
  111. package/dist/wizard/index.d.ts +18 -0
  112. package/package.json +26 -14
  113. package/test/AccordionGroup.test.js +125 -0
  114. package/test/Date.test.js +15 -13
  115. package/test/DateInput.test.js +242 -0
  116. package/test/Dropdown.test.js +15 -0
  117. package/test/FileInput.test.js +201 -0
  118. package/test/Footer.test.js +2 -7
  119. package/test/Header.test.js +5 -10
  120. package/test/Heading.test.js +60 -12
  121. package/test/InputText.test.js +31 -28
  122. package/test/Link.test.js +25 -7
  123. package/test/NumberInput.test.js +259 -0
  124. package/test/Paginator.test.js +76 -60
  125. package/test/PasswordInput.test.js +83 -0
  126. package/test/ResultsetTable.test.js +65 -17
  127. package/test/Select.test.js +371 -147
  128. package/test/Sidenav.test.js +22 -64
  129. package/test/Slider.test.js +24 -15
  130. package/test/Spinner.test.js +5 -0
  131. package/test/Tabs.test.js +21 -0
  132. package/test/TextInput.test.js +732 -0
  133. package/test/Textarea.test.js +193 -0
  134. package/test/ToggleGroup.test.js +85 -0
  135. package/test/Upload.test.js +1 -1
  136. package/test/V3Select.test.js +212 -0
  137. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  138. package/dist/accordion/Accordion.stories.js +0 -207
  139. package/dist/accordion/readme.md +0 -96
  140. package/dist/alert/Alert.stories.js +0 -158
  141. package/dist/alert/close.svg +0 -4
  142. package/dist/alert/error.svg +0 -4
  143. package/dist/alert/info.svg +0 -4
  144. package/dist/alert/readme.md +0 -43
  145. package/dist/alert/success.svg +0 -4
  146. package/dist/alert/warning.svg +0 -4
  147. package/dist/button/readme.md +0 -93
  148. package/dist/checkbox/Checkbox.stories.js +0 -144
  149. package/dist/checkbox/readme.md +0 -116
  150. package/dist/common/services/example-service.js +0 -10
  151. package/dist/common/services/example-service.test.js +0 -12
  152. package/dist/date/Date.stories.js +0 -205
  153. package/dist/date/calendar.svg +0 -1
  154. package/dist/date/calendar_dark.svg +0 -1
  155. package/dist/date/readme.md +0 -73
  156. package/dist/dialog/Dialog.stories.js +0 -217
  157. package/dist/dialog/readme.md +0 -32
  158. package/dist/dropdown/Dropdown.stories.js +0 -249
  159. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  160. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  161. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  162. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  163. package/dist/dropdown/readme.md +0 -69
  164. package/dist/footer/Footer.stories.js +0 -94
  165. package/dist/footer/dxc_logo_wht.png +0 -0
  166. package/dist/footer/readme.md +0 -41
  167. package/dist/header/Header.stories.js +0 -176
  168. package/dist/header/close_icon.svg +0 -1
  169. package/dist/header/dxc_logo_black.png +0 -0
  170. package/dist/header/dxc_logo_white.png +0 -0
  171. package/dist/header/hamb_menu_black.svg +0 -1
  172. package/dist/header/hamb_menu_white.svg +0 -1
  173. package/dist/header/readme.md +0 -33
  174. package/dist/input-text/InputText.stories.js +0 -209
  175. package/dist/input-text/error.svg +0 -1
  176. package/dist/input-text/readme.md +0 -91
  177. package/dist/link/readme.md +0 -51
  178. package/dist/paginator/images/next.svg +0 -3
  179. package/dist/paginator/images/nextPage.svg +0 -3
  180. package/dist/paginator/images/previous.svg +0 -3
  181. package/dist/paginator/images/previousPage.svg +0 -3
  182. package/dist/paginator/readme.md +0 -50
  183. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  184. package/dist/progress-bar/readme.md +0 -63
  185. package/dist/radio/Radio.stories.js +0 -166
  186. package/dist/radio/readme.md +0 -70
  187. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  188. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  189. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  190. package/dist/select/Select.stories.js +0 -235
  191. package/dist/select/readme.md +0 -72
  192. package/dist/sidenav/arrow_icon.svg +0 -3
  193. package/dist/slider/Slider.stories.js +0 -241
  194. package/dist/slider/readme.md +0 -64
  195. package/dist/spinner/Spinner.stories.js +0 -183
  196. package/dist/spinner/readme.md +0 -65
  197. package/dist/switch/Switch.stories.js +0 -134
  198. package/dist/switch/readme.md +0 -133
  199. package/dist/tabs/Tabs.stories.js +0 -130
  200. package/dist/tabs/readme.md +0 -78
  201. package/dist/tabs-for-sections/TabsForSections.js +0 -107
  202. package/dist/tabs-for-sections/readme.md +0 -78
  203. package/dist/toggle/Toggle.stories.js +0 -297
  204. package/dist/toggle/readme.md +0 -80
  205. package/dist/upload/Upload.stories.js +0 -72
  206. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  207. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  208. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  209. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  210. package/dist/upload/file-upload/audio-icon.svg +0 -4
  211. package/dist/upload/file-upload/close.svg +0 -4
  212. package/dist/upload/file-upload/file-icon.svg +0 -4
  213. package/dist/upload/file-upload/video-icon.svg +0 -4
  214. package/dist/upload/readme.md +0 -37
  215. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  216. package/dist/upload/transaction/audio-icon.svg +0 -4
  217. package/dist/upload/transaction/error-icon.svg +0 -4
  218. package/dist/upload/transaction/file-icon-err.svg +0 -4
  219. package/dist/upload/transaction/file-icon.svg +0 -4
  220. package/dist/upload/transaction/image-icon-err.svg +0 -4
  221. package/dist/upload/transaction/image-icon.svg +0 -4
  222. package/dist/upload/transaction/success-icon.svg +0 -4
  223. package/dist/upload/transaction/video-icon-err.svg +0 -4
  224. package/dist/upload/transaction/video-icon.svg +0 -4
  225. package/dist/wizard/invalid_icon.svg +0 -6
  226. package/dist/wizard/valid_icon.svg +0 -6
  227. package/dist/wizard/validation-wrong.svg +0 -6
  228. package/test/TabsForSections.test.js +0 -34
  229. package/test/Toggle.test.js +0 -43
@@ -0,0 +1,53 @@
1
+ type SVG = string | (HTMLElement & SVGElement);
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+
10
+ type OptionGroup = {
11
+ label: string;
12
+ options: Option[];
13
+ };
14
+ type Option = {
15
+ icon?: string | SVG;
16
+ label: string;
17
+ value: string;
18
+ };
19
+
20
+ type Props = {
21
+ label?: string;
22
+ name?: string;
23
+ value?: string | string[];
24
+ options?: Option[] | OptionGroup[];
25
+ helperText?: string;
26
+ placeholder?: string;
27
+ disabled?: boolean;
28
+ optional?: boolean;
29
+ searchable?: boolean;
30
+ multiple?: boolean;
31
+ onChange?: (value: string | string[]) => void;
32
+ onBlur?: (val: { value: string | string[]; error: string }) => void;
33
+ error?: string;
34
+ /**
35
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
36
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
37
+ */
38
+ margin?: Space | Margin;
39
+ /**
40
+ * Size of the component ('small' | 'medium' | 'large' | 'fillParent').
41
+ */
42
+ size?: "small" | "medium" | "large" | "fillParent";
43
+ /**
44
+ * Value of the tabindex attribute.
45
+ */
46
+ tabIndex?: number;
47
+ /**
48
+ * Reference to the component.
49
+ */
50
+ ref?: React.RefObject<HTMLDivElement>;
51
+ };
52
+
53
+ export default function DxcSelect(props: Props): JSX.Element;
@@ -13,9 +13,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
- var _react = _interopRequireWildcard(require("react"));
16
+ var _react = _interopRequireDefault(require("react"));
19
17
 
20
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
19
 
@@ -23,24 +21,12 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
21
 
24
22
  var _variables = require("../common/variables.js");
25
23
 
26
- require("../common/OpenSans.css");
27
-
28
- var _utils = require("../common/utils.js");
29
-
30
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
31
25
 
32
- function _templateObject5() {
33
- var data = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n flex-grow: 1;\n height: 100%;\n padding: ", ";\n margin-left: ", ";\n transition: margin 0.4s ease-in-out;\n width: ", ";\n"]);
34
-
35
- _templateObject5 = function _templateObject5() {
36
- return data;
37
- };
38
-
39
- return data;
40
- }
26
+ var _BackgroundColorContext = require("../BackgroundColorContext.js");
41
27
 
42
28
  function _templateObject4() {
43
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 18px;\n height: 18px;\n margin-left: ", ";\n transition: margin 0.4s ease-in;\n"]);
29
+ var data = (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"]);
44
30
 
45
31
  _templateObject4 = function _templateObject4() {
46
32
  return data;
@@ -50,7 +36,7 @@ function _templateObject4() {
50
36
  }
51
37
 
52
38
  function _templateObject3() {
53
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n left: ", ";\n top: ", ";\n width: 42px;\n min-height: 42px;\n background-color: ", ";\n border-radius: 50%;\n transform: ", ";\n transition: transform 0.4s ease-in-out;\n cursor: pointer;\n & > svg {\n fill: ", ";\n }\n"]);
39
+ var data = (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: 4px;\n"]);
54
40
 
55
41
  _templateObject3 = function _templateObject3() {
56
42
  return data;
@@ -60,7 +46,7 @@ function _templateObject3() {
60
46
  }
61
47
 
62
48
  function _templateObject2() {
63
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n width: ", ";\n box-sizing: border-box;\n padding: ", ";\n z-index: ", ";\n transform: ", ";\n transition: transform 0.4s ease-in-out;\n"]);
49
+ var data = (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"]);
64
50
 
65
51
  _templateObject2 = function _templateObject2() {
66
52
  return data;
@@ -70,7 +56,7 @@ function _templateObject2() {
70
56
  }
71
57
 
72
58
  function _templateObject() {
73
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n position: relative;\n"]);
59
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n max-width: 300px;\n width: ", ";\n padding: ", ";\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"]);
74
60
 
75
61
  _templateObject = function _templateObject() {
76
62
  return data;
@@ -80,157 +66,114 @@ function _templateObject() {
80
66
  }
81
67
 
82
68
  var DxcSidenav = function DxcSidenav(_ref) {
83
- var navContent = _ref.navContent,
84
- pageContent = _ref.pageContent,
85
- padding = _ref.padding,
86
- mode = _ref.mode,
87
- arrowDistance = _ref.arrowDistance,
88
- _ref$displayArrow = _ref.displayArrow,
89
- displayArrow = _ref$displayArrow === void 0 ? true : _ref$displayArrow;
90
- var ref = (0, _react.useRef)(null);
91
-
92
- var _useState = (0, _react.useState)(),
93
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
94
- sidenavSize = _useState2[0],
95
- setSidenavSize = _useState2[1];
96
-
97
- var _useState3 = (0, _react.useState)(),
98
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
99
- isShown = _useState4[0],
100
- setIsShown = _useState4[1];
101
-
102
- var _useState5 = (0, _react.useState)(),
103
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
104
- isResponsive = _useState6[0],
105
- setIsResponsive = _useState6[1];
106
-
107
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
108
- var colorsTheme = (0, _react.useMemo)(function () {
109
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
110
- }, [customTheme]);
111
-
112
- var handleVisbility = function handleVisbility(width) {
113
- setIsShown(width <= _variables.responsiveSizes.tablet ? false : true);
114
- };
115
-
116
- var handleResize = function handleResize(width) {
117
- if (width) {
118
- setSidenavSize(width);
119
- if (width <= _variables.responsiveSizes.tablet ? setIsResponsive(true) : setIsResponsive(false)) ;
120
- }
121
- };
122
-
123
- var handleEventListener = function handleEventListener() {
124
- handleResize(ref.current.offsetWidth);
125
- };
126
-
127
- (0, _react.useEffect)(function () {
128
- if (ref.current) {
129
- window.addEventListener("resize", handleEventListener);
130
- handleResize(ref.current.offsetWidth);
131
- handleVisbility(ref.current.offsetWidth);
132
- }
133
-
134
- return function () {
135
- window.removeEventListener("resize", handleEventListener);
136
- };
137
- }, []);
138
-
139
- var handleSidenav = function handleSidenav() {
140
- setIsShown(!isShown);
141
- };
142
-
143
- var ArrowIcon = function ArrowIcon() {
144
- return _react["default"].createElement("svg", {
145
- xmlns: "http://www.w3.org/2000/svg",
146
- width: "15.995",
147
- height: "10.01",
148
- viewBox: "0 0 15.995 10.01"
149
- }, _react["default"].createElement("path", {
150
- "data-testid": "arrow-to-right",
151
- d: "M17.71,11.29l-4-4a1,1,0,0,0-1.42,1.42L14.59,11H3a1,1,0,0,0,0,2H14.59l-2.3,2.29a1,1,0,1,0,1.42,1.42l4-4a1.034,1.034,0,0,0,0-1.42Z",
152
- transform: "translate(-2 -6.996)"
153
- }));
154
- };
155
-
69
+ var padding = _ref.padding,
70
+ children = _ref.children;
71
+ var colorsTheme = (0, _useTheme["default"])();
156
72
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
157
73
  theme: colorsTheme.sidenav
158
- }, _react["default"].createElement(SidenavComponent, {
159
- ref: ref
160
- }, ref.current && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(Sidenav, {
161
- navContent: navContent,
162
- isShown: isShown,
163
- padding: padding,
164
- mode: isResponsive ? "overlay" : mode,
165
- sidenavSize: sidenavSize,
166
- isResponsive: isResponsive
167
- }, navContent, (displayArrow || isResponsive) && _react["default"].createElement(ArrowTrigger, {
168
- onClick: handleSidenav,
169
- isShown: isShown,
170
- sidenavSize: sidenavSize,
171
- arrowDistance: arrowDistance
172
- }, _react["default"].createElement(ArrowIcon, {
173
- isShown: isShown
174
- }))), _react["default"].createElement(PageContent, {
175
- pageContent: pageContent,
176
- padding: padding,
177
- isShown: isShown,
178
- mode: isResponsive ? "overlay" : mode,
179
- sidenavSize: sidenavSize,
180
- isResponsive: isResponsive
181
- }, pageContent))));
74
+ }, _react["default"].createElement(SideNavContainer, {
75
+ padding: padding
76
+ }, _react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
77
+ color: colorsTheme.sidenav.backgroundColor
78
+ }, children)));
182
79
  };
183
80
 
184
- var SidenavComponent = _styledComponents["default"].div(_templateObject());
81
+ var Title = function Title(_ref2) {
82
+ var children = _ref2.children;
83
+ return _react["default"].createElement(SideNavMenuTitle, null, children);
84
+ };
85
+
86
+ var Subtitle = function Subtitle(_ref3) {
87
+ var children = _ref3.children;
88
+ return _react["default"].createElement(SideNavMenuSubTitle, null, children);
89
+ };
185
90
 
186
- var Sidenav = _styledComponents["default"].div(_templateObject2(), function (props) {
91
+ var Link = function Link(_ref4) {
92
+ var href = _ref4.href,
93
+ onClick = _ref4.onClick,
94
+ children = _ref4.children;
95
+ return _react["default"].createElement(SideNavMenuLink, {
96
+ href: href,
97
+ onClick: onClick
98
+ }, children);
99
+ };
100
+
101
+ var SideNavContainer = _styledComponents["default"].div(_templateObject(), function (props) {
187
102
  return props.theme.backgroundColor;
188
103
  }, function (props) {
189
- return props.sidenavSize <= _variables.responsiveSizes.tablet ? "60%" : "300px";
104
+ return props.padding ? "calc(300px - ".concat(_variables.spaces[props.padding], " - ").concat(_variables.spaces[props.padding], ")") : "300px";
190
105
  }, function (props) {
191
106
  return props.padding ? _variables.spaces[props.padding] : "";
192
107
  }, function (props) {
193
- return props.mode === "overlay" ? "400" : "auto";
108
+ return props.theme.scrollBarTrackColor;
194
109
  }, function (props) {
195
- return props.isShown ? "translateX(0)" : !props.isShown ? "translateX(-100%)" : "";
110
+ return props.theme.scrollBarThumbColor;
196
111
  });
197
112
 
198
- var ArrowTrigger = _styledComponents["default"].div(_templateObject3(), function (props) {
199
- return props.sidenavSize <= _variables.responsiveSizes.tablet ? "calc(100% - 21px)" : "279px";
113
+ var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2(), function (props) {
114
+ return props.theme.titleFontFamily;
115
+ }, function (props) {
116
+ return props.theme.titleFontSize;
200
117
  }, function (props) {
201
- return props.arrowDistance ? props.arrowDistance : "calc(50% - 21px)";
118
+ return props.theme.titleFontStyle;
202
119
  }, function (props) {
203
- return "".concat(props.theme.arrowContainerColor).concat(props.theme.arrowContainerOpacity);
120
+ return props.theme.titleFontWeight;
204
121
  }, function (props) {
205
- return props.isShown ? "rotate(-180deg)" : "rotate(0deg)";
122
+ return props.theme.titleFontColor;
206
123
  }, function (props) {
207
- return props.theme.arrowColor;
124
+ return props.theme.titleFontLetterSpacing;
125
+ }, function (props) {
126
+ return props.theme.titleFontTextTransform;
208
127
  });
209
128
 
210
- var ArrowStyled = _styledComponents["default"].div(_templateObject4(), function (props) {
211
- return props.isShown ? "0" : "10px";
129
+ var SideNavMenuSubTitle = _styledComponents["default"].div(_templateObject3(), function (props) {
130
+ return props.theme.subtitleFontFamily;
131
+ }, function (props) {
132
+ return props.theme.subtitleFontSize;
133
+ }, function (props) {
134
+ return props.theme.subtitleFontStyle;
135
+ }, function (props) {
136
+ return props.theme.subtitleFontWeight;
137
+ }, function (props) {
138
+ return props.theme.subtitleFontColor;
139
+ }, function (props) {
140
+ return props.theme.subtitleFontLetterSpacing;
141
+ }, function (props) {
142
+ return props.theme.subtitleFontTextTransform;
212
143
  });
213
144
 
214
- var PageContent = _styledComponents["default"].div(_templateObject5(), function (props) {
215
- return props.padding ? _variables.spaces[props.padding] : "";
145
+ var SideNavMenuLink = _styledComponents["default"].a(_templateObject4(), function (props) {
146
+ return props.theme.linkFontFamily;
147
+ }, function (props) {
148
+ return props.theme.linkFontSize;
149
+ }, function (props) {
150
+ return props.theme.linkFontStyle;
151
+ }, function (props) {
152
+ return props.theme.linkFontWeight;
153
+ }, function (props) {
154
+ return props.theme.linkFontColor;
155
+ }, function (props) {
156
+ return props.theme.linkFontLetterSpacing;
157
+ }, function (props) {
158
+ return props.theme.linkFontTextTransform;
159
+ }, function (props) {
160
+ return props.theme.linkTextDecoration;
216
161
  }, function (props) {
217
- return props.isShown && props.mode === "push" && !props.isResponsive ? "" : !props.isResponsive ? "-300px" : "-60%";
162
+ return "".concat(props.theme.linkMarginTop, " ").concat(props.theme.linkMarginRight, " ").concat(props.theme.linkMarginBottom, " ").concat(props.theme.linkMarginLeft);
218
163
  }, function (props) {
219
- return props.isShown && props.mode === "push" ? "calc(100% - 300px)" : "calc(100%)";
164
+ return props.theme.linkFocusColor;
220
165
  });
221
166
 
222
167
  DxcSidenav.propTypes = {
223
- mode: _propTypes["default"].oneOf(["overlay", "push", ""]),
224
168
  padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
225
169
  top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
226
170
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
227
171
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
228
172
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
229
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
230
- navContent: _propTypes["default"].object,
231
- pageContent: _propTypes["default"].object,
232
- arrowDistance: _propTypes["default"].string,
233
- displayArrow: _propTypes["default"].bool
173
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
234
174
  };
175
+ DxcSidenav.Title = Title;
176
+ DxcSidenav.Subtitle = Subtitle;
177
+ DxcSidenav.Link = Link;
235
178
  var _default = DxcSidenav;
236
179
  exports["default"] = _default;
@@ -0,0 +1,13 @@
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Padding = {
3
+ top?: Space;
4
+ bottom?: Space;
5
+ left?: Space;
6
+ right?: Space;
7
+ };
8
+
9
+ type Props = {
10
+ padding?: Space | Padding;
11
+ };
12
+
13
+ export default function DxcSidenav(props: Props): JSX.Element;