@dxc-technology/halstack-react 0.0.0-74ba970 → 0.0.0-752ca0a

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 (234) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1349 -5
  4. package/HalstackContext.js +117 -77
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +14 -37
  8. package/accordion/Accordion.stories.tsx +104 -113
  9. package/accordion/Accordion.test.js +1 -1
  10. package/accordion/types.d.ts +2 -13
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +23 -44
  13. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  14. package/accordion-group/AccordionGroup.test.js +7 -17
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +43 -0
  17. package/accordion-group/types.d.ts +2 -13
  18. package/alert/Alert.js +4 -8
  19. package/alert/Alert.stories.tsx +28 -0
  20. package/alert/Alert.test.js +1 -1
  21. package/bleed/Bleed.stories.tsx +1 -0
  22. package/box/Box.d.ts +1 -1
  23. package/box/Box.js +7 -26
  24. package/box/Box.stories.tsx +38 -51
  25. package/box/Box.test.js +1 -1
  26. package/box/types.d.ts +0 -11
  27. package/bulleted-list/BulletedList.js +4 -2
  28. package/bulleted-list/BulletedList.stories.tsx +7 -1
  29. package/bulleted-list/types.d.ts +31 -4
  30. package/button/Button.d.ts +1 -1
  31. package/button/Button.js +48 -60
  32. package/button/Button.stories.tsx +151 -9
  33. package/button/Button.test.js +12 -1
  34. package/button/types.d.ts +7 -3
  35. package/card/Card.d.ts +1 -1
  36. package/card/Card.js +27 -45
  37. package/card/Card.stories.tsx +12 -42
  38. package/card/Card.test.js +1 -1
  39. package/card/types.d.ts +1 -6
  40. package/checkbox/Checkbox.d.ts +2 -2
  41. package/checkbox/Checkbox.js +71 -51
  42. package/checkbox/Checkbox.stories.tsx +146 -58
  43. package/checkbox/Checkbox.test.js +84 -11
  44. package/checkbox/types.d.ts +10 -2
  45. package/chip/Chip.js +28 -49
  46. package/chip/Chip.stories.tsx +121 -26
  47. package/chip/Chip.test.js +3 -5
  48. package/common/OpenSans.css +68 -80
  49. package/common/coreTokens.d.ts +146 -0
  50. package/common/coreTokens.js +167 -0
  51. package/common/utils.d.ts +1 -0
  52. package/common/utils.js +4 -4
  53. package/common/variables.d.ts +1499 -0
  54. package/common/variables.js +1004 -1134
  55. package/date-input/Calendar.d.ts +4 -0
  56. package/date-input/Calendar.js +258 -0
  57. package/date-input/DateInput.js +138 -239
  58. package/date-input/DateInput.stories.tsx +209 -33
  59. package/date-input/DateInput.test.js +519 -149
  60. package/date-input/DatePicker.d.ts +4 -0
  61. package/date-input/DatePicker.js +146 -0
  62. package/date-input/Icons.d.ts +6 -0
  63. package/date-input/Icons.js +75 -0
  64. package/date-input/YearPicker.d.ts +4 -0
  65. package/date-input/YearPicker.js +126 -0
  66. package/date-input/types.d.ts +55 -0
  67. package/dialog/Dialog.d.ts +1 -1
  68. package/dialog/Dialog.js +54 -85
  69. package/dialog/Dialog.stories.tsx +154 -170
  70. package/dialog/Dialog.test.js +302 -3
  71. package/dialog/types.d.ts +0 -12
  72. package/dropdown/Dropdown.js +40 -39
  73. package/dropdown/Dropdown.stories.tsx +210 -84
  74. package/dropdown/Dropdown.test.js +21 -26
  75. package/dropdown/DropdownMenu.js +12 -18
  76. package/dropdown/DropdownMenuItem.js +4 -17
  77. package/dropdown/types.d.ts +3 -3
  78. package/file-input/FileInput.d.ts +2 -2
  79. package/file-input/FileInput.js +174 -220
  80. package/file-input/FileInput.stories.tsx +122 -11
  81. package/file-input/FileInput.test.js +14 -14
  82. package/file-input/FileItem.d.ts +4 -14
  83. package/file-input/FileItem.js +39 -63
  84. package/file-input/types.d.ts +18 -1
  85. package/flex/Flex.d.ts +1 -1
  86. package/flex/Flex.js +33 -19
  87. package/flex/Flex.stories.tsx +35 -26
  88. package/flex/types.d.ts +83 -7
  89. package/footer/Footer.d.ts +1 -1
  90. package/footer/Footer.js +44 -64
  91. package/footer/Footer.stories.tsx +36 -21
  92. package/footer/Footer.test.js +16 -26
  93. package/footer/types.d.ts +10 -11
  94. package/grid/Grid.d.ts +7 -0
  95. package/grid/Grid.js +91 -0
  96. package/grid/Grid.stories.tsx +219 -0
  97. package/grid/types.d.ts +115 -0
  98. package/header/Header.d.ts +4 -3
  99. package/header/Header.js +20 -49
  100. package/header/Header.stories.tsx +115 -36
  101. package/header/Header.test.js +2 -2
  102. package/header/types.d.ts +1 -14
  103. package/heading/Heading.js +1 -1
  104. package/heading/Heading.test.js +1 -1
  105. package/image/Image.d.ts +4 -0
  106. package/image/Image.js +85 -0
  107. package/image/Image.stories.tsx +127 -0
  108. package/image/types.d.ts +72 -0
  109. package/inset/Inset.stories.tsx +2 -1
  110. package/layout/ApplicationLayout.d.ts +5 -5
  111. package/layout/ApplicationLayout.js +15 -12
  112. package/layout/ApplicationLayout.stories.tsx +1 -1
  113. package/layout/Icons.d.ts +7 -4
  114. package/layout/Icons.js +52 -56
  115. package/layout/types.d.ts +2 -3
  116. package/link/Link.js +4 -4
  117. package/link/Link.stories.tsx +60 -0
  118. package/link/Link.test.js +2 -4
  119. package/link/types.d.ts +2 -2
  120. package/main.d.ts +4 -2
  121. package/main.js +17 -1
  122. package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
  123. package/{tabs-nav → nav-tabs}/NavTabs.js +8 -11
  124. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +110 -6
  125. package/{tabs-nav → nav-tabs}/NavTabs.test.js +1 -1
  126. package/{tabs-nav → nav-tabs}/Tab.js +48 -32
  127. package/{tabs-nav → nav-tabs}/types.d.ts +8 -9
  128. package/nav-tabs/types.js +5 -0
  129. package/number-input/NumberInput.d.ts +7 -0
  130. package/number-input/NumberInput.js +6 -4
  131. package/number-input/NumberInput.test.js +317 -98
  132. package/package.json +9 -14
  133. package/paginator/Icons.d.ts +5 -0
  134. package/paginator/Icons.js +16 -28
  135. package/paginator/Paginator.js +8 -16
  136. package/paginator/Paginator.stories.tsx +24 -0
  137. package/paginator/Paginator.test.js +58 -48
  138. package/paragraph/Paragraph.d.ts +3 -4
  139. package/paragraph/Paragraph.js +5 -5
  140. package/password-input/Icons.d.ts +6 -0
  141. package/password-input/Icons.js +39 -0
  142. package/password-input/PasswordInput.js +35 -82
  143. package/password-input/PasswordInput.stories.tsx +1 -0
  144. package/password-input/PasswordInput.test.js +34 -40
  145. package/progress-bar/ProgressBar.d.ts +2 -2
  146. package/progress-bar/ProgressBar.js +5 -5
  147. package/progress-bar/ProgressBar.stories.jsx +35 -2
  148. package/progress-bar/ProgressBar.test.js +1 -1
  149. package/progress-bar/types.d.ts +4 -3
  150. package/quick-nav/QuickNav.js +11 -12
  151. package/quick-nav/QuickNav.stories.tsx +111 -19
  152. package/radio-group/Radio.js +10 -10
  153. package/radio-group/RadioGroup.js +15 -13
  154. package/radio-group/RadioGroup.stories.tsx +131 -18
  155. package/radio-group/RadioGroup.test.js +117 -60
  156. package/resultsetTable/Icons.d.ts +7 -0
  157. package/resultsetTable/Icons.js +51 -0
  158. package/resultsetTable/ResultsetTable.js +49 -108
  159. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  160. package/resultsetTable/ResultsetTable.test.js +41 -64
  161. package/resultsetTable/types.d.ts +1 -1
  162. package/select/Listbox.d.ts +1 -1
  163. package/select/Listbox.js +5 -34
  164. package/select/Option.js +11 -24
  165. package/select/Select.js +59 -36
  166. package/select/Select.stories.tsx +497 -153
  167. package/select/Select.test.js +345 -292
  168. package/select/types.d.ts +2 -2
  169. package/sidenav/Icons.d.ts +7 -0
  170. package/sidenav/Icons.js +51 -0
  171. package/sidenav/Sidenav.d.ts +2 -2
  172. package/sidenav/Sidenav.js +66 -96
  173. package/sidenav/Sidenav.stories.tsx +165 -63
  174. package/sidenav/types.d.ts +21 -18
  175. package/slider/Slider.d.ts +2 -2
  176. package/slider/Slider.js +17 -14
  177. package/slider/Slider.stories.tsx +57 -0
  178. package/slider/Slider.test.js +1 -1
  179. package/slider/types.d.ts +6 -2
  180. package/spinner/Spinner.js +17 -23
  181. package/spinner/Spinner.stories.jsx +53 -27
  182. package/spinner/Spinner.test.js +1 -1
  183. package/switch/Switch.d.ts +3 -3
  184. package/switch/Switch.js +7 -6
  185. package/switch/Switch.stories.tsx +33 -0
  186. package/switch/Switch.test.js +1 -1
  187. package/switch/types.d.ts +8 -3
  188. package/table/Table.js +3 -3
  189. package/table/Table.stories.jsx +80 -1
  190. package/table/Table.test.js +2 -2
  191. package/tabs/Tab.js +12 -15
  192. package/tabs/Tabs.js +11 -17
  193. package/tabs/Tabs.stories.tsx +45 -5
  194. package/tabs/Tabs.test.js +4 -5
  195. package/tabs/types.d.ts +2 -2
  196. package/tag/Tag.js +7 -9
  197. package/tag/Tag.stories.tsx +14 -1
  198. package/tag/Tag.test.js +1 -1
  199. package/text-input/Suggestion.js +34 -7
  200. package/text-input/TextInput.js +224 -228
  201. package/text-input/TextInput.stories.tsx +132 -5
  202. package/text-input/TextInput.test.js +757 -658
  203. package/text-input/types.d.ts +9 -0
  204. package/textarea/Textarea.js +27 -26
  205. package/textarea/Textarea.stories.jsx +68 -1
  206. package/textarea/Textarea.test.js +61 -19
  207. package/textarea/types.d.ts +4 -0
  208. package/toggle-group/ToggleGroup.d.ts +2 -2
  209. package/toggle-group/ToggleGroup.js +85 -59
  210. package/toggle-group/ToggleGroup.stories.tsx +48 -3
  211. package/toggle-group/ToggleGroup.test.js +38 -24
  212. package/toggle-group/types.d.ts +22 -13
  213. package/typography/Typography.d.ts +2 -2
  214. package/typography/Typography.js +14 -113
  215. package/typography/Typography.stories.tsx +1 -1
  216. package/useTheme.d.ts +1251 -1
  217. package/useTheme.js +1 -1
  218. package/useTranslatedLabels.d.ts +84 -1
  219. package/utils/BaseTypography.d.ts +21 -0
  220. package/utils/BaseTypography.js +108 -0
  221. package/utils/FocusLock.d.ts +13 -0
  222. package/utils/FocusLock.js +138 -0
  223. package/wizard/Wizard.js +2 -2
  224. package/wizard/Wizard.stories.tsx +20 -0
  225. package/wizard/Wizard.test.js +1 -1
  226. package/wizard/types.d.ts +5 -6
  227. package/card/ice-cream.jpg +0 -0
  228. package/common/RequiredComponent.js +0 -32
  229. package/number-input/NumberInputContext.d.ts +0 -4
  230. package/number-input/NumberInputContext.js +0 -19
  231. package/number-input/numberInputContextTypes.d.ts +0 -19
  232. /package/{tabs-nav → grid}/types.js +0 -0
  233. /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
  234. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
