@dxc-technology/halstack-react 0.0.0-9b45027 → 0.0.0-9bd9511

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 (294) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -11
  3. package/HalstackContext.d.ts +13 -0
  4. package/HalstackContext.js +318 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +124 -179
  7. package/accordion/Accordion.stories.tsx +115 -27
  8. package/accordion/Accordion.test.js +56 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +28 -77
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +108 -0
  14. package/accordion-group/types.d.ts +19 -12
  15. package/alert/Alert.js +18 -46
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +75 -0
  18. package/alert/types.d.ts +3 -3
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -16
  21. package/badge/types.d.ts +5 -0
  22. package/bleed/Bleed.d.ts +2 -2
  23. package/bleed/Bleed.js +14 -55
  24. package/bleed/Bleed.stories.tsx +94 -95
  25. package/bleed/types.d.ts +26 -2
  26. package/box/Box.js +34 -63
  27. package/box/Box.stories.tsx +15 -0
  28. package/box/Box.test.js +13 -0
  29. package/box/types.d.ts +5 -4
  30. package/bulleted-list/BulletedList.d.ts +7 -0
  31. package/bulleted-list/BulletedList.js +98 -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.js +61 -100
  36. package/button/Button.stories.tsx +159 -8
  37. package/button/Button.test.js +26 -0
  38. package/button/types.d.ts +8 -8
  39. package/card/Card.js +44 -70
  40. package/card/Card.test.js +39 -0
  41. package/card/types.d.ts +4 -3
  42. package/checkbox/Checkbox.d.ts +2 -2
  43. package/checkbox/Checkbox.js +115 -162
  44. package/checkbox/Checkbox.stories.tsx +198 -130
  45. package/checkbox/Checkbox.test.js +128 -0
  46. package/checkbox/types.d.ts +14 -6
  47. package/chip/Chip.d.ts +1 -1
  48. package/chip/Chip.js +29 -91
  49. package/chip/Chip.stories.tsx +98 -13
  50. package/chip/Chip.test.js +42 -0
  51. package/chip/types.d.ts +8 -16
  52. package/common/utils.js +1 -6
  53. package/common/variables.d.ts +1431 -0
  54. package/common/variables.js +480 -554
  55. package/date-input/Calendar.d.ts +4 -0
  56. package/date-input/Calendar.js +215 -0
  57. package/date-input/DateInput.js +164 -300
  58. package/date-input/DateInput.stories.tsx +199 -33
  59. package/date-input/DateInput.test.js +648 -0
  60. package/date-input/DatePicker.d.ts +4 -0
  61. package/date-input/DatePicker.js +116 -0
  62. package/date-input/Icons.d.ts +6 -0
  63. package/date-input/Icons.js +63 -0
  64. package/date-input/YearPicker.d.ts +4 -0
  65. package/date-input/YearPicker.js +101 -0
  66. package/date-input/types.d.ts +71 -13
  67. package/dialog/Dialog.js +52 -84
  68. package/dialog/Dialog.stories.tsx +99 -22
  69. package/dialog/Dialog.test.js +56 -0
  70. package/dialog/types.d.ts +4 -3
  71. package/dropdown/Dropdown.d.ts +1 -1
  72. package/dropdown/Dropdown.js +240 -323
  73. package/dropdown/Dropdown.stories.tsx +255 -64
  74. package/dropdown/Dropdown.test.js +479 -0
  75. package/dropdown/DropdownMenu.d.ts +4 -0
  76. package/dropdown/DropdownMenu.js +60 -0
  77. package/dropdown/DropdownMenuItem.d.ts +4 -0
  78. package/dropdown/DropdownMenuItem.js +70 -0
  79. package/dropdown/types.d.ts +30 -19
  80. package/file-input/FileInput.d.ts +2 -2
  81. package/file-input/FileInput.js +224 -351
  82. package/file-input/FileInput.stories.tsx +122 -11
  83. package/file-input/FileInput.test.js +445 -0
  84. package/file-input/FileItem.d.ts +4 -14
  85. package/file-input/FileItem.js +48 -97
  86. package/file-input/types.d.ts +24 -7
  87. package/flex/Flex.d.ts +4 -0
  88. package/flex/Flex.js +57 -0
  89. package/flex/Flex.stories.tsx +103 -0
  90. package/flex/types.d.ts +32 -0
  91. package/flex/types.js +5 -0
  92. package/footer/Footer.js +36 -143
  93. package/footer/Footer.stories.tsx +99 -1
  94. package/footer/Footer.test.js +92 -0
  95. package/footer/Icons.js +1 -5
  96. package/footer/types.d.ts +7 -6
  97. package/header/Header.js +112 -177
  98. package/header/Header.stories.tsx +189 -36
  99. package/header/Header.test.js +66 -0
  100. package/header/Icons.js +2 -6
  101. package/header/types.d.ts +4 -3
  102. package/heading/Heading.js +8 -29
  103. package/heading/Heading.test.js +169 -0
  104. package/heading/types.d.ts +3 -3
  105. package/inset/Inset.js +14 -55
  106. package/inset/Inset.stories.tsx +36 -36
  107. package/inset/types.d.ts +26 -2
  108. package/layout/ApplicationLayout.d.ts +16 -6
  109. package/layout/ApplicationLayout.js +71 -164
  110. package/layout/ApplicationLayout.stories.tsx +84 -93
  111. package/layout/Icons.d.ts +5 -0
  112. package/layout/Icons.js +11 -10
  113. package/layout/SidenavContext.d.ts +5 -0
  114. package/layout/SidenavContext.js +15 -0
  115. package/layout/types.d.ts +18 -33
  116. package/link/Link.d.ts +3 -2
  117. package/link/Link.js +61 -106
  118. package/link/Link.stories.tsx +159 -52
  119. package/link/Link.test.js +65 -0
  120. package/link/types.d.ts +9 -29
  121. package/main.d.ts +11 -15
  122. package/main.js +48 -121
  123. package/nav-tabs/NavTabs.d.ts +8 -0
  124. package/nav-tabs/NavTabs.js +95 -0
  125. package/nav-tabs/NavTabs.stories.tsx +260 -0
  126. package/nav-tabs/NavTabs.test.js +75 -0
  127. package/nav-tabs/Tab.d.ts +4 -0
  128. package/nav-tabs/Tab.js +120 -0
  129. package/nav-tabs/types.d.ts +53 -0
  130. package/nav-tabs/types.js +5 -0
  131. package/number-input/NumberInput.js +21 -38
  132. package/number-input/NumberInput.stories.tsx +5 -5
  133. package/number-input/NumberInput.test.js +406 -0
  134. package/number-input/NumberInputContext.js +0 -5
  135. package/number-input/numberInputContextTypes.d.ts +1 -1
  136. package/number-input/types.d.ts +21 -14
  137. package/package.json +22 -25
  138. package/paginator/Icons.d.ts +5 -0
  139. package/paginator/Icons.js +16 -38
  140. package/paginator/Paginator.js +31 -82
  141. package/paginator/Paginator.stories.tsx +24 -0
  142. package/paginator/Paginator.test.js +266 -0
  143. package/paginator/types.d.ts +1 -1
  144. package/paragraph/Paragraph.d.ts +6 -0
  145. package/paragraph/Paragraph.js +28 -0
  146. package/paragraph/Paragraph.stories.tsx +44 -0
  147. package/password-input/PasswordInput.js +28 -54
  148. package/password-input/PasswordInput.test.js +138 -0
  149. package/password-input/types.d.ts +18 -15
  150. package/progress-bar/ProgressBar.d.ts +2 -2
  151. package/progress-bar/ProgressBar.js +65 -84
  152. package/progress-bar/ProgressBar.stories.jsx +47 -12
  153. package/progress-bar/ProgressBar.test.js +93 -0
  154. package/progress-bar/types.d.ts +3 -4
  155. package/quick-nav/QuickNav.d.ts +4 -0
  156. package/quick-nav/QuickNav.js +95 -0
  157. package/quick-nav/QuickNav.stories.tsx +356 -0
  158. package/quick-nav/types.d.ts +21 -0
  159. package/quick-nav/types.js +5 -0
  160. package/radio-group/Radio.d.ts +1 -1
  161. package/radio-group/Radio.js +61 -66
  162. package/radio-group/RadioGroup.js +99 -129
  163. package/radio-group/RadioGroup.stories.tsx +171 -36
  164. package/radio-group/RadioGroup.test.js +620 -0
  165. package/radio-group/types.d.ts +85 -7
  166. package/resultsetTable/Icons.d.ts +7 -0
  167. package/resultsetTable/Icons.js +48 -0
  168. package/resultsetTable/ResultsetTable.js +66 -157
  169. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  170. package/resultsetTable/ResultsetTable.test.js +292 -0
  171. package/resultsetTable/types.d.ts +5 -5
  172. package/select/Icons.d.ts +10 -0
  173. package/select/Icons.js +90 -0
  174. package/select/Listbox.d.ts +4 -0
  175. package/select/Listbox.js +144 -0
  176. package/select/Option.d.ts +4 -0
  177. package/select/Option.js +81 -0
  178. package/select/Select.js +201 -485
  179. package/select/Select.stories.tsx +600 -201
  180. package/select/Select.test.js +1845 -0
  181. package/select/types.d.ts +62 -22
  182. package/sidenav/Sidenav.d.ts +6 -5
  183. package/sidenav/Sidenav.js +164 -74
  184. package/sidenav/Sidenav.stories.tsx +249 -149
  185. package/sidenav/Sidenav.test.js +37 -0
  186. package/sidenav/types.d.ts +50 -27
  187. package/slider/Slider.d.ts +2 -2
  188. package/slider/Slider.js +143 -164
  189. package/slider/Slider.stories.tsx +72 -9
  190. package/slider/Slider.test.js +222 -0
  191. package/slider/types.d.ts +11 -3
  192. package/spinner/Spinner.js +12 -41
  193. package/spinner/Spinner.stories.jsx +27 -1
  194. package/spinner/Spinner.test.js +55 -0
  195. package/spinner/types.d.ts +3 -3
  196. package/switch/Switch.d.ts +2 -2
  197. package/switch/Switch.js +148 -107
  198. package/switch/Switch.stories.tsx +53 -42
  199. package/switch/Switch.test.js +180 -0
  200. package/switch/types.d.ts +13 -5
  201. package/table/Table.js +5 -23
  202. package/table/Table.stories.jsx +80 -1
  203. package/table/Table.test.js +21 -0
  204. package/table/types.d.ts +3 -3
  205. package/tabs/Tab.d.ts +4 -0
  206. package/tabs/Tab.js +115 -0
  207. package/tabs/Tabs.d.ts +1 -1
  208. package/tabs/Tabs.js +318 -139
  209. package/tabs/Tabs.stories.tsx +119 -13
  210. package/tabs/Tabs.test.js +295 -0
  211. package/tabs/types.d.ts +21 -7
  212. package/tag/Tag.d.ts +1 -1
  213. package/tag/Tag.js +36 -75
  214. package/tag/Tag.stories.tsx +37 -27
  215. package/tag/Tag.test.js +49 -0
  216. package/tag/types.d.ts +25 -16
  217. package/text-input/Icons.d.ts +8 -0
  218. package/text-input/Icons.js +57 -0
  219. package/text-input/Suggestion.d.ts +4 -0
  220. package/text-input/Suggestion.js +68 -0
  221. package/text-input/Suggestions.d.ts +4 -0
  222. package/text-input/Suggestions.js +109 -0
  223. package/text-input/TextInput.js +232 -438
  224. package/text-input/TextInput.stories.tsx +310 -197
  225. package/text-input/TextInput.test.js +1404 -0
  226. package/text-input/types.d.ts +55 -17
  227. package/textarea/Textarea.js +53 -96
  228. package/textarea/Textarea.stories.jsx +93 -13
  229. package/textarea/Textarea.test.js +360 -0
  230. package/textarea/types.d.ts +22 -15
  231. package/toggle-group/ToggleGroup.d.ts +1 -1
  232. package/toggle-group/ToggleGroup.js +23 -57
  233. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  234. package/toggle-group/ToggleGroup.test.js +124 -0
  235. package/toggle-group/types.d.ts +19 -11
  236. package/translatedLabelsType.d.ts +82 -0
  237. package/translatedLabelsType.js +5 -0
  238. package/typography/Typography.d.ts +4 -0
  239. package/typography/Typography.js +119 -0
  240. package/typography/Typography.stories.tsx +198 -0
  241. package/typography/types.d.ts +18 -0
  242. package/typography/types.js +5 -0
  243. package/useTheme.d.ts +1 -1
  244. package/useTheme.js +3 -9
  245. package/useTranslatedLabels.d.ts +3 -0
  246. package/useTranslatedLabels.js +15 -0
  247. package/wizard/Wizard.d.ts +1 -1
  248. package/wizard/Wizard.js +68 -98
  249. package/wizard/Wizard.stories.tsx +48 -19
  250. package/wizard/Wizard.test.js +114 -0
  251. package/wizard/types.d.ts +12 -7
  252. package/ThemeContext.d.ts +0 -15
  253. package/ThemeContext.js +0 -243
  254. package/V3Select/V3Select.js +0 -455
  255. package/V3Select/index.d.ts +0 -27
  256. package/V3Textarea/V3Textarea.js +0 -260
  257. package/V3Textarea/index.d.ts +0 -27
  258. package/common/RequiredComponent.js +0 -32
  259. package/date/Date.js +0 -373
  260. package/date/index.d.ts +0 -27
  261. package/input-text/Icons.js +0 -22
  262. package/input-text/InputText.js +0 -611
  263. package/input-text/index.d.ts +0 -36
  264. package/list/List.d.ts +0 -8
  265. package/list/List.js +0 -47
  266. package/list/List.stories.tsx +0 -95
  267. package/radio/Radio.d.ts +0 -4
  268. package/radio/Radio.js +0 -174
  269. package/radio/Radio.stories.tsx +0 -192
  270. package/radio/types.d.ts +0 -54
  271. package/row/Row.d.ts +0 -11
  272. package/row/Row.js +0 -127
  273. package/row/Row.stories.tsx +0 -239
  274. package/stack/Stack.d.ts +0 -10
  275. package/stack/Stack.js +0 -97
  276. package/stack/Stack.stories.tsx +0 -166
  277. package/text/Text.d.ts +0 -7
  278. package/text/Text.js +0 -30
  279. package/text/Text.stories.tsx +0 -19
  280. package/toggle/Toggle.js +0 -186
  281. package/toggle/index.d.ts +0 -21
  282. package/upload/Upload.js +0 -201
  283. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  284. package/upload/buttons-upload/Icons.js +0 -40
  285. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  286. package/upload/dragAndDropArea/Icons.js +0 -39
  287. package/upload/file-upload/FileToUpload.js +0 -115
  288. package/upload/file-upload/Icons.js +0 -66
  289. package/upload/files-upload/FilesToUpload.js +0 -109
  290. package/upload/index.d.ts +0 -15
  291. package/upload/transaction/Icons.js +0 -160
  292. package/upload/transaction/Transaction.js +0 -104
  293. package/upload/transactions/Transactions.js +0 -94
  294. /package/{radio → badge}/types.js +0 -0
