@dxc-technology/halstack-react 0.0.0-59568e7 → 0.0.0-5a1e592

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 (283) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1349 -5
  4. package/HalstackContext.js +117 -80
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +110 -114
  8. package/accordion/Accordion.stories.tsx +105 -115
  9. package/accordion/Accordion.test.js +10 -11
  10. package/accordion/types.d.ts +1 -12
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +25 -65
  13. package/accordion-group/AccordionGroup.stories.tsx +93 -66
  14. package/accordion-group/AccordionGroup.test.js +27 -62
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +7 -12
  18. package/alert/Alert.js +5 -9
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +1 -1
  21. package/badge/Badge.d.ts +1 -1
  22. package/badge/Badge.js +5 -3
  23. package/badge/types.d.ts +1 -0
  24. package/bleed/Bleed.js +1 -34
  25. package/bleed/Bleed.stories.tsx +95 -95
  26. package/bleed/types.d.ts +1 -1
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +19 -48
  29. package/box/Box.stories.tsx +38 -51
  30. package/box/Box.test.js +1 -1
  31. package/box/types.d.ts +0 -11
  32. package/bulleted-list/BulletedList.d.ts +7 -0
  33. package/bulleted-list/BulletedList.js +125 -0
  34. package/bulleted-list/BulletedList.stories.tsx +206 -0
  35. package/bulleted-list/types.d.ts +38 -0
  36. package/button/Button.d.ts +1 -1
  37. package/button/Button.js +42 -72
  38. package/button/Button.stories.tsx +159 -8
  39. package/button/Button.test.js +12 -1
  40. package/button/types.d.ts +9 -5
  41. package/card/Card.d.ts +1 -1
  42. package/card/Card.js +43 -63
  43. package/card/Card.stories.tsx +12 -42
  44. package/card/Card.test.js +1 -1
  45. package/card/types.d.ts +1 -6
  46. package/checkbox/Checkbox.d.ts +2 -2
  47. package/checkbox/Checkbox.js +127 -115
  48. package/checkbox/Checkbox.stories.tsx +146 -58
  49. package/checkbox/Checkbox.test.js +168 -18
  50. package/checkbox/types.d.ts +8 -0
  51. package/chip/Chip.js +28 -49
  52. package/chip/Chip.stories.tsx +121 -26
  53. package/chip/Chip.test.js +3 -5
  54. package/chip/types.d.ts +1 -1
  55. package/common/OpenSans.css +68 -80
  56. package/common/coreTokens.d.ts +146 -0
  57. package/common/coreTokens.js +167 -0
  58. package/common/utils.d.ts +1 -0
  59. package/common/utils.js +4 -4
  60. package/common/variables.d.ts +1499 -0
  61. package/common/variables.js +1025 -1131
  62. package/date-input/Calendar.d.ts +4 -0
  63. package/date-input/Calendar.js +258 -0
  64. package/date-input/DateInput.js +138 -239
  65. package/date-input/DateInput.stories.tsx +209 -33
  66. package/date-input/DateInput.test.js +519 -149
  67. package/date-input/DatePicker.d.ts +4 -0
  68. package/date-input/DatePicker.js +146 -0
  69. package/date-input/Icons.d.ts +6 -0
  70. package/date-input/Icons.js +75 -0
  71. package/date-input/YearPicker.d.ts +4 -0
  72. package/date-input/YearPicker.js +126 -0
  73. package/date-input/types.d.ts +55 -0
  74. package/dialog/Dialog.d.ts +1 -1
  75. package/dialog/Dialog.js +72 -79
  76. package/dialog/Dialog.stories.tsx +154 -171
  77. package/dialog/Dialog.test.js +334 -5
  78. package/dialog/types.d.ts +0 -12
  79. package/dropdown/Dropdown.d.ts +1 -1
  80. package/dropdown/Dropdown.js +246 -249
  81. package/dropdown/Dropdown.stories.tsx +245 -56
  82. package/dropdown/Dropdown.test.js +507 -110
  83. package/dropdown/DropdownMenu.d.ts +4 -0
  84. package/dropdown/DropdownMenu.js +74 -0
  85. package/dropdown/DropdownMenuItem.d.ts +4 -0
  86. package/dropdown/DropdownMenuItem.js +79 -0
  87. package/dropdown/types.d.ts +23 -3
  88. package/file-input/FileInput.d.ts +2 -2
  89. package/file-input/FileInput.js +174 -220
  90. package/file-input/FileInput.stories.tsx +122 -11
  91. package/file-input/FileInput.test.js +14 -14
  92. package/file-input/FileItem.d.ts +4 -14
  93. package/file-input/FileItem.js +39 -63
  94. package/file-input/types.d.ts +18 -1
  95. package/flex/Flex.d.ts +4 -0
  96. package/flex/Flex.js +71 -0
  97. package/flex/Flex.stories.tsx +112 -0
  98. package/flex/types.d.ts +97 -0
  99. package/footer/Footer.d.ts +1 -1
  100. package/footer/Footer.js +44 -64
  101. package/footer/Footer.stories.tsx +41 -19
  102. package/footer/Footer.test.js +16 -26
  103. package/footer/Icons.js +1 -1
  104. package/footer/types.d.ts +11 -12
  105. package/grid/Grid.d.ts +7 -0
  106. package/grid/Grid.js +91 -0
  107. package/grid/Grid.stories.tsx +219 -0
  108. package/grid/types.d.ts +115 -0
  109. package/header/Header.d.ts +4 -3
  110. package/header/Header.js +83 -110
  111. package/header/Header.stories.tsx +118 -39
  112. package/header/Header.test.js +2 -2
  113. package/header/Icons.js +2 -2
  114. package/header/types.d.ts +0 -13
  115. package/heading/Heading.js +1 -1
  116. package/heading/Heading.test.js +1 -1
  117. package/image/Image.d.ts +4 -0
  118. package/image/Image.js +85 -0
  119. package/image/Image.stories.tsx +127 -0
  120. package/image/types.d.ts +72 -0
  121. package/inset/Inset.js +1 -34
  122. package/inset/Inset.stories.tsx +37 -36
  123. package/inset/types.d.ts +1 -1
  124. package/layout/ApplicationLayout.d.ts +16 -6
  125. package/layout/ApplicationLayout.js +81 -125
  126. package/layout/ApplicationLayout.stories.tsx +85 -94
  127. package/layout/Icons.d.ts +8 -0
  128. package/layout/Icons.js +52 -45
  129. package/layout/SidenavContext.d.ts +5 -0
  130. package/layout/SidenavContext.js +19 -0
  131. package/layout/types.d.ts +19 -35
  132. package/link/Link.d.ts +2 -2
  133. package/link/Link.js +26 -52
  134. package/link/Link.stories.tsx +73 -6
  135. package/link/Link.test.js +2 -4
  136. package/link/types.d.ts +5 -6
  137. package/main.d.ts +8 -9
  138. package/main.js +44 -52
  139. package/nav-tabs/NavTabs.d.ts +8 -0
  140. package/nav-tabs/NavTabs.js +122 -0
  141. package/nav-tabs/NavTabs.stories.tsx +274 -0
  142. package/nav-tabs/NavTabs.test.js +82 -0
  143. package/nav-tabs/Tab.d.ts +4 -0
  144. package/nav-tabs/Tab.js +146 -0
  145. package/nav-tabs/types.d.ts +52 -0
  146. package/number-input/NumberInput.d.ts +7 -0
  147. package/number-input/NumberInput.js +6 -4
  148. package/number-input/NumberInput.test.js +317 -98
  149. package/package.json +18 -22
  150. package/paginator/Icons.d.ts +5 -0
  151. package/paginator/Icons.js +16 -28
  152. package/paginator/Paginator.js +8 -16
  153. package/paginator/Paginator.stories.tsx +24 -0
  154. package/paginator/Paginator.test.js +91 -39
  155. package/paragraph/Paragraph.d.ts +5 -0
  156. package/paragraph/Paragraph.js +38 -0
  157. package/paragraph/Paragraph.stories.tsx +44 -0
  158. package/password-input/Icons.d.ts +6 -0
  159. package/password-input/Icons.js +39 -0
  160. package/password-input/PasswordInput.js +35 -82
  161. package/password-input/PasswordInput.stories.tsx +1 -0
  162. package/password-input/PasswordInput.test.js +34 -40
  163. package/progress-bar/ProgressBar.js +60 -54
  164. package/progress-bar/ProgressBar.stories.jsx +38 -3
  165. package/progress-bar/ProgressBar.test.js +68 -23
  166. package/quick-nav/QuickNav.js +25 -20
  167. package/quick-nav/QuickNav.stories.tsx +145 -26
  168. package/radio-group/Radio.d.ts +1 -1
  169. package/radio-group/Radio.js +50 -35
  170. package/radio-group/RadioGroup.js +37 -38
  171. package/radio-group/RadioGroup.stories.tsx +132 -18
  172. package/radio-group/RadioGroup.test.js +153 -99
  173. package/radio-group/types.d.ts +5 -5
  174. package/resultsetTable/Icons.d.ts +7 -0
  175. package/resultsetTable/Icons.js +51 -0
  176. package/resultsetTable/ResultsetTable.js +49 -108
  177. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  178. package/resultsetTable/ResultsetTable.test.js +61 -42
  179. package/resultsetTable/types.d.ts +1 -1
  180. package/select/Listbox.d.ts +1 -1
  181. package/select/Listbox.js +33 -16
  182. package/select/Option.js +11 -24
  183. package/select/Select.js +92 -71
  184. package/select/Select.stories.tsx +516 -139
  185. package/select/Select.test.js +417 -309
  186. package/select/types.d.ts +3 -6
  187. package/sidenav/Icons.d.ts +7 -0
  188. package/sidenav/Icons.js +51 -0
  189. package/sidenav/Sidenav.d.ts +6 -5
  190. package/sidenav/Sidenav.js +146 -44
  191. package/sidenav/Sidenav.stories.tsx +251 -151
  192. package/sidenav/Sidenav.test.js +25 -37
  193. package/sidenav/types.d.ts +52 -26
  194. package/slider/Slider.d.ts +2 -2
  195. package/slider/Slider.js +121 -97
  196. package/slider/Slider.stories.tsx +64 -1
  197. package/slider/Slider.test.js +122 -22
  198. package/slider/types.d.ts +4 -0
  199. package/spinner/Spinner.js +17 -23
  200. package/spinner/Spinner.stories.jsx +53 -27
  201. package/spinner/Spinner.test.js +1 -1
  202. package/switch/Switch.d.ts +2 -2
  203. package/switch/Switch.js +137 -70
  204. package/switch/Switch.stories.tsx +41 -30
  205. package/switch/Switch.test.js +145 -18
  206. package/switch/types.d.ts +4 -0
  207. package/table/Table.js +3 -3
  208. package/table/Table.stories.jsx +80 -1
  209. package/table/Table.test.js +2 -2
  210. package/tabs/Tab.d.ts +4 -0
  211. package/tabs/Tab.js +132 -0
  212. package/tabs/Tabs.js +358 -108
  213. package/tabs/Tabs.stories.tsx +119 -5
  214. package/tabs/Tabs.test.js +220 -10
  215. package/tabs/types.d.ts +13 -3
  216. package/tag/Tag.js +8 -10
  217. package/tag/Tag.stories.tsx +14 -1
  218. package/tag/Tag.test.js +1 -1
  219. package/tag/types.d.ts +1 -1
  220. package/text-input/Icons.d.ts +8 -0
  221. package/text-input/Icons.js +60 -0
  222. package/text-input/Suggestion.js +40 -11
  223. package/text-input/Suggestions.d.ts +4 -0
  224. package/text-input/Suggestions.js +134 -0
  225. package/text-input/TextInput.js +240 -351
  226. package/text-input/TextInput.stories.tsx +319 -185
  227. package/text-input/TextInput.test.js +826 -726
  228. package/text-input/types.d.ts +26 -3
  229. package/textarea/Textarea.js +27 -26
  230. package/textarea/Textarea.stories.jsx +68 -1
  231. package/textarea/Textarea.test.js +61 -19
  232. package/textarea/types.d.ts +4 -0
  233. package/toggle-group/ToggleGroup.d.ts +2 -2
  234. package/toggle-group/ToggleGroup.js +85 -59
  235. package/toggle-group/ToggleGroup.stories.tsx +48 -3
  236. package/toggle-group/ToggleGroup.test.js +38 -24
  237. package/toggle-group/types.d.ts +23 -14
  238. package/typography/Typography.d.ts +4 -0
  239. package/typography/Typography.js +32 -0
  240. package/typography/Typography.stories.tsx +198 -0
  241. package/typography/types.d.ts +18 -0
  242. package/typography/types.js +5 -0
  243. package/useTheme.d.ts +1251 -1
  244. package/useTheme.js +1 -1
  245. package/useTranslatedLabels.d.ts +84 -1
  246. package/utils/BaseTypography.d.ts +21 -0
  247. package/utils/BaseTypography.js +108 -0
  248. package/utils/FocusLock.d.ts +13 -0
  249. package/utils/FocusLock.js +138 -0
  250. package/wizard/Wizard.js +10 -17
  251. package/wizard/Wizard.stories.tsx +40 -1
  252. package/wizard/Wizard.test.js +1 -1
  253. package/wizard/types.d.ts +3 -3
  254. package/card/ice-cream.jpg +0 -0
  255. package/common/RequiredComponent.js +0 -32
  256. package/list/List.d.ts +0 -4
  257. package/list/List.js +0 -47
  258. package/list/List.stories.tsx +0 -95
  259. package/list/types.d.ts +0 -7
  260. package/number-input/NumberInputContext.d.ts +0 -4
  261. package/number-input/NumberInputContext.js +0 -19
  262. package/number-input/numberInputContextTypes.d.ts +0 -19
  263. package/radio/Radio.d.ts +0 -4
  264. package/radio/Radio.js +0 -173
  265. package/radio/Radio.stories.tsx +0 -192
  266. package/radio/Radio.test.js +0 -71
  267. package/radio/types.d.ts +0 -54
  268. package/row/Row.d.ts +0 -3
  269. package/row/Row.js +0 -127
  270. package/row/Row.stories.tsx +0 -237
  271. package/row/types.d.ts +0 -28
  272. package/stack/Stack.d.ts +0 -3
  273. package/stack/Stack.js +0 -97
  274. package/stack/Stack.stories.tsx +0 -164
  275. package/stack/types.d.ts +0 -24
  276. package/text/Text.d.ts +0 -7
  277. package/text/Text.js +0 -30
  278. package/text/Text.stories.tsx +0 -19
  279. /package/{list → bulleted-list}/types.js +0 -0
  280. /package/{radio → flex}/types.js +0 -0
  281. /package/{row → grid}/types.js +0 -0
  282. /package/{stack → image}/types.js +0 -0
  283. /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
