@dxc-technology/halstack-react 0.0.0-6c8ea9f → 0.0.0-6d8b48c

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 (65) 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/inline/Inline.d.ts +4 -0
  12. package/inline/Inline.js +54 -0
  13. package/inline/Inline.stories.tsx +240 -0
  14. package/inline/types.d.ts +32 -0
  15. package/{radio → inline}/types.js +0 -0
  16. package/inset/Inset.js +1 -34
  17. package/inset/Inset.stories.tsx +33 -33
  18. package/inset/types.d.ts +1 -1
  19. package/layout/ApplicationLayout.d.ts +4 -3
  20. package/layout/ApplicationLayout.js +83 -102
  21. package/layout/ApplicationLayout.stories.tsx +14 -59
  22. package/layout/Icons.d.ts +5 -0
  23. package/layout/Icons.js +13 -2
  24. package/layout/SidenavContext.d.ts +5 -0
  25. package/layout/SidenavContext.js +19 -0
  26. package/layout/types.d.ts +5 -10
  27. package/link/Link.d.ts +2 -2
  28. package/link/Link.js +23 -49
  29. package/link/types.d.ts +2 -3
  30. package/list/List.js +1 -1
  31. package/list/List.stories.tsx +16 -22
  32. package/list/types.d.ts +1 -1
  33. package/main.d.ts +3 -2
  34. package/main.js +16 -8
  35. package/package.json +2 -1
  36. package/paginator/Paginator.test.js +42 -0
  37. package/progress-bar/ProgressBar.js +1 -1
  38. package/progress-bar/ProgressBar.stories.jsx +11 -11
  39. package/quick-nav/QuickNav.js +16 -14
  40. package/resultsetTable/ResultsetTable.test.js +42 -0
  41. package/select/Listbox.d.ts +1 -1
  42. package/select/Listbox.js +30 -7
  43. package/select/Select.js +73 -67
  44. package/select/Select.stories.tsx +130 -98
  45. package/select/Select.test.js +299 -194
  46. package/select/types.d.ts +3 -4
  47. package/sidenav/Sidenav.d.ts +1 -1
  48. package/sidenav/Sidenav.js +20 -9
  49. package/stack/Stack.d.ts +2 -1
  50. package/stack/Stack.js +23 -70
  51. package/stack/Stack.stories.tsx +120 -81
  52. package/stack/types.d.ts +11 -7
  53. package/tabs-nav/NavTabs.d.ts +8 -0
  54. package/tabs-nav/NavTabs.js +125 -0
  55. package/tabs-nav/NavTabs.stories.tsx +170 -0
  56. package/tabs-nav/NavTabs.test.js +82 -0
  57. package/tabs-nav/Tab.d.ts +4 -0
  58. package/tabs-nav/Tab.js +132 -0
  59. package/tabs-nav/types.d.ts +53 -0
  60. package/tabs-nav/types.js +5 -0
  61. package/radio/Radio.d.ts +0 -4
  62. package/radio/Radio.js +0 -173
  63. package/radio/Radio.stories.tsx +0 -192
  64. package/radio/Radio.test.js +0 -71
  65. 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"])), 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,187 @@ 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} />
38
40
  <Container>
39
- <DxcStack align="end">
40
- <Placeholder paddingLeft={20}></Placeholder>
41
- <Placeholder></Placeholder>
42
- <Placeholder paddingLeft={60}></Placeholder>
41
+ <DxcStack divider>
42
+ <Placeholder />
43
43
  </DxcStack>
44
44
  </Container>
45
- <Title title="Align = start" theme="light" level={4} />
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} />
46
56
  <Container>
47
- <DxcStack align="start">
57
+ <DxcStack alignX="start">
58
+ <Placeholder paddingLeft={20}></Placeholder>
59
+ <Placeholder />
60
+ <Placeholder paddingRight={60}></Placeholder>
48
61
  <Placeholder paddingLeft={20}></Placeholder>
