@dxc-technology/halstack-react 0.0.0-cd617f3 → 0.0.0-ce0214d

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 (332) 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 +295 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +15 -47
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +8 -8
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +15 -17
  12. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  13. package/accordion-group/AccordionGroup.test.js +151 -0
  14. package/accordion-group/types.d.ts +8 -8
  15. package/alert/Alert.js +6 -3
  16. package/alert/Alert.stories.tsx +170 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/alert/types.d.ts +1 -1
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -4
  21. package/badge/types.d.ts +5 -0
  22. package/{radio → badge}/types.js +0 -0
  23. package/bleed/Bleed.d.ts +3 -0
  24. package/bleed/Bleed.js +84 -0
  25. package/bleed/Bleed.stories.tsx +342 -0
  26. package/bleed/types.d.ts +37 -0
  27. package/bleed/types.js +5 -0
  28. package/box/Box.d.ts +4 -0
  29. package/box/Box.js +28 -64
  30. package/box/Box.stories.tsx +132 -0
  31. package/box/Box.test.js +18 -0
  32. package/box/types.d.ts +43 -0
  33. package/box/types.js +5 -0
  34. package/button/Button.d.ts +1 -1
  35. package/button/Button.js +24 -32
  36. package/button/Button.stories.tsx +223 -242
  37. package/button/Button.test.js +35 -0
  38. package/button/types.d.ts +9 -13
  39. package/card/Card.d.ts +4 -0
  40. package/card/Card.js +44 -81
  41. package/card/Card.stories.tsx +201 -0
  42. package/card/Card.test.js +50 -0
  43. package/card/ice-cream.jpg +0 -0
  44. package/card/types.d.ts +67 -0
  45. package/card/types.js +5 -0
  46. package/checkbox/Checkbox.d.ts +1 -1
  47. package/checkbox/Checkbox.js +45 -41
  48. package/checkbox/Checkbox.stories.tsx +188 -0
  49. package/checkbox/Checkbox.test.js +78 -0
  50. package/checkbox/types.d.ts +9 -6
  51. package/chip/Chip.d.ts +4 -0
  52. package/chip/Chip.js +16 -76
  53. package/chip/Chip.stories.tsx +119 -0
  54. package/chip/Chip.test.js +56 -0
  55. package/chip/types.d.ts +45 -0
  56. package/chip/types.js +5 -0
  57. package/common/variables.js +264 -363
  58. package/date-input/DateInput.js +63 -52
  59. package/date-input/DateInput.stories.tsx +138 -0
  60. package/date-input/DateInput.test.js +479 -0
  61. package/date-input/types.d.ts +16 -9
  62. package/dialog/Dialog.d.ts +4 -0
  63. package/dialog/Dialog.js +10 -56
  64. package/dialog/Dialog.stories.tsx +212 -0
  65. package/dialog/Dialog.test.js +40 -0
  66. package/dialog/types.d.ts +43 -0
  67. package/dialog/types.js +5 -0
  68. package/dropdown/Dropdown.d.ts +4 -0
  69. package/dropdown/Dropdown.js +28 -87
  70. package/dropdown/Dropdown.stories.tsx +249 -0
  71. package/dropdown/Dropdown.test.js +189 -0
  72. package/dropdown/types.d.ts +80 -0
  73. package/dropdown/types.js +5 -0
  74. package/file-input/FileInput.d.ts +4 -0
  75. package/file-input/FileInput.js +172 -111
  76. package/file-input/FileInput.stories.tsx +507 -0
  77. package/file-input/FileInput.test.js +457 -0
  78. package/file-input/FileItem.d.ts +14 -0
  79. package/file-input/FileItem.js +16 -23
  80. package/file-input/types.d.ts +112 -0
  81. package/file-input/types.js +5 -0
  82. package/footer/Footer.d.ts +4 -0
  83. package/footer/Footer.js +36 -148
  84. package/footer/Footer.stories.tsx +130 -0
  85. package/footer/Footer.test.js +109 -0
  86. package/footer/Icons.d.ts +2 -0
  87. package/footer/Icons.js +3 -3
  88. package/footer/types.d.ts +65 -0
  89. package/footer/types.js +5 -0
  90. package/header/Header.d.ts +7 -0
  91. package/header/Header.js +55 -78
  92. package/header/Header.stories.tsx +172 -0
  93. package/header/Header.test.js +79 -0
  94. package/header/Icons.d.ts +2 -0
  95. package/header/Icons.js +2 -27
  96. package/header/types.d.ts +47 -0
  97. package/header/types.js +5 -0
  98. package/heading/Heading.d.ts +4 -0
  99. package/heading/Heading.js +7 -24
  100. package/heading/Heading.stories.tsx +54 -0
  101. package/heading/Heading.test.js +186 -0
  102. package/heading/types.d.ts +33 -0
  103. package/heading/types.js +5 -0
  104. package/inset/Inset.d.ts +3 -0
  105. package/inset/Inset.js +84 -0
  106. package/inset/Inset.stories.tsx +229 -0
  107. package/inset/types.d.ts +37 -0
  108. package/inset/types.js +5 -0
  109. package/layout/ApplicationLayout.d.ts +11 -0
  110. package/layout/ApplicationLayout.js +84 -120
  111. package/layout/ApplicationLayout.stories.tsx +126 -0
  112. package/layout/Icons.d.ts +5 -0
  113. package/layout/Icons.js +13 -2
  114. package/layout/SidenavContext.d.ts +5 -0
  115. package/layout/SidenavContext.js +19 -0
  116. package/layout/types.d.ts +52 -0
  117. package/layout/types.js +5 -0
  118. package/link/Link.d.ts +4 -0
  119. package/link/Link.js +60 -107
  120. package/link/Link.stories.tsx +186 -0
  121. package/link/Link.test.js +83 -0
  122. package/link/types.d.ts +54 -0
  123. package/link/types.js +5 -0
  124. package/list/List.d.ts +4 -0
  125. package/list/List.js +47 -0
  126. package/list/List.stories.tsx +95 -0
  127. package/list/types.d.ts +7 -0
  128. package/list/types.js +5 -0
  129. package/main.d.ts +12 -9
  130. package/main.js +72 -42
  131. package/number-input/NumberInput.d.ts +4 -0
  132. package/number-input/NumberInput.js +16 -68
  133. package/number-input/NumberInput.stories.tsx +115 -0
  134. package/number-input/NumberInput.test.js +506 -0
  135. package/number-input/NumberInputContext.d.ts +4 -0
  136. package/number-input/NumberInputContext.js +5 -2
  137. package/number-input/numberInputContextTypes.d.ts +19 -0
  138. package/number-input/numberInputContextTypes.js +5 -0
  139. package/number-input/types.d.ts +124 -0
  140. package/number-input/types.js +5 -0
  141. package/package.json +9 -6
  142. package/paginator/Paginator.js +19 -46
  143. package/paginator/Paginator.stories.tsx +63 -0
  144. package/paginator/Paginator.test.js +266 -0
  145. package/password-input/PasswordInput.d.ts +4 -0
  146. package/password-input/PasswordInput.js +22 -55
  147. package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +4 -4
  148. package/password-input/PasswordInput.test.js +180 -0
  149. package/password-input/types.d.ts +110 -0
  150. package/password-input/types.js +5 -0
  151. package/progress-bar/ProgressBar.d.ts +4 -0
  152. package/progress-bar/ProgressBar.js +6 -24
  153. package/progress-bar/ProgressBar.stories.jsx +58 -0
  154. package/progress-bar/ProgressBar.test.js +65 -0
  155. package/progress-bar/types.d.ts +37 -0
  156. package/progress-bar/types.js +5 -0
  157. package/quick-nav/QuickNav.d.ts +4 -0
  158. package/quick-nav/QuickNav.js +112 -0
  159. package/quick-nav/QuickNav.stories.tsx +237 -0
  160. package/quick-nav/types.d.ts +21 -0
  161. package/quick-nav/types.js +5 -0
  162. package/radio-group/Radio.d.ts +4 -0
  163. package/radio-group/Radio.js +141 -0
  164. package/radio-group/RadioGroup.d.ts +4 -0
  165. package/radio-group/RadioGroup.js +282 -0
  166. package/radio-group/RadioGroup.stories.tsx +100 -0
  167. package/radio-group/RadioGroup.test.js +695 -0
  168. package/radio-group/types.d.ts +114 -0
  169. package/radio-group/types.js +5 -0
  170. package/resultsetTable/ResultsetTable.d.ts +4 -0
  171. package/resultsetTable/ResultsetTable.js +9 -29
  172. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  173. package/resultsetTable/ResultsetTable.test.js +306 -0
  174. package/resultsetTable/types.d.ts +67 -0
  175. package/resultsetTable/types.js +5 -0
  176. package/row/Row.d.ts +3 -0
  177. package/row/Row.js +127 -0
  178. package/row/Row.stories.tsx +237 -0
  179. package/row/types.d.ts +28 -0
  180. package/row/types.js +5 -0
  181. package/select/Icons.d.ts +10 -0
  182. package/select/Icons.js +93 -0
  183. package/select/Listbox.d.ts +4 -0
  184. package/select/Listbox.js +152 -0
  185. package/select/Option.d.ts +4 -0
  186. package/select/Option.js +110 -0
  187. package/select/Select.d.ts +4 -0
  188. package/select/Select.js +122 -342
  189. package/select/Select.stories.tsx +594 -0
  190. package/select/Select.test.js +2120 -0
  191. package/select/types.d.ts +213 -0
  192. package/select/types.js +5 -0
  193. package/sidenav/Sidenav.d.ts +9 -0
  194. package/sidenav/Sidenav.js +26 -24
  195. package/sidenav/Sidenav.stories.tsx +182 -0
  196. package/sidenav/Sidenav.test.js +56 -0
  197. package/sidenav/types.d.ts +50 -0
  198. package/sidenav/types.js +5 -0
  199. package/slider/Slider.d.ts +4 -0
  200. package/slider/Slider.js +63 -85
  201. package/slider/Slider.stories.tsx +177 -0
  202. package/slider/Slider.test.js +150 -0
  203. package/slider/types.d.ts +82 -0
  204. package/slider/types.js +5 -0
  205. package/spinner/Spinner.d.ts +4 -0
  206. package/spinner/Spinner.js +9 -26
  207. package/spinner/Spinner.stories.jsx +103 -0
  208. package/spinner/Spinner.test.js +64 -0
  209. package/spinner/types.d.ts +32 -0
  210. package/spinner/types.js +5 -0
  211. package/stack/Stack.d.ts +3 -0
  212. package/stack/Stack.js +97 -0
  213. package/stack/Stack.stories.tsx +164 -0
  214. package/stack/types.d.ts +24 -0
  215. package/stack/types.js +5 -0
  216. package/switch/Switch.d.ts +1 -1
  217. package/switch/Switch.js +37 -21
  218. package/switch/Switch.stories.tsx +160 -0
  219. package/switch/Switch.test.js +98 -0
  220. package/switch/types.d.ts +6 -2
  221. package/table/Table.d.ts +4 -0
  222. package/table/Table.js +3 -3
  223. package/table/Table.stories.jsx +277 -0
  224. package/table/Table.test.js +26 -0
  225. package/table/types.d.ts +21 -0
  226. package/table/types.js +5 -0
  227. package/tabs/Tabs.d.ts +4 -0
  228. package/tabs/Tabs.js +24 -72
  229. package/tabs/Tabs.stories.tsx +112 -0
  230. package/tabs/Tabs.test.js +140 -0
  231. package/tabs/types.d.ts +82 -0
  232. package/tabs/types.js +5 -0
  233. package/tabs-nav/NavTabs.d.ts +8 -0
  234. package/tabs-nav/NavTabs.js +125 -0
  235. package/tabs-nav/NavTabs.stories.tsx +170 -0
  236. package/tabs-nav/NavTabs.test.js +82 -0
  237. package/tabs-nav/Tab.d.ts +4 -0
  238. package/tabs-nav/Tab.js +132 -0
  239. package/tabs-nav/types.d.ts +53 -0
  240. package/tabs-nav/types.js +5 -0
  241. package/tag/Tag.d.ts +4 -0
  242. package/tag/Tag.js +34 -59
  243. package/tag/Tag.stories.tsx +142 -0
  244. package/tag/Tag.test.js +60 -0
  245. package/tag/types.d.ts +69 -0
  246. package/tag/types.js +5 -0
  247. package/text/Text.d.ts +7 -0
  248. package/text/Text.js +30 -0
  249. package/text/Text.stories.tsx +19 -0
  250. package/text-input/Suggestion.d.ts +4 -0
  251. package/text-input/Suggestion.js +55 -0
  252. package/text-input/TextInput.d.ts +4 -0
  253. package/text-input/TextInput.js +91 -146
  254. package/text-input/TextInput.stories.tsx +474 -0
  255. package/text-input/TextInput.test.js +1712 -0
  256. package/text-input/types.d.ts +178 -0
  257. package/text-input/types.js +5 -0
  258. package/textarea/Textarea.d.ts +4 -0
  259. package/textarea/Textarea.js +39 -79
  260. package/textarea/Textarea.stories.jsx +157 -0
  261. package/textarea/Textarea.test.js +437 -0
  262. package/textarea/types.d.ts +137 -0
  263. package/textarea/types.js +5 -0
  264. package/toggle-group/ToggleGroup.d.ts +4 -0
  265. package/toggle-group/ToggleGroup.js +18 -46
  266. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  267. package/toggle-group/ToggleGroup.test.js +156 -0
  268. package/toggle-group/types.d.ts +105 -0
  269. package/toggle-group/types.js +5 -0
  270. package/useTheme.d.ts +2 -0
  271. package/useTheme.js +2 -2
  272. package/useTranslatedLabels.d.ts +2 -0
  273. package/useTranslatedLabels.js +20 -0
  274. package/wizard/Wizard.d.ts +4 -0
  275. package/wizard/Wizard.js +115 -94
  276. package/wizard/Wizard.stories.tsx +214 -0
  277. package/wizard/Wizard.test.js +141 -0
  278. package/wizard/types.d.ts +64 -0
  279. package/wizard/types.js +5 -0
  280. package/ThemeContext.js +0 -246
  281. package/V3Select/V3Select.js +0 -455
  282. package/V3Select/index.d.ts +0 -27
  283. package/V3Textarea/V3Textarea.js +0 -260
  284. package/V3Textarea/index.d.ts +0 -27
  285. package/box/index.d.ts +0 -25
  286. package/card/index.d.ts +0 -22
  287. package/chip/index.d.ts +0 -22
  288. package/date/Date.js +0 -373
  289. package/date/index.d.ts +0 -27
  290. package/dialog/index.d.ts +0 -18
  291. package/dropdown/index.d.ts +0 -26
  292. package/file-input/index.d.ts +0 -81
  293. package/footer/index.d.ts +0 -25
  294. package/header/index.d.ts +0 -25
  295. package/heading/index.d.ts +0 -17
  296. package/input-text/Icons.js +0 -22
  297. package/input-text/InputText.js +0 -611
  298. package/input-text/index.d.ts +0 -36
  299. package/link/index.d.ts +0 -23
  300. package/number-input/index.d.ts +0 -113
  301. package/password-input/index.d.ts +0 -94
  302. package/progress-bar/index.d.ts +0 -18
  303. package/radio/Radio.d.ts +0 -4
  304. package/radio/Radio.js +0 -174
  305. package/radio/types.d.ts +0 -54
  306. package/resultsetTable/index.d.ts +0 -19
  307. package/select/index.d.ts +0 -131
  308. package/sidenav/index.d.ts +0 -13
  309. package/slider/index.d.ts +0 -29
  310. package/spinner/index.d.ts +0 -17
  311. package/table/index.d.ts +0 -13
  312. package/tabs/index.d.ts +0 -19
  313. package/tag/index.d.ts +0 -24
  314. package/text-input/index.d.ts +0 -135
  315. package/textarea/index.d.ts +0 -117
  316. package/toggle/Toggle.js +0 -186
  317. package/toggle/index.d.ts +0 -21
  318. package/toggle-group/index.d.ts +0 -21
  319. package/upload/Upload.js +0 -201
  320. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  321. package/upload/buttons-upload/Icons.js +0 -40
  322. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  323. package/upload/dragAndDropArea/Icons.js +0 -39
  324. package/upload/file-upload/FileToUpload.js +0 -115
  325. package/upload/file-upload/Icons.js +0 -66
  326. package/upload/files-upload/FilesToUpload.js +0 -109
  327. package/upload/index.d.ts +0 -15
  328. package/upload/transaction/Icons.js +0 -160
  329. package/upload/transaction/Transaction.js +0 -104
  330. package/upload/transactions/Transactions.js +0 -94
  331. package/wizard/Icons.js +0 -65
  332. package/wizard/index.d.ts +0 -18
