@dxc-technology/halstack-react 0.0.0-1f7dada → 0.0.0-2151ae6

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 (255) hide show
  1. package/BackgroundColorContext.js +0 -1
  2. package/HalstackContext.d.ts +12 -0
  3. package/HalstackContext.js +295 -0
  4. package/accordion/Accordion.d.ts +1 -1
  5. package/accordion/Accordion.js +13 -45
  6. package/accordion/Accordion.stories.tsx +20 -13
  7. package/accordion/Accordion.test.js +72 -0
  8. package/accordion/types.d.ts +7 -7
  9. package/accordion-group/AccordionGroup.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +14 -15
  11. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  12. package/accordion-group/AccordionGroup.test.js +151 -0
  13. package/accordion-group/types.d.ts +7 -7
  14. package/alert/Alert.js +4 -1
  15. package/alert/Alert.test.js +92 -0
  16. package/badge/Badge.d.ts +4 -0
  17. package/badge/Badge.js +5 -3
  18. package/badge/types.d.ts +5 -0
  19. package/{radio → badge}/types.js +0 -0
  20. package/bleed/Bleed.d.ts +3 -0
  21. package/bleed/Bleed.js +51 -0
  22. package/bleed/Bleed.stories.tsx +341 -0
  23. package/bleed/types.d.ts +37 -0
  24. package/bleed/types.js +5 -0
  25. package/box/Box.js +22 -32
  26. package/box/Box.test.js +18 -0
  27. package/bulleted-list/BulletedList.d.ts +7 -0
  28. package/bulleted-list/BulletedList.js +123 -0
  29. package/bulleted-list/BulletedList.stories.tsx +200 -0
  30. package/bulleted-list/types.d.ts +11 -0
  31. package/bulleted-list/types.js +5 -0
  32. package/button/Button.d.ts +1 -1
  33. package/button/Button.js +19 -24
  34. package/button/Button.stories.tsx +6 -8
  35. package/button/Button.test.js +35 -0
  36. package/button/types.d.ts +3 -7
  37. package/card/Card.js +24 -27
  38. package/card/Card.stories.tsx +1 -1
  39. package/card/Card.test.js +50 -0
  40. package/checkbox/Checkbox.d.ts +1 -1
  41. package/checkbox/Checkbox.js +43 -39
  42. package/checkbox/Checkbox.stories.tsx +124 -128
  43. package/checkbox/Checkbox.test.js +78 -0
  44. package/checkbox/types.d.ts +8 -4
  45. package/chip/Chip.d.ts +1 -1
  46. package/chip/Chip.js +14 -52
  47. package/chip/Chip.stories.tsx +6 -8
  48. package/chip/Chip.test.js +56 -0
  49. package/chip/types.d.ts +5 -13
  50. package/common/variables.js +254 -333
  51. package/date-input/DateInput.js +59 -45
  52. package/date-input/DateInput.stories.tsx +7 -7
  53. package/date-input/DateInput.test.js +479 -0
  54. package/date-input/types.d.ts +16 -9
  55. package/dialog/Dialog.js +6 -33
  56. package/dialog/Dialog.test.js +40 -0
  57. package/dropdown/Dropdown.d.ts +1 -1
  58. package/dropdown/Dropdown.js +21 -47
  59. package/dropdown/Dropdown.stories.tsx +249 -0
  60. package/dropdown/Dropdown.test.js +189 -0
  61. package/dropdown/types.d.ts +5 -14
  62. package/file-input/FileInput.js +111 -39
  63. package/file-input/FileInput.stories.tsx +507 -0
  64. package/file-input/FileInput.test.js +457 -0
  65. package/file-input/FileItem.js +7 -5
  66. package/flex/Flex.d.ts +3 -0
  67. package/flex/Flex.js +74 -0
  68. package/flex/Flex.stories.tsx +103 -0
  69. package/flex/types.d.ts +21 -0
  70. package/flex/types.js +5 -0
  71. package/footer/Footer.js +24 -99
  72. package/footer/Footer.test.js +109 -0
  73. package/footer/Icons.js +1 -1
  74. package/header/Header.js +27 -48
  75. package/header/Header.stories.tsx +46 -36
  76. package/header/Header.test.js +79 -0
  77. package/heading/Heading.stories.tsx +3 -2
  78. package/heading/Heading.test.js +186 -0
  79. package/inset/Inset.d.ts +3 -0
  80. package/inset/Inset.js +51 -0
  81. package/inset/Inset.stories.tsx +229 -0
  82. package/inset/types.d.ts +37 -0
  83. package/inset/types.js +5 -0
  84. package/layout/ApplicationLayout.d.ts +4 -3
  85. package/layout/ApplicationLayout.js +69 -108
  86. package/layout/ApplicationLayout.stories.tsx +44 -85
  87. package/layout/Icons.d.ts +5 -0
  88. package/layout/Icons.js +13 -2
  89. package/layout/SidenavContext.d.ts +5 -0
  90. package/layout/SidenavContext.js +19 -0
  91. package/layout/types.d.ts +8 -21
  92. package/link/Link.d.ts +3 -2
  93. package/link/Link.js +60 -85
  94. package/link/Link.stories.tsx +92 -52
  95. package/link/Link.test.js +83 -0
  96. package/link/types.d.ts +9 -29
  97. package/main.d.ts +11 -10
  98. package/main.js +61 -47
  99. package/number-input/NumberInput.js +11 -18
  100. package/number-input/NumberInput.stories.tsx +5 -5
  101. package/number-input/NumberInput.test.js +506 -0
  102. package/number-input/types.d.ts +17 -10
  103. package/package.json +10 -6
  104. package/paginator/Paginator.js +17 -38
  105. package/paginator/Paginator.test.js +308 -0
  106. package/paragraph/Paragraph.d.ts +6 -0
  107. package/paragraph/Paragraph.js +38 -0
  108. package/paragraph/Paragraph.stories.tsx +44 -0
  109. package/password-input/PasswordInput.js +7 -4
  110. package/password-input/PasswordInput.stories.tsx +3 -3
  111. package/password-input/PasswordInput.test.js +180 -0
  112. package/password-input/types.d.ts +14 -11
  113. package/progress-bar/ProgressBar.js +3 -3
  114. package/progress-bar/ProgressBar.stories.jsx +11 -11
  115. package/progress-bar/ProgressBar.test.js +65 -0
  116. package/quick-nav/QuickNav.d.ts +4 -0
  117. package/quick-nav/QuickNav.js +118 -0
  118. package/quick-nav/QuickNav.stories.tsx +264 -0
  119. package/quick-nav/types.d.ts +21 -0
  120. package/quick-nav/types.js +5 -0
  121. package/radio-group/Radio.d.ts +4 -0
  122. package/radio-group/Radio.js +141 -0
  123. package/radio-group/RadioGroup.d.ts +4 -0
  124. package/radio-group/RadioGroup.js +283 -0
  125. package/radio-group/RadioGroup.stories.tsx +100 -0
  126. package/radio-group/RadioGroup.test.js +695 -0
  127. package/radio-group/types.d.ts +114 -0
  128. package/radio-group/types.js +5 -0
  129. package/resultsetTable/ResultsetTable.js +5 -2
  130. package/resultsetTable/ResultsetTable.stories.tsx +7 -8
  131. package/resultsetTable/ResultsetTable.test.js +348 -0
  132. package/row/Row.d.ts +3 -11
  133. package/row/Row.js +12 -9
  134. package/row/Row.stories.tsx +20 -6
  135. package/row/types.d.ts +28 -0
  136. package/row/types.js +5 -0
  137. package/select/Icons.d.ts +10 -0
  138. package/select/Icons.js +93 -0
  139. package/select/Listbox.d.ts +4 -0
  140. package/select/Listbox.js +175 -0
  141. package/select/Option.d.ts +4 -0
  142. package/select/Option.js +110 -0
  143. package/select/Select.d.ts +4 -0
  144. package/select/Select.js +149 -352
  145. package/select/Select.stories.tsx +230 -176
  146. package/select/Select.test.js +2162 -0
  147. package/select/types.d.ts +212 -0
  148. package/select/types.js +5 -0
  149. package/sidenav/Sidenav.d.ts +6 -5
  150. package/sidenav/Sidenav.js +172 -52
  151. package/sidenav/Sidenav.stories.tsx +154 -139
  152. package/sidenav/Sidenav.test.js +44 -0
  153. package/sidenav/types.d.ts +50 -27
  154. package/slider/Slider.d.ts +1 -1
  155. package/slider/Slider.js +2 -1
  156. package/slider/Slider.stories.tsx +8 -8
  157. package/slider/Slider.test.js +150 -0
  158. package/slider/types.d.ts +4 -0
  159. package/spinner/Spinner.js +1 -1
  160. package/spinner/Spinner.stories.jsx +1 -0
  161. package/spinner/Spinner.test.js +64 -0
  162. package/stack/Stack.d.ts +4 -10
  163. package/stack/Stack.js +29 -67
  164. package/stack/Stack.stories.tsx +198 -85
  165. package/stack/types.d.ts +32 -0
  166. package/stack/types.js +5 -0
  167. package/switch/Switch.d.ts +1 -1
  168. package/switch/Switch.js +35 -19
  169. package/switch/Switch.stories.tsx +15 -15
  170. package/switch/Switch.test.js +98 -0
  171. package/switch/types.d.ts +6 -2
  172. package/table/Table.stories.jsx +2 -1
  173. package/table/Table.test.js +26 -0
  174. package/tabs/Tabs.d.ts +1 -1
  175. package/tabs/Tabs.js +16 -18
  176. package/tabs/Tabs.stories.tsx +7 -16
  177. package/tabs/Tabs.test.js +140 -0
  178. package/tabs/types.d.ts +27 -15
  179. package/tabs-nav/NavTabs.d.ts +8 -0
  180. package/tabs-nav/NavTabs.js +125 -0
  181. package/tabs-nav/NavTabs.stories.tsx +170 -0
  182. package/tabs-nav/NavTabs.test.js +82 -0
  183. package/tabs-nav/Tab.d.ts +4 -0
  184. package/tabs-nav/Tab.js +132 -0
  185. package/tabs-nav/types.d.ts +53 -0
  186. package/tabs-nav/types.js +5 -0
  187. package/tag/Tag.d.ts +1 -1
  188. package/tag/Tag.js +17 -27
  189. package/tag/Tag.stories.tsx +26 -29
  190. package/tag/Tag.test.js +60 -0
  191. package/tag/types.d.ts +23 -14
  192. package/text-input/Suggestion.d.ts +4 -0
  193. package/text-input/Suggestion.js +55 -0
  194. package/text-input/TextInput.js +68 -84
  195. package/text-input/TextInput.stories.tsx +34 -16
  196. package/text-input/TextInput.test.js +1712 -0
  197. package/text-input/types.d.ts +32 -13
  198. package/textarea/Textarea.js +20 -27
  199. package/textarea/Textarea.stories.jsx +37 -15
  200. package/textarea/Textarea.test.js +437 -0
  201. package/textarea/types.d.ts +18 -11
  202. package/toggle-group/ToggleGroup.d.ts +1 -1
  203. package/toggle-group/ToggleGroup.js +12 -14
  204. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  205. package/toggle-group/ToggleGroup.test.js +156 -0
  206. package/toggle-group/types.d.ts +46 -25
  207. package/typography/Typography.d.ts +4 -0
  208. package/typography/Typography.js +131 -0
  209. package/typography/Typography.stories.tsx +198 -0
  210. package/typography/types.d.ts +18 -0
  211. package/typography/types.js +5 -0
  212. package/useTheme.js +2 -2
  213. package/useTranslatedLabels.d.ts +2 -0
  214. package/useTranslatedLabels.js +20 -0
  215. package/wizard/Wizard.d.ts +1 -1
  216. package/wizard/Wizard.js +55 -44
  217. package/wizard/Wizard.stories.tsx +13 -23
  218. package/wizard/Wizard.test.js +141 -0
  219. package/wizard/types.d.ts +6 -2
  220. package/ThemeContext.d.ts +0 -15
  221. package/ThemeContext.js +0 -243
  222. package/V3Select/V3Select.js +0 -455
  223. package/V3Select/index.d.ts +0 -27
  224. package/V3Textarea/V3Textarea.js +0 -260
  225. package/V3Textarea/index.d.ts +0 -27
  226. package/date/Date.js +0 -373
  227. package/date/index.d.ts +0 -27
  228. package/input-text/Icons.js +0 -22
  229. package/input-text/InputText.js +0 -611
  230. package/input-text/index.d.ts +0 -36
  231. package/list/List.d.ts +0 -8
  232. package/list/List.js +0 -47
  233. package/list/List.stories.tsx +0 -85
  234. package/radio/Radio.d.ts +0 -4
  235. package/radio/Radio.js +0 -174
  236. package/radio/Radio.stories.tsx +0 -192
  237. package/radio/types.d.ts +0 -54
  238. package/select/index.d.ts +0 -131
  239. package/text/Text.d.ts +0 -7
  240. package/text/Text.js +0 -30
  241. package/text/Text.stories.tsx +0 -19
  242. package/toggle/Toggle.js +0 -186
  243. package/toggle/index.d.ts +0 -21
  244. package/upload/Upload.js +0 -201
  245. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  246. package/upload/buttons-upload/Icons.js +0 -40
  247. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  248. package/upload/dragAndDropArea/Icons.js +0 -39
  249. package/upload/file-upload/FileToUpload.js +0 -115
  250. package/upload/file-upload/Icons.js +0 -66
  251. package/upload/files-upload/FilesToUpload.js +0 -109
  252. package/upload/index.d.ts +0 -15
  253. package/upload/transaction/Icons.js +0 -160
  254. package/upload/transaction/Transaction.js +0 -104
  255. package/upload/transactions/Transactions.js +0 -94
