@dxc-technology/halstack-react 0.0.0-b061aa1 → 0.0.0-b0ab1e3

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 (229) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +10 -0
  4. package/{ThemeContext.js → HalstackContext.js} +31 -34
  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 +14 -16
  12. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  13. package/accordion-group/AccordionGroup.test.js +151 -0
  14. package/accordion-group/types.d.ts +8 -8
  15. package/alert/Alert.js +2 -2
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +1 -1
  19. package/badge/types.d.ts +4 -0
  20. package/badge/types.js +5 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +84 -0
  23. package/bleed/Bleed.stories.tsx +342 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +2 -2
  27. package/box/Box.test.js +18 -0
  28. package/button/Button.d.ts +1 -1
  29. package/button/Button.js +18 -25
  30. package/button/Button.stories.tsx +6 -8
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +3 -7
  33. package/card/Card.js +28 -29
  34. package/card/Card.stories.tsx +1 -1
  35. package/card/Card.test.js +50 -0
  36. package/checkbox/Checkbox.d.ts +1 -1
  37. package/checkbox/Checkbox.js +42 -41
  38. package/checkbox/Checkbox.stories.tsx +124 -128
  39. package/checkbox/Checkbox.test.js +78 -0
  40. package/checkbox/types.d.ts +8 -4
  41. package/chip/Chip.d.ts +1 -1
  42. package/chip/Chip.js +17 -55
  43. package/chip/Chip.stories.tsx +6 -8
  44. package/chip/Chip.test.js +56 -0
  45. package/chip/types.d.ts +7 -15
  46. package/common/variables.js +59 -265
  47. package/date-input/DateInput.js +60 -52
  48. package/date-input/DateInput.stories.tsx +7 -7
  49. package/date-input/DateInput.test.js +479 -0
  50. package/date-input/types.d.ts +16 -9
  51. package/dialog/Dialog.js +8 -35
  52. package/dialog/Dialog.test.js +40 -0
  53. package/dropdown/Dropdown.d.ts +1 -1
  54. package/dropdown/Dropdown.js +22 -48
  55. package/dropdown/Dropdown.stories.tsx +249 -0
  56. package/dropdown/Dropdown.test.js +189 -0
  57. package/dropdown/types.d.ts +5 -14
  58. package/file-input/FileInput.d.ts +1 -1
  59. package/file-input/FileInput.js +148 -69
  60. package/file-input/FileInput.stories.tsx +507 -0
  61. package/file-input/FileInput.test.js +457 -0
  62. package/file-input/FileItem.js +3 -3
  63. package/file-input/types.d.ts +32 -7
  64. package/footer/Footer.d.ts +1 -1
  65. package/footer/Footer.js +28 -111
  66. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  67. package/footer/Footer.test.js +109 -0
  68. package/footer/Icons.d.ts +2 -0
  69. package/footer/Icons.js +3 -3
  70. package/footer/types.d.ts +5 -9
  71. package/header/Header.js +22 -46
  72. package/header/Header.stories.tsx +46 -36
  73. package/header/Header.test.js +79 -0
  74. package/header/Icons.d.ts +2 -0
  75. package/heading/Heading.js +1 -1
  76. package/heading/Heading.stories.tsx +3 -2
  77. package/heading/Heading.test.js +186 -0
  78. package/inset/Inset.d.ts +3 -0
  79. package/inset/Inset.js +84 -0
  80. package/inset/Inset.stories.tsx +229 -0
  81. package/inset/types.d.ts +37 -0
  82. package/inset/types.js +5 -0
  83. package/layout/ApplicationLayout.js +9 -15
  84. package/layout/ApplicationLayout.stories.tsx +171 -0
  85. package/link/Link.js +10 -22
  86. package/link/Link.stories.tsx +6 -1
  87. package/link/Link.test.js +91 -0
  88. package/link/types.d.ts +5 -9
  89. package/list/List.d.ts +4 -0
  90. package/list/List.js +47 -0
  91. package/list/List.stories.tsx +95 -0
  92. package/list/types.d.ts +7 -0
  93. package/list/types.js +5 -0
  94. package/main.d.ts +11 -8
  95. package/main.js +66 -42
  96. package/number-input/NumberInput.js +14 -24
  97. package/number-input/NumberInput.stories.tsx +5 -5
  98. package/number-input/NumberInput.test.js +506 -0
  99. package/number-input/types.d.ts +16 -9
  100. package/package.json +8 -6
  101. package/paginator/Paginator.js +2 -8
  102. package/paginator/Paginator.test.js +266 -0
  103. package/password-input/PasswordInput.js +12 -13
  104. package/password-input/PasswordInput.stories.tsx +3 -3
  105. package/password-input/PasswordInput.test.js +181 -0
  106. package/password-input/types.d.ts +13 -10
  107. package/progress-bar/ProgressBar.js +4 -4
  108. package/progress-bar/ProgressBar.test.js +65 -0
  109. package/quick-nav/QuickNav.d.ts +4 -0
  110. package/quick-nav/QuickNav.js +64 -0
  111. package/quick-nav/QuickNav.stories.tsx +237 -0
  112. package/quick-nav/types.d.ts +21 -0
  113. package/quick-nav/types.js +5 -0
  114. package/radio/Radio.js +12 -13
  115. package/radio/Radio.test.js +71 -0
  116. package/radio-group/Radio.d.ts +4 -0
  117. package/radio-group/Radio.js +141 -0
  118. package/radio-group/RadioGroup.d.ts +4 -0
  119. package/radio-group/RadioGroup.js +280 -0
  120. package/radio-group/RadioGroup.stories.tsx +100 -0
  121. package/radio-group/RadioGroup.test.js +695 -0
  122. package/radio-group/types.d.ts +114 -0
  123. package/radio-group/types.js +5 -0
  124. package/resultsetTable/ResultsetTable.js +6 -3
  125. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  126. package/resultsetTable/ResultsetTable.test.js +306 -0
  127. package/resultsetTable/types.d.ts +1 -1
  128. package/row/Row.d.ts +3 -0
  129. package/row/Row.js +127 -0
  130. package/row/Row.stories.tsx +237 -0
  131. package/row/types.d.ts +28 -0
  132. package/row/types.js +5 -0
  133. package/select/Icons.d.ts +10 -0
  134. package/select/Icons.js +93 -0
  135. package/select/Listbox.d.ts +4 -0
  136. package/select/Listbox.js +148 -0
  137. package/select/Option.d.ts +4 -0
  138. package/select/Option.js +110 -0
  139. package/select/Select.d.ts +4 -0
  140. package/select/Select.js +107 -317
  141. package/select/Select.stories.tsx +91 -81
  142. package/select/Select.test.js +2057 -0
  143. package/select/types.d.ts +213 -0
  144. package/select/types.js +5 -0
  145. package/sidenav/Sidenav.js +2 -2
  146. package/sidenav/Sidenav.stories.tsx +18 -1
  147. package/sidenav/Sidenav.test.js +56 -0
  148. package/slider/Slider.d.ts +1 -1
  149. package/slider/Slider.js +4 -3
  150. package/slider/Slider.stories.tsx +8 -8
  151. package/slider/Slider.test.js +150 -0
  152. package/slider/types.d.ts +4 -0
  153. package/spinner/Spinner.js +2 -2
  154. package/spinner/Spinner.stories.jsx +1 -0
  155. package/spinner/Spinner.test.js +64 -0
  156. package/stack/Stack.d.ts +3 -0
  157. package/stack/Stack.js +97 -0
  158. package/stack/Stack.stories.tsx +164 -0
  159. package/stack/types.d.ts +24 -0
  160. package/stack/types.js +5 -0
  161. package/switch/Switch.d.ts +1 -1
  162. package/switch/Switch.js +34 -21
  163. package/switch/Switch.stories.tsx +15 -15
  164. package/switch/Switch.test.js +98 -0
  165. package/switch/types.d.ts +6 -2
  166. package/table/Table.js +2 -2
  167. package/table/Table.stories.jsx +2 -1
  168. package/table/Table.test.js +26 -0
  169. package/tabs/Tabs.d.ts +1 -1
  170. package/tabs/Tabs.js +17 -19
  171. package/tabs/Tabs.stories.tsx +8 -11
  172. package/tabs/Tabs.test.js +140 -0
  173. package/tabs/types.d.ts +27 -15
  174. package/tag/Tag.d.ts +1 -1
  175. package/tag/Tag.js +18 -28
  176. package/tag/Tag.stories.tsx +26 -29
  177. package/tag/Tag.test.js +60 -0
  178. package/tag/types.d.ts +23 -14
  179. package/text/Text.d.ts +7 -0
  180. package/text/Text.js +30 -0
  181. package/text/Text.stories.tsx +19 -0
  182. package/text-input/TextInput.js +38 -30
  183. package/text-input/TextInput.stories.tsx +34 -16
  184. package/text-input/TextInput.test.js +1712 -0
  185. package/text-input/types.d.ts +18 -11
  186. package/textarea/Textarea.d.ts +4 -0
  187. package/textarea/Textarea.js +26 -56
  188. package/textarea/Textarea.stories.jsx +37 -15
  189. package/textarea/Textarea.test.js +437 -0
  190. package/textarea/types.d.ts +137 -0
  191. package/textarea/types.js +5 -0
  192. package/toggle-group/ToggleGroup.d.ts +1 -1
  193. package/toggle-group/ToggleGroup.js +15 -17
  194. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  195. package/toggle-group/ToggleGroup.test.js +156 -0
  196. package/toggle-group/types.d.ts +46 -25
  197. package/useTheme.d.ts +2 -0
  198. package/useTheme.js +2 -2
  199. package/wizard/Wizard.d.ts +1 -1
  200. package/wizard/Wizard.js +81 -22
  201. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +13 -23
  202. package/wizard/Wizard.test.js +141 -0
  203. package/wizard/types.d.ts +8 -8
  204. package/V3Select/V3Select.js +0 -455
  205. package/V3Select/index.d.ts +0 -27
  206. package/V3Textarea/V3Textarea.js +0 -260
  207. package/V3Textarea/index.d.ts +0 -27
  208. package/date/Date.js +0 -373
  209. package/date/index.d.ts +0 -27
  210. package/input-text/Icons.js +0 -22
  211. package/input-text/InputText.js +0 -611
  212. package/input-text/index.d.ts +0 -36
  213. package/select/index.d.ts +0 -131
  214. package/textarea/index.d.ts +0 -127
  215. package/toggle/Toggle.js +0 -186
  216. package/toggle/index.d.ts +0 -21
  217. package/upload/Upload.js +0 -201
  218. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  219. package/upload/buttons-upload/Icons.js +0 -40
  220. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  221. package/upload/dragAndDropArea/Icons.js +0 -39
  222. package/upload/file-upload/FileToUpload.js +0 -115
  223. package/upload/file-upload/Icons.js +0 -66
  224. package/upload/files-upload/FilesToUpload.js +0 -109
  225. package/upload/index.d.ts +0 -15
  226. package/upload/transaction/Icons.js +0 -160
  227. package/upload/transaction/Transaction.js +0 -104
  228. package/upload/transactions/Transactions.js +0 -94
  229. package/wizard/Icons.js +0 -65
