@dxc-technology/halstack-react 0.0.0-375a8b0 → 0.0.0-38267fd

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 (298) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +343 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +119 -138
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +17 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/badge/Badge.d.ts +4 -0
  19. package/badge/Badge.js +6 -4
  20. package/badge/types.d.ts +5 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +51 -0
  23. package/bleed/Bleed.stories.tsx +341 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +25 -37
  27. package/box/Box.stories.tsx +15 -0
  28. package/box/Box.test.js +18 -0
  29. package/box/types.d.ts +1 -0
  30. package/bulleted-list/BulletedList.d.ts +7 -0
  31. package/bulleted-list/BulletedList.js +123 -0
  32. package/bulleted-list/BulletedList.stories.tsx +200 -0
  33. package/bulleted-list/types.d.ts +11 -0
  34. package/bulleted-list/types.js +5 -0
  35. package/button/Button.d.ts +1 -1
  36. package/button/Button.js +59 -82
  37. package/button/Button.stories.tsx +163 -14
  38. package/button/Button.test.js +35 -0
  39. package/button/types.d.ts +10 -14
  40. package/card/Card.js +25 -28
  41. package/card/Card.stories.tsx +1 -1
  42. package/card/Card.test.js +50 -0
  43. package/card/types.d.ts +1 -0
  44. package/checkbox/Checkbox.d.ts +2 -2
  45. package/checkbox/Checkbox.js +108 -111
  46. package/checkbox/Checkbox.stories.tsx +198 -130
  47. package/checkbox/Checkbox.test.js +155 -0
  48. package/checkbox/types.d.ts +14 -6
  49. package/chip/Chip.d.ts +4 -0
  50. package/chip/Chip.js +22 -88
  51. package/chip/Chip.stories.tsx +98 -13
  52. package/chip/Chip.test.js +56 -0
  53. package/chip/types.d.ts +45 -0
  54. package/chip/types.js +5 -0
  55. package/common/variables.js +529 -602
  56. package/date-input/Calendar.d.ts +4 -0
  57. package/date-input/Calendar.js +258 -0
  58. package/date-input/DateInput.js +174 -266
  59. package/date-input/DateInput.stories.tsx +199 -33
  60. package/date-input/DateInput.test.js +835 -0
  61. package/date-input/DatePicker.d.ts +4 -0
  62. package/date-input/DatePicker.js +146 -0
  63. package/date-input/Icons.d.ts +6 -0
  64. package/date-input/Icons.js +75 -0
  65. package/date-input/YearPicker.d.ts +4 -0
  66. package/date-input/YearPicker.js +126 -0
  67. package/date-input/types.d.ts +67 -9
  68. package/dialog/Dialog.js +79 -95
  69. package/dialog/Dialog.stories.tsx +230 -123
  70. package/dialog/Dialog.test.js +369 -0
  71. package/dialog/types.d.ts +3 -2
  72. package/dropdown/Dropdown.d.ts +1 -1
  73. package/dropdown/Dropdown.js +248 -277
  74. package/dropdown/Dropdown.stories.tsx +438 -0
  75. package/dropdown/Dropdown.test.js +585 -0
  76. package/dropdown/DropdownMenu.d.ts +4 -0
  77. package/dropdown/DropdownMenu.js +70 -0
  78. package/dropdown/DropdownMenuItem.d.ts +4 -0
  79. package/dropdown/DropdownMenuItem.js +81 -0
  80. package/dropdown/types.d.ts +30 -19
  81. package/file-input/FileInput.d.ts +2 -2
  82. package/file-input/FileInput.js +179 -142
  83. package/file-input/FileInput.stories.tsx +618 -0
  84. package/file-input/FileInput.test.js +457 -0
  85. package/file-input/FileItem.d.ts +4 -14
  86. package/file-input/FileItem.js +47 -67
  87. package/file-input/types.d.ts +49 -7
  88. package/flex/Flex.d.ts +4 -0
  89. package/flex/Flex.js +69 -0
  90. package/flex/Flex.stories.tsx +103 -0
  91. package/flex/types.d.ts +32 -0
  92. package/flex/types.js +5 -0
  93. package/footer/Footer.d.ts +1 -1
  94. package/footer/Footer.js +32 -113
  95. package/footer/Footer.stories.tsx +228 -0
  96. package/footer/Footer.test.js +109 -0
  97. package/footer/Icons.d.ts +2 -0
  98. package/footer/Icons.js +4 -4
  99. package/footer/types.d.ts +22 -17
  100. package/header/Header.js +109 -130
  101. package/header/Header.stories.tsx +189 -36
  102. package/header/Header.test.js +79 -0
  103. package/header/Icons.d.ts +2 -0
  104. package/header/Icons.js +2 -2
  105. package/header/types.d.ts +3 -2
  106. package/heading/Heading.js +1 -1
  107. package/heading/Heading.stories.tsx +3 -2
  108. package/heading/Heading.test.js +186 -0
  109. package/inset/Inset.d.ts +3 -0
  110. package/inset/Inset.js +51 -0
  111. package/inset/Inset.stories.tsx +229 -0
  112. package/inset/types.d.ts +37 -0
  113. package/inset/types.js +5 -0
  114. package/layout/ApplicationLayout.d.ts +20 -0
  115. package/layout/ApplicationLayout.js +71 -135
  116. package/layout/ApplicationLayout.stories.tsx +162 -0
  117. package/layout/Icons.d.ts +5 -0
  118. package/layout/Icons.js +13 -2
  119. package/layout/SidenavContext.d.ts +5 -0
  120. package/layout/SidenavContext.js +19 -0
  121. package/layout/types.d.ts +42 -0
  122. package/layout/types.js +5 -0
  123. package/link/Link.d.ts +3 -2
  124. package/link/Link.js +62 -87
  125. package/link/Link.stories.tsx +159 -52
  126. package/link/Link.test.js +83 -0
  127. package/link/types.d.ts +9 -29
  128. package/main.d.ts +12 -12
  129. package/main.js +64 -58
  130. package/nav-tabs/NavTabs.d.ts +8 -0
  131. package/nav-tabs/NavTabs.js +125 -0
  132. package/nav-tabs/NavTabs.stories.tsx +260 -0
  133. package/nav-tabs/NavTabs.test.js +82 -0
  134. package/nav-tabs/Tab.d.ts +4 -0
  135. package/nav-tabs/Tab.js +150 -0
  136. package/nav-tabs/types.d.ts +53 -0
  137. package/nav-tabs/types.js +5 -0
  138. package/number-input/NumberInput.js +14 -24
  139. package/number-input/NumberInput.stories.tsx +5 -5
  140. package/number-input/NumberInput.test.js +542 -0
  141. package/number-input/types.d.ts +17 -10
  142. package/package.json +21 -22
  143. package/paginator/Icons.d.ts +5 -0
  144. package/paginator/Icons.js +16 -28
  145. package/paginator/Paginator.js +21 -54
  146. package/paginator/Paginator.stories.tsx +24 -0
  147. package/paginator/Paginator.test.js +315 -0
  148. package/paragraph/Paragraph.d.ts +6 -0
  149. package/paragraph/Paragraph.js +38 -0
  150. package/paragraph/Paragraph.stories.tsx +44 -0
  151. package/password-input/PasswordInput.js +23 -19
  152. package/password-input/PasswordInput.stories.tsx +3 -3
  153. package/password-input/PasswordInput.test.js +181 -0
  154. package/password-input/types.d.ts +26 -21
  155. package/progress-bar/ProgressBar.d.ts +2 -2
  156. package/progress-bar/ProgressBar.js +62 -56
  157. package/progress-bar/ProgressBar.stories.jsx +47 -12
  158. package/progress-bar/ProgressBar.test.js +110 -0
  159. package/progress-bar/types.d.ts +3 -4
  160. package/quick-nav/QuickNav.d.ts +4 -0
  161. package/quick-nav/QuickNav.js +117 -0
  162. package/quick-nav/QuickNav.stories.tsx +356 -0
  163. package/quick-nav/types.d.ts +21 -0
  164. package/quick-nav/types.js +5 -0
  165. package/radio-group/Radio.d.ts +4 -0
  166. package/radio-group/Radio.js +156 -0
  167. package/radio-group/RadioGroup.d.ts +4 -0
  168. package/radio-group/RadioGroup.js +283 -0
  169. package/radio-group/RadioGroup.stories.tsx +214 -0
  170. package/radio-group/RadioGroup.test.js +722 -0
  171. package/radio-group/types.d.ts +114 -0
  172. package/radio-group/types.js +5 -0
  173. package/resultsetTable/Icons.d.ts +7 -0
  174. package/resultsetTable/Icons.js +51 -0
  175. package/resultsetTable/ResultsetTable.d.ts +1 -1
  176. package/resultsetTable/ResultsetTable.js +53 -107
  177. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  178. package/resultsetTable/ResultsetTable.test.js +325 -0
  179. package/resultsetTable/types.d.ts +8 -4
  180. package/select/Icons.d.ts +10 -0
  181. package/select/Icons.js +93 -0
  182. package/select/Listbox.d.ts +4 -0
  183. package/select/Listbox.js +169 -0
  184. package/select/Option.d.ts +4 -0
  185. package/select/Option.js +97 -0
  186. package/select/Select.d.ts +4 -0
  187. package/select/Select.js +196 -397
  188. package/select/Select.stories.tsx +600 -201
  189. package/select/Select.test.js +2228 -0
  190. package/select/types.d.ts +210 -0
  191. package/select/types.js +5 -0
  192. package/sidenav/Sidenav.d.ts +6 -5
  193. package/sidenav/Sidenav.js +184 -54
  194. package/sidenav/Sidenav.stories.tsx +249 -132
  195. package/sidenav/Sidenav.test.js +44 -0
  196. package/sidenav/types.d.ts +50 -27
  197. package/slider/Slider.d.ts +2 -2
  198. package/slider/Slider.js +124 -98
  199. package/slider/Slider.stories.tsx +72 -9
  200. package/slider/Slider.test.js +250 -0
  201. package/slider/types.d.ts +10 -2
  202. package/spinner/Spinner.js +5 -5
  203. package/spinner/Spinner.stories.jsx +27 -0
  204. package/spinner/Spinner.test.js +64 -0
  205. package/switch/Switch.d.ts +2 -2
  206. package/switch/Switch.js +152 -69
  207. package/switch/Switch.stories.tsx +54 -43
  208. package/switch/Switch.test.js +225 -0
  209. package/switch/types.d.ts +12 -4
  210. package/table/Table.js +4 -4
  211. package/table/Table.stories.jsx +81 -1
  212. package/table/Table.test.js +26 -0
  213. package/tabs/Tab.d.ts +4 -0
  214. package/tabs/Tab.js +133 -0
  215. package/tabs/Tabs.d.ts +1 -1
  216. package/tabs/Tabs.js +364 -110
  217. package/tabs/Tabs.stories.tsx +226 -0
  218. package/tabs/Tabs.test.js +351 -0
  219. package/tabs/types.d.ts +39 -17
  220. package/tag/Tag.d.ts +1 -1
  221. package/tag/Tag.js +19 -29
  222. package/tag/Tag.stories.tsx +38 -28
  223. package/tag/Tag.test.js +60 -0
  224. package/tag/types.d.ts +23 -14
  225. package/text-input/Icons.d.ts +8 -0
  226. package/text-input/Icons.js +60 -0
  227. package/text-input/Suggestion.d.ts +4 -0
  228. package/text-input/Suggestion.js +84 -0
  229. package/text-input/Suggestions.d.ts +4 -0
  230. package/text-input/Suggestions.js +134 -0
  231. package/text-input/TextInput.js +231 -343
  232. package/text-input/TextInput.stories.tsx +569 -0
  233. package/text-input/TextInput.test.js +1724 -0
  234. package/text-input/types.d.ts +63 -23
  235. package/textarea/Textarea.d.ts +4 -0
  236. package/textarea/Textarea.js +39 -79
  237. package/textarea/Textarea.stories.jsx +96 -15
  238. package/textarea/Textarea.test.js +437 -0
  239. package/textarea/types.d.ts +137 -0
  240. package/textarea/types.js +5 -0
  241. package/toggle-group/ToggleGroup.d.ts +4 -0
  242. package/toggle-group/ToggleGroup.js +18 -46
  243. package/toggle-group/ToggleGroup.stories.tsx +69 -32
  244. package/toggle-group/ToggleGroup.test.js +156 -0
  245. package/toggle-group/types.d.ts +105 -0
  246. package/toggle-group/types.js +5 -0
  247. package/typography/Typography.d.ts +4 -0
  248. package/typography/Typography.js +131 -0
  249. package/typography/Typography.stories.tsx +198 -0
  250. package/typography/types.d.ts +18 -0
  251. package/typography/types.js +5 -0
  252. package/useTheme.d.ts +2 -0
  253. package/useTheme.js +2 -2
  254. package/useTranslatedLabels.d.ts +2 -0
  255. package/useTranslatedLabels.js +20 -0
  256. package/utils/FocusLock.d.ts +13 -0
  257. package/utils/FocusLock.js +139 -0
  258. package/wizard/Wizard.d.ts +1 -1
  259. package/wizard/Wizard.js +112 -58
  260. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  261. package/wizard/Wizard.test.js +141 -0
  262. package/wizard/types.d.ts +13 -12
  263. package/ThemeContext.js +0 -246
  264. package/V3Select/V3Select.js +0 -455
  265. package/V3Select/index.d.ts +0 -27
  266. package/V3Textarea/V3Textarea.js +0 -260
  267. package/V3Textarea/index.d.ts +0 -27
  268. package/chip/index.d.ts +0 -22
  269. package/common/RequiredComponent.js +0 -32
  270. package/date/Date.js +0 -373
  271. package/date/index.d.ts +0 -27
  272. package/footer/Footer.stories.jsx +0 -151
  273. package/input-text/Icons.js +0 -22
  274. package/input-text/InputText.js +0 -611
  275. package/input-text/index.d.ts +0 -36
  276. package/radio/Radio.d.ts +0 -4
  277. package/radio/Radio.js +0 -174
  278. package/radio/Radio.stories.tsx +0 -192
  279. package/radio/types.d.ts +0 -54
  280. package/select/index.d.ts +0 -131
  281. package/textarea/index.d.ts +0 -117
  282. package/toggle/Toggle.js +0 -186
  283. package/toggle/index.d.ts +0 -21
  284. package/toggle-group/index.d.ts +0 -21
  285. package/upload/Upload.js +0 -201
  286. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  287. package/upload/buttons-upload/Icons.js +0 -40
  288. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  289. package/upload/dragAndDropArea/Icons.js +0 -39
  290. package/upload/file-upload/FileToUpload.js +0 -115
  291. package/upload/file-upload/Icons.js +0 -66
  292. package/upload/files-upload/FilesToUpload.js +0 -109
  293. package/upload/index.d.ts +0 -15
  294. package/upload/transaction/Icons.js +0 -160
  295. package/upload/transaction/Transaction.js +0 -104
  296. package/upload/transactions/Transactions.js +0 -94
  297. package/wizard/Icons.js +0 -65
  298. /package/{radio → badge}/types.js +0 -0
