@dxc-technology/halstack-react 0.0.0-8b133ff → 0.0.0-8b61ced

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 (212) hide show
  1. package/HalstackContext.d.ts +4 -2
  2. package/HalstackContext.js +109 -58
  3. package/accordion/Accordion.js +122 -103
  4. package/accordion/Accordion.stories.tsx +2 -3
  5. package/accordion/Accordion.test.js +9 -10
  6. package/accordion/types.d.ts +5 -4
  7. package/accordion-group/AccordionGroup.js +2 -21
  8. package/accordion-group/AccordionGroup.stories.tsx +27 -1
  9. package/accordion-group/AccordionGroup.test.js +20 -45
  10. package/accordion-group/types.d.ts +10 -3
  11. package/alert/Alert.js +5 -2
  12. package/badge/Badge.d.ts +1 -1
  13. package/badge/Badge.js +5 -3
  14. package/badge/types.d.ts +1 -0
  15. package/bleed/Bleed.js +1 -34
  16. package/bleed/Bleed.stories.tsx +94 -95
  17. package/bleed/types.d.ts +1 -1
  18. package/box/Box.js +23 -33
  19. package/box/types.d.ts +1 -0
  20. package/bulleted-list/BulletedList.d.ts +7 -0
  21. package/bulleted-list/BulletedList.js +123 -0
  22. package/bulleted-list/BulletedList.stories.tsx +200 -0
  23. package/bulleted-list/types.d.ts +11 -0
  24. package/{list → bulleted-list}/types.js +0 -0
  25. package/button/Button.js +46 -62
  26. package/button/Button.stories.tsx +9 -0
  27. package/button/types.d.ts +7 -7
  28. package/card/Card.js +34 -36
  29. package/card/types.d.ts +1 -0
  30. package/checkbox/Checkbox.d.ts +2 -2
  31. package/checkbox/Checkbox.js +95 -99
  32. package/checkbox/Checkbox.stories.tsx +79 -59
  33. package/checkbox/Checkbox.test.js +93 -16
  34. package/checkbox/types.d.ts +6 -2
  35. package/chip/types.d.ts +1 -1
  36. package/common/variables.js +237 -97
  37. package/date-input/Calendar.d.ts +4 -0
  38. package/date-input/Calendar.js +258 -0
  39. package/date-input/DateInput.js +81 -223
  40. package/date-input/DateInput.stories.tsx +30 -17
  41. package/date-input/DateInput.test.js +411 -138
  42. package/date-input/DatePicker.d.ts +4 -0
  43. package/date-input/DatePicker.js +160 -0
  44. package/date-input/YearPicker.d.ts +4 -0
  45. package/date-input/YearPicker.js +115 -0
  46. package/date-input/types.d.ts +53 -0
  47. package/dialog/Dialog.js +52 -28
  48. package/dialog/Dialog.stories.tsx +57 -2
  49. package/dialog/Dialog.test.js +34 -4
  50. package/dialog/types.d.ts +3 -2
  51. package/dropdown/Dropdown.d.ts +1 -1
  52. package/dropdown/Dropdown.js +247 -247
  53. package/dropdown/Dropdown.stories.tsx +126 -63
  54. package/dropdown/Dropdown.test.js +504 -108
  55. package/dropdown/DropdownMenu.d.ts +4 -0
  56. package/dropdown/DropdownMenu.js +80 -0
  57. package/dropdown/DropdownMenuItem.d.ts +4 -0
  58. package/dropdown/DropdownMenuItem.js +92 -0
  59. package/dropdown/types.d.ts +25 -5
  60. package/file-input/FileInput.d.ts +2 -2
  61. package/file-input/FileInput.js +183 -222
  62. package/file-input/FileInput.stories.tsx +38 -10
  63. package/file-input/FileInput.test.js +53 -12
  64. package/file-input/FileItem.d.ts +4 -14
  65. package/file-input/FileItem.js +43 -66
  66. package/file-input/types.d.ts +17 -0
  67. package/flex/Flex.d.ts +4 -0
  68. package/flex/Flex.js +69 -0
  69. package/flex/Flex.stories.tsx +103 -0
  70. package/flex/types.d.ts +32 -0
  71. package/{radio → flex}/types.js +0 -0
  72. package/footer/Footer.js +7 -5
  73. package/footer/Footer.stories.tsx +8 -1
  74. package/footer/Icons.js +1 -1
  75. package/footer/types.d.ts +2 -1
  76. package/header/Header.js +80 -75
  77. package/header/Header.stories.tsx +4 -4
  78. package/header/Icons.js +2 -2
  79. package/header/types.d.ts +3 -2
  80. package/inset/Inset.js +1 -34
  81. package/inset/Inset.stories.tsx +36 -36
  82. package/inset/types.d.ts +1 -1
  83. package/layout/ApplicationLayout.d.ts +16 -6
  84. package/layout/ApplicationLayout.js +70 -117
  85. package/layout/ApplicationLayout.stories.tsx +84 -93
  86. package/layout/Icons.d.ts +5 -0
  87. package/layout/Icons.js +13 -2
  88. package/layout/SidenavContext.d.ts +5 -0
  89. package/layout/SidenavContext.js +19 -0
  90. package/layout/types.d.ts +18 -33
  91. package/link/Link.d.ts +3 -2
  92. package/link/Link.js +58 -71
  93. package/link/Link.stories.tsx +95 -53
  94. package/link/Link.test.js +7 -15
  95. package/link/types.d.ts +7 -23
  96. package/main.d.ts +7 -10
  97. package/main.js +38 -56
  98. package/number-input/NumberInput.test.js +43 -7
  99. package/number-input/types.d.ts +1 -1
  100. package/package.json +16 -19
  101. package/paginator/Paginator.js +17 -38
  102. package/paginator/Paginator.test.js +43 -1
  103. package/paragraph/Paragraph.d.ts +6 -0
  104. package/paragraph/Paragraph.js +38 -0
  105. package/paragraph/Paragraph.stories.tsx +44 -0
  106. package/password-input/PasswordInput.js +7 -4
  107. package/password-input/PasswordInput.test.js +14 -14
  108. package/password-input/types.d.ts +1 -1
  109. package/progress-bar/ProgressBar.d.ts +2 -2
  110. package/progress-bar/ProgressBar.js +57 -51
  111. package/progress-bar/ProgressBar.stories.jsx +13 -11
  112. package/progress-bar/ProgressBar.test.js +67 -22
  113. package/progress-bar/types.d.ts +3 -4
  114. package/quick-nav/QuickNav.js +75 -22
  115. package/quick-nav/QuickNav.stories.tsx +131 -26
  116. package/quick-nav/types.d.ts +4 -4
  117. package/radio-group/Radio.d.ts +1 -1
  118. package/radio-group/Radio.js +43 -28
  119. package/radio-group/RadioGroup.js +30 -27
  120. package/radio-group/RadioGroup.stories.tsx +1 -0
  121. package/radio-group/RadioGroup.test.js +123 -96
  122. package/radio-group/types.d.ts +2 -2
  123. package/resultsetTable/Icons.d.ts +7 -0
  124. package/resultsetTable/Icons.js +51 -0
  125. package/resultsetTable/ResultsetTable.js +48 -107
  126. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  127. package/resultsetTable/ResultsetTable.test.js +65 -41
  128. package/resultsetTable/types.d.ts +2 -2
  129. package/select/Listbox.d.ts +1 -1
  130. package/select/Listbox.js +58 -8
  131. package/select/Select.js +80 -90
  132. package/select/Select.stories.tsx +147 -105
  133. package/select/Select.test.js +425 -249
  134. package/select/types.d.ts +2 -5
  135. package/sidenav/Sidenav.d.ts +6 -5
  136. package/sidenav/Sidenav.js +184 -52
  137. package/sidenav/Sidenav.stories.tsx +154 -156
  138. package/sidenav/Sidenav.test.js +25 -37
  139. package/sidenav/types.d.ts +50 -27
  140. package/slider/Slider.d.ts +2 -2
  141. package/slider/Slider.js +120 -95
  142. package/slider/Slider.stories.tsx +7 -1
  143. package/slider/Slider.test.js +121 -21
  144. package/slider/types.d.ts +6 -2
  145. package/spinner/Spinner.js +3 -3
  146. package/switch/Switch.d.ts +2 -2
  147. package/switch/Switch.js +138 -68
  148. package/switch/Switch.stories.tsx +8 -30
  149. package/switch/Switch.test.js +144 -17
  150. package/switch/types.d.ts +6 -2
  151. package/table/Table.js +1 -1
  152. package/table/Table.test.js +1 -1
  153. package/tabs/Tab.d.ts +4 -0
  154. package/tabs/Tab.js +135 -0
  155. package/tabs/Tabs.js +360 -104
  156. package/tabs/Tabs.stories.tsx +74 -7
  157. package/tabs/Tabs.test.js +217 -6
  158. package/tabs/types.d.ts +15 -5
  159. package/tabs-nav/NavTabs.d.ts +8 -0
  160. package/tabs-nav/NavTabs.js +125 -0
  161. package/tabs-nav/NavTabs.stories.tsx +170 -0
  162. package/tabs-nav/NavTabs.test.js +82 -0
  163. package/tabs-nav/Tab.d.ts +4 -0
  164. package/tabs-nav/Tab.js +130 -0
  165. package/tabs-nav/types.d.ts +53 -0
  166. package/{row → tabs-nav}/types.js +0 -0
  167. package/tag/Tag.js +1 -1
  168. package/tag/types.d.ts +1 -1
  169. package/text-input/Icons.d.ts +8 -0
  170. package/text-input/Icons.js +60 -0
  171. package/text-input/Suggestion.d.ts +4 -0
  172. package/text-input/Suggestion.js +84 -0
  173. package/text-input/Suggestions.d.ts +4 -0
  174. package/text-input/Suggestions.js +134 -0
  175. package/text-input/TextInput.js +211 -330
  176. package/text-input/TextInput.stories.tsx +194 -182
  177. package/text-input/TextInput.test.js +738 -726
  178. package/text-input/types.d.ts +33 -2
  179. package/textarea/Textarea.js +10 -19
  180. package/textarea/types.d.ts +1 -1
  181. package/toggle-group/types.d.ts +1 -1
  182. package/typography/Typography.d.ts +4 -0
  183. package/typography/Typography.js +131 -0
  184. package/typography/Typography.stories.tsx +198 -0
  185. package/typography/types.d.ts +18 -0
  186. package/{stack → typography}/types.js +0 -0
  187. package/useTranslatedLabels.d.ts +2 -0
  188. package/useTranslatedLabels.js +20 -0
  189. package/wizard/Wizard.js +36 -41
  190. package/wizard/Wizard.stories.tsx +20 -1
  191. package/wizard/types.d.ts +5 -4
  192. package/common/RequiredComponent.js +0 -32
  193. package/list/List.d.ts +0 -4
  194. package/list/List.js +0 -47
  195. package/list/List.stories.tsx +0 -95
  196. package/list/types.d.ts +0 -7
  197. package/radio/Radio.d.ts +0 -4
  198. package/radio/Radio.js +0 -173
  199. package/radio/Radio.stories.tsx +0 -192
  200. package/radio/Radio.test.js +0 -71
  201. package/radio/types.d.ts +0 -54
  202. package/row/Row.d.ts +0 -3
  203. package/row/Row.js +0 -127
  204. package/row/Row.stories.tsx +0 -237
  205. package/row/types.d.ts +0 -28
  206. package/stack/Stack.d.ts +0 -3
  207. package/stack/Stack.js +0 -97
  208. package/stack/Stack.stories.tsx +0 -164
  209. package/stack/types.d.ts +0 -24
  210. package/text/Text.d.ts +0 -7
  211. package/text/Text.js +0 -30
  212. package/text/Text.stories.tsx +0 -19
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import Title from "../../.storybook/components/Title";
3
3
  import styled from "styled-components";