package/header/Header.js CHANGED
@@ -23,7 +23,7 @@ var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
23
23
 
24
24
  var _Icons = require("./Icons");
25
25
 
26
- var _variables = require("../common/variables.js");
26
+ var _variables = require("../common/variables");
27
27
 
28
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
29
 
@@ -39,14 +39,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
39
39
 
40
40
  var closeIcon = /*#__PURE__*/_react["default"].createElement("svg", {
41
41
  xmlns: "http://www.w3.org/2000/svg",
42
- height: "24",
43
42
  viewBox: "0 0 24 24",
43
+ height: "24",
44
44
  width: "24"
45
45
  }, /*#__PURE__*/_react["default"].createElement("path", {
46
- d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
47
- }), /*#__PURE__*/_react["default"].createElement("path", {
48
- d: "M0 0h24v24H0z",
49
- fill: "none"
46
+ d: "M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6Z"
50
47
  }));
51
48
 
52
49
  var hamburgerIcon = /*#__PURE__*/_react["default"].createElement("svg", {
@@ -62,7 +59,7 @@ var Dropdown = function Dropdown(props) {
62
59
  return /*#__PURE__*/_react["default"].createElement(HeaderDropdown, null, /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], props));
63
60
  };
64
61
 
65
- var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
62
+ var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
66
63
 