package/select/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
3
  declare type Margin = {
4
4
  top?: Space;
@@ -6,7 +6,7 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
10
  declare type OptionGroup = {
11
11
  /**
12
12
  * Label of the group to be shown in the select's listbox.
@@ -201,11 +201,8 @@ export declare type ListboxProps = {
201
201
  optionalItem: Option;
202
202
  searchable: boolean;
203
203
  handleOptionOnClick: (option: Option) => void;
204
+ styles: React.CSSProperties;
204
205
  };
205
- /**
206
- * Reference to the listbox component.
207
- */
208
- export declare type ListboxRefType = HTMLUListElement;
209
206
  /**
210
207
  * Reference to the select component.
211
208
  */
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ declare const icons: {
3
+ collapsedIcon: JSX.Element;
4
+ collapsableIcon: JSX.Element;
5
+ externalLinkIcon: JSX.Element;
6
+ };
7
+ export default icons;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var icons = {
13
+ collapsedIcon: /*#__PURE__*/_react["default"].createElement("svg", {
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ height: "24px",
16
+ viewBox: "0 0 24 24",
17
+ width: "24px",
18
+ fill: "currentColor"
19
+ }, /*#__PURE__*/_react["default"].createElement("path", {
20
+ d: "M0 0h24v24H0z",
21
+ fill: "none"
22
+ }), /*#__PURE__*/_react["default"].createElement("path", {
23
+ d: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
24
+ })),
25
+ collapsableIcon: /*#__PURE__*/_react["default"].createElement("svg", {
26
+ xmlns: "http://www.w3.org/2000/svg",
27
+ height: "24px",
28
+ viewBox: "0 0 24 24",
29
+ width: "24px",
30
+ fill: "currentColor"
31
+ }, /*#__PURE__*/_react["default"].createElement("path", {
32
+ d: "M0 0h24v24H0z",
33
+ fill: "none"
34
+ }), /*#__PURE__*/_react["default"].createElement("path", {
35
+ d: "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"
36
+ })),
37
+ externalLinkIcon: /*#__PURE__*/_react["default"].createElement("svg", {
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ height: "24",
40
+ viewBox: "0 0 24 24",
41
+ width: "24",
42
+ fill: "currentColor"
43
+ }, /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M0 0h24v24H0z",
45
+ fill: "none"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ 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"
48
+ }))
49
+ };
50
+ var _default = icons;
51
+ exports["default"] = _default;
@@ -1,9 +1,10 @@
1
- /// <reference types="react" />
2
- import SidenavPropsType, { SidenavTitlePropsType, SidenavSubtitlePropsType, SidenavLinkPropsType } from "./types.js";
1
+ import React from "react";
2
+ import SidenavPropsType, { SidenavGroupPropsType, SidenavLinkPropsType, SidenavSectionPropsType, SidenavTitlePropsType } from "./types.js";
3
3
  declare const DxcSidenav: {
4
- ({ padding, children }: SidenavPropsType): JSX.Element;
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;
@@ -11,78 +11,161 @@ exports["default"] = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
- var _react = _interopRequireDefault(require("react"));
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
+
20
+ var _react = _interopRequireWildcard(require("react"));
15
21
 
16
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
23
 
18
- var _variables = require("../common/variables.js");
24
+ var _variables = require("../common/variables");
25
+
26
+ var _SidenavContext = require("../layout/SidenavContext");
19
27
 
20
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
21
29
 
22
30
  var _BackgroundColorContext = require("../BackgroundColorContext");
23
31
 
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
32
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
33
+
34
+ var _Bleed = _interopRequireDefault(require("../bleed/Bleed"));
35
+
36
+ var _Icons = _interopRequireDefault(require("./Icons"));
37
+
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
39
+
40
+ var _excluded = ["href", "newWindow", "selected", "icon", "onClick", "tabIndex", "children"];
25
41
 
26
42
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
43
 
28
44
  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
45
 
30
46
  var DxcSidenav = function DxcSidenav(_ref) {
31
- var padding = _ref.padding,
47
+ var title = _ref.title,
32
48
  children = _ref.children;
33
49
  var colorsTheme = (0, _useTheme["default"])();
34
50
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
35
51
  theme: colorsTheme.sidenav
36
- }, /*#__PURE__*/_react["default"].createElement(SideNavContainer, {
37
- padding: padding
38
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
52
+ }, /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
39
53
  color: colorsTheme.sidenav.backgroundColor
40
- }, children)));
54
+ }, title, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
55
+ direction: "column",
56
+ gap: "1rem"
57
+ }, children))));
41
58
  };