@@ -0,0 +1,229 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import styled from "styled-components";
4
+ import DxcFlex from "./../flex/Flex";
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="0rem">
23
+ <Placeholder></Placeholder>
24
+ </DxcInset>
25
+ </Container>
26
+ <Title title="space = xxxsmall" level={4} />
27
+ <Container>
28
+ <DxcInset space="0.125rem">
29
+ <Placeholder></Placeholder>
30
+ </DxcInset>
31
+ </Container>
32
+ <Title title="space = xxsmall" level={4} />
33
+ <Container>
34
+ <DxcInset space="0.25rem">
35
+ <Placeholder></Placeholder>
36
+ </DxcInset>
37
+ </Container>
38
+ <Title title="space = xsmall" level={4} />
39
+ <Container>
40
+ <DxcInset space="0.5rem">
41
+ <Placeholder></Placeholder>
42
+ </DxcInset>
43
+ </Container>
44
+ <Title title="space = small" level={4} />
45
+ <Container>
46
+ <DxcInset space="1rem">
47
+ <Placeholder></Placeholder>
48
+ </DxcInset>
49
+ </Container>
50
+ <Title title="space = medium" level={4} />
51
+ <Container>
52
+ <DxcInset space="1.5rem">
53
+ <Placeholder></Placeholder>
54
+ </DxcInset>
55
+ </Container>
56
+ <Title title="space = large" level={4} />
57
+ <Container>
58
+ <DxcInset space="2rem">
59
+ <Placeholder></Placeholder>
60
+ </DxcInset>
61
+ </Container>
62
+ <Title title="space = xlarge" level={4} />
63
+ <Container>
64
+ <DxcInset space="3rem">
65
+ <Placeholder></Placeholder>
66
+ </DxcInset>
67
+ </Container>
68
+ <Title title="space = xxlarge" level={4} />
69
+ <Container>
70
+ <DxcInset space="4rem">
71
+ <Placeholder></Placeholder>
72
+ </DxcInset>
73
+ </Container>
74
+ <Title title="space = xxxlarge" level={4} />
75
+ <Container>
76
+ <DxcInset space="5rem">
77
+ <Placeholder></Placeholder>
78
+ </DxcInset>
79
+ </Container>
80
+ <Title title="horizontal = none" level={4} />
81
+ <Container>
82
+ <DxcInset horizontal="0rem">
83
+ <Placeholder></Placeholder>
84
+ </DxcInset>
85
+ </Container>
86
+ <Title title="horizontal = xxxsmall" level={4} />
87
+ <Container>
88
+ <DxcInset horizontal="0.125rem">
89
+ <Placeholder></Placeholder>
90
+ </DxcInset>
91
+ </Container>
92
+ <Title title="horizontal = xxsmall" level={4} />
93
+ <Container>
94
+ <DxcInset horizontal="0.25rem">
95
+ <Placeholder></Placeholder>
96
+ </DxcInset>
97
+ </Container>
98
+ <Title title="horizontal = xsmall" level={4} />
99
+ <Container>
100
+ <DxcInset horizontal="0.5rem">
101
+ <Placeholder></Placeholder>
102
+ </DxcInset>
103
+ </Container>
104
+ <Title title="horizontal = small" level={4} />
105
+ <Container>
106
+ <DxcInset horizontal="1rem">
107
+ <Placeholder></Placeholder>
108
+ </DxcInset>
109
+ </Container>
110
+ <Title title="horizontal = medium" level={4} />
111
+ <Container>
112
+ <DxcInset horizontal="1.5rem">
113
+ <Placeholder></Placeholder>
114
+ </DxcInset>
115
+ </Container>
116
+ <Title title="horizontal = large" level={4} />
117
+ <Container>
118
+ <DxcInset horizontal="2rem">
119
+ <Placeholder></Placeholder>
120
+ </DxcInset>
121
+ </Container>
122
+ <Title title="horizontal = xlarge" level={4} />
123
+ <Container>
124
+ <DxcInset horizontal="3rem">
125
+ <Placeholder></Placeholder>
126
+ </DxcInset>
127
+ </Container>
128
+ <Title title="horizontal = xxlarge" level={4} />
129
+ <Container>
130
+ <DxcInset horizontal="4rem">
131
+ <Placeholder></Placeholder>
132
+ </DxcInset>
133
+ </Container>
134
+ <Title title="horizontal = xxxlarge" level={4} />
135
+ <Container>
136
+ <DxcInset horizontal="5rem">
137
+ <Placeholder></Placeholder>
138
+ </DxcInset>
139
+ </Container>
140
+ <Title title="vertical = none" level={4} />
141
+ <Container>
142
+ <DxcInset vertical="0rem">
143
+ <Placeholder></Placeholder>
144
+ </DxcInset>
145
+ </Container>
146
+ <Title title="vertical = xxxsmall" level={4} />
147
+ <Container>
148
+ <DxcInset vertical="0.125rem">
149
+ <Placeholder></Placeholder>
150
+ </DxcInset>
151
+ </Container>
152
+ <Title title="vertical = xxsmall" level={4} />
153
+ <Container>
154
+ <DxcInset vertical="0.25rem">
155
+ <Placeholder></Placeholder>
156
+ </DxcInset>
157
+ </Container>
158
+ <Title title="vertical = xsmall" level={4} />
159
+ <Container>
160
+ <DxcInset vertical="0.5rem">
161
+ <Placeholder></Placeholder>
162
+ </DxcInset>
163
+ </Container>
164
+ <Title title="vertical = small" level={4} />
165
+ <Container>
166
+ <DxcInset vertical="1rem">
167
+ <Placeholder></Placeholder>
168
+ </DxcInset>
169
+ </Container>
170
+ <Title title="vertical = medium" level={4} />
171
+ <Container>
172
+ <DxcInset vertical="1.5rem">
173
+ <Placeholder></Placeholder>
174
+ </DxcInset>
175
+ </Container>
176
+ <Title title="vertical = large" level={4} />
177
+ <Container>
178
+ <DxcInset vertical="2rem">
179
+ <Placeholder></Placeholder>
180
+ </DxcInset>
181
+ </Container>
182
+ <Title title="vertical = xlarge" level={4} />
183
+ <Container>
184
+ <DxcInset vertical="3rem">
185
+ <Placeholder></Placeholder>
186
+ </DxcInset>
187
+ </Container>
188
+ <Title title="vertical = xxlarge" level={4} />
189
+ <Container>
190
+ <DxcInset vertical="4rem">
191
+ <Placeholder></Placeholder>
192
+ </DxcInset>
193
+ </Container>
194
+ <Title title="vertical = xxxlarge" level={4} />
195
+ <Container>
196
+ <DxcInset vertical="5rem">
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="0.25rem" right="1.5rem" bottom="2rem" left="4rem">
203
+ <Placeholder></Placeholder>
204
+ </DxcInset>
205
+ </Container>
206
+ <Title title="Inside a flex column" level={4} />
207
+ <Container>
208
+ <DxcFlex direction="column" gap="0.75rem">
209
+ <Placeholder></Placeholder>
210
+ <DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem">
211
+ <Placeholder></Placeholder>
212
+ </DxcInset>
213
+ <Placeholder></Placeholder>
214
+ </DxcFlex>
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 = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
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
+ });
@@ -1,10 +1,11 @@
1
1
  /// <reference types="react" />