@@ -1,28 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _react = _interopRequireDefault(require("react"));
15
-
16
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
-
12
+ var _main = require("../main");
18
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
19
-
20
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
21
-
14
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
22
16
  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
-
24
17
  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; }
25
-
26
18
  var deleteIcon = /*#__PURE__*/_react["default"].createElement("svg", {
27
19
  xmlns: "http://www.w3.org/2000/svg",
28
20
  width: "24",
@@ -35,7 +27,6 @@ var deleteIcon = /*#__PURE__*/_react["default"].createElement("svg", {
35
27
  }), /*#__PURE__*/_react["default"].createElement("path", {
36
28
  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 12 19 6.41z"
37
29
  }));
38
-
39
30
  var errorIcon = /*#__PURE__*/_react["default"].createElement("svg", {
40
31
  xmlns: "http://www.w3.org/2000/svg",
41
32
  height: "24px",
@@ -45,105 +36,69 @@ var errorIcon = /*#__PURE__*/_react["default"].createElement("svg", {
45
36
  }, /*#__PURE__*/_react["default"].createElement("path", {
46
37
  d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
47
38
  }));
48
-
49
39
  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
- _ref$error = _ref.error,
55
- error = _ref$error === void 0 ? "" : _ref$error,
56
- showPreview = _ref.showPreview,
57
- preview = _ref.preview,
58
- type = _ref.type,
59
- numFiles = _ref.numFiles,
60
- onDelete = _ref.onDelete,
61
- tabIndex = _ref.tabIndex;
40
+ var _ref$fileName = _ref.fileName,
41
+ fileName = _ref$fileName === void 0 ? "" : _ref$fileName,
42
+ _ref$error = _ref.error,
43
+ error = _ref$error === void 0 ? "" : _ref$error,
44
+ singleFileMode = _ref.singleFileMode,
45
+ showPreview = _ref.showPreview,
46
+ preview = _ref.preview,
47
+ type = _ref.type,
48
+ onDelete = _ref.onDelete,
49
+ tabIndex = _ref.tabIndex;
62
50
  var colorsTheme = (0, _useTheme["default"])();
63
- var isImage = type.includes("image");
64
-
51
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
65
52
  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";
53
+ if (type.includes("video")) return "video";else if (type.includes("audio")) return "audio";else return "file";
75
54
  };
76
-
77
55
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
78
- theme: colorsTheme.fileInput
79
- }, /*#__PURE__*/_react["default"].createElement(Container, {
80
- mode: mode,
81
- multiple: multiple,
56
+ theme: colorsTheme["fileInput"]
57
+ }, /*#__PURE__*/_react["default"].createElement(MainContainer, {
82
58
  error: error,
83
- showPreview: showPreview,
84
- numFiles: numFiles
85
- }, showPreview && (isImage ? /*#__PURE__*/_react["default"].createElement(ImagePreview, {
59
+ singleFileMode: singleFileMode,
60
+ showPreview: showPreview
61
+ }, showPreview && (type.includes("image") ? /*#__PURE__*/_react["default"].createElement(ImagePreview, {
86
62
  src: preview,
87
- alt: name
88
- }) : /*#__PURE__*/_react["default"].createElement(IconPreviewContainer, {
63
+ alt: fileName
64
+ }) : /*#__PURE__*/_react["default"].createElement(IconPreview, {
89
65
  error: error,
90
66
  "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,
67
+ }, preview)), /*#__PURE__*/_react["default"].createElement(FileItemContent, null, /*#__PURE__*/_react["default"].createElement(FileName, null, fileName), /*#__PURE__*/_react["default"].createElement(_main.DxcFlex, {
68
+ gap: "0.25rem"
69
+ }, error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, null, errorIcon), /*#__PURE__*/_react["default"].createElement(DeleteFileAction, {
103
70
  onClick: function onClick() {
104
- return onDelete(name);
71
+ onDelete(fileName);
105
72
  },
106
- "aria-label": "Remove ".concat(name),
73
+ title: translatedLabels.fileInput.deleteFileActionTitle,
74
+ "aria-label": translatedLabels.fileInput.deleteFileActionTitle,
107
75
  tabIndex: tabIndex
108
- }, deleteIcon)), error && (multiple || numFiles > 1) && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, error))));
76
+ }, deleteIcon)), error && !singleFileMode && /*#__PURE__*/_react["default"].createElement(ErrorMessage, null, error))));
109
77
  };