42
59
 
43
60
  var Title = function Title(_ref2) {
44
61
  var children = _ref2.children;
45
- return /*#__PURE__*/_react["default"].createElement(SideNavMenuTitle, null, children);
62
+ return /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
63
+ horizontal: "1rem"
64
+ }, /*#__PURE__*/_react["default"].createElement(SidenavTitle, null, children));
46
65
  };
47
66
 
48
- var Subtitle = function Subtitle(_ref3) {
67
+ var Section = function Section(_ref3) {
49
68
  var children = _ref3.children;
50
- return /*#__PURE__*/_react["default"].createElement(SideNavMenuSubTitle, null, children);
69
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Bleed["default"], {
70
+ horizontal: "1rem"
71
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
72
+ direction: "column"
73
+ }, children)), /*#__PURE__*/_react["default"].createElement(Divider, null));
51
74
  };
52
75
 
53
- var Link = function Link(_ref4) {
54
- var _ref4$tabIndex = _ref4.tabIndex,
55
- tabIndex = _ref4$tabIndex === void 0 ? 0 : _ref4$tabIndex,
56
- href = _ref4.href,
57
- onClick = _ref4.onClick,
76
+ var GroupContext = /*#__PURE__*/_react["default"].createContext(null);
77
+
78
+ var Group = function Group(_ref4) {
79
+ var title = _ref4.title,
80
+ _ref4$collapsable = _ref4.collapsable,
81
+ collapsable = _ref4$collapsable === void 0 ? false : _ref4$collapsable,
82
+ icon = _ref4.icon,
58
83
  children = _ref4.children;
59
- return /*#__PURE__*/_react["default"].createElement(SideNavMenuLink, {
60
- tabIndex: tabIndex,
61
- href: href,
62
- onClick: onClick
63
- }, children);
84
+
85
+ var _useState = (0, _react.useState)(false),
86
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
87
+ collapsed = _useState2[0],
88
+ setCollapsed = _useState2[1];
89
+
90
+ var _useState3 = (0, _react.useState)(false),
91
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
92
+ isSelected = _useState4[0],
93
+ changeIsSelected = _useState4[1];
94
+
95
+ return /*#__PURE__*/_react["default"].createElement(GroupContext.Provider, {
96
+ value: changeIsSelected
97
+ }, /*#__PURE__*/_react["default"].createElement(SidenavGroup, null, collapsable && title ? /*#__PURE__*/_react["default"].createElement(SidenavGroupTitleButton, {
98
+ "aria-expanded": !collapsed,
99
+ onClick: function onClick() {
100
+ return setCollapsed(!collapsed);
101
+ },
102
+ selectedGroup: collapsed && isSelected
103
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
104
+ alignItems: "center",
105
+ gap: "0.5rem"
106
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
107
+ src: icon
108
+ }) : icon, title), collapsed ? _Icons["default"].collapsedIcon : _Icons["default"].collapsableIcon) : title && /*#__PURE__*/_react["default"].createElement(SidenavGroupTitle, null, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
109
+ src: icon
110
+ }) : icon, title), !collapsed && children));
64
111
  };