@@ -0,0 +1,229 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import styled from "styled-components";
4
+ import DxcStack from "./../stack/Stack";
5
+ import DxcInset from "./Inset";
6
+
7
+ export default {
8
+ title: "Inset",
9
+ component: DxcInset,
10
+ };
11
+
12
+ export const Chromatic = () => (
13
+ <>
14
+ <Title title="Default" level={4} />
15
+ <Container>
16
+ <DxcInset>
17
+ <Placeholder></Placeholder>
18
+ </DxcInset>
19
+ </Container>
20
+ <Title title="space = none" level={4} />
21
+ <Container>
22
+ <DxcInset space="none">
23
+ <Placeholder></Placeholder>
24
+ </DxcInset>
25
+ </Container>
26
+ <Title title="space = xxxsmall" level={4} />
27
+ <Container>
28
+ <DxcInset space="xxxsmall">
29
+ <Placeholder></Placeholder>
30
+ </DxcInset>
31
+ </Container>
32
+ <Title title="space = xxsmall" level={4} />
33
+ <Container>
34
+ <DxcInset space="xxsmall">
35
+ <Placeholder></Placeholder>
36
+ </DxcInset>
37
+ </Container>
38
+ <Title title="space = xsmall" level={4} />
39
+ <Container>
40
+ <DxcInset space="xsmall">
41
+ <Placeholder></Placeholder>
42
+ </DxcInset>
43
+ </Container>
44
+ <Title title="space = small" level={4} />
45
+ <Container>
46
+ <DxcInset space="small">
47
+ <Placeholder></Placeholder>
48
+ </DxcInset>
49
+ </Container>
50
+ <Title title="space = medium" level={4} />
51
+ <Container>
52
+ <DxcInset space="medium">
53
+ <Placeholder></Placeholder>
54
+ </DxcInset>
55
+ </Container>
56
+ <Title title="space = large" level={4} />
57
+ <Container>
58
+ <DxcInset space="large">
59
+ <Placeholder></Placeholder>
60
+ </DxcInset>
61
+ </Container>
62
+ <Title title="space = xlarge" level={4} />
63
+ <Container>
64
+ <DxcInset space="xlarge">
65
+ <Placeholder></Placeholder>
66
+ </DxcInset>
67
+ </Container>
68
+ <Title title="space = xxlarge" level={4} />
69
+ <Container>
70
+ <DxcInset space="xxlarge">
71
+ <Placeholder></Placeholder>
72
+ </DxcInset>
73
+ </Container>
74
+ <Title title="space = xxxlarge" level={4} />
75
+ <Container>
76
+ <DxcInset space="xxxlarge">
77
+ <Placeholder></Placeholder>
78
+ </DxcInset>
79
+ </Container>
80
+ <Title title="horizontal = none" level={4} />
81
+ <Container>
82
+ <DxcInset horizontal="none">
83
+ <Placeholder></Placeholder>
84
+ </DxcInset>
85
+ </Container>
86
+ <Title title="horizontal = xxxsmall" level={4} />
87
+ <Container>
88
+ <DxcInset horizontal="xxxsmall">
89
+ <Placeholder></Placeholder>
90
+ </DxcInset>
91
+ </Container>
92
+ <Title title="horizontal = xxsmall" level={4} />
93
+ <Container>
94
+ <DxcInset horizontal="xxsmall">
95
+ <Placeholder></Placeholder>
96
+ </DxcInset>
97
+ </Container>
98
+ <Title title="horizontal = xsmall" level={4} />
99
+ <Container>
100
+ <DxcInset horizontal="xsmall">
101
+ <Placeholder></Placeholder>
102
+ </DxcInset>
103
+ </Container>
104
+ <Title title="horizontal = small" level={4} />
105
+ <Container>
106
+ <DxcInset horizontal="small">
107
+ <Placeholder></Placeholder>
108
+ </DxcInset>
109
+ </Container>
110
+ <Title title="horizontal = medium" level={4} />
111
+ <Container>
112
+ <DxcInset horizontal="medium">
113
+ <Placeholder></Placeholder>
114
+ </DxcInset>
115
+ </Container>
116
+ <Title title="horizontal = large" level={4} />
117
+ <Container>
118
+ <DxcInset horizontal="large">
119
+ <Placeholder></Placeholder>
120
+ </DxcInset>
121
+ </Container>
122
+ <Title title="horizontal = xlarge" level={4} />
123
+ <Container>
124
+ <DxcInset horizontal="xlarge">
125
+ <Placeholder></Placeholder>
126
+ </DxcInset>
127
+ </Container>
128
+ <Title title="horizontal = xxlarge" level={4} />
129
+ <Container>
130
+ <DxcInset horizontal="xxlarge">
131
+ <Placeholder></Placeholder>
132
+ </DxcInset>
133
+ </Container>
134
+ <Title title="horizontal = xxxlarge" level={4} />
135
+ <Container>
136
+ <DxcInset horizontal="xxxlarge">
137
+ <Placeholder></Placeholder>
138
+ </DxcInset>
139
+ </Container>
140
+ <Title title="vertical = none" level={4} />
141
+ <Container>
142
+ <DxcInset vertical="none">
143
+ <Placeholder></Placeholder>
144
+ </DxcInset>
145
+ </Container>
146
+ <Title title="vertical = xxxsmall" level={4} />
147
+ <Container>
148
+ <DxcInset vertical="xxxsmall">
149
+ <Placeholder></Placeholder>
150
+ </DxcInset>
151
+ </Container>
152
+ <Title title="vertical = xxsmall" level={4} />
153
+ <Container>
154
+ <DxcInset vertical="xxsmall">
155
+ <Placeholder></Placeholder>
156
+ </DxcInset>
157
+ </Container>
158
+ <Title title="vertical = xsmall" level={4} />
159
+ <Container>
160
+ <DxcInset vertical="xsmall">
161
+ <Placeholder></Placeholder>
162
+ </DxcInset>
163
+ </Container>
164
+ <Title title="vertical = small" level={4} />
165
+ <Container>
166
+ <DxcInset vertical="small">
167
+ <Placeholder></Placeholder>
168
+ </DxcInset>
169
+ </Container>
170
+ <Title title="vertical = medium" level={4} />
171
+ <Container>
172
+ <DxcInset vertical="medium">
173
+ <Placeholder></Placeholder>
174
+ </DxcInset>
175
+ </Container>
176
+ <Title title="vertical = large" level={4} />
177
+ <Container>
178
+ <DxcInset vertical="large">
179
+ <Placeholder></Placeholder>
180
+ </DxcInset>
181
+ </Container>
182
+ <Title title="vertical = xlarge" level={4} />
183
+ <Container>
184
+ <DxcInset vertical="xlarge">
185
+ <Placeholder></Placeholder>
186
+ </DxcInset>
187
+ </Container>
188
+ <Title title="vertical = xxlarge" level={4} />
189
+ <Container>
190
+ <DxcInset vertical="xxlarge">
191
+ <Placeholder></Placeholder>
192
+ </DxcInset>
193
+ </Container>
194
+ <Title title="vertical = xxxlarge" level={4} />
195
+ <Container>
196
+ <DxcInset vertical="xxxlarge">
197
+ <Placeholder></Placeholder>
198
+ </DxcInset>
199
+ </Container>
200
+ <Title title="top = xxsmall, right= medium, bottom = large and left = xxlarge" level={4} />
201
+ <Container>
202
+ <DxcInset top="xxsmall" right="medium" bottom="large" left="xxlarge">
203
+ <Placeholder></Placeholder>
204
+ </DxcInset>
205
+ </Container>
206
+ <Title title="Inside a stack" level={4} />
207
+ <Container>
208
+ <DxcStack gutter="medium" divider>
209
+ <Placeholder></Placeholder>
210
+ <DxcInset top="xxsmall" right="medium" bottom="large" left="xxlarge">
211
+ <Placeholder></Placeholder>
212
+ </DxcInset>
213
+ <Placeholder></Placeholder>
214
+ </DxcStack>
215
+ </Container>
216
+ </>
217
+ );
218
+
219
+ const Container = styled.div`
220
+ background: #f2eafa;
221
+ margin: 2.5rem;
222
+ `;
223
+
224
+ const Placeholder = styled.div`
225
+ min-height: 40px;
226
+ min-width: 120px;
227
+ border: 1px solid #a46ede;
228
+ background-color: #e5d5f6;
229
+ `;
@@ -0,0 +1,37 @@
1
+ /// <reference types="react" />
2
+ declare type Spacing = "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
3
+ declare type Props = {
4
+ /**
5
+ * Applies the spacing scale to all sides.
6
+ */
7
+ space?: Spacing;
8
+ /**
9
+ * Applies the spacing scale to the left and right sides.
10
+ */
11
+ horizontal?: Spacing;
12
+ /**
13
+ * Applies the spacing scale to the top and bottom sides.
14
+ */
15
+ vertical?: Spacing;
16
+ /**
17
+ * Applies the spacing scale to the top side.
18
+ */
19
+ top?: Spacing;
20
+ /**
21
+ * Applies the spacing scale to the right side.
22
+ */
23
+ right?: Spacing;
24
+ /**
25
+ * Applies the spacing scale to the bottom side.
26
+ */
27
+ bottom?: Spacing;
28
+ /**
29
+ * Applies the spacing scale to the left side.
30
+ */
31
+ left?: Spacing;
32
+ /**
33
+ * Custom content inside the inset.
34
+ */
35
+ children: React.ReactNode;
36
+ };
37
+ export default Props;
package/inset/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -25,7 +25,7 @@ var _variables = require("../common/variables.js");
25
25
 