110
-
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 ? "calc(8px - ".concat(props.theme.fileItemBorderThickness, ") 8px") : "calc(8px - ".concat(props.theme.fileItemBorderThickness, ") 8px calc(8px - ").concat(props.theme.fileItemBorderThickness, ") 16px");
78
+ 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) {
79
+ return props.singleFileMode ? "230px" : "320px";
113
80
  }, function (props) {
114
- return props.error && props.theme.errorFileItemBackgroundColor;
81
+ 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");
115
82
  }, function (props) {
116
- return props.theme.fileItemBorderRadius;
117
- }, 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)";
119
- }, 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)";
83
+ return props.error ? "background-color: ".concat(props.theme.errorFileItemBackgroundColor, ";") : "";
121
84
  }, function (props) {
122
85
  return props.error ? props.theme.errorFileItemBorderColor : props.theme.fileItemBorderColor;
123
86
  }, function (props) {
124
87
  return props.theme.fileItemBorderThickness;
125
88
  }, function (props) {
126
89
  return props.theme.fileItemBorderStyle;
90
+ }, function (props) {
91
+ return props.theme.fileItemBorderRadius;
127
92
  });
128
-
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"])));
132
-
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;
93
+ 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"])));
94
+ 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) {
95
+ return props.error ? props.theme.errorFilePreviewBackgroundColor : props.theme.filePreviewBackgroundColor;
137
96
  }, function (props) {
138
- return props.error ? props.theme.errorFileItemIconColor : props.theme.fileItemIconColor;
97
+ return props.error ? props.theme.errorFilePreviewIconColor : props.theme.filePreviewIconColor;
139
98
  });