2
- import AppLayoutPropsType, { AppLayoutFooterPropsType, AppLayoutMainPropsType, AppLayoutHeaderPropsType } from "./types";
2
+ import AppLayoutPropsType, { AppLayoutSidenavPropsType, AppLayoutFooterPropsType, AppLayoutMainPropsType, AppLayoutHeaderPropsType } from "./types";
3
3
  declare const DxcApplicationLayout: {
4
- ({ children }: AppLayoutPropsType): JSX.Element;
4
+ ({ visibilityToggleLabel, children }: AppLayoutPropsType): JSX.Element;
5
5
  Header: ({ children }: AppLayoutHeaderPropsType) => JSX.Element;
6
6
  Main: ({ children }: AppLayoutMainPropsType) => JSX.Element;
7
7
  Footer: ({ children }: AppLayoutFooterPropsType) => JSX.Element;
8
- SideNav: (props: any) => JSX.Element;
8
+ SideNav: ({ ...childProps }: AppLayoutSidenavPropsType) => JSX.Element;
9
+ useResponsiveSidenavVisibility: () => (isSidenavVisible: boolean) => void;
9
10
  };
10
11
  export default DxcApplicationLayout;
@@ -13,23 +13,27 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
13
13
 
14
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
15
 
16
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
- var _main = require("../main");
20
+ var _Header = _interopRequireDefault(require("../header/Header"));
21
21
 