package/link/Link.js CHANGED
@@ -9,79 +9,80 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
17
 
18
- var _react = _interopRequireDefault(require("react"));
18
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
19
 
20
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
20
+ var _react = _interopRequireWildcard(require("react"));
21
21
 
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
23
 
24
24
  var _variables = require("../common/variables.js");
25
25
 
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
26
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
27
 
28
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
28
+ var _templateObject, _templateObject2, _templateObject3;
29
+
30
+ var _excluded = ["inheritColor", "disabled", "icon", "iconPosition", "href", "newWindow", "onClick", "margin", "tabIndex", "children"];
29
31
 
30
32
  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); }
31
33
 
32
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
33
35
 
34
- var DxcLink = function DxcLink(_ref) {
35
- var _ref$inheritColor = _ref.inheritColor,
36
- inheritColor = _ref$inheritColor === void 0 ? false : _ref$inheritColor,
37
- _ref$disabled = _ref.disabled,
38
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
39
- iconSrc = _ref.iconSrc,
36
+ var LinkContent = /*#__PURE__*/_react["default"].memo(function (_ref) {
37
+ var iconPosition = _ref.iconPosition,
40
38
  icon = _ref.icon,
41
- _ref$iconPosition = _ref.iconPosition,
42
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
43
- _ref$href = _ref.href,
44
- href = _ref$href === void 0 ? "" : _ref$href,
45
- _ref$newWindow = _ref.newWindow,
46
- newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
47
- onClick = _ref.onClick,
48
- _ref$text = _ref.text,
49
- text = _ref$text === void 0 ? "" : _ref$text,
50
- margin = _ref.margin,
51
- _ref$tabIndex = _ref.tabIndex,
52
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
53
- var colorsTheme = (0, _useTheme["default"])();
54
-
55
- var linkContent = /*#__PURE__*/_react["default"].createElement(LinkText, {
39
+ children = _ref.children;
40
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, iconPosition === "after" && children, icon && /*#__PURE__*/_react["default"].createElement(LinkIconContainer, {
56
41
  iconPosition: iconPosition
57
- }, text, icon ? /*#__PURE__*/_react["default"].createElement(LinkIconContainer, {
58
- iconPosition: iconPosition
59
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(LinkIcon, {
60
- src: iconSrc,
61
- iconPosition: iconPosition
62
- }));
42
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(LinkIcon, {
43
+ src: icon
44
+ }) : icon), iconPosition === "before" && children);
45
+ });
63
46
 
47
+ var DxcLink = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
48
+ var _ref2$inheritColor = _ref2.inheritColor,
49
+ inheritColor = _ref2$inheritColor === void 0 ? false : _ref2$inheritColor,
50
+ _ref2$disabled = _ref2.disabled,
51
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
52
+ icon = _ref2.icon,
53
+ _ref2$iconPosition = _ref2.iconPosition,
54
+ iconPosition = _ref2$iconPosition === void 0 ? "before" : _ref2$iconPosition,
55
+ _ref2$href = _ref2.href,
56
+ href = _ref2$href === void 0 ? "" : _ref2$href,
57
+ _ref2$newWindow = _ref2.newWindow,
58
+ newWindow = _ref2$newWindow === void 0 ? false : _ref2$newWindow,
59
+ onClick = _ref2.onClick,
60
+ margin = _ref2.margin,
61
+ _ref2$tabIndex = _ref2.tabIndex,
62
+ tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex,
63
+ children = _ref2.children,
64
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
65
+ var colorsTheme = (0, _useTheme["default"])();
64
66
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
65
67
  theme: colorsTheme.link
66
- }, /*#__PURE__*/_react["default"].createElement(DxcLinkContainer, {
67
- margin: margin
68
- }, onClick ? /*#__PURE__*/_react["default"].createElement(StyledButton, {
69
- type: "button",
68
+ }, /*#__PURE__*/_react["default"].createElement(StyledLink, (0, _extends2["default"])({
69
+ as: href ? "a" : "button",
70
+ tabIndex: tabIndex,
70
71
  onClick: !disabled && onClick,
71
- margin: margin,
72
+ href: !disabled && href ? href : undefined,
73
+ target: href ? newWindow ? "_blank" : "_self" : undefined,
72
74
  disabled: disabled,
73
- inheritColor: inheritColor
74
- }, linkContent) : /*#__PURE__*/_react["default"].createElement(StyledLink, {
75
- tabIndex: tabIndex,
76
- href: !disabled && href,
77
- target: newWindow ? "_blank" : "_self",
75
+ inheritColor: inheritColor,
78
76
  margin: margin,
79
- disabled: disabled,
80
- inheritColor: inheritColor
81
- }, linkContent)));
82
- };
77
+ ref: ref
78
+ }, otherProps), /*#__PURE__*/_react["default"].createElement(LinkContent, {
79
+ iconPosition: iconPosition,
80
+ icon: icon,
81
+ children: children
82
+ })));
83
+ });
83
84
 