4
- import DxcStack from "./../stack/Stack";
4
+ import DxcFlex from "./../flex/Flex";
5
5
  import DxcInset from "./Inset";
6
6
 
7
7
  export default {
@@ -19,199 +19,199 @@ export const Chromatic = () => (
19
19
  </Container>
20
20
  <Title title="space = none" level={4} />
21
21
  <Container>
22
- <DxcInset space="none">
22
+ <DxcInset space="0rem">
23
23
  <Placeholder></Placeholder>
24
24
  </DxcInset>
25
25
  </Container>
26
26
  <Title title="space = xxxsmall" level={4} />
27
27
  <Container>
28
- <DxcInset space="xxxsmall">
28
+ <DxcInset space="0.125rem">
29
29
  <Placeholder></Placeholder>
30
30
  </DxcInset>
31
31
  </Container>
32
32
  <Title title="space = xxsmall" level={4} />
33
33
  <Container>
34
- <DxcInset space="xxsmall">
34
+ <DxcInset space="0.25rem">
35
35
  <Placeholder></Placeholder>
36
36
  </DxcInset>
37
37
  </Container>
38
38
  <Title title="space = xsmall" level={4} />
39
39
  <Container>
40
- <DxcInset space="xsmall">
40
+ <DxcInset space="0.5rem">
41
41
  <Placeholder></Placeholder>
42
42
  </DxcInset>
43
43
  </Container>
44
44
  <Title title="space = small" level={4} />
45
45
  <Container>
46
- <DxcInset space="small">
46
+ <DxcInset space="1rem">
47
47
  <Placeholder></Placeholder>
48
48
  </DxcInset>
49
49
  </Container>
50
50
  <Title title="space = medium" level={4} />
51
51
  <Container>
52
- <DxcInset space="medium">
52
+ <DxcInset space="1.5rem">
53
53
  <Placeholder></Placeholder>
54
54
  </DxcInset>
55
55
  </Container>
56
56
  <Title title="space = large" level={4} />
57
57
  <Container>
58
- <DxcInset space="large">
58
+ <DxcInset space="2rem">
59
59
  <Placeholder></Placeholder>
60
60
  </DxcInset>
61
61
  </Container>
62
62
  <Title title="space = xlarge" level={4} />
63
63
  <Container>
64
- <DxcInset space="xlarge">
64
+ <DxcInset space="3rem">
65
65
  <Placeholder></Placeholder>
66
66
  </DxcInset>
67
67
  </Container>
68
68
  <Title title="space = xxlarge" level={4} />
69
69
  <Container>
70
- <DxcInset space="xxlarge">
70
+ <DxcInset space="4rem">
71
71
  <Placeholder></Placeholder>
72
72
  </DxcInset>
73
73
  </Container>
74
74
  <Title title="space = xxxlarge" level={4} />
75
75
  <Container>
76
- <DxcInset space="xxxlarge">
76
+ <DxcInset space="5rem">
77
77
  <Placeholder></Placeholder>
78
78
  </DxcInset>
79
79
  </Container>
80
80
  <Title title="horizontal = none" level={4} />
81
81
  <Container>
82
- <DxcInset horizontal="none">
82
+ <DxcInset horizontal="0rem">
83
83
  <Placeholder></Placeholder>
84
84
  </DxcInset>
85
85
  </Container>
86
86
  <Title title="horizontal = xxxsmall" level={4} />
87
87
  <Container>
88
- <DxcInset horizontal="xxxsmall">
88
+ <DxcInset horizontal="0.125rem">
89
89
  <Placeholder></Placeholder>
90
90
  </DxcInset>
91
91
  </Container>
92
92
  <Title title="horizontal = xxsmall" level={4} />
93
93
  <Container>
94
- <DxcInset horizontal="xxsmall">
94
+ <DxcInset horizontal="0.25rem">
95
95
  <Placeholder></Placeholder>
96
96
  </DxcInset>
97
97
  </Container>
98
98
  <Title title="horizontal = xsmall" level={4} />
99
99
  <Container>
100
- <DxcInset horizontal="xsmall">
100
+ <DxcInset horizontal="0.5rem">
101
101
  <Placeholder></Placeholder>
102
102
  </DxcInset>
103
103
  </Container>
104
104
  <Title title="horizontal = small" level={4} />
105
105
  <Container>
106
- <DxcInset horizontal="small">
106
+ <DxcInset horizontal="1rem">
107
107
  <Placeholder></Placeholder>
108
108
  </DxcInset>
109
109
  </Container>
110
110
  <Title title="horizontal = medium" level={4} />
111
111
  <Container>
112
- <DxcInset horizontal="medium">
112
+ <DxcInset horizontal="1.5rem">
113
113
  <Placeholder></Placeholder>
114
114
  </DxcInset>
115
115
  </Container>
116
116
  <Title title="horizontal = large" level={4} />
117
117
  <Container>
118
- <DxcInset horizontal="large">
118
+ <DxcInset horizontal="2rem">
119
119
  <Placeholder></Placeholder>
120
120
  </DxcInset>
121
121
  </Container>
122
122
  <Title title="horizontal = xlarge" level={4} />
123
123
  <Container>
124
- <DxcInset horizontal="xlarge">
124
+ <DxcInset horizontal="3rem">
125
125
  <Placeholder></Placeholder>
126
126
  </DxcInset>
127
127
  </Container>
128
128
  <Title title="horizontal = xxlarge" level={4} />
129
129
  <Container>
130
- <DxcInset horizontal="xxlarge">
130
+ <DxcInset horizontal="4rem">
131
131
  <Placeholder></Placeholder>
132
132
  </DxcInset>
133
133
  </Container>
134
134
  <Title title="horizontal = xxxlarge" level={4} />
135
135
  <Container>
136
- <DxcInset horizontal="xxxlarge">
136
+ <DxcInset horizontal="5rem">
137
137
  <Placeholder></Placeholder>
138
138
  </DxcInset>
139
139
  </Container>
140
140
  <Title title="vertical = none" level={4} />
141
141
  <Container>
142
- <DxcInset vertical="none">
142
+ <DxcInset vertical="0rem">
143
143
  <Placeholder></Placeholder>
144
144
  </DxcInset>
145
145
  </Container>
146
146
  <Title title="vertical = xxxsmall" level={4} />
147
147
  <Container>
148
- <DxcInset vertical="xxxsmall">
148
+ <DxcInset vertical="0.125rem">
149
149
  <Placeholder></Placeholder>
150
150
  </DxcInset>
151
151
  </Container>
152
152
  <Title title="vertical = xxsmall" level={4} />
153
153
  <Container>
154
- <DxcInset vertical="xxsmall">
154
+ <DxcInset vertical="0.25rem">
155
155
  <Placeholder></Placeholder>
156
156
  </DxcInset>
157
157
  </Container>
158
158
  <Title title="vertical = xsmall" level={4} />
159
159
  <Container>
160
- <DxcInset vertical="xsmall">
160
+ <DxcInset vertical="0.5rem">
161
161
  <Placeholder></Placeholder>
162
162
  </DxcInset>
163
163
  </Container>
164
164
  <Title title="vertical = small" level={4} />
165
165
  <Container>
166
- <DxcInset vertical="small">
166
+ <DxcInset vertical="1rem">
167
167
  <Placeholder></Placeholder>
168
168
  </DxcInset>
169
169
  </Container>
170
170
  <Title title="vertical = medium" level={4} />
171
171
  <Container>
172
- <DxcInset vertical="medium">
172
+ <DxcInset vertical="1.5rem">
173
173
  <Placeholder></Placeholder>
174
174
  </DxcInset>
175
175
  </Container>
176
176
  <Title title="vertical = large" level={4} />
177
177
  <Container>
178
- <DxcInset vertical="large">
178
+ <DxcInset vertical="2rem">
179
179
  <Placeholder></Placeholder>
180
180
  </DxcInset>
181
181
  </Container>
182
182
  <Title title="vertical = xlarge" level={4} />
183
183
  <Container>
184
- <DxcInset vertical="xlarge">
184
+ <DxcInset vertical="3rem">
185
185
  <Placeholder></Placeholder>
186
186
  </DxcInset>
187
187
  </Container>
188
188
  <Title title="vertical = xxlarge" level={4} />
189
189
  <Container>
190
- <DxcInset vertical="xxlarge">
190
+ <DxcInset vertical="4rem">
191
191
  <Placeholder></Placeholder>
192
192
  </DxcInset>
193
193
  </Container>
194
194
  <Title title="vertical = xxxlarge" level={4} />
195
195
  <Container>
196
- <DxcInset vertical="xxxlarge">
196
+ <DxcInset vertical="5rem">
197
197
  <Placeholder></Placeholder>
198
198
  </DxcInset>
199
199
  </Container>
200
200
  <Title title="top = xxsmall, right= medium, bottom = large and left = xxlarge" level={4} />
201
201
  <Container>
202
- <DxcInset top="xxsmall" right="medium" bottom="large" left="xxlarge">
202
+ <DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem">
203
203
  <Placeholder></Placeholder>
204
204
  </DxcInset>
205
205
  </Container>
206
- <Title title="Inside a stack" level={4} />
206
+ <Title title="Inside a flex column" level={4} />
207
207
  <Container>
208
- <DxcStack gutter="medium" divider>
208
+ <DxcFlex direction="column" gap="0.75rem">
209
209
  <Placeholder></Placeholder>
210
- <DxcInset top="xxsmall" right="medium" bottom="large" left="xxlarge">
210
+ <DxcInset top="0.25rem" right="1.5rem" bottom="2rem" left="4rem">
211
211
  <Placeholder></Placeholder>
212
212
  </DxcInset>
213
213
  <Placeholder></Placeholder>
214
- </DxcStack>
214
+ </DxcFlex>
215
215
  </Container>
216
216
  </>
217
217
  );
package/inset/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- declare type Spacing = "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
2
+ declare type Spacing = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
3
3
  declare type Props = {
4
4
  /**
5
5
  * Applies the spacing scale to all sides.
@@ -1,10 +1,20 @@
1
- /// <reference types="react" />
2
- import AppLayoutPropsType, { AppLayoutFooterPropsType, AppLayoutMainPropsType, AppLayoutHeaderPropsType } from "./types";
1
+ import React from "react";
2
+ import AppLayoutPropsType, { AppLayoutMainPropsType } from "./types";
3
3
  declare const DxcApplicationLayout: {
4
- ({ children }: AppLayoutPropsType): JSX.Element;
5
- Header: ({ children }: AppLayoutHeaderPropsType) => JSX.Element;
4
+ ({ visibilityToggleLabel, header, sidenav, footer, children, }: AppLayoutPropsType): JSX.Element;
5
+ Header: {
6
+ ({ underlined, content, responsiveContent, onClick, margin, padding, tabIndex, }: import("../header/types").default): JSX.Element;
7
+ Dropdown: (props: any) => JSX.Element;
8
+ };
6
9
  Main: ({ children }: AppLayoutMainPropsType) => JSX.Element;
7
- Footer: ({ children }: AppLayoutFooterPropsType) => JSX.Element;
8
- SideNav: (props: any) => JSX.Element;
10
+ Footer: ({ socialLinks, bottomLinks, copyright, children, padding, margin, tabIndex, }: import("../footer/types").default) => JSX.Element;
11
+ SideNav: {
12
+ ({ children, title }: import("../sidenav/types").default): JSX.Element;
13
+ Section: ({ children }: import("../sidenav/types").SidenavSectionPropsType) => JSX.Element;
14
+ Group: ({ children, title, collapsable, icon }: import("../sidenav/types").SidenavGroupPropsType) => JSX.Element;
15
+ Link: React.ForwardRefExoticComponent<import("../sidenav/types").SidenavLinkPropsType & React.RefAttributes<HTMLAnchorElement>>;
16
+ Title: ({ children }: import("../sidenav/types").SidenavTitlePropsType) => JSX.Element;
17
+ };
18
+ useResponsiveSidenavVisibility: () => (isSidenavVisible: boolean) => void;
9
19
  };
10
20
  export default DxcApplicationLayout;
@@ -13,23 +13,25 @@ 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"));
17
-
18
16
  var _react = _interopRequireWildcard(require("react"));
19
17
 
20
- var _main = require("../main");
18
+ var _Header = _interopRequireDefault(require("../header/Header"));
19
+
20
+ var _Footer = _interopRequireDefault(require("../footer/Footer"));
21
+
22
+ var _Sidenav = _interopRequireDefault(require("../sidenav/Sidenav"));
21
23
 
22
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
24
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
23
25
 
24
26
  var _variables = require("../common/variables.js");
25
27
 
26
28
  var _Icons = require("./Icons");
27
29
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme"));
30
+ var _SidenavContext = require("./SidenavContext");
29
31
 
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
32
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
31
33
 
32
- var _excluded = ["displayArrow", "mode"];
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
33
35
 
34
36
  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
37
 
@@ -37,32 +39,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
37
39
 
38
40
  var year = new Date().getFullYear();
39
41
 
40
- var Header = function Header(_ref) {
42
+ var Main = function Main(_ref) {
41
43
  var children = _ref.children;
42
44
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
43
45
  };
44
46
 
45
- var Main = function Main(_ref2) {
46
- var children = _ref2.children;
47
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
48
- };
49
-
50
- var Footer = function Footer(_ref3) {
51
- var children = _ref3.children;
52
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
53
- };
54
-
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);
47
+ var defaultHeader = function defaultHeader() {
48
+ return /*#__PURE__*/_react["default"].createElement(_Header["default"], {
49
+ underlined: true
50
+ });
62
51
  };
63
52
 
64
53
  var defaultFooter = function defaultFooter() {
65
- return /*#__PURE__*/_react["default"].createElement(_main.DxcFooter, {
54
+ return /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
66
55
  copyright: "\xA9 DXC Technology ".concat(year, "\u200B\u200B\u200B\u200B. All rights reserved."),
67
56
  bottomLinks: [{
68
57
  href: "https://www.linkedin.com/company/dxctechnology",
@@ -87,132 +76,96 @@ var defaultFooter = function defaultFooter() {
87
76
  });
88
77
  };
89
78
 
90
- var defaultHeader = function defaultHeader() {
91
- return /*#__PURE__*/_react["default"].createElement(_main.DxcHeader, {
92
- underlined: true
93
- });
94
- };
95
-
96
79
  var childTypeExists = function childTypeExists(children, childType) {
97
80
  return children.find(function (child) {
98
- return child && child.type && child.type === childType;
81
+ return (child === null || child === void 0 ? void 0 : child.type) === childType;
99
82
  });
100
83
  };
101
84
 
102
- var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
103
- var children = _ref4.children;
104
- var ref = (0, _react.useRef)(null);
105
- var colorsTheme = (0, _useTheme["default"])();
85
+ var DxcApplicationLayout = function DxcApplicationLayout(_ref2) {
86
+ var _ref2$visibilityToggl = _ref2.visibilityToggleLabel,
87
+ visibilityToggleLabel = _ref2$visibilityToggl === void 0 ? "" : _ref2$visibilityToggl,
88
+ header = _ref2.header,
89
+ sidenav = _ref2.sidenav,
90
+ footer = _ref2.footer,
91
+ children = _ref2.children;
106
92
 
107
- var _useState = (0, _react.useState)(true),
93
+ var _useState = (0, _react.useState)(false),
108
94
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
109
- isSideNavVisible = _useState2[0],
110
- setIsSideNavVisible = _useState2[1];
95
+ isSidenavVisibleResponsive = _useState2[0],
96
+ setIsSidenavVisibleResponsive = _useState2[1];
111
97
 
112
98
  var _useState3 = (0, _react.useState)(false),
113
99
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
114
100
  isResponsive = _useState4[0],
115
101
  setIsResponsive = _useState4[1];
116
102
 
103
+ var ref = (0, _react.useRef)(null);
104
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
105
+
117
106
  var childrenArray = _react["default"].Children.toArray(children);
118
107
 
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);
108
+ var headerContent = header || defaultHeader();
109
+ var footerContent = footer || defaultFooter();
122
110
  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
111
 
139
112
  var handleResize = function handleResize() {
140
113
  setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
141
- setIsSideNavVisible(true);
142
114
  };
143
115
 
144
- (0, _react.useEffect)(function () {
145
- if (ref.current) {
146
- window.addEventListener("resize", handleResize);
147
- }
116
+ var handleSidenavVisibility = function handleSidenavVisibility() {
117
+ setIsSidenavVisibleResponsive(function (isSidenavVisibleResponsive) {
118
+ return !isSidenavVisibleResponsive;
119
+ });
120
+ };
148
121
 
122
+ (0, _react.useLayoutEffect)(function () {
123
+ handleResize();
124
+ window.addEventListener("resize", handleResize);
149
125
  return function () {
150
126
  window.removeEventListener("resize", handleResize);
151
127
  };
152
- }, [ref.current]);
153
-
154
- var handleSidenav = function handleSidenav() {
155
- setIsSideNavVisible(!isSideNavVisible);
156
- };
157
-
158
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
159
- theme: colorsTheme.sidenav
160
- }, /*#__PURE__*/_react["default"].createElement(ApplicationLayoutContainer, {
128
+ }, []);
129
+ (0, _react.useEffect)(function () {
130
+ !isResponsive && setIsSidenavVisibleResponsive(false);
131
+ }, [isResponsive]);
132
+ return /*#__PURE__*/_react["default"].createElement(ApplicationLayoutContainer, {
133
+ hasSidenav: sidenav ? true : false,
134
+ isSidenavVisible: isSidenavVisibleResponsive,
161
135
  ref: ref
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, {
163
- isSideNavVisible: isSideNavVisible
164
- }, sideNav, /*#__PURE__*/_react["default"].createElement(ArrowContainer, null, sideNav && (displayArrow || isResponsive) && /*#__PURE__*/_react["default"].createElement(ArrowTrigger, {
165
- role: "button",
166
- tabIndex: 0,
167
- onClick: handleSidenav,
168
- isSideNavVisible: isSideNavVisible
169
- }, /*#__PURE__*/_react["default"].createElement(ArrowIcon, null)))), /*#__PURE__*/_react["default"].createElement(MainBodyContainer, null, /*#__PURE__*/_react["default"].createElement(MainContent, {
170
- sideNav: sideNav,
171
- mode: isResponsive ? "overlay" : sideNavMode,
172
- isSideNavVisible: isSideNavVisible
173
- }, main), /*#__PURE__*/_react["default"].createElement(FooterContainer, {
174
- sideNav: sideNav,
175
- mode: isResponsive ? "overlay" : sideNavMode,
176
- isSideNavVisible: isSideNavVisible
177
- }, footer))))));
136
+ }, /*#__PURE__*/_react["default"].createElement(HeaderContainer, null, headerContent), sidenav && isResponsive && /*#__PURE__*/_react["default"].createElement(VisibilityToggle, null, /*#__PURE__*/_react["default"].createElement(HamburgerTrigger, {
137
+ onClick: handleSidenavVisibility,
138
+ "aria-label": visibilityToggleLabel ? undefined : translatedLabels.applicationLayout.visibilityToggleTitle,
139
+ title: translatedLabels.applicationLayout.visibilityToggleTitle
140
+ }, _Icons.hamburgerIcon, visibilityToggleLabel)), /*#__PURE__*/_react["default"].createElement(BodyContainer, null, /*#__PURE__*/_react["default"].createElement(_SidenavContext.SidenavContextProvider, {
141
+ value: setIsSidenavVisibleResponsive
142
+ }, sidenav && (isResponsive ? isSidenavVisibleResponsive : true) && /*#__PURE__*/_react["default"].createElement(SidenavContainer, null, sidenav)), /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(MainContentContainer, null, main), footerContent)));
178
143
  };