@@ -15,9 +15,13 @@ var _react = _interopRequireDefault(require("react"));
15
15
 
16
16
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
17
 
18
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
18
+ var _main = require("../main");
19
19
 
20
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
20
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
21
+
22
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
+
24
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
21
25
 
22
26
  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); }
23
27
 
@@ -47,103 +51,76 @@ var errorIcon = /*#__PURE__*/_react["default"].createElement("svg", {
47
51
  }));
48
52
 
49
53
  var FileItem = function FileItem(_ref) {
50
- var mode = _ref.mode,
51
- multiple = _ref.multiple,
52
- _ref$name = _ref.name,
53
- name = _ref$name === void 0 ? "" : _ref$name,
54
+ var _ref$fileName = _ref.fileName,
55
+ fileName = _ref$fileName === void 0 ? "" : _ref$fileName,
54
56
  _ref$error = _ref.error,
55
57
  error = _ref$error === void 0 ? "" : _ref$error,
58
+ singleFileMode = _ref.singleFileMode,
56
59
  showPreview = _ref.showPreview,
57
60
  preview = _ref.preview,
58
61
  type = _ref.type,
59
- numFiles = _ref.numFiles,
60
62
  onDelete = _ref.onDelete,
61
63
  tabIndex = _ref.tabIndex;
62
64
  var colorsTheme = (0, _useTheme["default"])();
63
- var isImage = type.includes("image");
65
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
64
66
 
65
67
  var getIconAriaLabel = function getIconAriaLabel() {
66
- if (type.includes("video")) {
67
- return "video";
68
- }
69
-
70
- if (type.includes("audio")) {
71
- return "audio";
72
- }
73
-
74
- return "file";
68
+ if (type.includes("video")) return "video";else if (type.includes("audio")) return "audio";else return "file";
75
69
  };
76
70
 
77
71
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
78
72
  theme: colorsTheme.fileInput
79
- }, /*#__PURE__*/_react["default"].createElement(Container, {
80
- mode: mode,
81
- multiple: multiple,
73
+ }, /*#__PURE__*/_react["default"].createElement(MainContainer, {
82
74
  error: error,
83
- showPreview: showPreview,
84
- numFiles: numFiles
85
- }, showPreview && (isImage ? /*#__PURE__*/_react["default"].createElement(ImagePreview, {
75
+ singleFileMode: singleFileMode,
76
+ showPreview: showPreview
77
+ }, showPreview && (type.includes("image") ? /*#__PURE__*/_react["default"].createElement(ImagePreview, {
86
78
  src: preview,
87
- alt: name
88
- }) : /*#__PURE__*/_react["default"].createElement(IconPreviewContainer, {
79
+ alt: fileName
80
+ }) : /*#__PURE__*/_react["default"].createElement(IconPreview, {
89
81
  error: error,
90
82
  "aria-label": getIconAriaLabel()
91
- }, /*#__PURE__*/_react["default"].createElement(IconPreview, {
92
- error: error
93
- }, preview))), /*#__PURE__*/_react["default"].createElement(FileItemContent, null, /*#__PURE__*/_react["default"].createElement(FileItemContainer, null, /*#__PURE__*/_react["default"].createElement(FileName, {
94
- mode: mode,
95
- multiple: multiple,
96
- error: error,
97
- showPreview: showPreview,
98
- numFiles: numFiles
99
- }, name), error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
100
- "aria-label": "Error"
101
- }, errorIcon), /*#__PURE__*/_react["default"].createElement(DeleteIcon, {
102
- error: error,
83
+ }, preview)), /*#__PURE__*/_react["default"].createElement(FileItemContent, null, /*#__PURE__*/_react["default"].createElement(FileName, null, fileName), /*#__PURE__*/_react["default"].createElement(_main.DxcFlex, {
84
+ gap: "0.25rem"
85
+ }, error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, errorIcon), /*#__PURE__*/_react["default"].createElement(DeleteFileAction, {
103
86
  onClick: function onClick() {
104
- return onDelete(name);
87
+ onDelete(fileName);
105
88
  },
106
- "aria-label": "Remove ".concat(name),
89
+ type: "button",
90
+ title: translatedLabels.fileInput.deleteFileActionTitle,
91
+ "aria-label": translatedLabels.fileInput.deleteFileActionTitle,
107
92
  tabIndex: tabIndex
108
- }, deleteIcon)), error && (multiple || numFiles > 1) && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, error))));
93
+ }, deleteIcon)), error && !singleFileMode && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, error))));
109
94
  };
