@dxc-technology/halstack-react 0.0.0-c2834c3 → 0.0.0-c291a0c

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 (66) hide show
  1. package/HalstackContext.js +1 -4
  2. package/badge/Badge.d.ts +1 -1
  3. package/badge/Badge.js +5 -3
  4. package/badge/types.d.ts +1 -0
  5. package/bleed/Bleed.js +1 -34
  6. package/bleed/Bleed.stories.tsx +62 -63
  7. package/bleed/types.d.ts +1 -1
  8. package/box/Box.js +22 -32
  9. package/card/Card.js +34 -36
  10. package/common/variables.js +4 -18
  11. package/footer/Icons.js +1 -1
  12. package/inline/Inline.d.ts +4 -0
  13. package/inline/Inline.js +54 -0
  14. package/inline/Inline.stories.tsx +264 -0
  15. package/inline/types.d.ts +32 -0
  16. package/{radio → inline}/types.js +0 -0
  17. package/inset/Inset.js +1 -34
  18. package/inset/Inset.stories.tsx +33 -33
  19. package/inset/types.d.ts +1 -1
  20. package/layout/ApplicationLayout.d.ts +4 -3
  21. package/layout/ApplicationLayout.js +83 -102
  22. package/layout/ApplicationLayout.stories.tsx +14 -59
  23. package/layout/Icons.d.ts +5 -0
  24. package/layout/Icons.js +13 -2
  25. package/layout/SidenavContext.d.ts +5 -0
  26. package/layout/SidenavContext.js +19 -0
  27. package/layout/types.d.ts +5 -10
  28. package/link/Link.d.ts +2 -2
  29. package/link/Link.js +23 -49
  30. package/link/types.d.ts +2 -3
  31. package/list/List.js +1 -1
  32. package/list/List.stories.tsx +16 -22
  33. package/list/types.d.ts +1 -1
  34. package/main.d.ts +3 -2
  35. package/main.js +16 -8
  36. package/package.json +2 -1
  37. package/paginator/Paginator.test.js +42 -0
  38. package/progress-bar/ProgressBar.js +1 -1
  39. package/progress-bar/ProgressBar.stories.jsx +11 -11
  40. package/quick-nav/QuickNav.js +19 -23
  41. package/resultsetTable/ResultsetTable.test.js +42 -0
  42. package/select/Listbox.d.ts +1 -1
  43. package/select/Listbox.js +30 -7
  44. package/select/Select.js +73 -67
  45. package/select/Select.stories.tsx +130 -98
  46. package/select/Select.test.js +299 -194
  47. package/select/types.d.ts +3 -4
  48. package/sidenav/Sidenav.d.ts +1 -1
  49. package/sidenav/Sidenav.js +20 -9
  50. package/stack/Stack.d.ts +2 -1
  51. package/stack/Stack.js +23 -70
  52. package/stack/Stack.stories.tsx +139 -78
  53. package/stack/types.d.ts +11 -7
  54. package/tabs-nav/NavTabs.d.ts +8 -0
  55. package/tabs-nav/NavTabs.js +125 -0
  56. package/tabs-nav/NavTabs.stories.tsx +170 -0
  57. package/tabs-nav/NavTabs.test.js +82 -0
  58. package/tabs-nav/Tab.d.ts +4 -0
  59. package/tabs-nav/Tab.js +132 -0
  60. package/tabs-nav/types.d.ts +53 -0
  61. package/tabs-nav/types.js +5 -0
  62. package/radio/Radio.d.ts +0 -4
  63. package/radio/Radio.js +0 -173
  64. package/radio/Radio.stories.tsx +0 -192
  65. package/radio/Radio.test.js +0 -71
  66. package/radio/types.d.ts +0 -54
package/select/types.d.ts CHANGED
@@ -201,11 +201,10 @@ export declare type ListboxProps = {
201
201
  optionalItem: Option;
202
202
  searchable: boolean;
203
203
  handleOptionOnClick: (option: Option) => void;
204
+ styles: {
205
+ width: number;
206
+ };
204
207
  };
