@dxc-technology/halstack-react 0.0.0-301f60b → 0.0.0-335f028

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 (97) hide show
  1. package/HalstackContext.d.ts +10 -0
  2. package/{ThemeContext.js → HalstackContext.js} +6 -6
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +19 -4
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +13 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +24 -6
  12. package/accordion-group/types.d.ts +4 -0
  13. package/bleed/types.d.ts +24 -0
  14. package/button/Button.js +14 -11
  15. package/card/Card.js +27 -28
  16. package/checkbox/Checkbox.d.ts +1 -1
  17. package/checkbox/Checkbox.js +40 -39
  18. package/checkbox/Checkbox.stories.tsx +124 -128
  19. package/checkbox/Checkbox.test.js +13 -0
  20. package/checkbox/types.d.ts +7 -3
  21. package/common/variables.js +6 -7
  22. package/date-input/DateInput.js +50 -39
  23. package/date-input/DateInput.stories.tsx +7 -7
  24. package/date-input/DateInput.test.js +69 -59
  25. package/date-input/types.d.ts +16 -9
  26. package/dialog/Dialog.js +4 -32
  27. package/dropdown/Dropdown.js +13 -17
  28. package/footer/Footer.js +10 -85
  29. package/header/Header.js +20 -44
  30. package/header/Header.stories.tsx +46 -36
  31. package/header/Header.test.js +18 -2
  32. package/inset/types.d.ts +24 -0
  33. package/layout/ApplicationLayout.js +5 -18
  34. package/link/Link.d.ts +3 -2
  35. package/link/Link.js +65 -56
  36. package/link/Link.stories.tsx +87 -52
  37. package/link/Link.test.js +7 -15
  38. package/link/types.d.ts +8 -23
  39. package/main.d.ts +3 -2
  40. package/main.js +13 -5
  41. package/number-input/NumberInput.js +11 -18
  42. package/number-input/NumberInput.stories.tsx +5 -5
  43. package/number-input/NumberInput.test.js +2 -4
  44. package/number-input/types.d.ts +16 -9
  45. package/package.json +6 -5
  46. package/password-input/PasswordInput.test.js +2 -4
  47. package/password-input/types.d.ts +13 -10
  48. package/quick-nav/QuickNav.d.ts +4 -0
  49. package/quick-nav/QuickNav.js +64 -0
  50. package/quick-nav/QuickNav.stories.tsx +237 -0
  51. package/quick-nav/types.d.ts +21 -0
  52. package/quick-nav/types.js +5 -0
  53. package/radio/Radio.js +10 -11
  54. package/row/types.d.ts +18 -0
  55. package/select/Listbox.d.ts +4 -0
  56. package/select/Listbox.js +148 -0
  57. package/select/Option.js +1 -1
  58. package/select/Select.js +71 -156
  59. package/select/Select.stories.tsx +19 -19
  60. package/select/Select.test.js +405 -248
  61. package/select/types.d.ts +42 -12
  62. package/slider/Slider.d.ts +1 -1
  63. package/slider/Slider.js +2 -1
  64. package/slider/Slider.stories.tsx +8 -8
  65. package/slider/Slider.test.js +31 -10
  66. package/slider/types.d.ts +4 -0
  67. package/stack/types.d.ts +15 -0
  68. package/switch/Switch.d.ts +1 -1
  69. package/switch/Switch.js +32 -19
  70. package/switch/Switch.stories.tsx +14 -14
  71. package/switch/Switch.test.js +25 -0
  72. package/switch/types.d.ts +6 -2
  73. package/tabs/Tabs.d.ts +1 -1
  74. package/tabs/Tabs.js +9 -11
  75. package/tabs/Tabs.stories.tsx +0 -8
  76. package/tabs/Tabs.test.js +26 -9
  77. package/tabs/types.d.ts +4 -0
  78. package/tag/Tag.js +14 -19
  79. package/tag/Tag.stories.tsx +12 -8
  80. package/text-input/TextInput.js +2 -4
  81. package/text-input/TextInput.test.js +21 -34
  82. package/text-input/types.d.ts +13 -10
  83. package/textarea/Textarea.js +2 -4
  84. package/textarea/Textarea.test.js +10 -20
  85. package/textarea/types.d.ts +13 -10
  86. package/toggle-group/ToggleGroup.d.ts +1 -1
  87. package/toggle-group/ToggleGroup.js +5 -4
  88. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  89. package/toggle-group/ToggleGroup.test.js +35 -4
  90. package/toggle-group/types.d.ts +8 -0
  91. package/useTheme.js +2 -2
  92. package/wizard/Wizard.d.ts +1 -1
  93. package/wizard/Wizard.js +28 -19
  94. package/wizard/Wizard.stories.tsx +13 -23
  95. package/wizard/Wizard.test.js +36 -23
  96. package/wizard/types.d.ts +6 -2
  97. package/ThemeContext.d.ts +0 -10
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ declare const HalstackContext: React.Context<object>;
3
+ declare type HalstackProviderPropsType = {
4
+ theme?: object;
5
+ advancedTheme?: object;
6
+ children: React.ReactNode;
7
+ };
8
+ declare const HalstackProvider: ({ theme, advancedTheme, children }: HalstackProviderPropsType) => JSX.Element;
9
+ export default HalstackContext;
10
+ export { HalstackProvider };
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports["default"] = exports.ThemeProvider = void 0;
10
+ exports["default"] = exports.HalstackProvider = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
@@ -27,7 +27,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
27
 