140
-
141
- var IconPreview = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
142
-
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) {
99
+ 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"])));
100
+ 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
101
  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
102
  }, function (props) {
148
103
  return props.theme.fileItemFontFamily;
149
104
  }, function (props) {
@@ -153,22 +108,19 @@ var FileName = _styledComponents["default"].span(_templateObject7 || (_templateO
153
108
  }, function (props) {
154
109
  return props.theme.fileItemLineHeight;
155
110
  });
156
-
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"])));
158
-
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: 2px;\n margin-left: 4px;\n background-color: transparent;\n box-shadow: 0 0 0 2px transparent;\n padding: 3px;\n cursor: pointer;\n svg {\n line-height: 18px;\n }\n &:hover {\n background-color: ", ";\n }\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
111
+ 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"])));
112
+ 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
113
  return props.theme.fontFamily;
161
114
  }, function (props) {
162
- return props.theme.hoverDeleteFileItemBackgroundColor;
115
+ return props.theme.deleteFileItemColor;
163
116
  }, function (props) {
164
- return props.theme.focusActionBorderColor;
117
+ return props.theme.hoverDeleteFileItemBackgroundColor;
165
118
  }, function (props) {
166
- return props.theme.focusActionBorderColor;
119
+ return props.theme.focusDeleteFileItemBorderColor;
167
120
  }, function (props) {
168
121
  return props.theme.activeDeleteFileItemBackgroundColor;
169
122
  });