179
144
 
180
- DxcApplicationLayout.Header = Header;
181
- DxcApplicationLayout.Main = Main;
182
- DxcApplicationLayout.Footer = Footer;
183
- DxcApplicationLayout.SideNav = SideNav;
184
-
185
- 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"])));
186
-
187
- 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"])));
145
+ 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) {
146
+ return props.hasSidenav && "top: 116px";
147
+ }, function (props) {
148
+ return props.isSidenavVisible && "overflow: hidden;";
149
+ });
188
150
 
189
- var BodyContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n display: flex;\n flex-direction: column;\n"])));
151
+ 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"])));
190
152
 
191
- var ContentContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex: 1 1 auto;\n align-items: flex-start;\n"])));
153
+ 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"])));
192
154
 
193
- 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"])));
155
+ 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"])));
194
156
 
195
- var FooterContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n transition: margin 0.4s ease-in-out;\n"])), function (props) {
196
- return props.sideNav ? props.mode === "push" && !props.isSideNavVisible || props.mode === "overlay" ? "-300px" : "" : "";
197
- });
198
-
199
- 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) {
200
- return props.sideNav ? props.mode === "push" && props.isSideNavVisible ? "" : "-297px" : "";
201
- });
157
+ var BodyContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex: 1;\n"])));
202
158
 
203
- 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) {
204
- return props.isSideNavVisible ? "translateX(0)" : !props.isSideNavVisible ? "translateX(-100%)" : "";
205
- });
159
+ 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);
206
160
 
207
- var ArrowContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n height: calc(100vh - 64px);\n left: 279px;\n"])));
161
+ var MainContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n width: 100%;\n"])));
208
162
 
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) {
210
- return "".concat(props.theme.arrowContainerColor);
211
- }, function (props) {
212
- return props.isSideNavVisible ? "rotate(-180deg)" : "rotate(0deg)";
213
- }, function (props) {
214
- return props.theme.arrowColor;
215
- });
163
+ var MainContentContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n"])));
216
164
 
165
+ DxcApplicationLayout.Header = _Header["default"];
166
+ DxcApplicationLayout.Main = Main;
167
+ DxcApplicationLayout.Footer = _Footer["default"];
168
+ DxcApplicationLayout.SideNav = _Sidenav["default"];
169
+ DxcApplicationLayout.useResponsiveSidenavVisibility = _SidenavContext.useResponsiveSidenavVisibility;
217
170
  var _default = DxcApplicationLayout;
218
171
  exports["default"] = _default;