110
95
 
111
- var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n padding: ", ";\n background-color: ", ";\n border-radius: ", ";\n width: ", ";\n min-height: ", ";\n border-color: ", ";\n border-width: ", ";\n border-style: ", ";\n display: flex;\n justify-content: center;\n"])), function (props) {
112
- return props.showPreview ? "8px" : "8px 8px 8px 16px";
113
- }, function (props) {
114
- return props.error && props.theme.errorFileItemBackgroundColor;
115
- }, function (props) {
116
- return props.theme.fileItemBorderRadius;
96
+ var MainContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n gap: 0.75rem;\n width: ", ";\n padding: ", ";\n ", ";\n border-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-radius: ", ";\n"])), function (props) {
97
+ return props.singleFileMode ? "230px" : "320px";
117
98
  }, function (props) {
118
- return props.mode === "file" && !props.multiple && props.numFiles === 1 ? "calc(230px - 26px)" : !props.showPreview ? "calc(320px - 26px)" : props.showPreview && "calc(320px - 18px)";
99
+ return props.showPreview ? "calc(8px - ".concat(props.theme.fileItemBorderThickness, ")") : "calc(8px - ".concat(props.theme.fileItemBorderThickness, ") calc(8px - ").concat(props.theme.fileItemBorderThickness, ") calc(8px - ").concat(props.theme.fileItemBorderThickness, ") 16px");
119
100
  }, function (props) {
120
- return props.mode === "file" && !props.multiple && props.numFiles === 1 || !props.showPreview && !props.error ? "calc(40px - 18px)" : !props.showPreview && props.error ? "calc(59px - 18px)" : "calc(64px - 18px)";
101
+ return props.error ? "background-color: ".concat(props.theme.errorFileItemBackgroundColor, ";") : "";
121
102
  }, function (props) {
122
103
  return props.error ? props.theme.errorFileItemBorderColor : props.theme.fileItemBorderColor;
123
104
  }, function (props) {
124
105
  return props.theme.fileItemBorderThickness;
125
106
  }, function (props) {
126
107
  return props.theme.fileItemBorderStyle;
108
+ }, function (props) {
109
+ return props.theme.fileItemBorderRadius;
127
110
  });