22
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
22
+ var _Footer = _interopRequireDefault(require("../footer/Footer"));
23
+
24
+ var _Sidenav = _interopRequireDefault(require("../sidenav/Sidenav"));
25
+
26
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
23
27
 
24
28
  var _variables = require("../common/variables.js");
25
29
 
26
30
  var _Icons = require("./Icons");
27
31
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme"));
32
+ var _SidenavContext = require("./SidenavContext");
29
33
 
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
34
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
31
35
 
32
- var _excluded = ["displayArrow", "mode"];
36
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
33
37
 
34
38
  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); }
35
39
 
@@ -52,17 +56,13 @@ var Footer = function Footer(_ref3) {
52
56
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
53
57
  };
54
58
 
55
- var SideNav = function SideNav(props) {
56
- var _props$displayArrow = props.displayArrow,
57
- displayArrow = _props$displayArrow === void 0 ? true : _props$displayArrow,
58
- _props$mode = props.mode,
59
- mode = _props$mode === void 0 ? "overlay" : _props$mode,
60
- childProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
61
- return /*#__PURE__*/_react["default"].createElement(_main.DxcSidenav, childProps, childProps.children);
59
+ var Sidenav = function Sidenav(_ref4) {
60
+ var childProps = (0, _extends2["default"])({}, _ref4);
61
+ return /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], childProps, childProps.children);
62
62
  };