84
- var DxcLinkContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
85
+ var StyledLink = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n font-family: ", ";\n text-decoration-color: transparent;\n width: fit-content;\n\n ", "\n ", "\n color: ", ";\n ", "\n\n &:visited {\n color: ", ";\n &:hover {\n ", "\n }\n }\n &:hover {\n ", "\n }\n &:focus {\n border-radius: 2px;\n outline: 2px solid ", ";\n ", "\n }\n &:active {\n ", "\n }\n"])), function (props) {
85
86
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
86
87
  }, function (props) {
87
88
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -91,29 +92,15 @@ var DxcLinkContainer = _styledComponents["default"].div(_templateObject || (_tem
91
92
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
92
93
  }, function (props) {
93
94
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
94
- });
95
-
96
- var StyledLink = _styledComponents["default"].a(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n\n text-decoration-color: transparent;\n ", "\n\n &:visited {\n color: ", ";\n &:hover {\n ", "\n }\n }\n &:hover {\n ", "\n }\n &:focus {\n outline-color: ", ";\n outline-width: 2px;\n ", "\n }\n &:active {\n ", "\n }\n"])), function (props) {
97
- return props.inheritColor ? "inherit" : !props.disabled ? props.theme.fontColor : props.theme.disabledColor;
98
- }, function (props) {
99
- return props.disabled ? "pointer-events: none;" : "";
100
95
  }, function (props) {
101
- return "padding-bottom: ".concat(props.theme.underlineSpacing, ";\n border-bottom: ").concat(props.theme.underlineThickness, " ").concat(props.theme.underlineStyle, " transparent;");
102
- }, function (props) {
103
- return !props.inheritColor ? props.theme.visitedFontColor : "";
104
- }, function (props) {
105
- return "color: ".concat(props.theme.visitedFontColor, ";\n border-bottom-color: ").concat(props.theme.visitedUnderlineColor, ";");
96
+ return props.theme.fontSize;
106
97
  }, function (props) {
107
- return "color: ".concat(props.theme.hoverFontColor, ";\n border-bottom-color: ").concat(props.theme.hoverUnderlineColor, ";\n cursor: pointer;");
98
+ return props.theme.fontWeight;
108
99
  }, function (props) {
109
- return props.theme.focusColor;
100
+ return props.theme.fontStyle;
110
101
  }, function (props) {
111
- return props.disabled && "outline: none";
102
+ return props.theme.fontFamily;
112
103
  }, function (props) {
113
- return "color: ".concat(props.theme.activeFontColor, " !important;\n border-bottom-color: ").concat(props.theme.activeUnderlineColor, " !important;");
114
- });
115
-
116
- var StyledButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n text-decoration-color: transparent;\n\n ", "\n ", "\n color: ", ";\n ", "\n\n &:hover {\n ", "\n }\n &:focus {\n outline-color: ", ";\n outline-width: 2px;\n outline-offset: 1px;\n ", "\n }\n &:active {\n ", "\n }\n"])), function (props) {
117
104
  return "padding-bottom: ".concat(props.theme.underlineSpacing, ";\n border-bottom: ").concat(props.theme.underlineThickness, " ").concat(props.theme.underlineStyle, " transparent;");