65
112
 
66
- var SideNavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (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"])), function (props) {
113
+ var Link = /*#__PURE__*/(0, _react.forwardRef)(function (_ref5, ref) {
114
+ var href = _ref5.href,
115
+ _ref5$newWindow = _ref5.newWindow,
116
+ newWindow = _ref5$newWindow === void 0 ? false : _ref5$newWindow,
117
+ _ref5$selected = _ref5.selected,
118
+ selected = _ref5$selected === void 0 ? false : _ref5$selected,
119
+ icon = _ref5.icon,
120
+ onClick = _ref5.onClick,
121
+ _ref5$tabIndex = _ref5.tabIndex,
122
+ tabIndex = _ref5$tabIndex === void 0 ? 0 : _ref5$tabIndex,
123
+ children = _ref5.children,
124
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref5, _excluded);
125
+ var changeIsGroupSelected = (0, _react.useContext)(GroupContext);
126
+ var setIsSidenavVisibleResponsive = (0, _SidenavContext.useResponsiveSidenavVisibility)();
127
+
128
+ var handleClick = function handleClick($event) {
129
+ onClick === null || onClick === void 0 ? void 0 : onClick($event);
130
+ setIsSidenavVisibleResponsive === null || setIsSidenavVisibleResponsive === void 0 ? void 0 : setIsSidenavVisibleResponsive(false);
131
+ };
132
+
133
+ (0, _react.useEffect)(function () {
134
+ changeIsGroupSelected === null || changeIsGroupSelected === void 0 ? void 0 : changeIsGroupSelected(function (isGroupSelected) {
135
+ return !isGroupSelected ? selected : isGroupSelected;
136
+ });
137
+ }, [selected, changeIsGroupSelected]);
138
+ return /*#__PURE__*/_react["default"].createElement(SidenavLink, (0, _extends2["default"])({
139
+ selected: selected,
140
+ href: href ? href : undefined,
141
+ target: href ? newWindow ? "_blank" : "_self" : undefined,
142
+ ref: ref,
143
+ tabIndex: tabIndex,
144
+ onClick: handleClick
145
+ }, otherProps), /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
146
+ alignItems: "center",
147
+ gap: "0.5rem"
148
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
149
+ src: icon
150
+ }) : icon, children), newWindow && _Icons["default"].externalLinkIcon);
151
+ });
152
+
153
+ 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
154
  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