63
63
 
64
64
  var defaultFooter = function defaultFooter() {
65
- return /*#__PURE__*/_react["default"].createElement(_main.DxcFooter, {
65
+ return /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
66
66
  copyright: "\xA9 DXC Technology ".concat(year, "\u200B\u200B\u200B\u200B. All rights reserved."),
67
67
  bottomLinks: [{
68
68
  href: "https://www.linkedin.com/company/dxctechnology",
@@ -88,138 +88,99 @@ var defaultFooter = function defaultFooter() {
88
88
  };
89
89
 
90
90
  var defaultHeader = function defaultHeader() {
91
- return /*#__PURE__*/_react["default"].createElement(_main.DxcHeader, {
91
+ return /*#__PURE__*/_react["default"].createElement(_Header["default"], {
92
92
  underlined: true
93
93
  });
94
94
  };
95
95
 
96
96
  var childTypeExists = function childTypeExists(children, childType) {
97
97
  return children.find(function (child) {
98
- return child && child.type && child.type === childType;
98
+ return (child === null || child === void 0 ? void 0 : child.type) === childType;
99
99
  });
100
100
  };
101
101
 
102
- var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
103
- var children = _ref4.children;
104
- var ref = (0, _react.useRef)(null);
105
- var colorsTheme = (0, _useTheme["default"])();
102
+ var DxcApplicationLayout = function DxcApplicationLayout(_ref5) {
103
+ var _ref5$visibilityToggl = _ref5.visibilityToggleLabel,
104
+ visibilityToggleLabel = _ref5$visibilityToggl === void 0 ? "" : _ref5$visibilityToggl,
105
+ children = _ref5.children;
106
106
 
107
- var _useState = (0, _react.useState)(true),
107
+ var _useState = (0, _react.useState)(false),
108
108
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
109
- isSideNavVisible = _useState2[0],
110
- setIsSideNavVisible = _useState2[1];
109
+ isSidenavVisibleResponsive = _useState2[0],
110
+ setIsSidenavVisibleResponsive = _useState2[1];
111
111
 
112
112
  var _useState3 = (0, _react.useState)(false),
113
113
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
114
114
  isResponsive = _useState4[0],
115
115
  setIsResponsive = _useState4[1];
116
116
 
117
+ var ref = (0, _react.useRef)(null);
118
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
119
+
117
120
  var childrenArray = _react["default"].Children.toArray(children);
118
121
 
119
- var header = childTypeExists(childrenArray, _main.DxcHeader) || childTypeExists(childrenArray, Header) || defaultHeader();
120
- var footer = childTypeExists(childrenArray, _main.DxcFooter) || childTypeExists(childrenArray, Footer) || defaultFooter();
121
- var sideNav = childTypeExists(childrenArray, SideNav);
122
+ var header = childTypeExists(childrenArray, _Header["default"]) || childTypeExists(childrenArray, Header) || defaultHeader();
123
+ var footer = childTypeExists(childrenArray, _Footer["default"]) || childTypeExists(childrenArray, Footer) || defaultFooter();
124
+ var sidenav = childTypeExists(childrenArray, Sidenav);
122
125
  var main = childTypeExists(childrenArray, Main);
123
- var displayArrow = sideNav && sideNav.props && sideNav.props.displayArrow;
124
- var sideNavMode = sideNav && sideNav.props && sideNav.props.mode;
125
-
126
- var ArrowIcon = function ArrowIcon() {
127
- return /*#__PURE__*/_react["default"].createElement("svg", {
128
- xmlns: "http://www.w3.org/2000/svg",
129
- width: "15.995",
130
- height: "10.01",
131
- viewBox: "0 0 15.995 10.01"
132
- }, /*#__PURE__*/_react["default"].createElement("path", {
133
- "data-testid": "arrow-to-right",
134
- d: "M17.71,11.29l-4-4a1,1,0,0,0-1.42,1.42L14.59,11H3a1,1,0,0,0,0,2H14.59l-2.3,2.29a1,1,0,1,0,1.42,1.42l4-4a1.034,1.034,0,0,0,0-1.42Z",
135
- transform: "translate(-2 -6.996)"
136
- }));
137
- };
138
126
 
139
- var handleResize = function handleResize(width) {
140
- if (width) {
141
- setIsResponsive(width <= _variables.responsiveSizes.tablet);
142
- setIsSideNavVisible(true);
143
- }
127
+ var handleResize = function handleResize() {
128
+ setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
144
129
  };
145
130
 
146
- var handleEventListener = function handleEventListener() {
147
- handleResize(ref.current.offsetWidth);
131
+ var handleSidenavVisibility = function handleSidenavVisibility() {
132
+ setIsSidenavVisibleResponsive(function (isSidenavVisibleResponsive) {
133
+ return !isSidenavVisibleResponsive;
134
+ });
148
135
  };
149
136
 
150
137
  (0, _react.useEffect)(function () {
151
- if (ref.current) {
152
- window.addEventListener("resize", handleEventListener);
153
- handleResize(ref.current.offsetWidth);
154
- }
155
-
138
+ handleResize();
139
+ window.addEventListener("resize", handleResize);
156
140
  return function () {
157
- window.removeEventListener("resize", handleEventListener);
141
+ window.removeEventListener("resize", handleResize);
158
142
  };
159
- }, []);
160
-
161
- var handleSidenav = function handleSidenav() {
162
- setIsSideNavVisible(!isSideNavVisible);
163
- };
164
-
165
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
166
- theme: colorsTheme.sidenav
167
- }, /*#__PURE__*/_react["default"].createElement(ApplicationLayoutContainer, {
143
+ }, [setIsResponsive]);
144
+ (0, _react.useEffect)(function () {
145
+ !isResponsive && setIsSidenavVisibleResponsive(false);
146
+ }, [isResponsive, setIsSidenavVisibleResponsive]);
147
+ return /*#__PURE__*/_react["default"].createElement(ApplicationLayoutContainer, {
148
+ hasSidenav: sidenav ? true : false,
149
+ isSidenavVisible: isSidenavVisibleResponsive,
168
150
  ref: ref
169
- }, /*#__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
- isSideNavVisible: isSideNavVisible
171
- }, sideNav, /*#__PURE__*/_react["default"].createElement(ArrowContainer, null, sideNav && (displayArrow || isResponsive) && /*#__PURE__*/_react["default"].createElement(ArrowTrigger, {
172
- role: "button",
173
- tabIndex: 0,
174
- onClick: handleSidenav,
175
- isSideNavVisible: isSideNavVisible
176
- }, /*#__PURE__*/_react["default"].createElement(ArrowIcon, null)))), /*#__PURE__*/_react["default"].createElement(MainBodyContainer, null, /*#__PURE__*/_react["default"].createElement(MainContent, {
177
- sideNav: sideNav,
178
- mode: isResponsive ? "overlay" : sideNavMode,
179
- isSideNavVisible: isSideNavVisible
180
- }, main), /*#__PURE__*/_react["default"].createElement(FooterContainer, {
181
- sideNav: sideNav,
182
- mode: isResponsive ? "overlay" : sideNavMode,
183
- isSideNavVisible: isSideNavVisible
184
- }, footer))))));
151
+ }, /*#__PURE__*/_react["default"].createElement(HeaderContainer, null, header), sidenav && isResponsive && /*#__PURE__*/_react["default"].createElement(VisibilityToggle, null, /*#__PURE__*/_react["default"].createElement(HamburgerTrigger, {
152
+ onClick: handleSidenavVisibility,
153
+ "aria-label": visibilityToggleLabel ? undefined : translatedLabels.applicationLayout.visibilityToggleTitle,
154
+ title: translatedLabels.applicationLayout.visibilityToggleTitle
155
+ }, _Icons.hamburgerIcon, visibilityToggleLabel)), /*#__PURE__*/_react["default"].createElement(BodyContainer, null, /*#__PURE__*/_react["default"].createElement(_SidenavContext.SidenavContextProvider, {
156
+ value: setIsSidenavVisibleResponsive
157
+ }, sidenav && (isResponsive ? isSidenavVisibleResponsive : true) && /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, sidenav)), /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(MainContentContainer, null, main), footer)));
185
158
  };