118
105
  }, function (props) {
119
106
  return props.disabled && "cursor: default;";
@@ -121,6 +108,10 @@ var StyledButton = _styledComponents["default"].button(_templateObject3 || (_tem
121
108
  return props.inheritColor ? "inherit" : !props.disabled ? props.theme.fontColor : props.theme.disabledColor;
122
109
  }, function (props) {
123
110
  return props.disabled ? "pointer-events: none;" : "";
111
+ }, function (props) {
112
+ return !props.inheritColor && !props.disabled ? props.theme.visitedFontColor : "";
113
+ }, function (props) {
114
+ return "color: ".concat(props.theme.visitedFontColor, ";\n border-bottom-color: ").concat(props.theme.visitedUnderlineColor, ";");
124
115
  }, function (props) {
125
116
  return "color: ".concat(props.theme.hoverFontColor, ";\n border-bottom-color: ").concat(props.theme.hoverUnderlineColor, ";\n cursor: pointer;");
126
117
  }, function (props) {
@@ -131,29 +122,9 @@ var StyledButton = _styledComponents["default"].button(_templateObject3 || (_tem
131
122
  return "color: ".concat(props.theme.activeFontColor, " !important;\n border-bottom-color: ").concat(props.theme.activeUnderlineColor, " !important;");
132
123
  });
133
124
 
134
- var LinkText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n font-family: ", ";\n display: inline-flex;\n flex-direction: ", ";\n justify-content: ", ";\n align-items: center;\n max-width: 100%;\n"])), function (props) {
135
- return props.theme.fontSize;
136
- }, function (props) {
137
- return props.theme.fontWeight;
138
- }, function (props) {
139
- return props.theme.fontStyle;
140
- }, function (props) {
141
- return props.theme.fontFamily;
142
- }, function (props) {
143
- return props.iconPosition === "after" ? "row" : "row-reverse";
144
- }, function (props) {
145
- return props.iconPosition === "after" ? "flex-start" : "flex-end";
146
- });
147
-
148
- var LinkIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", ";\n"])), function (props) {
149
- return props.theme.iconSize;
150
- }, function (props) {
151
- return props.theme.iconSize;
152
- }, function (props) {
153
- return "".concat(props.iconPosition === "before" ? "margin-right" : "margin-left", ": ").concat(props.theme.iconSpacing);
154
- });
125
+ var LinkIcon = _styledComponents["default"].img(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])([""])));
155
126
 