128
111
 
129
- var FileItemContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n"])));
130
-
131
- var FileItemContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n align-items: center;\n"])));
112
+ var ImagePreview = _styledComponents["default"].img(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 48px;\n height: 48px;\n border-radius: 2px;\n object-fit: contain;\n"])));
132
113
 
133
- var ImagePreview = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n width: 48px;\n height: 48px;\n object-fit: contain;\n margin-right: 12px;\n border-radius: 2px;\n"])));
134
-
135
- var IconPreviewContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 12px;\n background-color: ", ";\n width: 48px;\n height: 48px;\n border-radius: 2px;\n color: ", ";\n"])), function (props) {
136
- return props.error ? props.theme.errorFileItemIconBackgroundColor : props.theme.fileItemIconBackgroundColor;
114
+ var IconPreview = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ", ";\n width: 48px;\n height: 48px;\n padding: 15px;\n border-radius: 2px;\n color: ", ";\n\n svg {\n height: 18px;\n width: 18px;\n }\n"])), function (props) {
115
+ return props.error ? props.theme.errorFilePreviewBackgroundColor : props.theme.filePreviewBackgroundColor;
137
116
  }, function (props) {
138
- return props.error ? props.theme.errorFileItemIconColor : props.theme.fileItemIconColor;
117
+ return props.error ? props.theme.errorFilePreviewIconColor : props.theme.filePreviewIconColor;
139
118
  });