186
159
 
187
- DxcApplicationLayout.Header = Header;
188
- DxcApplicationLayout.Main = Main;
189
- DxcApplicationLayout.Footer = Footer;
190
- DxcApplicationLayout.SideNav = SideNav;
191
-
192
- var ApplicationLayoutContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n position: absolute;\n top: 64px;\n bottom: 0;\n left: 0;\n right: 0;\n"])));
193
-
194
- var HeaderContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 1250;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n"])));
195
-
196
- var BodyContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n display: flex;\n flex-direction: column;\n"])));
160
+ var ApplicationLayoutContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n top: 64px;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n\n @media (max-width: ", "rem) {\n ", ";\n ", "\n }\n"])), _variables.responsiveSizes.medium, function (props) {
161
+ return props.hasSidenav && "top: 116px";
162
+ }, function (props) {
163
+ return props.isSidenavVisible && "overflow: hidden;";
164
+ });
197
165
 
198
- var ContentContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex: 1 1 auto;\n align-items: flex-start;\n"])));
166
+ var HeaderContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 3;\n"])));
199
167
 
200
- var MainBodyContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n min-width: 0;\n display: flex;\n flex-direction: column;\n"])));
168
+ var VisibilityToggle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 64px;\n left: 0;\n right: 0;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n padding: 4px 16px;\n width: 100%;\n background-color: #f2f2f2;\n user-select: none;\n z-index: 2;\n"])));
201
169
 
