@dxc-technology/halstack-react 0.0.0-3716032 → 0.0.0-38267fd

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 (291) hide show
  1. package/BackgroundColorContext.js +0 -1
  2. package/HalstackContext.d.ts +12 -0
  3. package/HalstackContext.js +343 -0
  4. package/accordion/Accordion.d.ts +1 -1
  5. package/accordion/Accordion.js +117 -136
  6. package/accordion/Accordion.stories.tsx +114 -19
  7. package/accordion/Accordion.test.js +71 -0
  8. package/accordion/types.d.ts +11 -10
  9. package/accordion-group/AccordionGroup.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +15 -36
  11. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  12. package/accordion-group/AccordionGroup.test.js +126 -0
  13. package/accordion-group/types.d.ts +16 -9
  14. package/alert/Alert.js +5 -2
  15. package/alert/Alert.stories.tsx +28 -0
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +5 -3
  19. package/badge/types.d.ts +5 -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 +23 -35
  26. package/box/Box.stories.tsx +15 -0
  27. package/box/Box.test.js +18 -0
  28. package/box/types.d.ts +1 -0
  29. package/bulleted-list/BulletedList.d.ts +7 -0
  30. package/bulleted-list/BulletedList.js +123 -0
  31. package/bulleted-list/BulletedList.stories.tsx +200 -0
  32. package/bulleted-list/types.d.ts +11 -0
  33. package/bulleted-list/types.js +5 -0
  34. package/button/Button.d.ts +1 -1
  35. package/button/Button.js +54 -79
  36. package/button/Button.stories.tsx +163 -14
  37. package/button/Button.test.js +35 -0
  38. package/button/types.d.ts +8 -12
  39. package/card/Card.js +24 -27
  40. package/card/Card.stories.tsx +1 -1
  41. package/card/Card.test.js +50 -0
  42. package/card/types.d.ts +1 -0
  43. package/checkbox/Checkbox.d.ts +2 -2
  44. package/checkbox/Checkbox.js +106 -109
  45. package/checkbox/Checkbox.stories.tsx +198 -130
  46. package/checkbox/Checkbox.test.js +155 -0
  47. package/checkbox/types.d.ts +13 -5
  48. package/chip/Chip.d.ts +1 -1
  49. package/chip/Chip.js +20 -64
  50. package/chip/Chip.stories.tsx +98 -13
  51. package/chip/Chip.test.js +56 -0
  52. package/chip/types.d.ts +5 -13
  53. package/common/variables.js +514 -584
  54. package/date-input/Calendar.d.ts +4 -0
  55. package/date-input/Calendar.js +258 -0
  56. package/date-input/DateInput.js +171 -260
  57. package/date-input/DateInput.stories.tsx +199 -33
  58. package/date-input/DateInput.test.js +835 -0
  59. package/date-input/DatePicker.d.ts +4 -0
  60. package/date-input/DatePicker.js +146 -0
  61. package/date-input/Icons.d.ts +6 -0
  62. package/date-input/Icons.js +75 -0
  63. package/date-input/YearPicker.d.ts +4 -0
  64. package/date-input/YearPicker.js +126 -0
  65. package/date-input/types.d.ts +67 -9
  66. package/dialog/Dialog.js +75 -92
  67. package/dialog/Dialog.stories.tsx +230 -123
  68. package/dialog/Dialog.test.js +369 -0
  69. package/dialog/types.d.ts +3 -2
  70. package/dropdown/Dropdown.d.ts +1 -1
  71. package/dropdown/Dropdown.js +248 -277
  72. package/dropdown/Dropdown.stories.tsx +255 -64
  73. package/dropdown/Dropdown.test.js +585 -0
  74. package/dropdown/DropdownMenu.d.ts +4 -0
  75. package/dropdown/DropdownMenu.js +70 -0
  76. package/dropdown/DropdownMenuItem.d.ts +4 -0
  77. package/dropdown/DropdownMenuItem.js +81 -0
  78. package/dropdown/types.d.ts +29 -18
  79. package/file-input/FileInput.d.ts +2 -2
  80. package/file-input/FileInput.js +180 -222
  81. package/file-input/FileInput.stories.tsx +122 -10
  82. package/file-input/FileInput.test.js +457 -0
  83. package/file-input/FileItem.d.ts +4 -14
  84. package/file-input/FileItem.js +44 -66
  85. package/file-input/types.d.ts +17 -0
  86. package/flex/Flex.d.ts +4 -0
  87. package/flex/Flex.js +69 -0
  88. package/flex/Flex.stories.tsx +103 -0
  89. package/flex/types.d.ts +32 -0
  90. package/flex/types.js +5 -0
  91. package/footer/Footer.js +24 -99
  92. package/footer/Footer.stories.tsx +99 -1
  93. package/footer/Footer.test.js +109 -0
  94. package/footer/Icons.js +1 -1
  95. package/footer/types.d.ts +2 -1
  96. package/header/Header.js +107 -128
  97. package/header/Header.stories.tsx +189 -36
  98. package/header/Header.test.js +79 -0
  99. package/header/Icons.js +2 -2
  100. package/header/types.d.ts +3 -2
  101. package/heading/Heading.stories.tsx +3 -2
  102. package/heading/Heading.test.js +186 -0
  103. package/inset/Inset.d.ts +3 -0
  104. package/inset/Inset.js +51 -0
  105. package/inset/Inset.stories.tsx +229 -0
  106. package/inset/types.d.ts +37 -0
  107. package/inset/types.js +5 -0
  108. package/layout/ApplicationLayout.d.ts +16 -6
  109. package/layout/ApplicationLayout.js +71 -125
  110. package/layout/ApplicationLayout.stories.tsx +84 -93
  111. package/layout/Icons.d.ts +5 -0
  112. package/layout/Icons.js +13 -2
  113. package/layout/SidenavContext.d.ts +5 -0
  114. package/layout/SidenavContext.js +19 -0
  115. package/layout/types.d.ts +18 -33
  116. package/link/Link.d.ts +3 -2
  117. package/link/Link.js +61 -86
  118. package/link/Link.stories.tsx +159 -52
  119. package/link/Link.test.js +83 -0
  120. package/link/types.d.ts +9 -29
  121. package/main.d.ts +11 -15
  122. package/main.js +53 -79
  123. package/nav-tabs/NavTabs.d.ts +8 -0
  124. package/nav-tabs/NavTabs.js +125 -0
  125. package/nav-tabs/NavTabs.stories.tsx +260 -0
  126. package/nav-tabs/NavTabs.test.js +82 -0
  127. package/nav-tabs/Tab.d.ts +4 -0
  128. package/nav-tabs/Tab.js +150 -0
  129. package/nav-tabs/types.d.ts +53 -0
  130. package/nav-tabs/types.js +5 -0
  131. package/number-input/NumberInput.js +11 -18
  132. package/number-input/NumberInput.stories.tsx +5 -5
  133. package/number-input/NumberInput.test.js +542 -0
  134. package/number-input/types.d.ts +17 -10
  135. package/package.json +21 -22
  136. package/paginator/Icons.d.ts +5 -0
  137. package/paginator/Icons.js +16 -28
  138. package/paginator/Paginator.js +19 -46
  139. package/paginator/Paginator.stories.tsx +24 -0
  140. package/paginator/Paginator.test.js +315 -0
  141. package/paragraph/Paragraph.d.ts +6 -0
  142. package/paragraph/Paragraph.js +38 -0
  143. package/paragraph/Paragraph.stories.tsx +44 -0
  144. package/password-input/PasswordInput.js +7 -4
  145. package/password-input/PasswordInput.stories.tsx +3 -3
  146. package/password-input/PasswordInput.test.js +181 -0
  147. package/password-input/types.d.ts +14 -11
  148. package/progress-bar/ProgressBar.d.ts +2 -2
  149. package/progress-bar/ProgressBar.js +60 -54
  150. package/progress-bar/ProgressBar.stories.jsx +47 -12
  151. package/progress-bar/ProgressBar.test.js +110 -0
  152. package/progress-bar/types.d.ts +3 -4
  153. package/quick-nav/QuickNav.d.ts +4 -0
  154. package/quick-nav/QuickNav.js +117 -0
  155. package/quick-nav/QuickNav.stories.tsx +356 -0
  156. package/quick-nav/types.d.ts +21 -0
  157. package/quick-nav/types.js +5 -0
  158. package/radio-group/Radio.d.ts +4 -0
  159. package/radio-group/Radio.js +156 -0
  160. package/radio-group/RadioGroup.d.ts +4 -0
  161. package/radio-group/RadioGroup.js +283 -0
  162. package/radio-group/RadioGroup.stories.tsx +214 -0
  163. package/radio-group/RadioGroup.test.js +722 -0
  164. package/radio-group/types.d.ts +114 -0
  165. package/radio-group/types.js +5 -0
  166. package/resultsetTable/Icons.d.ts +7 -0
  167. package/resultsetTable/Icons.js +51 -0
  168. package/resultsetTable/ResultsetTable.js +49 -105
  169. package/resultsetTable/ResultsetTable.stories.tsx +56 -32
  170. package/resultsetTable/ResultsetTable.test.js +325 -0
  171. package/resultsetTable/types.d.ts +2 -2
  172. package/select/Icons.d.ts +10 -0
  173. package/select/Icons.js +93 -0
  174. package/select/Listbox.d.ts +4 -0
  175. package/select/Listbox.js +169 -0
  176. package/select/Option.d.ts +4 -0
  177. package/select/Option.js +97 -0
  178. package/select/Select.js +183 -382
  179. package/select/Select.stories.tsx +600 -201
  180. package/select/Select.test.js +2228 -0
  181. package/select/types.d.ts +53 -13
  182. package/sidenav/Sidenav.d.ts +6 -5
  183. package/sidenav/Sidenav.js +182 -52
  184. package/sidenav/Sidenav.stories.tsx +249 -132
  185. package/sidenav/Sidenav.test.js +44 -0
  186. package/sidenav/types.d.ts +50 -27
  187. package/slider/Slider.d.ts +2 -2
  188. package/slider/Slider.js +122 -96
  189. package/slider/Slider.stories.tsx +72 -9
  190. package/slider/Slider.test.js +250 -0
  191. package/slider/types.d.ts +10 -2
  192. package/spinner/Spinner.js +3 -3
  193. package/spinner/Spinner.stories.jsx +27 -0
  194. package/spinner/Spinner.test.js +64 -0
  195. package/switch/Switch.d.ts +2 -2
  196. package/switch/Switch.js +150 -67
  197. package/switch/Switch.stories.tsx +54 -43
  198. package/switch/Switch.test.js +225 -0
  199. package/switch/types.d.ts +12 -4
  200. package/table/Table.js +1 -1
  201. package/table/Table.stories.jsx +81 -1
  202. package/table/Table.test.js +26 -0
  203. package/tabs/Tab.d.ts +4 -0
  204. package/tabs/Tab.js +133 -0
  205. package/tabs/Tabs.d.ts +1 -1
  206. package/tabs/Tabs.js +364 -110
  207. package/tabs/Tabs.stories.tsx +122 -17
  208. package/tabs/Tabs.test.js +351 -0
  209. package/tabs/types.d.ts +39 -17
  210. package/tag/Tag.d.ts +1 -1
  211. package/tag/Tag.js +18 -28
  212. package/tag/Tag.stories.tsx +38 -28
  213. package/tag/Tag.test.js +60 -0
  214. package/tag/types.d.ts +23 -14
  215. package/text-input/Icons.d.ts +8 -0
  216. package/text-input/Icons.js +60 -0
  217. package/text-input/Suggestion.d.ts +4 -0
  218. package/text-input/Suggestion.js +84 -0
  219. package/text-input/Suggestions.d.ts +4 -0
  220. package/text-input/Suggestions.js +134 -0
  221. package/text-input/TextInput.js +219 -332
  222. package/text-input/TextInput.stories.tsx +309 -196
  223. package/text-input/TextInput.test.js +1724 -0
  224. package/text-input/types.d.ts +51 -13
  225. package/textarea/Textarea.js +20 -27
  226. package/textarea/Textarea.stories.jsx +96 -15
  227. package/textarea/Textarea.test.js +437 -0
  228. package/textarea/types.d.ts +18 -11
  229. package/toggle-group/ToggleGroup.d.ts +1 -1
  230. package/toggle-group/ToggleGroup.js +5 -4
  231. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  232. package/toggle-group/ToggleGroup.test.js +156 -0
  233. package/toggle-group/types.d.ts +9 -1
  234. package/typography/Typography.d.ts +4 -0
  235. package/typography/Typography.js +131 -0
  236. package/typography/Typography.stories.tsx +198 -0
  237. package/typography/types.d.ts +18 -0
  238. package/typography/types.js +5 -0
  239. package/useTheme.js +2 -2
  240. package/useTranslatedLabels.d.ts +2 -0
  241. package/useTranslatedLabels.js +20 -0
  242. package/utils/FocusLock.d.ts +13 -0
  243. package/utils/FocusLock.js +139 -0
  244. package/wizard/Wizard.d.ts +1 -1
  245. package/wizard/Wizard.js +58 -54
  246. package/wizard/Wizard.stories.tsx +48 -19
  247. package/wizard/Wizard.test.js +141 -0
  248. package/wizard/types.d.ts +10 -5
  249. package/ThemeContext.d.ts +0 -15
  250. package/ThemeContext.js +0 -243
  251. package/V3Select/V3Select.js +0 -455
  252. package/V3Select/index.d.ts +0 -27
  253. package/V3Textarea/V3Textarea.js +0 -260
  254. package/V3Textarea/index.d.ts +0 -27
  255. package/common/RequiredComponent.js +0 -32
  256. package/date/Date.js +0 -373
  257. package/date/index.d.ts +0 -27
  258. package/input-text/Icons.js +0 -22
  259. package/input-text/InputText.js +0 -611
  260. package/input-text/index.d.ts +0 -36
  261. package/list/List.d.ts +0 -8
  262. package/list/List.js +0 -47
  263. package/list/List.stories.tsx +0 -85
  264. package/radio/Radio.d.ts +0 -4
  265. package/radio/Radio.js +0 -174
  266. package/radio/Radio.stories.tsx +0 -192
  267. package/radio/types.d.ts +0 -54
  268. package/row/Row.d.ts +0 -11
  269. package/row/Row.js +0 -124
  270. package/row/Row.stories.tsx +0 -223
  271. package/stack/Stack.d.ts +0 -10
  272. package/stack/Stack.js +0 -94
  273. package/stack/Stack.stories.tsx +0 -150
  274. package/text/Text.d.ts +0 -7
  275. package/text/Text.js +0 -30
  276. package/text/Text.stories.tsx +0 -19
  277. package/toggle/Toggle.js +0 -186
  278. package/toggle/index.d.ts +0 -21
  279. package/upload/Upload.js +0 -201
  280. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  281. package/upload/buttons-upload/Icons.js +0 -40
  282. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  283. package/upload/dragAndDropArea/Icons.js +0 -39
  284. package/upload/file-upload/FileToUpload.js +0 -115
  285. package/upload/file-upload/Icons.js +0 -66
  286. package/upload/files-upload/FilesToUpload.js +0 -109
  287. package/upload/index.d.ts +0 -15
  288. package/upload/transaction/Icons.js +0 -160
  289. package/upload/transaction/Transaction.js +0 -104
  290. package/upload/transactions/Transactions.js +0 -94
  291. /package/{radio → badge}/types.js +0 -0