155
  }, function (props) {
73
156
  return props.theme.scrollBarTrackColor;
74
157
  }, function (props) {
75
158
  return props.theme.scrollBarThumbColor;
76
159
  });
77
160
 
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) {
161
+ 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
162
  return props.theme.titleFontFamily;
80
- }, function (props) {
81
- return props.theme.titleFontSize;
82
163
  }, function (props) {
83
164
  return props.theme.titleFontStyle;
84
165
  }, function (props) {
85
166
  return props.theme.titleFontWeight;
167
+ }, function (props) {
168
+ return props.theme.titleFontSize;
86
169
  }, function (props) {
87
170
  return props.theme.titleFontColor;
88
171
  }, function (props) {
@@ -91,32 +174,46 @@ var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_te
91
174
  return props.theme.titleFontTextTransform;
92
175
  });
93
176
 
94
- var SideNavMenuSubTitle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (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"])), function (props) {
95
- return props.theme.subtitleFontFamily;
177
+ 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"])));
178
+
179
+ var SidenavGroup = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n a {\n padding: 0.5rem 1.2rem 0.5rem 2.25rem;\n }\n"])));
180
+
181
+ 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) {
182
+ return props.theme.groupTitleFontFamily;
183
+ }, function (props) {
184
+ return props.theme.groupTitleFontStyle;
185
+ }, function (props) {
186
+ return props.theme.groupTitleFontWeight;
187
+ }, function (props) {
188
+ return props.theme.groupTitleFontSize;
189
+ });
190
+
191
+ 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) {
192
+ return props.theme.groupTitleFontFamily;
96
193
  }, function (props) {
97
- return props.theme.subtitleFontSize;
194
+ return props.theme.groupTitleFontStyle;
98
195
  }, function (props) {
99
- return props.theme.subtitleFontStyle;
196
+ return props.theme.groupTitleFontWeight;
100
197
  }, function (props) {
101
- return props.theme.subtitleFontWeight;
198
+ return props.theme.groupTitleFontSize;
102
199
  }, function (props) {
103
- return props.theme.subtitleFontColor;
200
+ return props.selectedGroup ? "color: ".concat(props.theme.groupTitleSelectedFontColor, "; background-color: ").concat(props.theme.groupTitleSelectedBackgroundColor, ";") : "color: ".concat(props.theme.groupTitleFontColor, "; background-color: transparent;");
104
201
  }, function (props) {
105
- return props.theme.subtitleFontLetterSpacing;
202
+ return props.theme.linkFocusColor;
203
+ }, function (props) {
204
+ 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, ";");
106
205
  }, function (props) {
107
- return props.theme.subtitleFontTextTransform;
206
+ return props.selectedGroup ? "#333" : props.theme.groupTitleActiveBackgroundColor;
108
207
  });