49
- <Placeholder></Placeholder>
50
- <Placeholder paddingLeft={60}></Placeholder>
51
62
  </DxcStack>
52
63
  </Container>
53
- <Title title="Align = stretch" theme="light" level={4} />
64
+ <Title title="AlignX = end" theme="light" level={4} />
54
65
  <Container>
55
- <DxcStack align="stretch">
66
+ <DxcStack alignX="end">
56
67
  <Placeholder paddingLeft={20}></Placeholder>
57
- <Placeholder></Placeholder>
68
+ <Placeholder />
58
69
  <Placeholder paddingLeft={60}></Placeholder>
59
70
  </DxcStack>
60
71
  </Container>
61
- <Title title="gutter = xxxsmall" theme="light" level={4} />
72
+ <Title title="AlignX = center" theme="light" level={4} />
62
73
  <Container>
63
- <DxcStack gutter="xxxsmall">
64
- <Placeholder></Placeholder>
65
- <Placeholder></Placeholder>
66
- <Placeholder></Placeholder>
74
+ <DxcStack alignX="center">
75
+ <Placeholder paddingLeft={20}></Placeholder>
76
+ <Placeholder />
77
+ <Placeholder paddingLeft={60}></Placeholder>
78
+ <Placeholder paddingLeft={20}></Placeholder>
67
79
  </DxcStack>
68
80
  </Container>
69
- <Title title="gutter = xxsmall" theme="light" level={4} />
81
+ <Title title="AlignX = baseline" theme="light" level={4} />
70
82
  <Container>
71
- <DxcStack gutter="xxsmall">
72
- <Placeholder></Placeholder>
73
- <Placeholder></Placeholder>
74
- <Placeholder></Placeholder>
83
+ <DxcStack alignX="baseline">
84
+ <Placeholder paddingLeft={20}></Placeholder>
85
+ <Placeholder />
86
+ <Placeholder paddingLeft={60}></Placeholder>
75
87
  </DxcStack>
76
88
  </Container>
77
- <Title title="gutter = xsmall" 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} />
78
101
  <Container>
79
- <DxcStack gutter="xsmall">
80
- <Placeholder></Placeholder>
81
- <Placeholder></Placeholder>
82
- <Placeholder></Placeholder>
102
+ <DxcStack gutter="0rem">
103
+ <Placeholder />
104
+ <Placeholder />
105
+ <Placeholder />
106
+ <Placeholder />
107
+ <Placeholder />
83
108
  </DxcStack>
84
109
  </Container>
85
- <Title title="gutter = small" theme="light" level={4} />
110
+ <Title title="Gutter = 0.125rem" theme="light" level={4} />
86
111
  <Container>
87
- <DxcStack gutter="small">
88
- <Placeholder></Placeholder>
89
- <Placeholder></Placeholder>
90
- <Placeholder></Placeholder>
112
+ <DxcStack gutter="0.125rem">
113
+ <Placeholder />
114
+ <Placeholder />
115
+ <Placeholder />
91
116
  </DxcStack>
92
117
  </Container>
93
- <Title title="gutter = medium" theme="light" level={4} />
118
+ <Title title="Gutter = 0.25rem" theme="light" level={4} />
94
119
  <Container>
95
- <DxcStack gutter="medium">
96
- <Placeholder></Placeholder>
97
- <Placeholder></Placeholder>
98
- <Placeholder></Placeholder>
120
+ <DxcStack gutter="0.25rem">
121
+ <Placeholder />
122
+ <Placeholder />
123
+ <Placeholder />
124
+ <Placeholder />
125
+ <Placeholder />
99
126
  </DxcStack>
100
127
  </Container>
101
- <Title title="gutter = large" theme="light" level={4} />
128
+ <Title title="Gutter = 0.5rem" theme="light" level={4} />
102
129
  <Container>
103
- <DxcStack gutter="large">
104
- <Placeholder></Placeholder>
105
- <Placeholder></Placeholder>
106
- <Placeholder></Placeholder>
130
+ <DxcStack gutter="0.5rem">
131
+ <Placeholder />
132
+ <Placeholder />
133
+ <Placeholder />
107
134
  </DxcStack>