67
64
  var getLogoElement = function getLogoElement(themeInput, logoLabel) {
68
65
  if (!themeInput) return _Icons.dxcLogo;else if (typeof themeInput === "string") return /*#__PURE__*/_react["default"].createElement(LogoImg, {
@@ -75,13 +72,11 @@ var Content = function Content(_ref) {
75
72
  var isResponsive = _ref.isResponsive,
76
73
  responsiveContent = _ref.responsiveContent,
77
74
  handleMenu = _ref.handleMenu,
78
- padding = _ref.padding,
79
75
  content = _ref.content;
80
76
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
81
77
  return isResponsive ? /*#__PURE__*/_react["default"].createElement(MenuContent, {
82
78
  backgroundType: backgroundType
83
79
  }, responsiveContent(handleMenu)) : /*#__PURE__*/_react["default"].createElement(ContentContainer, {
84
- padding: padding,
85
80
  backgroundType: backgroundType
86
81
  }, content);
87
82
  };
@@ -93,7 +88,6 @@ var DxcHeader = function DxcHeader(_ref2) {
93
88
  responsiveContent = _ref2.responsiveContent,
94
89
  onClick = _ref2.onClick,
95
90
  margin = _ref2.margin,
96
- padding = _ref2.padding,
97
91
  _ref2$tabIndex = _ref2.tabIndex,
98
92
  tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
99
93
  var colorsTheme = (0, _useTheme["default"])();
@@ -110,9 +104,9 @@ var DxcHeader = function DxcHeader(_ref2) {
110
104
  isMenuVisible = _useState4[0],
111
105
  setIsMenuVisible = _useState4[1];
112
106
 
113
- var handleResize = function handleResize() {
107
+ var handleResize = (0, _react.useCallback)(function () {
114
108
  setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
115
- };
109
+ }, []);
116
110
 
117
111
  var handleMenu = function handleMenu() {
118
112
  if (isResponsive && !isMenuVisible) {
@@ -134,7 +128,7 @@ var DxcHeader = function DxcHeader(_ref2) {
134
128
  return function () {
135
129
  window.removeEventListener("resize", handleResize);
136
130
  };
137
- }, []);
131
+ }, [handleResize]);
138
132
  (0, _react.useEffect)(function () {
139
133
  !isResponsive && setIsMenuVisible(false);
140
134
  }, [isResponsive]);
@@ -148,9 +142,7 @@ var DxcHeader = function DxcHeader(_ref2) {
148
142
  tabIndex: onClick ? tabIndex : -1,
149
143
  interactuable: onClick ? true : false,
150
144
  onClick: onClick
151
- }, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, headerLogo)), isResponsive && responsiveContent && /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(ChildContainer, {
152
- padding: padding
153
- }, /*#__PURE__*/_react["default"].createElement(HamburguerTrigger, {
145
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, headerLogo)), isResponsive && responsiveContent && /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(ChildContainer, null, /*#__PURE__*/_react["default"].createElement(HamburguerTrigger, {
154
146
  tabIndex: tabIndex,
155
147
  onClick: handleMenu
156
148
  }, hamburgerIcon, translatedLabels.header.hamburguerTitle)), /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
@@ -158,14 +150,14 @@ var DxcHeader = function DxcHeader(_ref2) {
158
150
  }, /*#__PURE__*/_react["default"].createElement(ResponsiveIconsContainer, null, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(CloseAction, {
159
151
  tabIndex: tabIndex,
160
152
  onClick: handleMenu,
161
- "aria-label": translatedLabels.header.closeIcon
153
+ "aria-label": translatedLabels.header.closeIcon,
154
+ title: translatedLabels.header.closeIcon
162
155
  }, closeIcon)), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
163
156
  color: colorsTheme.header.menuBackgroundColor
164
157
  }, /*#__PURE__*/_react["default"].createElement(Content, {
165
158
  isResponsive: isResponsive,
166
159
  responsiveContent: responsiveContent,
167
160
  handleMenu: handleMenu,
168
- padding: padding,
169
161
  content: content
170
162
  }))), /*#__PURE__*/_react["default"].createElement(Overlay, {
171
163
  onClick: handleMenu,
@@ -176,14 +168,15 @@ var DxcHeader = function DxcHeader(_ref2) {
176
168
  isResponsive: isResponsive,
177
169
  responsiveContent: responsiveContent,
178
170
  handleMenu: handleMenu,
179
- padding: padding,
180
171
  content: content
181
172
  }))));