202
- var FooterContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n transition: margin 0.4s ease-in-out;\n"])), function (props) {
203
- return props.sideNav ? props.mode === "push" && !props.isSideNavVisible || props.mode === "overlay" ? "-300px" : "" : "";
204
- });
170
+ var HamburgerTrigger = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n border: 0px solid transparent;\n border-radius: 2px;\n padding: 12px 4px;\n background-color: transparent;\n box-shadow: 0 0 0 2px transparent;\n font-family: Open Sans, sans-serif;\n font-weight: 600;\n font-size: 14px;\n color: #000;\n cursor: pointer;\n :active {\n background-color: #cccccc;\n }\n :focus,\n :focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px #0095ff;\n }\n & > svg {\n height: 20px;\n width: 20px;\n }\n"])));
205
171
 
206
- var MainContent = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n position: relative;\n min-height: calc(100vh - 184px);\n margin-left: ", ";\n transition: margin 0.4s ease-in-out;\n"])), function (props) {
207
- return props.sideNav ? props.mode === "push" && props.isSideNavVisible ? "" : "-297px" : "";
208
- });
172
+ var BodyContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex: 1;\n"])));
209
173
 
210
- var SideNavArrowContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n z-index: 1200;\n transform: ", ";\n transition: transform 0.4s ease-in-out;\n height: calc(100vh - 64px);\n position: sticky;\n top: 64px;\n"])), function (props) {
211
- return props.isSideNavVisible ? "translateX(0)" : !props.isSideNavVisible ? "translateX(-100%)" : "";
212
- });
174
+ var SidenavContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n position: sticky;\n top: 64px;\n display: flex;\n height: calc(100vh - 64px);\n z-index: 1;\n\n @media (max-width: ", "rem) {\n position: absolute;\n top: 0px;\n height: 100%;\n }\n"])), _variables.responsiveSizes.medium);
213
175
 
214
- var ArrowContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n height: calc(100vh - 64px);\n left: 279px;\n"])));
176
+ var MainContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n width: 100%;\n"])));
215
177
 
216
- 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) {
217
- return "".concat(props.theme.arrowContainerColor);
218
- }, function (props) {
219
- return props.isSideNavVisible ? "rotate(-180deg)" : "rotate(0deg)";
220
- }, function (props) {
221
- return props.theme.arrowColor;
222
- });
178
+ var MainContentContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n"])));
223
179
 
180
+ DxcApplicationLayout.Header = Header;
181
+ DxcApplicationLayout.Main = Main;
182
+ DxcApplicationLayout.Footer = Footer;
183
+ DxcApplicationLayout.SideNav = Sidenav;
184
+ DxcApplicationLayout.useResponsiveSidenavVisibility = _SidenavContext.useResponsiveSidenavVisibility;
224
185
  var _default = DxcApplicationLayout;
225
186
  exports["default"] = _default;