@@ -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,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,139 +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
- var handleResize = function handleResize(width) {
140
- if (width) {
141
- setIsResponsive(width <= _variables.responsiveSizes.tablet);
142
- setIsSideNavVisible(true);
143
- }
112
+ var handleResize = function handleResize() {
113
+ setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
144
114
  };
145
115
 
146
- var handleEventListener = function handleEventListener() {
147
- handleResize(ref.current.offsetWidth);
116
+ var handleSidenavVisibility = function handleSidenavVisibility() {
117
+ setIsSidenavVisibleResponsive(function (isSidenavVisibleResponsive) {
118
+ return !isSidenavVisibleResponsive;
119
+ });
148
120
  };
149
121
 
150
- (0, _react.useEffect)(function () {
151
- if (ref.current) {
152
- window.addEventListener("resize", handleEventListener);
153
- handleResize(ref.current.offsetWidth);
154
- }
155
-
122
+ (0, _react.useLayoutEffect)(function () {
123
+ handleResize();
124
+ window.addEventListener("resize", handleResize);
156
125
  return function () {
157
- window.removeEventListener("resize", handleEventListener);
126
+ window.removeEventListener("resize", handleResize);
158
127
  };
159
128
  }, []);
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, {
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,
168
135
  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))))));
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)));
185
143
  };
186
144
 
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"])));
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
+ });
195
150
 
196
- 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"])));
197
152
 
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"])));
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"])));
199
154
 
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"])));
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"])));
201
156
 
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
- });
205
-
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
- });
157
+ var BodyContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex: 1;\n"])));
209
158
 
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
- });
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);
213
160
 
214
- 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"])));
215
162
 
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
- });
163
+ var MainContentContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n"])));
223
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;
224
170
  var _default = DxcApplicationLayout;
225
171
  exports["default"] = _default;