156
- var LinkIconContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", ";\n overflow: hidden;\n \n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
127
+ var LinkIconContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", ";\n overflow: hidden;\n align-self: center;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
157
128
  return props.theme.iconSize;
158
129
  }, function (props) {
159
130
  return props.theme.iconSize;
@@ -161,23 +132,5 @@ var LinkIconContainer = _styledComponents["default"].div(_templateObject6 || (_t
161
132
  return "".concat(props.iconPosition === "before" ? "margin-right" : "margin-left", ": ").concat(props.theme.iconSpacing);
162
133
  });
163
134
 
164
- DxcLink.propTypes = {
165
- inheritColor: _propTypes["default"].bool,
166
- disabled: _propTypes["default"].bool,
167
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
168
- iconSrc: _propTypes["default"].string,
169
- iconPosition: _propTypes["default"].oneOf(["after", "before"]),
170
- href: _propTypes["default"].string,
171
- onClick: _propTypes["default"].func,
172
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
173
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
174
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
175
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
176
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
177
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
178
- newWindow: _propTypes["default"].bool,
179
- text: _propTypes["default"].string,
180
- tabIndex: _propTypes["default"].number
181
- };
182
135
  var _default = DxcLink;
183
136
  exports["default"] = _default;
@@ -0,0 +1,186 @@
1
+ import React from "react";
2
+ import DxcLink from "./Link";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+
6
+ export default {
7
+ title: "Link",
8
+ component: DxcLink,
9
+ };
10
+
11
+ const icon = (
12
+ <svg viewBox="0 0 24 24" enable-background="new 0 0 24 24" fill="currentColor">
13
+ <g id="Bounding_Box">
14
+ <rect fill="none" width="24" height="24" />
15
+ </g>
16
+ <g id="Master">
17
+ <path d="M19,9.3V4h-3v2.6L12,3L2,12h3v8h5v-6h4v6h5v-8h3L19,9.3z M10,10c0-1.1,0.9-2,2-2s2,0.9,2,2H10z" />
18
+ </g>
19
+ </svg>
20
+ );
21
+
22
+ export const Chromatic = () => (
23
+ <>
24
+ <Title title="With anchor" theme="light" level={2} />
25
+ <ExampleContainer>
26
+ <Title title="Disabled" theme="light" level={4} />
27
+ <DxcLink disabled>Test</DxcLink>
28
+ <Title title="Icon before" theme="light" level={4} />
29
+ <DxcLink href="https://www.google.com" icon={icon} iconPosition="before">
30
+ Test
31
+ </DxcLink>
32
+ <Title title="Icon after" theme="light" level={4} />
33
+ <DxcLink
34
+ href="https://www.youtube.com/"
35
+ icon="https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png"
36
+ iconPosition="after"
37
+ >
38
+ Test
39
+ </DxcLink>
40
+ </ExampleContainer>
41
+ <ExampleContainer pseudoState="pseudo-hover">
42
+ <Title title="With link hovered" theme="light" level={4} />
43
+ <DxcLink href="https://www.dxc.com">Test</DxcLink>
44
+ </ExampleContainer>
45
+ <ExampleContainer pseudoState="pseudo-focus">
46
+ <Title title="With link focused" theme="light" level={4} />
47
+ <DxcLink href="https://www.dxc.com">Test</DxcLink>
48
+ </ExampleContainer>
49
+ <ExampleContainer pseudoState="pseudo-active">
50
+ <Title title="With link active" theme="light" level={4} />
51
+ <DxcLink href="https://www.dxc.com">Test</DxcLink>
52
+ </ExampleContainer>
53
+ <ExampleContainer pseudoState="pseudo-visited">
54
+ <Title title="With link visited" theme="light" level={4} />
55
+ <DxcLink href="https://www.amazon.com">Test</DxcLink>
56
+ </ExampleContainer>
57
+ <ExampleContainer>
58
+ <Title title="Inherit color" theme="light" level={4} />
59
+ This is a <DxcLink inheritColor>Test</DxcLink>.
60
+ </ExampleContainer>
61
+ <ExampleContainer pseudoState="pseudo-focus">
62
+ <Title title="With brackets and focus" theme="light" level={4} />
63
+ This is a (
64
+ <DxcLink inheritColor href="https://www.google.com">
65
+ Test
66
+ </DxcLink>
67
+ ).
68
+ </ExampleContainer>
69
+ <ExampleContainer pseudoState="pseudo-hover">
70
+ <Title title="Long text with hover" theme="light" level={4} />
71
+ Lorem <DxcLink href="https://www.google.com">Test</DxcLink> ipsum dolor sit amet, consectetur adipiscing elit, sed
72
+ do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
73
+ ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
74
+ esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
75
+ officia deserunt mollit anim id est laborum.
76
+ </ExampleContainer>
77
+ <ExampleContainer pseudoState="pseudo-focus">
78
+ <Title title="Long text with focus" theme="light" level={4} />
79
+ Lorem <DxcLink href="https://www.google.com">Test</DxcLink> ipsum dolor sit amet, consectetur adipiscing elit, sed
80
+ do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
81
+ ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
82
+ esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui
83
+ officia deserunt mollit anim id est laborum.
84
+ </ExampleContainer>
85
+ <Title title="With button" theme="light" level={2} />
86
+ <ExampleContainer>
87
+ <Title title="Disabled" theme="light" level={4} />
88
+ <DxcLink onClick={() => {}} disabled>
89
+ Test
90
+ </DxcLink>
91
+ <Title title="Icon before" theme="light" level={4} />
92
+ <DxcLink onClick={() => {}} icon={icon} iconPosition="before">
93
+ Test
94
+ </DxcLink>
95
+ <Title title="Icon after" theme="light" level={4} />
96
+ <DxcLink onClick={() => {}} icon={icon} iconPosition="after">
97
+ Test
98
+ </DxcLink>
99
+ </ExampleContainer>
100
+ <ExampleContainer pseudoState="pseudo-hover">
101
+ <Title title="With link hovered" theme="light" level={4} />
102
+ <DxcLink onClick={() => {}}>Test</DxcLink>
103
+ </ExampleContainer>
104
+ <ExampleContainer pseudoState="pseudo-focus">
105
+ <Title title="With link focused" theme="light" level={4} />
106
+ <DxcLink onClick={() => {}}>Test</DxcLink>
107
+ </ExampleContainer>
108
+ <ExampleContainer pseudoState="pseudo-active">
109
+ <Title title="With link active" theme="light" level={4} />
110
+ <DxcLink onClick={() => {}}>Test</DxcLink>
111
+ </ExampleContainer>
112
+ <ExampleContainer pseudoState="pseudo-visited">
113
+ <Title title="With link visited" theme="light" level={4} />
114
+ <DxcLink onClick={() => {}}>Test</DxcLink>
115
+ </ExampleContainer>
116
+ <ExampleContainer>
117
+ <Title title="Inherit color" theme="light" level={4} />
118
+ This is a{" "}
119
+ <DxcLink onClick={() => {}} inheritColor>
120
+ Test
121
+ </DxcLink>
122
+ .
123
+ </ExampleContainer>
124
+ <ExampleContainer pseudoState="pseudo-focus">
125
+ <Title title="With brackets and focus" theme="light" level={4} />
126
+ This is a (
127
+ <DxcLink onClick={() => {}} inheritColor>
128
+ Test
129
+ </DxcLink>
130
+ ).
131
+ </ExampleContainer>
132
+ <ExampleContainer pseudoState="pseudo-hover">
133
+ <Title title="Long text with hover" theme="light" level={4} />
134
+ Lorem{" "}
135
+ <DxcLink onClick={() => {}} href="https://www.google.com">
136
+ Test
137
+ </DxcLink>{" "}
138
+ ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
139
+ aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
140
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
141
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
142
+ </ExampleContainer>
143
+ <ExampleContainer pseudoState="pseudo-focus">
144
+ <Title title="Long text with focus" theme="light" level={4} />
145
+ Lorem{" "}
146
+ <DxcLink onClick={() => {}} href="https://www.google.com">
147
+ Test
148
+ </DxcLink>{" "}
149
+ ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
150
+ aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
151
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
152
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
153
+ </ExampleContainer>
154
+ <Title title="Margins" theme="light" level={2} />
155
+ <ExampleContainer>
156
+ <Title title="Xxsmall margin" theme="light" level={4} />
157
+ <DxcLink margin="xxsmall" href="https://www.facebook.com/">
158
+ Test
159
+ </DxcLink>
160
+ <Title title="Xsmall margin" theme="light" level={4} />
161
+ <DxcLink margin="xsmall" href="https://www.linkedin.com/">
162
+ Test
163
+ </DxcLink>
164
+ <Title title="Small margin" theme="light" level={4} />
165
+ <DxcLink margin="small" href="https://www.linkedin.com/">
166
+ Test
167
+ </DxcLink>
168
+ <Title title="Medium margin" theme="light" level={4} />
169
+ <DxcLink margin="medium" href="https://www.linkedin.com/">
170
+ Test
171
+ </DxcLink>
172
+ <Title title="Large margin" theme="light" level={4} />
173
+ <DxcLink margin="large" href="https://www.linkedin.com/">
174
+ Test
175
+ </DxcLink>
176
+ <Title title="Xlarge margin" theme="light" level={4} />
177
+ <DxcLink margin="xlarge" href="https://www.linkedin.com/">
178
+ Test
179
+ </DxcLink>
180
+ <Title title="Xxlarge margin" theme="light" level={4} />
181
+ <DxcLink margin="xxlarge" href="https://www.linkedin.com/">
182
+ Test
183
+ </DxcLink>
184
+ </ExampleContainer>
185
+ </>
186
+ );
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Link = _interopRequireDefault(require("./Link"));
10
+
11
+ describe("Link component tests", function () {
12
+ test("Link renders with correct text", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link")),
14
+ getByText = _render.getByText;
15
+
16
+ expect(getByText("Link")).toBeTruthy();
17
+ });
18
+ test("Link renders with correct href", function () {
19
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
20
+ href: "/testPage"
21
+ }, "Link")),
22
+ getByRole = _render2.getByRole;
23
+
24
+ expect(getByRole("link").getAttribute("href")).toEqual("/testPage");
25
+ });
26
+ test("Link renders with correct disabled state", function () {
27
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
28
+ href: "/testPage",
29
+ disabled: true
30
+ }, "Link")),
31
+ getByText = _render3.getByText;
32
+
33
+ expect(getByText("Link").hasAttribute("href")).toBeFalsy();
34
+
35
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
36
+ onClick: function onClick() {
37
+ return console.log("Andorra");
38
+ },
39
+ disabled: true
40
+ }, "LinkButton")),
41
+ getByTextLinkButton = _render4.getByText;
42
+
43
+ expect(getByTextLinkButton("LinkButton").hasAttribute("onclick")).toBeFalsy();
44
+ });
45
+ test("Link open new tab", function () {
46
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
47
+ href: "/testPage",
48
+ newWindow: true
49
+ }, "Link")),
50
+ getByRole = _render5.getByRole;
51
+
52
+ expect(getByRole("link").getAttribute("target")).toEqual("_blank");
53
+ });
54
+ test("Link onClick called", function () {
55
+ var onClick = jest.fn();
56
+
57
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
58
+ onClick: onClick
59
+ }, "Link")),
60
+ getByText = _render6.getByText;
61
+
62
+ var link = getByText("Link");
63
+
64
+ _react2.fireEvent.click(link);
65
+
66
+ expect(onClick).toHaveBeenCalled();
67
+ });
68
+ test("Disabled link onClick not called", function () {
69
+ var onClick = jest.fn();
70
+
71
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Link["default"], {
72
+ onClick: onClick,
73
+ disabled: true
74
+ }, "Link")),
75
+ getByText = _render7.getByText;
76
+
77
+ var link = getByText("Link");
78
+
79
+ _react2.fireEvent.click(link);
80
+
81
+ expect(onClick).toHaveBeenCalledTimes(0);
82
+ });
83
+ });
@@ -0,0 +1,54 @@
1
+ /// <reference types="react" />
2
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement>;
10
+ export declare type LinkProps = {
11
+ /**
12
+ * If true, the color is inherited from parent.
13
+ */
14
+ inheritColor?: boolean;
15
+ /**
16
+ * If true, the link is disabled.
17
+ */
18
+ disabled?: boolean;
19
+ /**
20
+ * Indicates the position of the icon in the component.
21
+ */
22
+ iconPosition?: "before" | "after";
23
+ /**
24
+ * Page to be opened when the user clicks on the link.
25
+ */
26
+ href?: string;
27
+ /**
28
+ * If true, the page is opened in a new browser tab.
29
+ */
30
+ newWindow?: boolean;
31
+ /**
32
+ * If defined, the link will be displayed as a button. This
33
+ * function will be called when the user clicks the link.
34
+ */
35
+ onClick?: () => void;
36
+ /**
37
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
38
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
39
+ */
40
+ margin?: Space | Margin;
41
+ /**
42
+ * Value of the tabindex.
43
+ */
44
+ tabIndex?: number;
45
+ /**
46
+ * Content of the link.
47
+ */
48
+ children: string;
49
+ /**
50
+ * Element or path used as the icon that will be placed next to the link text.
51
+ */
52
+ icon?: string | SVG;
53
+ };
54
+ export {};
package/link/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/list/List.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import ListPropsType from "./types";
3
+ declare function List({ children, type, gutter }: ListPropsType): JSX.Element;
4
+ export default List;
package/list/List.js ADDED
@@ -0,0 +1,47 @@
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 _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _Stack = _interopRequireDefault(require("../stack/Stack"));
17
+
18
+ var _Text = _interopRequireDefault(require("../text/Text"));
19
+
20
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
21
+
22
+ function List(_ref) {
23
+ var children = _ref.children,
24
+ _ref$type = _ref.type,
25
+ type = _ref$type === void 0 ? "disc" : _ref$type,
26
+ _ref$gutter = _ref.gutter,
27
+ gutter = _ref$gutter === void 0 ? "xxsmall" : _ref$gutter;
28
+ return /*#__PURE__*/_react["default"].createElement(_Stack["default"], {
29
+ as: type === "number" ? "ol" : "ul",
30
+ gutter: gutter
31
+ }, _react["default"].Children.map(children, function (child, index) {
32
+ return /*#__PURE__*/_react["default"].createElement(ListItem, null, type === "number" ? /*#__PURE__*/_react["default"].createElement(Number, null, /*#__PURE__*/_react["default"].createElement(_Text["default"], null, index + 1, ".")) : type === "square" ? /*#__PURE__*/_react["default"].createElement(Square, null) : type === "circle" ? /*#__PURE__*/_react["default"].createElement(Circle, null) : /*#__PURE__*/_react["default"].createElement(Disc, null), child);
33
+ }));
34
+ }
35
+
36
+ var Number = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n user-select: none;\n margin-right: 10px;\n flex-shrink: 0;\n"])));
37
+
38
+ var Square = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: black;\n width: 5px;\n height: 5px;\n flex-shrink: 0;\n margin-top: 10px;\n margin-right: 10px;\n"])));
39
+
40
+ var Circle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n width: 5px;\n height: 5px;\n border-radius: 50%;\n border: 1px solid black;\n flex-shrink: 0;\n margin-top: 10px;\n margin-right: 10px;\n box-sizing: border-box;\n"])));
41
+
42
+ var Disc = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: black;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n flex-shrink: 0;\n margin-top: 10px;\n margin-right: 10px;\n"])));
43
+
44
+ var ListItem = _styledComponents["default"].li(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px;\n padding: 0px;\n list-style: none;\n display: flex;\n"])));
45
+
46
+ var _default = List;
47
+ exports["default"] = _default;