28
28
  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
29
 
30
- var ThemeContext = /*#__PURE__*/_react["default"].createContext(null);
30
+ var HalstackContext = /*#__PURE__*/_react["default"].createContext(null);
31
31
 
32
32
  var addLightness = function addLightness(hexColor, newLightness) {
33
33
  try {
@@ -223,21 +223,21 @@ var parseTheme = function parseTheme(theme) {
223
223
  return componentTokensCopy;
224
224
  };
225
225
 
226
- var ThemeProvider = function ThemeProvider(_ref) {
226
+ var HalstackProvider = function HalstackProvider(_ref) {
227
227
  var theme = _ref.theme,
228
228
  advancedTheme = _ref.advancedTheme,
229
229
  children = _ref.children;
230
230
  var parsedTheme = (0, _react.useMemo)(function () {
231
231
  return theme && parseTheme(theme) || advancedTheme && parseAdvancedTheme(advancedTheme);
232
232
  }, [theme, advancedTheme]);
233
- return /*#__PURE__*/_react["default"].createElement(Halstack, null, /*#__PURE__*/_react["default"].createElement(ThemeContext.Provider, {
233
+ return /*#__PURE__*/_react["default"].createElement(Halstack, null, /*#__PURE__*/_react["default"].createElement(HalstackContext.Provider, {
234
234
  value: parsedTheme
235
235
  }, children));
236
236
  };
237
237
 
238
- exports.ThemeProvider = ThemeProvider;
238
+ exports.HalstackProvider = HalstackProvider;
239
239
 
240
240
  var Halstack = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n @import url(\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap\");\n"])));
241
241
 
242
- var _default = ThemeContext;
242
+ var _default = HalstackContext;
243
243
  exports["default"] = _default;
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import AccordionPropsType from "./types";
3
- declare const DxcAccordion: ({ label, isExpanded, icon, assistiveText, disabled, onChange, children, margin, padding, tabIndex, }: AccordionPropsType) => JSX.Element;
3
+ declare const DxcAccordion: ({ label, defaultIsExpanded, isExpanded, icon, assistiveText, disabled, onChange, children, margin, padding, tabIndex, }: AccordionPropsType) => JSX.Element;
4
4
  export default DxcAccordion;
@@ -44,6 +44,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
44
44
  var DxcAccordion = function DxcAccordion(_ref) {
45
45
  var _ref$label = _ref.label,
46
46
  label = _ref$label === void 0 ? "" : _ref$label,
47
+ defaultIsExpanded = _ref.defaultIsExpanded,
47
48
  isExpanded = _ref.isExpanded,
48
49
  icon = _ref.icon,
49
50
  _ref$assistiveText = _ref.assistiveText,
@@ -57,34 +58,13 @@ var DxcAccordion = function DxcAccordion(_ref) {
57
58
  _ref$tabIndex = _ref.tabIndex,
58
59
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
60
 
60
- var _useState = (0, _react.useState)(false),
61
+ var _useState = (0, _react.useState)(defaultIsExpanded !== null && defaultIsExpanded !== void 0 ? defaultIsExpanded : false),
61
62
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
63
  innerIsExpanded = _useState2[0],
63
64
  setInnerIsExpanded = _useState2[1];
64
65
 
65
- var _useState3 = (0, _react.useState)(false),
66
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
67
- isResponsive = _useState4[0],
68
- setIsResponsive = _useState4[1];
69
-
70
66
  var colorsTheme = (0, _useTheme["default"])();
71
67
 
72
- var handleResize = function handleResize(width) {
73
- width && width <= _variables.responsiveSizes.tablet ? setIsResponsive(true) : setIsResponsive(false);
74
- };
75
-
76
- var handleEventListener = function handleEventListener() {
77
- handleResize(window.innerWidth);
78
- };
79
-
80
- (0, _react.useEffect)(function () {
81
- window.addEventListener("resize", handleEventListener);
82
- handleResize(window.innerWidth);
83
- return function () {
84
- window.removeEventListener("resize", handleEventListener);
85
- };
86
- }, []);
87
-
88
68
  var handlerAccordion = function handlerAccordion() {
89
69
  if (isExpanded == null) {
90
70
  setInnerIsExpanded(!innerIsExpanded);
@@ -101,8 +81,7 @@ var DxcAccordion = function DxcAccordion(_ref) {
101
81
  padding: padding,
102
82
  margin: margin,
103
83
  disabled: disabled,
104
- icon: icon,
105
- isResponsive: isResponsive
84
+ icon: icon
106
85
  }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], {
107
86
  disabled: disabled,
108
87
  onChange: handlerAccordion,
@@ -112,11 +91,11 @@ var DxcAccordion = function DxcAccordion(_ref) {
112
91
  tabIndex: disabled ? -1 : tabIndex
113
92
  }, /*#__PURE__*/_react["default"].createElement(AccordionInfo, {
114
93
  disabled: disabled
115
- }, /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
94
+ }, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
116
95
  disabled: disabled
117
96
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(AccordionIcon, {
118
97
  src: icon
119
- }) : icon)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
98
+ }) : icon), /*#__PURE__*/_react["default"].createElement(AccordionLabel, null, label)), assistiveText && /*#__PURE__*/_react["default"].createElement(AccordionAssistiveText, {
120
99
  disabled: disabled
121
100
  }, assistiveText)), /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], null, /*#__PURE__*/_react["default"].createElement(AccordionContent, {
122
101
  disabled: disabled
@@ -129,7 +108,7 @@ var calculateWidth = function calculateWidth(margin) {
129
108
  return "calc(100% - ".concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")");
130
109
  };
131
110
 
132
- var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n min-width: 280px;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n cursor: ", ";\n\n .MuiPaper-root {\n min-width: 0;\n display: flex;\n left: 85px;\n background-color: ", " !important;\n box-shadow: ", ";\n position: static;\n width: 100%;\n border-radius: ", ";\n\n &.Mui-expanded {\n border-radius: ", ";\n }\n &.MuiExpansionPanel-root {\n display: flex;\n flex-direction: column;\n min-height: 48px;\n }\n &.MuiExpansionPanel-rounded {\n border-radius: ", ";\n }\n .MuiButtonBase-root.MuiExpansionPanelSummary-root {\n min-height: 48px;\n height: 48px;\n\n :focus {\n outline-color: ", ";\n outline-style: ", ";\n outline-width: ", ";\n background-color: ", ";\n }\n :hover {\n background-color: ", ";\n }\n :active {\n background-color: ", ";\n }\n &.Mui-disabled {\n opacity: 1;\n }\n }\n .MuiButtonBase-root {\n border-radius: ", ";\n\n &.Mui-expanded {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n .MuiSvgIcon-root {\n opacity: 1;\n }\n }\n &.MuiIconButton-root {\n height: auto;\n }\n .MuiExpansionPanelSummary-content {\n padding-top: ", ";\n padding-bottom: ", ";\n padding-right: ", ";\n padding-left: ", ";\n min-width: 0;\n align-items: baseline;\n &.Mui-expanded {\n div:nth-child(2) {\n opacity: 1;\n }\n }\n :hover {\n div {\n opacity: 1;\n }\n }\n }\n }\n .MuiTouchRipple-root {\n display: none;\n }\n }\n .MuiCollapse-hidden {\n display: none;\n }\n .MuiCollapse-container {\n border-radius: 0px 0px 4px 4px;\n cursor: default;\n width: 100%;\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n .MuiExpansionPanelDetails-root {\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n }\n"])), function (props) {
111
+ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n min-width: 280px;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n cursor: ", ";\n\n .MuiPaper-root {\n min-width: 0;\n display: flex;\n left: 85px;\n background-color: ", " !important;\n box-shadow: ", ";\n position: static;\n width: 100%;\n border-radius: ", ";\n\n &.Mui-expanded {\n border-radius: ", ";\n }\n &.MuiExpansionPanel-root {\n display: flex;\n flex-direction: column;\n min-height: 48px;\n }\n &.MuiExpansionPanel-rounded {\n border-radius: ", ";\n }\n .MuiButtonBase-root.MuiExpansionPanelSummary-root {\n min-height: 48px;\n height: 48px;\n\n :focus {\n outline-color: ", ";\n outline-style: ", ";\n outline-width: ", ";\n background-color: ", ";\n }\n :hover {\n background-color: ", ";\n }\n :active {\n background-color: ", ";\n }\n &.Mui-disabled {\n opacity: 1;\n }\n }\n .MuiButtonBase-root {\n border-radius: ", ";\n\n &.Mui-expanded {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n .MuiSvgIcon-root {\n opacity: 1;\n }\n }\n &.MuiIconButton-root {\n height: auto;\n }\n .MuiExpansionPanelSummary-content {\n padding-top: ", ";\n padding-bottom: ", ";\n padding-right: ", ";\n padding-left: ", ";\n min-width: 0;\n &.Mui-expanded {\n div:nth-child(2) {\n opacity: 1;\n }\n }\n :hover {\n div {\n opacity: 1;\n }\n }\n }\n }\n .MuiTouchRipple-root {\n display: none;\n }\n }\n .MuiCollapse-hidden {\n display: none;\n }\n .MuiCollapse-container {\n border-radius: 0px 0px 4px 4px;\n cursor: default;\n width: 100%;\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n .MuiExpansionPanelDetails-root {\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n }\n"])), function (props) {
133
112
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
134
113
  }, function (props) {
135
114
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -189,7 +168,7 @@ var DXCAccordion = _styledComponents["default"].div(_templateObject || (_templat
189
168
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
190
169
  });
191
170
 
192
- var AccordionInfo = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row-reverse;\n align-items: center;\n padding-left: ", ";\n padding-right: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
171
+ var AccordionInfo = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n padding-left: ", ";\n padding-right: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
193
172
  return props.theme.titlePaddingLeft;
194
173
  }, function (props) {
195
174
  return props.theme.titlePaddingRight;
@@ -5,7 +5,7 @@ import DxcTextInput from "../text-input/TextInput";
5
5
  import DxcButton from "../button/Button";
6
6
  import Title from "../../.storybook/components/Title";
7
7
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
8
- import { ThemeProvider } from "../ThemeContext";
8
+ import { HalstackProvider } from "../HalstackContext";
9
9
 
10
10
  export default {
11
11
  title: "Accordion",
@@ -125,10 +125,10 @@ export const Chromatic = () => (
125
125
  </ExampleContainer>
126
126
  <ExampleContainer>
127
127
  <Title title="Background color provider over accordion content" theme="light" level={4} />
128
- <ThemeProvider advancedTheme={advancedTheme}>
128
+ <HalstackProvider advancedTheme={advancedTheme}>
129
129
  <DxcAccordion
130
130
  label="Dark Accordion"
131
- isExpanded
131
+ defaultIsExpanded
132
132
  assistiveText="Assistive text"
133
133
  icon={folderIcon}
134
134
  padding="medium"
@@ -144,12 +144,12 @@ export const Chromatic = () => (
144
144
  <DxcButton label="Submit" size="medium" />
145
145
  </div>
146
146
  </DxcAccordion>
147
- </ThemeProvider>
147
+ </HalstackProvider>
148
148
  </ExampleContainer>
149
149
  <Title title="Paddings" theme="light" level={2} />
150
150
  <ExampleContainer>
151
151
  <Title title="Xxsmall padding" theme="light" level={4} />
152
- <DxcAccordion label="Xxsmall padding" isExpanded padding="xxsmall">
152
+ <DxcAccordion label="Xxsmall padding" defaultIsExpanded padding="xxsmall">
153
153
  <div>
154
154
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
155
155
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -162,7 +162,7 @@ export const Chromatic = () => (
162
162
  </ExampleContainer>
163
163
  <ExampleContainer>
164
164
  <Title title="Xsmall padding" theme="light" level={4} />
165
- <DxcAccordion label="Xsmall padding" isExpanded padding="xsmall">
165
+ <DxcAccordion label="Xsmall padding" defaultIsExpanded padding="xsmall">
166
166
  <div>
167
167
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
168
168
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -175,7 +175,7 @@ export const Chromatic = () => (
175
175
  </ExampleContainer>
176
176
  <ExampleContainer>
177
177
  <Title title="Small padding" theme="light" level={4} />
178
- <DxcAccordion label="Small padding" isExpanded padding="small">
178
+ <DxcAccordion label="Small padding" defaultIsExpanded padding="small">
179
179
  <div>
180
180
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
181
181
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -188,7 +188,7 @@ export const Chromatic = () => (
188
188
  </ExampleContainer>
189
189
  <ExampleContainer>
190
190
  <Title title="Medium padding" theme="light" level={4} />
191
- <DxcAccordion label="Medium padding" isExpanded padding="medium">
191
+ <DxcAccordion label="Medium padding" defaultIsExpanded padding="medium">
192
192
  <div>
193
193
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
194
194
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -201,7 +201,7 @@ export const Chromatic = () => (
201
201
  </ExampleContainer>
202
202
  <ExampleContainer>
203
203
  <Title title="Large padding" theme="light" level={4} />
204
- <DxcAccordion label="Large padding" isExpanded padding="large">
204
+ <DxcAccordion label="Large padding" defaultIsExpanded padding="large">
205
205
  <div>
206
206
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
207
207
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -214,7 +214,7 @@ export const Chromatic = () => (
214
214
  </ExampleContainer>
215
215
  <ExampleContainer>
216
216
  <Title title="Xlarge padding" theme="light" level={4} />
217
- <DxcAccordion label="Xlarge padding" isExpanded padding="xlarge">
217
+ <DxcAccordion label="Xlarge padding" defaultIsExpanded padding="xlarge">
218
218
  <div>
219
219
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
220
220
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -227,7 +227,7 @@ export const Chromatic = () => (
227
227
  </ExampleContainer>
228
228
  <ExampleContainer>
229
229
  <Title title="Xxlarge padding" theme="light" level={4} />
230
- <DxcAccordion label="Xxlarge padding" isExpanded padding="xxlarge">
230
+ <DxcAccordion label="Xxlarge padding" defaultIsExpanded padding="xxlarge">
231
231
  <div>
232
232
  <DxcHeading level={5} text="Content header" margin={{ bottom: "xxsmall" }} />
233
233
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
@@ -14,20 +14,32 @@ describe("Accordion component tests", function () {
14
14
 
15
15
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
16
16
  label: "Accordion",
17
+ assistiveText: "Assistive text",
17
18
  onChange: onChange
18
19
  })),
19
20
  getByText = _render.getByText;
20
21
 
21
22
  expect(getByText("Accordion")).toBeTruthy();
23
+ expect(getByText("Assistive text")).toBeTruthy();
24
+ });
25
+ test("Accordion renders expanded by default when it is uncontrolled", function () {
26
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
27
+ label: "Accordion",
28
+ defaultIsExpanded: true
29
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "test-expanded"))),
30
+ getByRole = _render2.getByRole;
31
+
32
+ var accordion = getByRole("button");
33
+ expect(accordion.getAttribute("aria-expanded")).toBe("true");
22
34
  });
23
35
  test("Calls correct function on click", function () {
24
36
  var onChange = jest.fn();
25
37
 
26
- var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
38
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
27
39
  label: "Accordion",
28
40
  onChange: onChange
29
41
  })),
30
- getByText = _render2.getByText;
42
+ getByText = _render3.getByText;
31
43
 
32
44
  _react2.fireEvent.click(getByText("Accordion"));
33
45
 
@@ -36,12 +48,15 @@ describe("Accordion component tests", function () {
36
48
  test("Controlled accordion", function () {
37
49
  var onChange = jest.fn();
38
50
 
39
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
51
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Accordion["default"], {
40
52
  label: "Accordion",
41
53
  onChange: onChange,
42
54
  isExpanded: true
43
55
  })),
44
- getByText = _render3.getByText;
56
+ getByText = _render4.getByText,
57
+ getByRole = _render4.getByRole;
58
+
59
+ expect(getByRole("button").getAttribute("aria-expanded")).toBe("true");
45
60
 
46
61
  _react2.fireEvent.click(getByText("Accordion"));
47
62
 
@@ -18,6 +18,10 @@ declare type Props = {
18
18
  * The panel label.
19
19
  */
20
20
  label: string;
21
+ /**
22
+ * Initial state of the panel, only when it is uncontrolled.
23
+ */
24
+ defaultIsExpanded?: boolean;
21
25
  /**
22
26
  * Represents the state of the panel. When true, the component will be
23
27
  * expanded. If undefined, the component will be uncontrolled and its
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import AccordionGroupPropsType, { AccordionPropsType } from "./types";
3
3
  declare const DxcAccordionGroup: {
4
- ({ indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
4
+ ({ defaultIndexActive, indexActive, disabled, onActiveChange, margin, children, }: AccordionGroupPropsType): JSX.Element;
5
5
  Accordion: ({ ...childProps }: AccordionPropsType) => JSX.Element;
6
6
  };
7
7
  export default DxcAccordionGroup;
@@ -47,13 +47,13 @@ var AccordionGroupAccordion = function AccordionGroupAccordion(_ref) {
47
47
  var childProps = (0, _extends2["default"])({}, _ref);
48
48
 
49
49
  var _useContext = (0, _react.useContext)(AccordionGroupAccordionContext),
50
- innerIsExpanded = _useContext.innerIsExpanded,
50
+ activeIndex = _useContext.activeIndex,
51
51
  handlerActiveChange = _useContext.handlerActiveChange,
52
52
  disabled = _useContext.disabled,
53
53
  index = _useContext.index;
54
54
 
55
55
  return /*#__PURE__*/_react["default"].createElement(_Accordion["default"], (0, _extends2["default"])({
56
- isExpanded: innerIsExpanded === index,
56
+ isExpanded: activeIndex === index,
57
57
  onChange: function onChange() {
58
58
  handlerActiveChange(index);
59
59
  },
@@ -62,7 +62,8 @@ var AccordionGroupAccordion = function AccordionGroupAccordion(_ref) {
62
62
  };
63
63
 
64
64
  var DxcAccordionGroup = function DxcAccordionGroup(_ref2) {
65
- var indexActive = _ref2.indexActive,
65
+ var defaultIndexActive = _ref2.defaultIndexActive,
66
+ indexActive = _ref2.indexActive,
66
67
  _ref2$disabled = _ref2.disabled,
67
68
  disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
68
69
  onActiveChange = _ref2.onActiveChange,
@@ -70,27 +71,24 @@ var DxcAccordionGroup = function DxcAccordionGroup(_ref2) {
70
71
  children = _ref2.children;
71
72
  var colorsTheme = (0, _useTheme["default"])();
72
73
 
73
- var _useState = (0, _react.useState)(0),
74
+ var _useState = (0, _react.useState)(defaultIndexActive !== null && defaultIndexActive !== void 0 ? defaultIndexActive : -1),
74
75
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
75
- innerIsExpanded = _useState2[0],
76
- setInnerIsExpanded = _useState2[1];
76
+ innerIndexActive = _useState2[0],
77
+ setInnerIndexActive = _useState2[1];
77
78
 
78
79
  var handlerActiveChange = (0, _react.useCallback)(function (index) {
79
- indexActive === undefined ? setInnerIsExpanded(function (prev) {
80
+ indexActive !== null && indexActive !== void 0 ? indexActive : setInnerIndexActive(function (prev) {
80
81
  return index === prev ? -1 : index;
81
- }) : setInnerIsExpanded(indexActive);
82
+ });
82
83
  !disabled && (onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(index));
83
84
  }, [disabled, indexActive, onActiveChange]);
84
- var value = (0, _react.useMemo)(function () {
85
+ var contextValue = (0, _react.useMemo)(function () {
85
86
  return {
86
- innerIsExpanded: innerIsExpanded,
87
+ activeIndex: indexActive !== null && indexActive !== void 0 ? indexActive : innerIndexActive,
87
88
  handlerActiveChange: handlerActiveChange,
88
89
  disabled: disabled
89
90
  };
90
- }, [innerIsExpanded, disabled]);
91
- (0, _react.useEffect)(function () {
92
- setInnerIsExpanded(indexActive);
93
- }, [indexActive]);
91
+ }, [indexActive, innerIndexActive, handlerActiveChange, disabled]);
94
92
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
95
93
  theme: colorsTheme.accordion
96
94
  }, /*#__PURE__*/_react["default"].createElement(AccordionGroupContainer, {
@@ -102,7 +100,7 @@ var DxcAccordionGroup = function DxcAccordionGroup(_ref2) {
102
100
  return /*#__PURE__*/_react["default"].createElement(AccordionGroupAccordionContext.Provider, {
103
101
  value: _objectSpread({
104
102
  index: index
105
- }, value)
103
+ }, contextValue)
106
104
  }, accordion);
107
105
  })));
108
106
  };
@@ -36,7 +36,7 @@ export const Chromatic = () => (
36
36
  </ExampleContainer>
37
37
  <ExampleContainer>
38
38
  <Title title="Expanded" theme="light" level={4} />
39
- <DxcAccordionGroup indexActive={1}>
39
+ <DxcAccordionGroup defaultIndexActive={1}>
40
40
  <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
41
41
  <div>
42
42
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
@@ -62,10 +62,28 @@ describe("Accordion component tests", function () {
62
62
  expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
63
63
  expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
64
64
  });
65
+ test("Uncontrolled accordion group renders initially with an accordion expanded", function () {
66
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
67
+ defaultIndexActive: 1
68
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
69
+ label: "Accordion1",
70
+ padding: "medium"
71
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
72
+ label: "Accordion2",
73
+ padding: "medium"
74
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
75
+ getByText = _render4.getByText,
76
+ getAllByRole = _render4.getAllByRole;
77
+
78
+ expect(getByText("Accordion1")).toBeTruthy();
79
+ expect(getByText("Accordion2")).toBeTruthy();
80
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
81
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
82
+ });
65
83
  test("Controlled accordion with indexActive change", function () {
66
84
  var onActiveChange = jest.fn();
67
85
 
68
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
86
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
69
87
  margin: "large",
70
88
  indexActive: 1,
71
89
  onActiveChange: onActiveChange
@@ -77,9 +95,9 @@ describe("Accordion component tests", function () {
77
95
  label: "Accordion2",
78
96
  padding: "medium"
79
97
  }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
80
- getByText = _render4.getByText,
81
- getAllByRole = _render4.getAllByRole,
82
- rerender = _render4.rerender;
98
+ getByText = _render5.getByText,
99
+ getAllByRole = _render5.getAllByRole,
100
+ rerender = _render5.rerender;
83
101
 
84
102
  expect(getByText("Text1")).toBeTruthy();
85
103
  expect(getByText("Text2")).toBeTruthy();
@@ -110,7 +128,7 @@ describe("Accordion component tests", function () {
110
128
  test("Disabled uncontrolled accordion group", function () {
111
129
  var onActiveChange = jest.fn();
112
130
 
113
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
131
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
114
132
  margin: "large",
115
133
  onActiveChange: onActiveChange,
116
134
  disabled: true
@@ -122,7 +140,7 @@ describe("Accordion component tests", function () {
122
140
  label: "Accordion2",
123
141
  padding: "medium"
124
142
  }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
125
- getByText = _render5.getByText;
143
+ getByText = _render6.getByText;
126
144
 
127
145
  _react2.fireEvent.click(getByText("Accordion1"));
128
146
 
@@ -42,6 +42,10 @@ export declare type AccordionPropsType = {
42
42
  children: React.ReactNode;
43
43
  };
44
44
  declare type Props = {
45
+ /**
46
+ * Initially active accordion, only when it is uncontrolled.
47
+ */
48
+ defaultIndexActive?: number;
45
49
  /**
46
50
  * The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component.
47
51
  * If null, the component will be controlled and all accordions will be closed.
package/bleed/types.d.ts CHANGED
@@ -1,13 +1,37 @@
1
1
  /// <reference types="react" />
2
2
  declare type Spacing = "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
3
3
  declare type Props = {
4
+ /**
5
+ * Applies the spacing scale to all sides.
6
+ */
4
7
  space?: Spacing;
8
+ /**
9
+ * Applies the spacing scale to the left and right sides.
10
+ */
5
11
  horizontal?: Spacing;
12
+ /**
13
+ * Applies the spacing scale to the top and bottom sides.
14
+ */
6
15
  vertical?: Spacing;
16
+ /**
17
+ * Applies the spacing scale to the top side.
18
+ */
7
19
  top?: Spacing;
20
+ /**
21
+ * Applies the spacing scale to the right side.
22
+ */
8
23
  right?: Spacing;
24
+ /**
25
+ * Applies the spacing scale to the bottom side.
26
+ */
9
27
  bottom?: Spacing;
28
+ /**
29
+ * Applies the spacing scale to the left side.
30
+ */
10
31
  left?: Spacing;
32
+ /**
33
+ * Custom content inside the bleed.
34
+ */
11
35
  children: React.ReactNode;
12
36
  };
13
37
  export default Props;
package/button/Button.js CHANGED
@@ -45,14 +45,22 @@ var DxcButton = function DxcButton(_ref) {
45
45
  _ref$type = _ref.type,
46
46
  type = _ref$type === void 0 ? "button" : _ref$type,
47
47
  icon = _ref.icon,
48
- _onClick = _ref.onClick,
48
+ _ref$onClick = _ref.onClick,
49
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
49
50
  margin = _ref.margin,
50
51
  _ref$size = _ref.size,
51
52
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
52
53
  _ref$tabIndex = _ref.tabIndex,
53
54
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
55
+
54
56
  var colorsTheme = (0, _useTheme["default"])();
55
57
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
58
+
59
+ var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
60
+ icon: icon,
61
+ iconPosition: iconPosition
62
+ }, label);
63
+
56
64
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
57
65
  theme: colorsTheme.button
58
66
  }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
@@ -73,15 +81,12 @@ var DxcButton = function DxcButton(_ref) {
73
81
  onClick: function onClick() {
74
82
  _onClick();
75
83
  }
76
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
77
- icon: icon,
78
- iconPosition: iconPosition
79
- }, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
84
+ }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
80
85
  label: label,
81
86
  iconPosition: iconPosition
82
87
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
83
88
  src: icon
84
- }) : icon))));
89
+ }) : icon), label && iconPosition === "before" && labelComponent)));
85
90
  };
86
91
 
87
92
  var sizes = {
@@ -118,7 +123,7 @@ var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templ
118
123
 
119
124
  var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
120
125
 
121
- var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n flex-direction: ", ";\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"])), function (props) {
126
+ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"])), function (props) {
122
127
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
123
128
  }, function (props) {
124
129
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -140,8 +145,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
140
145
  return props.theme.paddingTop;
141
146
  }, function (props) {
142
147
  return props.theme.paddingBottom;
143
- }, function (props) {
144
- return props.iconPosition === "after" && "row" || "row-reverse";
145
148
  }, function (props) {
146
149
  return props.theme.fontFamily;
147
150
  }, function (props) {
@@ -159,9 +162,9 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
159
162
  backgroundType = props.backgroundType;
160
163
 
161
164
  if (mode === "primary") {
162
- return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, "!important; \n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
165
+ return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, " !important; \n }\n ");
163
166
  } else if (mode === "secondary") {
164
- return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
167
+ return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n ");
165
168
  } else if (mode === "text") {
166
169
  return "\n border-radius: ".concat(props.theme.textBorderRadius, ";\n border-width: ").concat(props.theme.textBorderThickness, ";\n border-style: ").concat(props.theme.textBorderStyle, ";\n font-family: ").concat(props.theme.textFontFamily, ";\n font-size: ").concat(props.theme.textFontSize, ";\n font-weight: ").concat(props.theme.textFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor:not-allowed;\n color: ").concat(backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, " !important;\n background-color: ").concat(backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n }\n ");
167
170
  }