109
208
 
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) {
209
+ 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
210
  return props.theme.linkFontFamily;
112
- }, function (props) {
113
- return props.theme.linkFontSize;
114
211
  }, function (props) {
115
212
  return props.theme.linkFontStyle;
116
213
  }, function (props) {
117
214
  return props.theme.linkFontWeight;
118
215
  }, function (props) {
119
- return props.theme.linkFontColor;
216
+ return props.theme.linkFontSize;
120
217
  }, function (props) {
121
218
  return props.theme.linkFontLetterSpacing;
122
219
  }, function (props) {
@@ -124,13 +221,18 @@ var SideNavMenuLink = _styledComponents["default"].a(_templateObject4 || (_templ
124
221
  }, function (props) {
125
222
  return props.theme.linkTextDecoration;
126
223
  }, function (props) {
127
- return "".concat(props.theme.linkMarginTop, " ").concat(props.theme.linkMarginRight, " ").concat(props.theme.linkMarginBottom, " ").concat(props.theme.linkMarginLeft);
224
+ return props.selected ? "color: ".concat(props.theme.linkSelectedFontColor, "; background-color: ").concat(props.theme.linkSelectedBackgroundColor, ";") : "color: ".concat(props.theme.linkFontColor, "; background-color: transparent;");
128
225
  }, function (props) {
129
226
  return props.theme.linkFocusColor;
227
+ }, function (props) {
228
+ 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, ";");
229
+ }, function (props) {
230
+ return props.selected ? "#333" : "#4d4d4d";
130
231
  });
131
232
 
132
- DxcSidenav.Title = Title;
133
- DxcSidenav.Subtitle = Subtitle;
233
+ DxcSidenav.Section = Section;
234
+ DxcSidenav.Group = Group;
134
235
  DxcSidenav.Link = Link;
236
+ DxcSidenav.Title = Title;
135
237
  var _default = DxcSidenav;
136
238
  exports["default"] = _default;