170
-
171
- 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) {
123
+ 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) {
172
124
  return props.theme.errorMessageFontColor;
173
125
  }, function (props) {
174
126
  return props.theme.errorMessageFontFamily;
@@ -179,6 +131,5 @@ var ErrorMessage = _styledComponents["default"].span(_templateObject10 || (_temp
179
131
  }, function (props) {
180
132
  return props.theme.errorMessageLineHeight;
181
133
  });
182
-
183
- var _default = FileItem;
134
+ var _default = /*#__PURE__*/_react["default"].memo(FileItem);
184
135
  exports["default"] = _default;
@@ -1,11 +1,11 @@
1
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- declare type Margin = {
1
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- declare type FileData = {
8
+ type FileData = {
9
9
  /**
10
10
  * Selected file.
11
11
  */
@@ -19,7 +19,7 @@ declare type FileData = {
19
19
  */
20
20
  preview?: string;
21
21
  };
22
- declare type CommonProps = {
22
+ type CommonProps = {
23
23
  /**
24
24
  * Name attribute.
25
25
  */
@@ -80,7 +80,7 @@ declare type CommonProps = {
80
80
  */
81
81
  tabIndex?: number;
82
82
  };
83
- declare type DropModeProps = CommonProps & {
83
+ type DropModeProps = CommonProps & {
84
84
  /**
85
85
  * Uses one of the available file input modes:
86
86
  * 'file': Files are selected by clicking the button and selecting it through the file explorer.
@@ -94,7 +94,7 @@ declare type DropModeProps = CommonProps & {
94
94
  */
95
95
  dropAreaLabel?: string;
96
96
  };
97
- declare type FileModeProps = CommonProps & {
97
+ type FileModeProps = CommonProps & {
98
98
  /**
99
99
  * Uses one of the available file input modes:
100
100
  * 'file': Files are selected by clicking the button and selecting it through the file explorer.
@@ -108,5 +108,22 @@ declare type FileModeProps = CommonProps & {
108
108
  */
109
109
  dropAreaLabel?: never;
110
110
  };
111
- declare type Props = DropModeProps | FileModeProps;
111
+ /**
112
+ * Reference to the component.
113
+ */
114
+ export type RefType = HTMLDivElement;
115
+ type Props = DropModeProps | FileModeProps;
116
+ /**
117
+ * Single file item preview.
118
+ */
119
+ export 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
+ };
112
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,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
+ var _templateObject;
15
+ var _excluded = ["direction", "wrap", "gap", "order", "grow", "shrink", "basis", "children"],
16
+ _excluded2 = ["justifyContent", "alignItems", "alignContent", "alignSelf"];
17
+ var DxcFlex = function DxcFlex(_ref) {
18
+ var _ref$direction = _ref.direction,
19
+ direction = _ref$direction === void 0 ? "row" : _ref$direction,
20
+ _ref$wrap = _ref.wrap,
21
+ wrap = _ref$wrap === void 0 ? "nowrap" : _ref$wrap,
22
+ _ref$gap = _ref.gap,
23
+ gap = _ref$gap === void 0 ? "0" : _ref$gap,
24
+ _ref$order = _ref.order,
25
+ order = _ref$order === void 0 ? 0 : _ref$order,
26
+ _ref$grow = _ref.grow,
27
+ grow = _ref$grow === void 0 ? 0 : _ref$grow,
28
+ _ref$shrink = _ref.shrink,
29
+ shrink = _ref$shrink === void 0 ? 1 : _ref$shrink,
30
+ _ref$basis = _ref.basis,
31
+ basis = _ref$basis === void 0 ? "auto" : _ref$basis,
32
+ children = _ref.children,
33
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
34
+ return /*#__PURE__*/_react["default"].createElement(Flex, (0, _extends2["default"])({
35
+ $direction: direction,
36
+ $wrap: wrap,
37
+ $order: order,
38
+ $grow: grow,
39
+ $shrink: shrink,
40
+ $basis: basis,
41
+ $gap: gap
42
+ }, props), children);
43
+ };
44
+ var Flex = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n ", "\n"])), function (_ref2) {
45
+ var _ref2$justifyContent = _ref2.justifyContent,
46
+ justifyContent = _ref2$justifyContent === void 0 ? "flex-start" : _ref2$justifyContent,
47
+ _ref2$alignItems = _ref2.alignItems,
48
+ alignItems = _ref2$alignItems === void 0 ? "stretch" : _ref2$alignItems,
49
+ _ref2$alignContent = _ref2.alignContent,
50
+ alignContent = _ref2$alignContent === void 0 ? "normal" : _ref2$alignContent,
51
+ _ref2$alignSelf = _ref2.alignSelf,
52
+ alignSelf = _ref2$alignSelf === void 0 ? "auto" : _ref2$alignSelf,
53
+ props = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
54
+ 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 ");
55
+ });
56
+ var _default = DxcFlex;
57
+ 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
+ type Gap = {
3
+ rowGap: string;
4
+ columnGap: string;
5
+ };
6
+ 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
+ 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 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
+ });