26
26
  var _Icons = require("./Icons");
27
27
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
29
29
 
30
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
31
31
 
@@ -136,27 +136,20 @@ var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
136
136
  }));
137
137
  };
138
138
 
139
- var handleResize = function handleResize(width) {
140
- if (width) {
141
- setIsResponsive(width <= _variables.responsiveSizes.tablet);
142
- setIsSideNavVisible(true);
143
- }
144
- };
145
-
146
- var handleEventListener = function handleEventListener() {
147
- handleResize(ref.current.offsetWidth);
139
+ var handleResize = function handleResize() {
140
+ setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
141
+ setIsSideNavVisible(true);
148
142
  };
149
143
 
150
144
  (0, _react.useEffect)(function () {
151
145
  if (ref.current) {
152
- window.addEventListener("resize", handleEventListener);
153
- handleResize(ref.current.offsetWidth);
146
+ window.addEventListener("resize", handleResize);
154
147
  }
155
148
 
156
149
  return function () {
157
- window.removeEventListener("resize", handleEventListener);
150
+ window.removeEventListener("resize", handleResize);
158
151
  };
159
- }, []);
152
+ }, [ref.current]);
160
153
 
161
154
  var handleSidenav = function handleSidenav() {
162
155
  setIsSideNavVisible(!isSideNavVisible);
@@ -169,6 +162,7 @@ var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
169
162
  }, /*#__PURE__*/_react["default"].createElement(HeaderContainer, null, header), /*#__PURE__*/_react["default"].createElement(BodyContainer, null, /*#__PURE__*/_react["default"].createElement(ContentContainer, null, /*#__PURE__*/_react["default"].createElement(SideNavArrowContainer, {
170
163
  isSideNavVisible: isSideNavVisible
171
164
  }, sideNav, /*#__PURE__*/_react["default"].createElement(ArrowContainer, null, sideNav && (displayArrow || isResponsive) && /*#__PURE__*/_react["default"].createElement(ArrowTrigger, {
165
+ role: "button",
172
166
  tabIndex: 0,
173
167
  onClick: handleSidenav,
174
168
  isSideNavVisible: isSideNavVisible
@@ -212,7 +206,7 @@ var SideNavArrowContainer = _styledComponents["default"].div(_templateObject8 ||
212
206
 
213
207
  var ArrowContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n height: calc(100vh - 64px);\n left: 279px;\n"])));
214
208
 
215
- var ArrowTrigger = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n position: sticky;\n top: 45vh;\n width: 42px;\n min-height: 42px;\n background-color: ", ";\n border-radius: 50%;\n transform: ", ";\n transition: transform 0.4s ease-in-out;\n z-index: 1250;\n cursor: pointer;\n & > svg {\n fill: ", ";\n }\n"])), function (props) {
209
+ var ArrowTrigger = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n position: sticky;\n top: 45vh;\n width: 42px;\n min-height: 42px;\n background-color: ", ";\n border-radius: 50%;\n transform: ", ";\n transition: transform 0.4s ease-in-out;\n z-index: 1250;\n cursor: pointer;\n & > svg {\n fill: ", ";\n }\n :focus {\n outline: #0095ff auto 1px;\n }\n"])), function (props) {
216
210
  return "".concat(props.theme.arrowContainerColor);
217
211
  }, function (props) {
218
212
  return props.isSideNavVisible ? "rotate(-180deg)" : "rotate(0deg)";
@@ -0,0 +1,171 @@
1
+ import React from "react";
2
+ import DxcApplicationLayout from "./ApplicationLayout";
3
+ import DxcSidenav from "../sidenav/Sidenav";
4
+ import Title from "../../.storybook/components/Title";
5
+ import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport';
6
+ import { userEvent, within, waitFor } from "@storybook/testing-library";
7
+
8
+ export default {
9
+ title: "Application Layout ",
10
+ component: DxcApplicationLayout,
11
+ parameters: {
12
+ viewport: {
13
+ viewports: INITIAL_VIEWPORTS,
14
+ }
15
+ }
16
+ };
17
+
18
+ export const DefaultApplicationLayout = () => (
19
+ <>
20
+ <DxcApplicationLayout>
21
+ <DxcApplicationLayout.Main>
22
+ <Title title="Default application layout" theme="light" level={4} />
23
+ <p>Main Content</p>
24
+ <p>Main Content</p>
25
+ <p>Main Content</p>
26
+ <p>Main Content</p>
27
+ </DxcApplicationLayout.Main>
28
+ </DxcApplicationLayout>
29
+ </>
30
+ );
31
+
32
+ export const ApplicationLayoutWithDefaultSidenav = () => (
33
+ <>
34
+ <DxcApplicationLayout>
35
+ <DxcApplicationLayout.SideNav>
36
+ <DxcSidenav.Title>Application layout with sidenav</DxcSidenav.Title>
37
+ <p>SideNav Content</p>
38
+ <p>SideNav Content</p>
39
+ <p>SideNav Content</p>
40
+ <p>SideNav Content</p>
41
+ <p>SideNav Content</p>
42
+ </DxcApplicationLayout.SideNav>
43
+ <DxcApplicationLayout.Main>
44
+ <p>Main Content</p>
45
+ <p>Main Content</p>
46
+ <p>Main Content</p>
47
+ <p>Main Content</p>
48
+ </DxcApplicationLayout.Main>
49
+ </DxcApplicationLayout>
50
+ </>
51
+ );
52
+
53
+ export const ApplicationLayoutWithPushSidenav = () => (
54
+ <>
55
+ <DxcApplicationLayout>
56
+ <DxcApplicationLayout.SideNav mode="push">
57
+ <DxcSidenav.Title>Application layout with push sidenav</DxcSidenav.Title>
58
+ <p>SideNav Content</p>
59
+ <p>SideNav Content</p>
60
+ <p>SideNav Content</p>
61
+ <p>SideNav Content</p>
62
+ <p>SideNav Content</p>
63
+ </DxcApplicationLayout.SideNav>
64
+ <DxcApplicationLayout.Main>
65
+ <p>Main Content</p>
66
+ <p>Main Content</p>
67
+ <p>Main Content</p>
68
+ <p>Main Content</p>
69
+ </DxcApplicationLayout.Main>
70
+ </DxcApplicationLayout>
71
+ </>
72
+ );
73
+
74
+ export const ApplicationLayoutWithArrowSidenav = () => (
75
+ <>
76
+ <DxcApplicationLayout>
77
+ <DxcApplicationLayout.SideNav mode="overlay" displayArrow>
78
+ <DxcSidenav.Title>Application layout with push sidenav</DxcSidenav.Title>
79
+ <p>SideNav Content</p>
80
+ <p>SideNav Content</p>
81
+ <p>SideNav Content</p>
82
+ <p>SideNav Content</p>
83
+ <p>SideNav Content</p>
84
+ </DxcApplicationLayout.SideNav>
85
+ <DxcApplicationLayout.Main>
86
+ <p>Main Content</p>
87
+ <p>Main Content</p>
88
+ <p>Main Content</p>
89
+ <p>Main Content</p>
90
+ </DxcApplicationLayout.Main>
91
+ </DxcApplicationLayout>
92
+ </>
93
+ );
94
+
95
+ export const ApplicationLayoutWithResponsiveSidenav = () => (
96
+ <>
97
+ <DxcApplicationLayout>
98
+ <DxcApplicationLayout.SideNav>
99
+ <DxcSidenav.Title>Application layout with push sidenav</DxcSidenav.Title>
100
+ <p>SideNav Content</p>
101
+ <p>SideNav Content</p>
102
+ <p>SideNav Content</p>
103
+ <p>SideNav Content</p>
104
+ <p>SideNav Content</p>
105
+ </DxcApplicationLayout.SideNav>
106
+ <DxcApplicationLayout.Main>
107
+ <p>Main Content</p>
108
+ <p>Main Content</p>
109
+ <p>Main Content</p>
110
+ <p>Main Content</p>
111
+ </DxcApplicationLayout.Main>
112
+ </DxcApplicationLayout>
113
+ </>
114
+ );
115
+
116
+ ApplicationLayoutWithResponsiveSidenav.parameters = {
117
+ viewport: {
118
+ defaultViewport: 'pixel',
119
+ },
120
+ };
121
+
122
+ export const ApplicationLayoutWithCustomHeader = () => (
123
+ <>
124
+ <DxcApplicationLayout>
125
+ <DxcApplicationLayout.Header> <p>Custom Header</p> </DxcApplicationLayout.Header>
126
+ <DxcApplicationLayout.SideNav>
127
+ <DxcSidenav.Title>Application layout with push sidenav</DxcSidenav.Title>
128
+ <p>SideNav Content</p>
129
+ <p>SideNav Content</p>
130
+ <p>SideNav Content</p>
131
+ <p>SideNav Content</p>
132
+ <p>SideNav Content</p>
133
+ </DxcApplicationLayout.SideNav>
134
+ <DxcApplicationLayout.Main>
135
+ <p>Main Content</p>
136
+ <p>Main Content</p>
137
+ <p>Main Content</p>
138
+ <p>Main Content</p>
139
+ </DxcApplicationLayout.Main>
140
+ </DxcApplicationLayout>
141
+ </>
142
+ );
143
+
144
+ export const ApplicationLayoutWithCustomFooter = () => (
145
+ <>
146
+ <DxcApplicationLayout>
147
+ <DxcApplicationLayout.SideNav>
148
+ <DxcSidenav.Title>Application layout with push sidenav</DxcSidenav.Title>
149
+ <p>SideNav Content</p>
150
+ <p>SideNav Content</p>
151
+ <p>SideNav Content</p>
152
+ <p>SideNav Content</p>
153
+ <p>SideNav Content</p>
154
+ </DxcApplicationLayout.SideNav>
155
+ <DxcApplicationLayout.Main>
156
+ <p>Main Content</p>
157
+ <p>Main Content</p>
158
+ <p>Main Content</p>
159
+ <p>Main Content</p>
160
+ </DxcApplicationLayout.Main>
161
+ <DxcApplicationLayout.Footer> <p>Custom Footer</p> </DxcApplicationLayout.Footer>
162
+ </DxcApplicationLayout>
163
+ </>
164
+ );
165
+
166
+ export const ApplicationLayoutWithClosingSidenav = ApplicationLayoutWithArrowSidenav.bind({});
167
+ ApplicationLayoutWithClosingSidenav.play = async ({ canvasElement }) => {
168
+ const canvas = within(canvasElement);
169
+ const arrow = canvas.getByRole("button");
170
+ await userEvent.click(arrow);
171
+ };
package/link/Link.js CHANGED
@@ -9,17 +9,17 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
16
  var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
20
  var _variables = require("../common/variables.js");
21
21
 
22
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
24
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
25
25
 
@@ -32,7 +32,6 @@ var DxcLink = function DxcLink(_ref) {
32
32
  inheritColor = _ref$inheritColor === void 0 ? false : _ref$inheritColor,
33
33
  _ref$disabled = _ref.disabled,
34
34
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
35
- iconSrc = _ref.iconSrc,
36
35
  icon = _ref.icon,
37
36
  _ref$iconPosition = _ref.iconPosition,
38
37
  iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
@@ -50,12 +49,11 @@ var DxcLink = function DxcLink(_ref) {
50
49
 
51
50
  var linkContent = /*#__PURE__*/_react["default"].createElement(LinkText, {
52
51
  iconPosition: iconPosition
53
- }, text, icon ? /*#__PURE__*/_react["default"].createElement(LinkIconContainer, {
52
+ }, iconPosition === "after" && text, icon && /*#__PURE__*/_react["default"].createElement(LinkIconContainer, {
54
53
  iconPosition: iconPosition
55
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(LinkIcon, {
56
- src: iconSrc,
57
- iconPosition: iconPosition
58
- }));
54
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(LinkIcon, {
55
+ src: icon
56
+ }) : icon), iconPosition === "before" && text);
59
57
 
60
58
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
61
59
  theme: colorsTheme.link
@@ -127,7 +125,7 @@ var StyledButton = _styledComponents["default"].button(_templateObject3 || (_tem
127
125
  return "color: ".concat(props.theme.activeFontColor, " !important;\n border-bottom-color: ").concat(props.theme.activeUnderlineColor, " !important;");
128
126
  });
129
127
 
130
- 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) {
128
+ var LinkText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n font-family: ", ";\n display: flex;\n align-items: baseline;\n max-width: 100%;\n"])), function (props) {
131
129
  return props.theme.fontSize;
132
130
  }, function (props) {
133
131
  return props.theme.fontWeight;
@@ -135,21 +133,11 @@ var LinkText = _styledComponents["default"].div(_templateObject4 || (_templateOb
135
133
  return props.theme.fontStyle;
136
134
  }, function (props) {
137
135
  return props.theme.fontFamily;
138
- }, function (props) {
139
- return props.iconPosition === "after" ? "row" : "row-reverse";
140
- }, function (props) {
141
- return props.iconPosition === "after" ? "flex-start" : "flex-end";
142
136
  });
143
137
 
144
- var LinkIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", ";\n"])), function (props) {
145
- return props.theme.iconSize;
146
- }, function (props) {
147
- return props.theme.iconSize;
148
- }, function (props) {
149
- return "".concat(props.iconPosition === "before" ? "margin-right" : "margin-left", ": ").concat(props.theme.iconSpacing);
150
- });
138
+ var LinkIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])([""])));
151
139
 
152
- 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) {
140
+ var LinkIconContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (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) {
153
141
  return props.theme.iconSize;
154
142
  }, function (props) {
155
143
  return props.theme.iconSize;
@@ -28,7 +28,12 @@ export const Chromatic = () => (
28
28
  <Title title="Icon before" theme="light" level={4} />
29
29
  <DxcLink text="Test" href="https://www.google.com" icon={icon} iconPosition="before"></DxcLink>
30
30
  <Title title="Icon after" theme="light" level={4} />
31
- <DxcLink text="Test" href="https://www.youtube.com/" icon={icon} iconPosition="after"></DxcLink>
31
+ <DxcLink
32
+ text="Test"
33
+ href="https://www.youtube.com/"
34
+ icon="https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png"
35
+ iconPosition="after"
36
+ ></DxcLink>
32
37
  </ExampleContainer>
33
38
  <ExampleContainer pseudoState="pseudo-hover">
34
39
  <Title title="With link hovered" theme="light" level={4} />