108
135
  </Container>
109
- <Title title="gutter = xlarge" theme="light" level={4} />
136
+ <Title title="Gutter = 0.75rem" theme="light" level={4} />
110
137
  <Container>
111
- <DxcStack gutter="xlarge">
112
- <Placeholder></Placeholder>
113
- <Placeholder></Placeholder>
114
- <Placeholder></Placeholder>
138
+ <DxcStack gutter="0.75rem">
139
+ <Placeholder />
140
+ <Placeholder />
141
+ <Placeholder />
142
+ <Placeholder />
143
+ <Placeholder />
115
144
  </DxcStack>
116
145
  </Container>
117
- <Title title="gutter = xxlarge" theme="light" level={4} />
146
+ <Title title="Gutter = 1rem" theme="light" level={4} />
118
147
  <Container>
119
- <DxcStack gutter="xxlarge">
120
- <Placeholder></Placeholder>
121
- <Placeholder></Placeholder>
122
- <Placeholder></Placeholder>
148
+ <DxcStack gutter="1rem">
149
+ <Placeholder />
150
+ <Placeholder />
151
+ <Placeholder />
123
152
  </DxcStack>
124
153
  </Container>
125
- <Title title="gutter = xxxlarge" theme="light" level={4} />
154
+ <Title title="Gutter = 1.5rem" theme="light" level={4} />
126
155
  <Container>
127
- <DxcStack gutter="xxxlarge">
128
- <Placeholder></Placeholder>
129
- <Placeholder></Placeholder>
130
- <Placeholder></Placeholder>
156
+ <DxcStack gutter="1.5rem">
157
+ <Placeholder />
158
+ <Placeholder />
159
+ <Placeholder />
160
+ <Placeholder />
161
+ <Placeholder />
131
162
  </DxcStack>
132
163
  </Container>
133
- <Title title="gutter = xxlarge && divider" theme="light" level={4} />
164
+ <Title title="Gutter = 2rem & divider" theme="light" level={4} />
134
165
  <Container>
135
- <DxcStack gutter="xxlarge" divider>
136
- <Placeholder></Placeholder>
137
- <Placeholder></Placeholder>
138
- <Placeholder></Placeholder>
166
+ <DxcStack gutter="2rem" divider>
167
+ <Placeholder />
168
+ <Placeholder />
169
+ <Placeholder />
139
170
  </DxcStack>
140
171
  </Container>
141
- <Title title="gutter = none" theme="light" level={4} />
172
+ <Title title="Reverse" theme="light" level={4} />
142
173
  <Container>
143
- <DxcStack gutter="none">
144
- <Placeholder></Placeholder>
145
- <Placeholder></Placeholder>
146
- <Placeholder></Placeholder>
174
+ <DxcStack reverse>
175
+ <Placeholder>1</Placeholder>
176
+ <Placeholder>2</Placeholder>
177
+ <Placeholder>3</Placeholder>
178
+ <Placeholder>4</Placeholder>
147
179
  </DxcStack>
148
180
  </Container>
149
181
  </>
150
182
  );
151
183
 
152
- const Container = styled.div`
184
+ const FlexContainer = styled.div<{ customHeight?: boolean }>`
185
+ display: flex;
186
+ ${({ customHeight }) => customHeight && `height: 100px;`};
153
187
  background: #f2eafa;
154
- padding: 10px;
155
188
  `;
156
189
 
157
- const Placeholder = styled.div`
190
+ const Container = styled.div<{ customHeight?: boolean }>`
191
+ background: #f2eafa;
192
+ `;
193
+
194
+ type PlaceholderProps = { paddingLeft?: number; paddingRight?: number };
195
+
196
+ const Placeholder = styled.div<PlaceholderProps>`
158
197
  min-height: 40px;
159
198
  min-width: 120px;
160
199
  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";
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.ReactElement<React.ReactNode>[] | React.ReactElement<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;