182
173
  };
183
174
 
184
175
  DxcHeader.Dropdown = Dropdown;
185
176
 
186
- var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n min-height: ", ";\n box-shadow: none;\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n box-sizing: border-box;\n"])), function (props) {
177
+ var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n min-height: ", ";\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n"])), function (props) {
178
+ return props.theme.minHeight;
179
+ }, function (props) {
187
180
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
188
181
  }, function (props) {
189
182
  return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
@@ -191,12 +184,10 @@ var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_
191
184
  return props.theme.backgroundColor;
192
185
  }, function (props) {
193
186
  return props.underlined && "".concat(props.theme.underlinedThickness, " ").concat(props.theme.underlinedStyle, " ").concat(props.theme.underlinedColor);
194
- }, function (props) {
195
- return props.theme.minHeight;
196
187
  });
197
188
 
198
189
  var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
199
- return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none";
190
+ return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none;";
200
191
  });
201
192
 
202
193
  var LogoImg = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
@@ -211,30 +202,10 @@ var LogoContainer = _styledComponents["default"].div(_templateObject5 || (_templ
211
202
  return props.theme.logoWidth;
212
203
  });
213
204
 
214
- var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: calc(100% - 186px);\n display: flex;\n align-items: center;\n flex-grow: 1;\n\n justify-content: flex-end;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
215
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
216
- }, function (props) {
217
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
218
- }, function (props) {
219
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
220
- }, function (props) {
221
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
222
- }, function (props) {
223
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
224
- });
205
+ var ChildContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-grow: 1;\n width: calc(100% - 186px);\n"])));
225
206
 