140
119
 
141
- var IconPreview = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
120
+ var FileItemContent = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n display: grid;\n grid-template-columns: auto min-content;\n grid-template-rows: min-content auto;\n column-gap: 0.25rem;\n"])));
142
121
 
143
- var FileName = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n width: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
122
+ var FileName = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n align-self: center;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])), function (props) {
144
123
  return props.theme.fileNameFontColor;
145
- }, function (props) {
146
- return props.mode === "file" && !props.multiple && props.error && props.numFiles === 1 ? "calc(230px - 76px)" : props.mode === "file" && !props.multiple && !props.error && props.numFiles === 1 ? "calc(230px - 50px)" : !props.showPreview && !props.error ? "calc(320px - 52px)" : !props.showPreview && props.error ? "calc(320px - 76px)" : props.showPreview && props.error ? "calc(320px - 128px)" : props.showPreview && !props.error && "calc(320px - 102px)";
147
124
  }, function (props) {
148
125
  return props.theme.fileItemFontFamily;
149
126
  }, function (props) {
@@ -154,19 +131,21 @@ var FileName = _styledComponents["default"].span(_templateObject7 || (_templateO
154
131
  return props.theme.fileItemLineHeight;
155
132
  });
156
133
 
157
- var ErrorIcon = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n color: #d0011b;\n"])));
134
+ var ErrorIcon = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n padding: 3px;\n height: 18px;\n width: 18px;\n color: #d0011b;\n"])));
158
135
 
159
- var DeleteIcon = _styledComponents["default"].button(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 4px;\n margin-left: 4px;\n background-color: transparent;\n padding: 3px;\n cursor: pointer;\n svg {\n line-height: 18px;\n }\n &:hover {\n background-color: ", ";\n }\n &:focus {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
136
+ var DeleteFileAction = _styledComponents["default"].button(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n font-size: 1rem;\n font-family: ", ";\n border: 1px solid transparent;\n border-radius: 2px;\n background-color: transparent;\n box-shadow: 0 0 0 2px transparent;\n padding: 3px;\n cursor: pointer;\n color: ", ";\n\n svg {\n line-height: 18px;\n }\n &:hover {\n background-color: ", ";\n }\n &:focus,\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
160
137
  return props.theme.fontFamily;
161
138
  }, function (props) {
162
- return props.error ? props.theme.errorHoverDeleteFileItemBackgroundColor : props.theme.hoverDeleteFileItemBackgroundColor;
139
+ return props.theme.deleteFileItemColor;
163
140
  }, function (props) {
164
- return props.error ? props.theme.errorHoverDeleteFileItemBackgroundColor : props.theme.hoverDeleteFileItemBackgroundColor;
141
+ return props.theme.hoverDeleteFileItemBackgroundColor;
165
142
  }, function (props) {
166
- return props.error ? props.theme.errorActiveDeleteFileItemBackgroundColor : props.theme.activeDeleteFileItemBackgroundColor;
143
+ return props.theme.focusDeleteFileItemBorderColor;
144
+ }, function (props) {
145
+ return props.theme.activeDeleteFileItemBackgroundColor;
167
146
  });
168
147
 
169
- var ErrorMessage = _styledComponents["default"].span(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
148
+ var ErrorMessage = _styledComponents["default"].span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: ", ";\n"])), function (props) {
170
149
  return props.theme.errorMessageFontColor;
171
150
  }, function (props) {
172
151
  return props.theme.errorMessageFontFamily;
@@ -178,5 +157,6 @@ var ErrorMessage = _styledComponents["default"].span(_templateObject10 || (_temp
178
157
  return props.theme.errorMessageLineHeight;
179
158
  });
180
159
 
181
- var _default = FileItem;
160
+ var _default = /*#__PURE__*/_react["default"].memo(FileItem);
161
+
182
162
  exports["default"] = _default;
@@ -19,7 +19,7 @@ declare type FileData = {
19
19
  */
20
20
  preview?: string;
21
21
  };
22
- declare type Props = {
22
+ declare type CommonProps = {
23
23
  /**
24
24
  * Name attribute.
25
25
  */
@@ -29,13 +29,9 @@ declare type Props = {
29
29
  */
30
30
  label?: string;
31
31
  /**
32
- * Uses one of the available file input modes:
33
- * 'file': Files are selected by clicking the button and selecting it through the file explorer.
34
- * 'filedrop': Files can be selected by clicking the button and selecting it through the file explorer or by dropping them inside the drag and drop area.
35
- * 'dropzone': Files can be selected by clicking the button and selecting it through the file explorer or by dropping them inside the drag and drop area.
36
- * The drag and drop area of this mode is bigger than the one of the filedrop mode.
32
+ * Text to be placed inside the button.
37
33
  */
38
- mode?: "file" | "filedrop" | "dropzone";
34
+ buttonLabel?: string;
39
35
  /**
40
36
  * Helper text to be placed above the component.
41
37
  */
@@ -84,4 +80,50 @@ declare type Props = {
84
80
  */
85
81
  tabIndex?: number;
86
82
  };
83
+ declare type DropModeProps = CommonProps & {
84
+ /**
85
+ * Uses one of the available file input modes:
86
+ * 'file': Files are selected by clicking the button and selecting it through the file explorer.
87
+ * 'filedrop': Files can be selected by clicking the button and selecting it through the file explorer or by dropping them inside the drag and drop area.
88
+ * 'dropzone': Files can be selected by clicking the button and selecting it through the file explorer or by dropping them inside the drag and drop area.
89
+ * The drag and drop area of this mode is bigger than the one of the filedrop mode.
90
+ */
91
+ mode: "filedrop" | "dropzone";
92
+ /**
93
+ * Text to be placed inside the drag and drop zone alongside the button.
94
+ */
95
+ dropAreaLabel?: string;
96
+ };
97
+ declare type FileModeProps = CommonProps & {
98
+ /**
99
+ * Uses one of the available file input modes:
100
+ * 'file': Files are selected by clicking the button and selecting it through the file explorer.
101
+ * 'filedrop': Files can be selected by clicking the button and selecting it through the file explorer or by dropping them inside the drag and drop area.
102
+ * 'dropzone': Files can be selected by clicking the button and selecting it through the file explorer or by dropping them inside the drag and drop area.
103
+ * The drag and drop area of this mode is bigger than the one of the filedrop mode.
104
+ */
105
+ mode?: "file";
106
+ /**
107
+ * Text to be placed inside the drag and drop zone alongside the button.
108
+ */
109
+ dropAreaLabel?: never;
110
+ };
111
+ /**
112
+ * Reference to the component.
113
+ */
114
+ export declare type RefType = HTMLDivElement;
115
+ declare type Props = DropModeProps | FileModeProps;
116
+ /**
117
+ * Single file item preview.
118
+ */
119
+ export declare type FileItemProps = {
120
+ fileName?: string;
121
+ error?: string;
122
+ showPreview: boolean;
123
+ singleFileMode: boolean;
124
+ preview: string;
125
+ type: string;
126
+ onDelete: (fileName: string) => void;
127
+ tabIndex: number;
128
+ };
87
129
  export default Props;
package/flex/Flex.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import FlexPropsType from "./types";
3
+ declare const DxcFlex: ({ direction, wrap, gap, order, grow, shrink, basis, children, ...props }: FlexPropsType) => JSX.Element;
4
+ export default DxcFlex;
package/flex/Flex.js ADDED
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _react = _interopRequireDefault(require("react"));
19
+
20
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
21
+
22
+ var _templateObject;
23
+
24
+ var _excluded = ["direction", "wrap", "gap", "order", "grow", "shrink", "basis", "children"],
25
+ _excluded2 = ["justifyContent", "alignItems", "alignContent", "alignSelf"];
26
+
27
+ var DxcFlex = function DxcFlex(_ref) {
28
+ var _ref$direction = _ref.direction,
29
+ direction = _ref$direction === void 0 ? "row" : _ref$direction,
30
+ _ref$wrap = _ref.wrap,
31
+ wrap = _ref$wrap === void 0 ? "nowrap" : _ref$wrap,
32
+ _ref$gap = _ref.gap,
33
+ gap = _ref$gap === void 0 ? "0" : _ref$gap,
34
+ _ref$order = _ref.order,
35
+ order = _ref$order === void 0 ? 0 : _ref$order,
36
+ _ref$grow = _ref.grow,
37
+ grow = _ref$grow === void 0 ? 0 : _ref$grow,
38
+ _ref$shrink = _ref.shrink,
39
+ shrink = _ref$shrink === void 0 ? 1 : _ref$shrink,
40
+ _ref$basis = _ref.basis,
41
+ basis = _ref$basis === void 0 ? "auto" : _ref$basis,
42
+ children = _ref.children,
43
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
44
+ return /*#__PURE__*/_react["default"].createElement(Flex, (0, _extends2["default"])({
45
+ $direction: direction,
46
+ $wrap: wrap,
47
+ $order: order,
48
+ $grow: grow,
49
+ $shrink: shrink,
50
+ $basis: basis,
51
+ $gap: gap
52
+ }, props), children);
53
+ };
54
+
55
+ var Flex = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", "\n"])), function (_ref2) {
56
+ var _ref2$justifyContent = _ref2.justifyContent,
57
+ justifyContent = _ref2$justifyContent === void 0 ? "flex-start" : _ref2$justifyContent,
58
+ _ref2$alignItems = _ref2.alignItems,
59
+ alignItems = _ref2$alignItems === void 0 ? "stretch" : _ref2$alignItems,
60
+ _ref2$alignContent = _ref2.alignContent,
61
+ alignContent = _ref2$alignContent === void 0 ? "normal" : _ref2$alignContent,
62
+ _ref2$alignSelf = _ref2.alignSelf,
63
+ alignSelf = _ref2$alignSelf === void 0 ? "auto" : _ref2$alignSelf,
64
+ props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
65
+ return "\n flex-direction: ".concat(props.$direction, "; \n flex-wrap: ").concat(props.$wrap, "; \n justify-content: ").concat(justifyContent, "; \n align-items: ").concat(alignItems, ";\n align-content: ").concat(alignContent, ";\n align-self: ").concat(alignSelf, ";\n gap: ").concat((0, _typeof2["default"])(props.$gap) === "object" ? "".concat(props.$gap.rowGap, " ").concat(props.$gap.columnGap) : props.$gap, ";\n order: ").concat(props.$order, ";\n flex-grow: ").concat(props.$grow, ";\n flex-shrink: ").concat(props.$shrink, ";\n flex-basis: ").concat(props.$basis, ";\n ");
66
+ });
67
+
68
+ var _default = DxcFlex;
69
+ exports["default"] = _default;
@@ -0,0 +1,103 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import styled from "styled-components";
4
+ import DxcFlex from "./Flex";
5
+
6
+ export default {
7
+ title: "Flex",
8
+ component: DxcFlex,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <Title title="Default" level={4} />
14
+ <Container>
15
+ <DxcFlex>
16
+ <Placeholder />
17
+ <Placeholder width="50px" />
18
+ <Placeholder />
19
+ <Placeholder width="50px" />
20
+ <Placeholder width="50px" />
21
+ </DxcFlex>
22
+ </Container>
23
+ <Title title="Direction column, wrap, justify content end, align items center and gap" level={4} />
24
+ <Container>
25
+ <DxcFlex direction="column" wrap="wrap" justifyContent="end" alignItems="center" gap="20px">
26
+ <Placeholder />
27
+ <Placeholder width="100px" />
28
+ <Placeholder />
29
+ <Placeholder width="100px" />
30
+ <Placeholder />
31
+ </DxcFlex>
32
+ </Container>
33
+ <Title title="Wrap with align content space between, row and column gaps, and as a span" level={4} />
34
+ <Container height="250px">
35
+ <DxcFlex wrap="wrap" alignContent="space-between" as="span" gap={{ rowGap: "10px", columnGap: "20px" }}>
36
+ <Placeholder />
37
+ <Placeholder />
38
+ <Placeholder />
39
+ <Placeholder />
40
+ <Placeholder width="100px" />
41
+ <Placeholder />
42
+ <Placeholder />
43
+ <Placeholder width="100px" />
44
+ <Placeholder />
45
+ <Placeholder />
46
+ <Placeholder width="100px" />
47
+ <Placeholder />
48
+ </DxcFlex>
49
+ </Container>
50
+ <Title title="Basis 100%, order, grow and align self" level={4} />
51
+ <Container height="75px">
52
+ <DxcFlex basis="100%">
53
+ <DxcFlex order={3} grow={1} alignSelf="flex-end">
54
+ <PlaceholderGrowAndShrink>order 3, grow 1, align self end</PlaceholderGrowAndShrink>
55
+ </DxcFlex>
56
+ <DxcFlex order={-1} grow={4}>
57
+ <PlaceholderGrowAndShrink>order -1, grow 4</PlaceholderGrowAndShrink>
58
+ </DxcFlex>
59
+ <DxcFlex order={5} grow={1}>
60
+ <PlaceholderGrowAndShrink>order 5, grow 1</PlaceholderGrowAndShrink>
61
+ </DxcFlex>
62
+ <DxcFlex order={2} grow={2}>
63
+ <PlaceholderGrowAndShrink>order 2. grow 2</PlaceholderGrowAndShrink>
64
+ </DxcFlex>
65
+ </DxcFlex>
66
+ </Container>
67
+ <Title title="Basis and shrink" level={4} />
68
+ <Container>
69
+ <DxcFlex basis="600px">
70
+ <DxcFlex shrink={4} basis="400px">
71
+ <PlaceholderGrowAndShrink>shrink 4</PlaceholderGrowAndShrink>
72
+ </DxcFlex>
73
+ <DxcFlex shrink={2} basis="400px">
74
+ <PlaceholderGrowAndShrink>shrink 2</PlaceholderGrowAndShrink>
75
+ </DxcFlex>
76
+ <DxcFlex shrink={1} basis="400px">
77
+ <PlaceholderGrowAndShrink>shrink 1</PlaceholderGrowAndShrink>
78
+ </DxcFlex>
79
+ </DxcFlex>
80
+ </Container>
81
+ </>
82
+ );
83
+
84
+ const Container = styled.div<{ height?: string }>`
85
+ display: flex;
86
+ background: #f2eafa;
87
+ margin: 2.5rem;
88
+ ${({ height }) => (height ? `height: ${height}` : "max-height: 150px")};
89
+ `;
90
+
91
+ const Placeholder = styled.div<{ width?: string }>`
92
+ height: 40px;
93
+ min-width: ${({ width }) => width || "200px"};
94
+ border: 1px solid #a46ede;
95
+ background-color: #e5d5f6;
96
+ `;
97
+
98
+ const PlaceholderGrowAndShrink = styled.div`
99
+ height: 40px;
100
+ width: 100%;
101
+ border: 1px solid #a46ede;
102
+ background-color: #e5d5f6;
103
+ `;
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ declare type Gap = {
3
+ rowGap: string;
4
+ columnGap: string;
5
+ };
6
+ declare type CommonProps = {
7
+ justifyContent?: "flex-start" | "flex-end" | "start" | "end" | "left" | "right" | "center" | "space-between" | "space-around" | "space-evenly";
8
+ alignItems?: "stretch" | "flex-start" | "flex-end" | "start" | "end" | "self-start" | "self-end" | "center" | "baseline";
9
+ alignContent?: "normal" | "flex-start" | "flex-end" | "start" | "end" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch";
10
+ alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
11
+ };
12
+ declare type Props = CommonProps & {
13
+ direction?: "row" | "row-reverse" | "column" | "column-reverse";
14
+ wrap?: "nowrap" | "wrap" | "wrap-reverse";
15
+ gap?: string | Gap;
16
+ order?: number;
17
+ grow?: number;
18
+ shrink?: number;
19
+ basis?: string;
20
+ as?: keyof HTMLElementTagNameMap;
21
+ children: React.ReactNode;
22
+ };
23
+ export declare type StyledProps = CommonProps & {
24
+ $direction?: "row" | "row-reverse" | "column" | "column-reverse";
25
+ $wrap?: "nowrap" | "wrap" | "wrap-reverse";
26
+ $gap?: string | Gap;
27
+ $order?: number;
28
+ $grow?: number;
29
+ $shrink?: number;
30
+ $basis?: string;
31
+ };
32
+ export default Props;
package/flex/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import FooterPropsType from "./types";
3
- declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, padding, margin, tabIndex }: FooterPropsType) => JSX.Element;
3
+ declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, padding, margin, tabIndex, }: FooterPropsType) => JSX.Element;
4
4
  export default DxcFooter;