205
- /**
206
- * Reference to the listbox component.
207
- */
208
- export declare type ListboxRefType = HTMLUListElement;
209
208
  /**
210
209
  * Reference to the select component.
211
210
  */
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import SidenavPropsType, { SidenavTitlePropsType, SidenavSubtitlePropsType, SidenavLinkPropsType } from "./types.js";
2
+ import SidenavPropsType, { SidenavTitlePropsType, SidenavSubtitlePropsType, SidenavLinkPropsType } from "./types";
3
3
  declare const DxcSidenav: {
4
4
  ({ padding, children }: SidenavPropsType): JSX.Element;
5
5
  Title: ({ children }: SidenavTitlePropsType) => JSX.Element;
@@ -21,6 +21,8 @@ var _useTheme = _interopRequireDefault(require("../useTheme"));
21
21
 
22
22
  var _BackgroundColorContext = require("../BackgroundColorContext");
23
23
 
24
+ var _SidenavContext = require("../layout/SidenavContext");
25
+
24
26
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
25
27
 
26
28
  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); }
@@ -33,7 +35,7 @@ var DxcSidenav = function DxcSidenav(_ref) {
33
35
  var colorsTheme = (0, _useTheme["default"])();
34
36
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
35
37
  theme: colorsTheme.sidenav
36
- }, /*#__PURE__*/_react["default"].createElement(SideNavContainer, {
38
+ }, /*#__PURE__*/_react["default"].createElement(SidenavContainer, {
37
39
  padding: padding
38
40
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
39
41
  color: colorsTheme.sidenav.backgroundColor
@@ -42,12 +44,12 @@ var DxcSidenav = function DxcSidenav(_ref) {
42
44
 
43
45
  var Title = function Title(_ref2) {
44
46
  var children = _ref2.children;
45
- return /*#__PURE__*/_react["default"].createElement(SideNavMenuTitle, null, children);
47
+ return /*#__PURE__*/_react["default"].createElement(SidenavMenuTitle, null, children);
46
48
  };
47
49
 
48
50
  var Subtitle = function Subtitle(_ref3) {
49
51
  var children = _ref3.children;
50
- return /*#__PURE__*/_react["default"].createElement(SideNavMenuSubTitle, null, children);
52
+ return /*#__PURE__*/_react["default"].createElement(SidenavMenuSubTitle, null, children);
51
53
  };
52
54
 
53
55
  var Link = function Link(_ref4) {
@@ -56,15 +58,24 @@ var Link = function Link(_ref4) {
56
58
  href = _ref4.href,
57
59
  onClick = _ref4.onClick,
58
60
  children = _ref4.children;
59
- return /*#__PURE__*/_react["default"].createElement(SideNavMenuLink, {
61
+ var setIsSidenavVisibleResponsive = (0, _SidenavContext.useResponsiveSidenavVisibility)();
62
+
63
+ var handleClick = function handleClick() {
64
+ onClick === null || onClick === void 0 ? void 0 : onClick();
65
+ setIsSidenavVisibleResponsive === null || setIsSidenavVisibleResponsive === void 0 ? void 0 : setIsSidenavVisibleResponsive(false);
66
+ };
67
+
68
+ return /*#__PURE__*/_react["default"].createElement(SidenavMenuLink, {
60
69
  tabIndex: tabIndex,
61
70
  href: href,
62
- onClick: onClick
71
+ onClick: handleClick
63
72
  }, children);
64
73
  };
65
74
 
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) {
75
+ var SidenavContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n\n @media (max-width: ", "rem) {\n width: ", ";\n }\n\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) {
67
76
  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";
68
79
  }, function (props) {
69
80
  return props.padding ? "calc(300px - ".concat(_variables.spaces[props.padding], " - ").concat(_variables.spaces[props.padding], ")") : "300px";
70
81
  }, function (props) {
@@ -75,7 +86,7 @@ var SideNavContainer = _styledComponents["default"].div(_templateObject || (_tem
75
86
  return props.theme.scrollBarThumbColor;
76
87
  });
77
88
 
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) {
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) {
79
90
  return props.theme.titleFontFamily;
80
91
  }, function (props) {
81
92
  return props.theme.titleFontSize;
@@ -91,7 +102,7 @@ var SideNavMenuTitle = _styledComponents["default"].div(_templateObject2 || (_te
91
102
  return props.theme.titleFontTextTransform;
92
103
  });
93
104
 
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) {
105
+ 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
106
  return props.theme.subtitleFontFamily;
96
107
  }, function (props) {
97
108
  return props.theme.subtitleFontSize;
@@ -107,7 +118,7 @@ var SideNavMenuSubTitle = _styledComponents["default"].div(_templateObject3 || (
107
118
  return props.theme.subtitleFontTextTransform;
108
119
  });
109
120
 
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) {
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) {
111
122
  return props.theme.linkFontFamily;
112
123
  }, function (props) {
113
124
  return props.theme.linkFontSize;
package/stack/Stack.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import StackPropsType from "./types";
3
- export default function Stack({ gutter, divider, align, as, children }: StackPropsType): JSX.Element;
3
+ declare const DxcStack: ({ alignX, as, divider, gutter, reverse, children, }: StackPropsType) => JSX.Element;
4
+ export default DxcStack;
package/stack/Stack.js CHANGED
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = Stack;
8
+ exports["default"] = void 0;
9
9
 
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
11
 
@@ -15,83 +15,36 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
15
 
16
16
  var _templateObject, _templateObject2;
17
17
 
18
- function Stack(_ref) {
19
- var gutter = _ref.gutter,
20
- divider = _ref.divider,
21
- align = _ref.align,
18
+ var DxcStack = function DxcStack(_ref) {
19
+ var _ref$alignX = _ref.alignX,
20
+ alignX = _ref$alignX === void 0 ? "stretch" : _ref$alignX,
22
21
  _ref$as = _ref.as,
23
22
  as = _ref$as === void 0 ? "div" : _ref$as,
23
+ _ref$divider = _ref.divider,
24
+ divider = _ref$divider === void 0 ? false : _ref$divider,
25
+ _ref$gutter = _ref.gutter,
26
+ gutter = _ref$gutter === void 0 ? "0rem" : _ref$gutter,
27
+ _ref$reverse = _ref.reverse,
28
+ reverse = _ref$reverse === void 0 ? false : _ref$reverse,
24
29
  children = _ref.children;
25
- return /*#__PURE__*/_react["default"].createElement(StyledStack, {
30
+ return /*#__PURE__*/_react["default"].createElement(Stack, {
26
31
  gutter: gutter,
27
- divider: divider,
28
- align: align,
32
+ alignX: alignX,
33
+ reverse: reverse,
29
34
  as: as
30
35
  }, _react["default"].Children.map(children, function (child, index) {
31
36
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, child, divider && index !== _react["default"].Children.count(children) - 1 && /*#__PURE__*/_react["default"].createElement(Divider, null));
32
37
  }));
33
- }
38
+ };
34
39
 
35
- var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: 1px;\n background-color: #999999;\n"])));
40
+ var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n height: 1px;\n background-color: #999999;\n"])));
36
41
 
37
- var StyledStack = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: ", ";\n gap: ", ";\n margin: 0;\n padding: 0;\n"])), function (_ref2) {
38
- var align = _ref2.align;
39
-
40
- switch (align) {
41
- case "start":
42
- return "flex-start";
43
-
44
- case "center":
45
- return "center";
46
-
47
- case "end":
48
- return "flex-end";
49
-
50
- case "baseline":
51
- return "baseline";
52
-
53
- case "stretch":
54
- return "stretch";
55
-
56
- default:
57
- return "initial";
58
- }
59
- }, function (_ref3) {
60
- var gutter = _ref3.gutter,
61
- divider = _ref3.divider;
62
-
63
- switch (gutter) {
64
- case "none":
65
- return "0";
66
-
67
- case "xxxsmall":
68
- return "calc(0.125rem / ".concat(divider ? 2 : 1, ")");
69
-
70
- case "xxsmall":
71
- return "calc(0.25rem / ".concat(divider ? 2 : 1, ")");
72
-
73
- case "xsmall":
74
- return "calc(0.5rem / ".concat(divider ? 2 : 1, ")");
75
-
76
- case "small":
77
- return "calc(1rem / ".concat(divider ? 2 : 1, ")");
78
-
79
- case "medium":
80
- return "calc(1.5rem / ".concat(divider ? 2 : 1, ")");
81
-
82
- case "large":
83
- return "calc(2rem / ".concat(divider ? 2 : 1, ")");
84
-
85
- case "xlarge":
86
- return "calc(3rem / ".concat(divider ? 2 : 1, ")");
87
-
88
- case "xxlarge":
89
- return "calc(4rem / ".concat(divider ? 2 : 1, ")");
90
-
91
- case "xxxlarge":
92
- return "calc(5rem / ".concat(divider ? 2 : 1, ")");
42
+ var Stack = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n ", "\n padding: 0px;\n margin: 0px;\n"])), function (_ref2) {
43
+ var alignX = _ref2.alignX,
44
+ gutter = _ref2.gutter,
45
+ reverse = _ref2.reverse;
46
+ return "\n flex-direction: ".concat(reverse ? "column-reverse" : "column", ";\n align-items: ").concat(alignX === "start" || alignX === "end" ? "flex-".concat(alignX) : alignX, ";\n gap: ").concat(gutter, ";\n ");
47
+ });
93
48
 
94
- default:
95
- return "0";
96
- }
97
- });
49
+ var _default = DxcStack;
50
+ exports["default"] = _default;
@@ -13,148 +13,209 @@ export const Chromatic = () => (
13
13
  <Title title="Default" theme="light" level={4} />
14
14
  <Container>
15
15
  <DxcStack>
16
- <Placeholder></Placeholder>
17
- <Placeholder></Placeholder>
18
- <Placeholder></Placeholder>
16
+ <Placeholder />
17
+ <Placeholder />
18
+ <Placeholder />
19
+ <Placeholder />
20
+ <Placeholder />
19
21
  </DxcStack>
20
22
  </Container>
21
- <Title title="Align = baseline" theme="light" level={4} />
23
+ <Title title="Default with divider" theme="light" level={4} />
22
24
  <Container>
23
- <DxcStack align="baseline">
24
- <Placeholder paddingLeft={20}></Placeholder>
25
- <Placeholder></Placeholder>
26
- <Placeholder paddingRight={60}></Placeholder>
25
+ <DxcStack divider>
26
+ <Placeholder />
27
+ <Placeholder />
28
+ <Placeholder />
27
29
  </DxcStack>
28
30
  </Container>
29
- <Title title="Align = center" theme="light" level={4} />
31
+ <Title title="Alignment with divider" theme="light" level={4} />
30
32
  <Container>
31
- <DxcStack align="center">
33
+ <DxcStack alignX="end" divider>
32
34
  <Placeholder paddingLeft={20}></Placeholder>
33
- <Placeholder></Placeholder>
35
+ <Placeholder />
34
36
  <Placeholder paddingLeft={60}></Placeholder>
35
37
  </DxcStack>
36
38
  </Container>
37
- <Title title="Align = end" theme="light" level={4} />
39
+ <Title title="Default with one child" theme="light" level={4} />
40
+ <Container>
41
+ <DxcStack divider>
42
+ <Placeholder />
43
+ </DxcStack>
44
+ </Container>
45
+ <Title title="Wrap" theme="light" level={4} />
46
+ <FlexContainer customHeight>
47
+ <DxcStack>
48
+ <Placeholder />
49
+ <Placeholder />
50
+ <Placeholder />
51
+ <Placeholder />
52
+ <Placeholder />
53
+ </DxcStack>
54
+ </FlexContainer>
55
+ <Title title="AlignX = start" theme="light" level={4} />
56
+ <Container>
57
+ <DxcStack alignX="start">
58
+ <Placeholder paddingLeft={20}></Placeholder>
59
+ <Placeholder />
60
+ <Placeholder paddingRight={60}></Placeholder>
61
+ <Placeholder paddingLeft={20}></Placeholder>
62
+ </DxcStack>
63
+ </Container>
64
+ <Title title="AlignX = end" theme="light" level={4} />
38
65
  <Container>
39
- <DxcStack align="end">
66
+ <DxcStack alignX="end">
40
67
  <Placeholder paddingLeft={20}></Placeholder>
41
- <Placeholder></Placeholder>
68
+ <Placeholder />
42
69
  <Placeholder paddingLeft={60}></Placeholder>
43
70
  </DxcStack>
44
71
  </Container>
45
- <Title title="Align = start" theme="light" level={4} />
72
+ <Title title="AlignX = center" theme="light" level={4} />
46
73
  <Container>
47
- <DxcStack align="start">
74
+ <DxcStack alignX="center">
48
75
  <Placeholder paddingLeft={20}></Placeholder>
49
- <Placeholder></Placeholder>
76
+ <Placeholder />
50
77
  <Placeholder paddingLeft={60}></Placeholder>
78
+ <Placeholder paddingLeft={20}></Placeholder>
51
79
  </DxcStack>
52
80
  </Container>
53
- <Title title="Align = stretch" theme="light" level={4} />
81
+ <Title title="AlignX = baseline" theme="light" level={4} />
54
82
  <Container>
55
- <DxcStack align="stretch">
83
+ <DxcStack alignX="baseline">
56
84
  <Placeholder paddingLeft={20}></Placeholder>
57
- <Placeholder></Placeholder>
85
+ <Placeholder />
58
86
  <Placeholder paddingLeft={60}></Placeholder>
59
87
  </DxcStack>
60
88
  </Container>
61
- <Title title="gutter = xxxsmall" theme="light" level={4} />
89
+ <Title title="AlignX with wrapped items" theme="light" level={4} />
90
+ <FlexContainer customHeight>
91
+ <DxcStack alignX="center">
92
+ <Placeholder />
93
+ <Placeholder paddingRight={60} />
94
+ <Placeholder paddingLeft={20} />
95
+ <Placeholder />
96
+ <Placeholder paddingRight={20} />
97
+ <Placeholder paddingLeft={60} />
98
+ </DxcStack>
99
+ </FlexContainer>
100
+ <Title title="Gutter = 0rem" theme="light" level={4} />
62
101
  <Container>
63
- <DxcStack gutter="xxxsmall">
64
- <Placeholder></Placeholder>
65
- <Placeholder></Placeholder>
66
- <Placeholder></Placeholder>
102
+ <DxcStack gutter="0rem">
103
+ <Placeholder />
104
+ <Placeholder />
105
+ <Placeholder />
106
+ <Placeholder />
107
+ <Placeholder />
67
108
  </DxcStack>
68
109
  </Container>
69
- <Title title="gutter = xxsmall" theme="light" level={4} />
110
+ <Title title="Gutter = 0.125rem" theme="light" level={4} />
70
111
  <Container>
71
- <DxcStack gutter="xxsmall">
72
- <Placeholder></Placeholder>
73
- <Placeholder></Placeholder>
74
- <Placeholder></Placeholder>
112
+ <DxcStack gutter="0.125rem">
113
+ <Placeholder />
114
+ <Placeholder />
115
+ <Placeholder />
75
116
  </DxcStack>
76
117
  </Container>
77
- <Title title="gutter = xsmall" theme="light" level={4} />
118
+ <Title title="Gutter = 0.25rem" theme="light" level={4} />
78
119
  <Container>
79
- <DxcStack gutter="xsmall">
80
- <Placeholder></Placeholder>
81
- <Placeholder></Placeholder>
82
- <Placeholder></Placeholder>
120
+ <DxcStack gutter="0.25rem">
121
+ <Placeholder />
122
+ <Placeholder />
123
+ <Placeholder />
124
+ <Placeholder />
125
+ <Placeholder />
83
126
  </DxcStack>
84
127
  </Container>
85
- <Title title="gutter = small" theme="light" level={4} />
128
+ <Title title="Gutter = 0.5rem" theme="light" level={4} />
86
129
  <Container>
87
- <DxcStack gutter="small">
88
- <Placeholder></Placeholder>
89
- <Placeholder></Placeholder>
90
- <Placeholder></Placeholder>
130
+ <DxcStack gutter="0.5rem">
131
+ <Placeholder />
132
+ <Placeholder />
133
+ <Placeholder />
91
134
  </DxcStack>
92
135
  </Container>
93
- <Title title="gutter = medium" theme="light" level={4} />
136
+ <Title title="Gutter = 0.75rem" theme="light" level={4} />
94
137
  <Container>
95
- <DxcStack gutter="medium">
96
- <Placeholder></Placeholder>
97
- <Placeholder></Placeholder>
98
- <Placeholder></Placeholder>
138
+ <DxcStack gutter="0.75rem">
139
+ <Placeholder />
140
+ <Placeholder />
141
+ <Placeholder />
142
+ <Placeholder />
143
+ <Placeholder />
99
144
  </DxcStack>
100
145
  </Container>
101
- <Title title="gutter = large" theme="light" level={4} />
146
+ <Title title="Gutter = 1rem" theme="light" level={4} />
102
147
  <Container>
103
- <DxcStack gutter="large">
104
- <Placeholder></Placeholder>
105
- <Placeholder></Placeholder>
106
- <Placeholder></Placeholder>
148
+ <DxcStack gutter="1rem">
149
+ <Placeholder />
150
+ <Placeholder />
151
+ <Placeholder />
107
152
  </DxcStack>
108
153
  </Container>
109
- <Title title="gutter = xlarge" theme="light" level={4} />
154
+ <Title title="Gutter = 1.5rem" theme="light" level={4} />
110
155
  <Container>
111
- <DxcStack gutter="xlarge">
112
- <Placeholder></Placeholder>
113
- <Placeholder></Placeholder>
114
- <Placeholder></Placeholder>
156
+ <DxcStack gutter="1.5rem">
157
+ <Placeholder />
158
+ <Placeholder />
159
+ <Placeholder />
160
+ <Placeholder />
161
+ <Placeholder />
115
162
  </DxcStack>
116
163
  </Container>
117
- <Title title="gutter = xxlarge" theme="light" level={4} />
164
+ <Title title="Gutter = 2rem & divider" theme="light" level={4} />
118
165
  <Container>
119
- <DxcStack gutter="xxlarge">
120
- <Placeholder></Placeholder>
121
- <Placeholder></Placeholder>
122
- <Placeholder></Placeholder>
166
+ <DxcStack gutter="2rem" divider>
167
+ <Placeholder />
168
+ <Placeholder />
169
+ <Placeholder />
123
170
  </DxcStack>
124
171
  </Container>
125
- <Title title="gutter = xxxlarge" theme="light" level={4} />
172
+ <Title title="Gutter = 3rem" theme="light" level={4} />
126
173
  <Container>
127
- <DxcStack gutter="xxxlarge">
128
- <Placeholder></Placeholder>
129
- <Placeholder></Placeholder>
130
- <Placeholder></Placeholder>
174
+ <DxcStack gutter="3rem">
175
+ <Placeholder />
176
+ <Placeholder />
177
+ <Placeholder />
131
178
  </DxcStack>
132
179
  </Container>
133
- <Title title="gutter = xxlarge && divider" theme="light" level={4} />
180
+ <Title title="Gutter = 4rem" theme="light" level={4} />
134
181
  <Container>
135
- <DxcStack gutter="xxlarge" divider>
136
- <Placeholder></Placeholder>
137
- <Placeholder></Placeholder>
138
- <Placeholder></Placeholder>
182
+ <DxcStack gutter="4rem">
183
+ <Placeholder />
184
+ <Placeholder />
139
185
  </DxcStack>
140
186
  </Container>
141
- <Title title="gutter = none" theme="light" level={4} />
187
+ <Title title="Gutter = 5rem" theme="light" level={4} />
142
188
  <Container>
143
- <DxcStack gutter="none">
144
- <Placeholder></Placeholder>
145
- <Placeholder></Placeholder>
146
- <Placeholder></Placeholder>
189
+ <DxcStack gutter="5rem">
190
+ <Placeholder />
191
+ <Placeholder />
192
+ </DxcStack>
193
+ </Container>
194
+ <Title title="Reverse" theme="light" level={4} />
195
+ <Container>
196
+ <DxcStack reverse>
197
+ <Placeholder>1</Placeholder>
198
+ <Placeholder>2</Placeholder>
199
+ <Placeholder>3</Placeholder>
200
+ <Placeholder>4</Placeholder>
147
201
  </DxcStack>
148
202
  </Container>
149
203
  </>
150
204
  );
151
205
 
152
- const Container = styled.div`
206
+ const FlexContainer = styled.div<{ customHeight?: boolean }>`
207
+ display: flex;
208
+ ${({ customHeight }) => customHeight && `height: 100px;`};
153
209
  background: #f2eafa;
154
- padding: 10px;
155
210
  `;
156
211
 
157
- const Placeholder = styled.div`
212
+ const Container = styled.div<{ customHeight?: boolean }>`
213
+ background: #f2eafa;
214
+ `;
215
+
216
+ type PlaceholderProps = { paddingLeft?: number; paddingRight?: number };
217
+
218
+ const Placeholder = styled.div<PlaceholderProps>`
158
219
  min-height: 40px;
159
220
  min-width: 120px;
160
221
  border: 1px solid #a46ede;
package/stack/types.d.ts CHANGED
@@ -1,24 +1,28 @@
1
1
  /// <reference types="react" />
2
2
  declare type Props = {
3
3
  /**
4
- * Space applied between each child.
4
+ * Alignment applied to children in the main axis.
5
+ */
6
+ alignX?: "start" | "end" | "center" | "baseline" | "stretch";
7
+ /**
8
+ * Specifies the HTML tag or component that is rendered as the wrapper element.
5
9
  */
6
- gutter?: "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
10
+ as?: React.ElementType;
7
11
  /**
8
12
  * If true, a divider is shown between children.
9
13
  */
10
14
  divider?: boolean;
11
15
  /**
12
- * Alignment applied to children.
16
+ * Space applied between each child.
13
17
  */
14
- align?: "start" | "center" | "end" | "baseline" | "stretch";
18
+ gutter?: "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "0.75rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
15
19
  /**
16
- * Specifies the HTML tag or component that is rendered as the wrapper element.
20
+ * Change the direction of the stack to reverse.
17
21
  */
18
- as?: React.ElementType;
22
+ reverse?: boolean;
19
23
  /**
20
24
  * Custom content inside the stack.
21
25
  */
22
- children: React.ReactNode;
26
+ children: React.ReactNode[] | React.ReactNode;
23
27
  };
24
28
  export default Props;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { NavTabsContextProps, NavTabsProps } from "./types";
3
+ export declare const NavTabsContext: React.Context<NavTabsContextProps>;
4
+ declare const DxcNavTabs: {
5
+ ({ iconPosition, tabIndex, children }: NavTabsProps): JSX.Element;
6
+ Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLAnchorElement>>;
7
+ };
8
+ export default DxcNavTabs;