226
- var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: calc(100% - 186px);\n display: flex;\n align-items: center;\n flex-grow: 1;\n color: ", ";\n\n justify-content: flex-end;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n"])), function (props) {
207
+ var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n flex-grow: 1;\n justify-content: flex-end;\n width: calc(100% - 186px);\n color: ", ";\n"])), function (props) {
227
208
  return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
228
- }, function (props) {
229
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
230
- }, function (props) {
231
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
232
- }, function (props) {
233
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
234
- }, function (props) {
235
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
236
- }, function (props) {
237
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
238
209
  });
239
210
 
240
211
  var HamburguerTrigger = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 54px;\n cursor: pointer;\n border: 1px solid transparent;\n border-radius: 2px;\n background-color: transparent;\n :hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " auto 1px;\n }\n & > svg {\n fill: ", ";\n }\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
@@ -259,7 +230,7 @@ var HamburguerTrigger = _styledComponents["default"].button(_templateObject8 ||
259
230
 
260
231
  var MainContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
261
232
 
262
- var ResponsiveMenu = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n position: fixed;\n top: 0;\n right: 0;\n z-index: ", ";\n\n @media (max-width: ", "rem) and (min-width: ", "rem) {\n //tablet\n width: ", ";\n }\n\n @media (not((max-width: ", "rem) and (min-width: ", "rem))) {\n //mobile phones\n width: ", ";\n }\n\n height: 100vh;\n padding: 20px;\n transform: ", ";\n opacity: ", ";\n transition-property: transform, opacity;\n transition-duration: 0.6s;\n transition-timing-function: ease-in-out;\n box-sizing: border-box;\n"])), function (props) {
233
+ var ResponsiveMenu = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n position: fixed;\n top: 0;\n right: 0;\n z-index: ", ";\n\n @media (max-width: ", "rem) and (min-width: ", "rem) {\n width: ", ";\n }\n\n @media (not((max-width: ", "rem) and (min-width: ", "rem))) {\n width: ", ";\n }\n\n height: 100vh;\n padding: 20px;\n transform: ", ";\n opacity: ", ";\n transition-property: transform, opacity;\n transition-duration: 0.6s;\n transition-timing-function: ease-in-out;\n box-sizing: border-box;\n"])), function (props) {
263
234
  return props.theme.menuBackgroundColor;
264
235
  }, function (props) {
265
236
  return props.theme.menuZindex;
@@ -281,15 +252,15 @@ var ResponsiveLogoContainer = _styledComponents["default"].div(_templateObject11
281
252
 
282
253
  var ResponsiveIconsContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
283
254
 
284
- var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n padding: 6px;\n height: 36px;\n width: 36px;\n border: 1px solid transparent;\n border-radius: 2px;\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n background-color: transparent;\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n"])), function (props) {
255
+ var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: center;\n align-content: center;\n padding: 6px;\n border: unset;\n border-radius: 2px;\n background-color: transparent;\n cursor: pointer;\n\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n\n svg {\n height: 24px;\n width: 24px;\n }\n"])), function (props) {
285
256
  return props.theme.hamburguerFocusColor;
286
257
  });
287
258
 
288
- var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n color: ", ";\n"])), function (props) {
259
+ var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n height: 100%;\n color: ", ";\n"])), function (props) {
289
260
  return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
290
261
  });
291
262
 
292
- var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n\n @media (max-width: ", "rem) {\n //mobile phones\n display: none;\n }\n\n transition: opacity 0.2s 0.2s ease-in-out;\n z-index: ", ";\n"])), function (props) {
263
+ var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n\n @media (max-width: ", "rem) {\n display: none;\n }\n\n transition: opacity 0.2s 0.2s ease-in-out;\n z-index: ", ";\n"])), function (props) {
293
264
  return props.theme.overlayColor;
294
265
  }, function (props) {
295
266
  return props.theme.overlayOpacity;
@@ -1,8 +1,12 @@
1
1
  import React from "react";
2
2
  import DxcHeader from "./Header";
3
+ import DxcButton from "../button/Button";
3
4
  import Title from "../../.storybook/components/Title";
4
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
6
  import { userEvent, waitFor, within } from "@storybook/testing-library";
7
+ import DxcFlex from "../flex/Flex";
8
+ import DxcLink from "../link/Link";
9
+ import { HalstackProvider } from "../HalstackContext";
6
10
 
7
11
  export default {
8
12
  title: "Header",
@@ -16,16 +20,62 @@ const options: any = [
16
20
  },
17
21
  ];
18
22
 
23
+ const options2: any = [
24
+ {
25
+ value: 1,
26
+ label: "Home",
27
+ },
28
+ {
29
+ value: 2,
30
+ label: "Release notes",
31
+ },
32
+ {
33
+ value: 3,
34
+ label: "Sign out",
35
+ },
36
+ ];
37
+
38
+ const opinionatedTheme = {
39
+ header: {
40
+ baseColor: "#ffffff",
41
+ accentColor: "#000000",
42
+ fontColor: "#000000",
43
+ menuBaseColor: "#ffffff",
44
+ hamburguerColor: "#000000",
45
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
46
+ logoResponsive:
47
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
48
+ contentColor: "#000000",
49
+ overlayColor: "#000000b3",
50
+ },
51
+ };
52
+
19
53
  export const Chromatic = () => (
20
54
  <>
21
55
  <ExampleContainer>
22
56
  <Title title="Default with dropdown" theme="light" level={4} />
23
- <DxcHeader content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />} />
57
+ <DxcHeader
58
+ content={<DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />}
59
+ />
24
60
  </ExampleContainer>
25
61
  <ExampleContainer>
26
62
  <Title title="Underlined with text" theme="light" level={4} />
27
63
  <DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
28
64
  </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Underlined, dropdown and links" theme="light" level={4} />
67
+ <DxcHeader
68
+ content={
69
+ <DxcFlex alignItems="center" gap="4rem">
70
+ <DxcLink>Link 1</DxcLink>
71
+ <DxcLink>Link 2</DxcLink>
72
+ <DxcLink>Link 3</DxcLink>
73
+ <DxcHeader.Dropdown options={options2} label="Label" onSelectOption={() => {}} />
74
+ </DxcFlex>
75
+ }
76
+ underlined
77
+ />
78
+ </ExampleContainer>
29
79
  <Title title="Margins" theme="light" level={2} />
30
80
  <ExampleContainer>
31
81
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -62,35 +112,20 @@ export const Chromatic = () => (
62
112
  <DxcHeader underlined margin="xxlarge" />
63
113
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
64
114
  </ExampleContainer>
65
-
66
- <Title title="Paddings" theme="light" level={2} />
67
- <ExampleContainer>
68
- <Title title="Xxsmall padding" theme="light" level={4} />
69
- <DxcHeader underlined padding="xxsmall" />
70
- </ExampleContainer>
71
- <ExampleContainer>
72
- <Title title="Xsmall padding" theme="light" level={4} />
73
- <DxcHeader underlined padding="xsmall" />
74
- </ExampleContainer>
75
- <ExampleContainer>
76
- <Title title="Small padding" theme="light" level={4} />
77
- <DxcHeader underlined padding="small" />
78
- </ExampleContainer>
79
- <ExampleContainer>
80
- <Title title="Medium padding" theme="light" level={4} />
81
- <DxcHeader underlined padding="medium" />
82
- </ExampleContainer>
83
- <ExampleContainer>
84
- <Title title="Large padding" theme="light" level={4} />
85
- <DxcHeader underlined padding="large" />
86
- </ExampleContainer>
87
- <ExampleContainer>
88
- <Title title="Xlarge padding" theme="light" level={4} />
89
- <DxcHeader underlined padding="xlarge" />
90
- </ExampleContainer>
91
- <ExampleContainer>
92
- <Title title="Xxlarge padding" theme="light" level={4} />
93
- <DxcHeader underlined padding="xxlarge" />
115
+ <Title title="Opinionated theme" theme="light" level={2} />
116
+ <ExampleContainer>
117
+ <HalstackProvider theme={opinionatedTheme}>
118
+ <DxcHeader
119
+ underlined
120
+ content={<DxcButton label={"Custom Button"} />}
121
+ responsiveContent={(closeHandler) => (
122
+ <>
123
+ <DxcButton label={"Custom Button"} onClick={closeHandler} />
124
+ Custom content
125
+ </>
126
+ )}
127
+ />
128
+ </HalstackProvider>
94
129
  </ExampleContainer>
95
130
  </>
96
131
  );
@@ -99,8 +134,10 @@ export const ResponsiveHeader = () => (
99
134
  <ExampleContainer>
100
135
  <Title title="Responsive" theme="light" level={4} />
101
136
  <DxcHeader
102
- content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />}
103
- responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
137
+ content={<DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />}
138
+ responsiveContent={(closeHandler) => (
139
+ <DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />
140
+ )}
104
141
  underlined
105
142
  />
106
143
  </ExampleContainer>
@@ -120,13 +157,29 @@ const RespHeaderHover = () => (
120
157
  </ExampleContainer>
121
158
  );
122
159
 
123
- const RespHeaderMenu = () => (
160
+ const RespHeaderMenuMobile = () => (
124
161
  <ExampleContainer>
125
162
  <Title title="Responsive menu" theme="light" level={4} />
126
163
  <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
127
164
  </ExampleContainer>
128
165
  );
129
166
 
167
+ const RespHeaderMenuTablet = () => (
168
+ <ExampleContainer>
169
+ <Title title="Responsive menu" theme="light" level={4} />
170
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
171
+ </ExampleContainer>
172
+ );
173
+
174
+ const RespHeaderMenuOpinionated = () => (
175
+ <ExampleContainer>
176
+ <Title title="Responsive menu" theme="light" level={4} />
177
+ <HalstackProvider theme={opinionatedTheme}>
178
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
179
+ </HalstackProvider>
180
+ </ExampleContainer>
181
+ );
182
+
130
183
  ResponsiveHeader.parameters = {
131
184
  viewport: {
132
185
  defaultViewport: "iphonex",
@@ -158,14 +211,40 @@ ResponsiveHeaderHover.play = async ({ canvasElement }) => {
158
211
  await waitFor(() => canvas.findByText("Menu"));
159
212
  };
160
213
 
161
- export const ResponsiveHeaderMenu = RespHeaderMenu.bind({});
162
- ResponsiveHeaderMenu.parameters = {
214
+ export const ResponsiveHeaderMenuMobile = RespHeaderMenuMobile.bind({});
215
+ ResponsiveHeaderMenuMobile.parameters = {
163
216
  viewport: {
164
217
  defaultViewport: "iphonex",
165
218
  },
166
219
  chromatic: { viewports: [375] },
167
220
  };
168
- ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
221
+ ResponsiveHeaderMenuMobile.play = async ({ canvasElement }) => {
222
+ const canvas = within(canvasElement);
223
+ await waitFor(() => canvas.findByText("Menu"));
224
+ await userEvent.click(canvas.getByText("Menu"));
225
+ };
226
+
227
+ export const ResponsiveHeaderMenuTablet = RespHeaderMenuTablet.bind({});
228
+ ResponsiveHeaderMenuTablet.parameters = {
229
+ viewport: {
230
+ defaultViewport: "pixelxl",
231
+ },
232
+ chromatic: { viewports: [720] },
233
+ };
234
+ ResponsiveHeaderMenuTablet.play = async ({ canvasElement }) => {
235
+ const canvas = within(canvasElement);
236
+ await waitFor(() => canvas.findByText("Menu"));
237
+ await userEvent.click(canvas.getByText("Menu"));
238
+ };
239
+
240
+ export const ResponsiveHeaderMenuOpinionated = RespHeaderMenuOpinionated.bind({});
241
+ ResponsiveHeaderMenuOpinionated.parameters = {
242
+ viewport: {
243
+ defaultViewport: "pixelxl",
244
+ },
245
+ chromatic: { viewports: [720] },
246
+ };
247
+ ResponsiveHeaderMenuOpinionated.play = async ({ canvasElement }) => {
169
248
  const canvas = within(canvasElement);
170
249
  await waitFor(() => canvas.findByText("Menu"));
171
250
  await userEvent.click(canvas.getByText("Menu"));
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Header = _interopRequireDefault(require("./Header"));
9
+ var _Header = _interopRequireDefault(require("./Header.tsx"));
10
10
 
11
11
  describe("Header component tests", function () {
12
12
  beforeAll(function () {
@@ -68,7 +68,7 @@ describe("Header component tests", function () {
68
68
  });
69
69
 
70
70
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
71
- responsiveContent: function responsiveContent(closeMenu) {
71
+ responsiveContent: function responsiveContent() {
72
72
  return /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text");
73
73
  }
74
74
  })),
package/header/types.d.ts CHANGED
@@ -1,11 +1,5 @@
1
1
  /// <reference types="react" />
2
- export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- export declare type Padding = {
4
- top?: Space;
5
- bottom?: Space;
6
- left?: Space;
7
- right?: Space;
8
- };
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
9
3
  declare type Props = {
10
4
  /**
11
5
  * Wether a contrast line should appear at the bottom of the header.
@@ -31,13 +25,6 @@ declare type Props = {
31
25
  * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
32
26
  */
33
27
  margin?: Space;
34
- /**
35
- * Size of the padding to be applied to the custom area of the component
36
- * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
37
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in
38
- * order to specify different padding sizes.
39
- */
40
- padding?: Space | Padding;
41
28
  /**
42
29
  * Value of the tabindex for all interactuable elements, except those inside the
43
30
  * custom area.
@@ -17,7 +17,7 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
- var _variables = require("../common/variables.js");
20
+ var _variables = require("../common/variables");
21
21
 
22
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
@@ -6,7 +6,7 @@ var _react = _interopRequireDefault(require("react"));
6
6
 
7
7
  var _react2 = require("@testing-library/react");
8
8
 
9
- var _Heading = _interopRequireDefault(require("./Heading"));
9
+ var _Heading = _interopRequireDefault(require("./Heading.tsx"));
10
10
 
11
11
  describe("Heading component tests", function () {
12
12
  test("Heading renders with default level", function () {
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import ImagePropsType from "./types";
3
+ declare const DxcImage: ({ alt, caption, lazyLoading, src, srcSet, sizes, width, height, objectFit, objectPosition, onLoad, onError, }: ImagePropsType) => JSX.Element;
4
+ export default DxcImage;
package/image/Image.js ADDED
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
+
18
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
19
+
20
+ var _BaseTypography = _interopRequireDefault(require("../utils/BaseTypography"));
21
+
22
+ var _templateObject;
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ var CaptionWrapper = function CaptionWrapper(_ref) {
29
+ var condition = _ref.condition,
30
+ wrapper = _ref.wrapper,
31
+ children = _ref.children;
32
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, condition ? wrapper(children) : children);
33
+ };
34
+
35
+ var DxcImage = function DxcImage(_ref2) {
36
+ var alt = _ref2.alt,
37
+ caption = _ref2.caption,
38
+ _ref2$lazyLoading = _ref2.lazyLoading,
39
+ lazyLoading = _ref2$lazyLoading === void 0 ? false : _ref2$lazyLoading,
40
+ src = _ref2.src,
41
+ srcSet = _ref2.srcSet,
42
+ sizes = _ref2.sizes,
43
+ width = _ref2.width,
44
+ height = _ref2.height,
45
+ objectFit = _ref2.objectFit,
46
+ objectPosition = _ref2.objectPosition,
47
+ onLoad = _ref2.onLoad,
48
+ onError = _ref2.onError;
49
+ var colorsTheme = (0, _useTheme["default"])();
50
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
51
+ theme: colorsTheme.image
52
+ }, /*#__PURE__*/_react["default"].createElement(CaptionWrapper, {
53
+ condition: caption != undefined,
54
+ wrapper: function wrapper(children) {
55
+ return /*#__PURE__*/_react["default"].createElement(Figure, null, children, /*#__PURE__*/_react["default"].createElement(_BaseTypography["default"], {
56
+ as: "figcaption",
57
+ color: colorsTheme.image.captionFontColor,
58
+ fontFamily: colorsTheme.image.captionFontFamily,
59
+ fontSize: colorsTheme.image.captionFontSize,
60
+ fontStyle: colorsTheme.image.captionFontStyle,
61
+ fontWeight: colorsTheme.image.captionFontWeight,
62
+ lineHeight: colorsTheme.image.captionLineHeight
63
+ }, caption));
64
+ }
65
+ }, /*#__PURE__*/_react["default"].createElement("img", {
66
+ alt: alt,
67
+ loading: lazyLoading ? "lazy" : undefined,
68
+ onLoad: onLoad,
69
+ onError: onError,
70
+ src: src,
71
+ srcSet: srcSet,
72
+ sizes: sizes,
73
+ style: {
74
+ objectFit: objectFit,
75
+ objectPosition: objectPosition,
76
+ width: width,
77
+ height: height
78
+ }
79
+ })));
80
+ };
81
+
82
+ var Figure = _styledComponents["default"].figure(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 1rem;\n width: fit-content;\n margin: 0;\n padding: 0;\n"])));
83
+
84
+ var _default = DxcImage;
85
+ exports["default"] = _default;