@dxc-technology/halstack-react 0.0.0-b22e2a8 → 0.0.0-b230d97

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 (294) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +300 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +119 -138
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +16 -37
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +17 -10
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +6 -4
  19. package/badge/types.d.ts +5 -0
  20. package/{radio → badge}/types.js +0 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +51 -0
  23. package/bleed/Bleed.stories.tsx +341 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +25 -35
  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 +59 -82
  36. package/button/Button.stories.tsx +163 -14
  37. package/button/Button.test.js +35 -0
  38. package/button/types.d.ts +10 -14
  39. package/card/Card.js +25 -28
  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 +108 -111
  45. package/checkbox/Checkbox.stories.tsx +198 -130
  46. package/checkbox/Checkbox.test.js +155 -0
  47. package/checkbox/types.d.ts +14 -6
  48. package/chip/Chip.d.ts +4 -0
  49. package/chip/Chip.js +22 -88
  50. package/chip/Chip.stories.tsx +98 -13
  51. package/chip/Chip.test.js +56 -0
  52. package/chip/types.d.ts +45 -0
  53. package/chip/types.js +5 -0
  54. package/common/variables.js +511 -569
  55. package/date-input/Calendar.d.ts +4 -0
  56. package/date-input/Calendar.js +258 -0
  57. package/date-input/DateInput.js +174 -266
  58. package/date-input/DateInput.stories.tsx +137 -38
  59. package/date-input/DateInput.test.js +835 -0
  60. package/date-input/DatePicker.d.ts +4 -0
  61. package/date-input/DatePicker.js +146 -0
  62. package/date-input/Icons.d.ts +6 -0
  63. package/date-input/Icons.js +75 -0
  64. package/date-input/YearPicker.d.ts +4 -0
  65. package/date-input/YearPicker.js +126 -0
  66. package/date-input/types.d.ts +67 -9
  67. package/dialog/Dialog.js +50 -53
  68. package/dialog/Dialog.stories.tsx +57 -2
  69. package/dialog/Dialog.test.js +70 -0
  70. package/dialog/types.d.ts +3 -2
  71. package/dropdown/Dropdown.d.ts +1 -1
  72. package/dropdown/Dropdown.js +248 -277
  73. package/dropdown/Dropdown.stories.tsx +438 -0
  74. package/dropdown/Dropdown.test.js +585 -0
  75. package/dropdown/DropdownMenu.d.ts +4 -0
  76. package/dropdown/DropdownMenu.js +70 -0
  77. package/dropdown/DropdownMenuItem.d.ts +4 -0
  78. package/dropdown/DropdownMenuItem.js +81 -0
  79. package/dropdown/types.d.ts +30 -19
  80. package/file-input/FileInput.d.ts +2 -2
  81. package/file-input/FileInput.js +182 -142
  82. package/file-input/FileInput.stories.tsx +618 -0
  83. package/file-input/FileInput.test.js +498 -0
  84. package/file-input/FileItem.d.ts +4 -14
  85. package/file-input/FileItem.js +46 -67
  86. package/file-input/types.d.ts +49 -7
  87. package/flex/Flex.d.ts +4 -0
  88. package/flex/Flex.js +69 -0
  89. package/flex/Flex.stories.tsx +103 -0
  90. package/flex/types.d.ts +32 -0
  91. package/flex/types.js +5 -0
  92. package/footer/Footer.d.ts +1 -1
  93. package/footer/Footer.js +32 -113
  94. package/footer/Footer.stories.tsx +228 -0
  95. package/footer/Footer.test.js +109 -0
  96. package/footer/Icons.d.ts +2 -0
  97. package/footer/Icons.js +4 -4
  98. package/footer/types.d.ts +22 -17
  99. package/header/Header.js +109 -130
  100. package/header/Header.stories.tsx +167 -36
  101. package/header/Header.test.js +79 -0
  102. package/header/Icons.d.ts +2 -0
  103. package/header/Icons.js +2 -2
  104. package/header/types.d.ts +3 -2
  105. package/heading/Heading.js +1 -1
  106. package/heading/Heading.stories.tsx +3 -2
  107. package/heading/Heading.test.js +186 -0
  108. package/inset/Inset.d.ts +3 -0
  109. package/inset/Inset.js +51 -0
  110. package/inset/Inset.stories.tsx +229 -0
  111. package/inset/types.d.ts +37 -0
  112. package/inset/types.js +5 -0
  113. package/layout/ApplicationLayout.d.ts +20 -0
  114. package/layout/ApplicationLayout.js +71 -135
  115. package/layout/ApplicationLayout.stories.tsx +162 -0
  116. package/layout/Icons.d.ts +5 -0
  117. package/layout/Icons.js +13 -2
  118. package/layout/SidenavContext.d.ts +5 -0
  119. package/layout/SidenavContext.js +19 -0
  120. package/layout/types.d.ts +42 -0
  121. package/layout/types.js +5 -0
  122. package/link/Link.d.ts +3 -2
  123. package/link/Link.js +62 -87
  124. package/link/Link.stories.tsx +99 -52
  125. package/link/Link.test.js +83 -0
  126. package/link/types.d.ts +9 -29
  127. package/main.d.ts +12 -12
  128. package/main.js +64 -58
  129. package/number-input/NumberInput.js +14 -24
  130. package/number-input/NumberInput.stories.tsx +5 -5
  131. package/number-input/NumberInput.test.js +542 -0
  132. package/number-input/types.d.ts +17 -10
  133. package/package.json +21 -22
  134. package/paginator/Icons.d.ts +5 -0
  135. package/paginator/Icons.js +16 -28
  136. package/paginator/Paginator.js +21 -54
  137. package/paginator/Paginator.stories.tsx +24 -0
  138. package/paginator/Paginator.test.js +315 -0
  139. package/paragraph/Paragraph.d.ts +6 -0
  140. package/paragraph/Paragraph.js +38 -0
  141. package/paragraph/Paragraph.stories.tsx +44 -0
  142. package/password-input/PasswordInput.js +23 -19
  143. package/password-input/PasswordInput.stories.tsx +3 -3
  144. package/password-input/PasswordInput.test.js +181 -0
  145. package/password-input/types.d.ts +26 -21
  146. package/progress-bar/ProgressBar.d.ts +2 -2
  147. package/progress-bar/ProgressBar.js +59 -53
  148. package/progress-bar/ProgressBar.stories.jsx +45 -12
  149. package/progress-bar/ProgressBar.test.js +110 -0
  150. package/progress-bar/types.d.ts +3 -4
  151. package/quick-nav/QuickNav.d.ts +4 -0
  152. package/quick-nav/QuickNav.js +117 -0
  153. package/quick-nav/QuickNav.stories.tsx +356 -0
  154. package/quick-nav/types.d.ts +21 -0
  155. package/quick-nav/types.js +5 -0
  156. package/radio-group/Radio.d.ts +4 -0
  157. package/radio-group/Radio.js +156 -0
  158. package/radio-group/RadioGroup.d.ts +4 -0
  159. package/radio-group/RadioGroup.js +283 -0
  160. package/radio-group/RadioGroup.stories.tsx +214 -0
  161. package/radio-group/RadioGroup.test.js +722 -0
  162. package/radio-group/types.d.ts +114 -0
  163. package/radio-group/types.js +5 -0
  164. package/resultsetTable/Icons.d.ts +7 -0
  165. package/resultsetTable/Icons.js +51 -0
  166. package/resultsetTable/ResultsetTable.d.ts +1 -1
  167. package/resultsetTable/ResultsetTable.js +53 -107
  168. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  169. package/resultsetTable/ResultsetTable.test.js +325 -0
  170. package/resultsetTable/types.d.ts +8 -4
  171. package/select/Icons.d.ts +10 -0
  172. package/select/Icons.js +93 -0
  173. package/select/Listbox.d.ts +4 -0
  174. package/select/Listbox.js +169 -0
  175. package/select/Option.d.ts +4 -0
  176. package/select/Option.js +97 -0
  177. package/select/Select.d.ts +4 -0
  178. package/select/Select.js +196 -397
  179. package/select/Select.stories.tsx +600 -201
  180. package/select/Select.test.js +2228 -0
  181. package/select/types.d.ts +210 -0
  182. package/select/types.js +5 -0
  183. package/sidenav/Sidenav.d.ts +6 -5
  184. package/sidenav/Sidenav.js +184 -54
  185. package/sidenav/Sidenav.stories.tsx +249 -132
  186. package/sidenav/Sidenav.test.js +44 -0
  187. package/sidenav/types.d.ts +50 -27
  188. package/slider/Slider.d.ts +2 -2
  189. package/slider/Slider.js +124 -98
  190. package/slider/Slider.stories.tsx +72 -9
  191. package/slider/Slider.test.js +250 -0
  192. package/slider/types.d.ts +10 -2
  193. package/spinner/Spinner.js +5 -5
  194. package/spinner/Spinner.stories.jsx +27 -0
  195. package/spinner/Spinner.test.js +64 -0
  196. package/switch/Switch.d.ts +2 -2
  197. package/switch/Switch.js +152 -69
  198. package/switch/Switch.stories.tsx +54 -43
  199. package/switch/Switch.test.js +225 -0
  200. package/switch/types.d.ts +12 -4
  201. package/table/Table.js +3 -3
  202. package/table/Table.stories.jsx +81 -1
  203. package/table/Table.test.js +26 -0
  204. package/tabs/Tab.d.ts +4 -0
  205. package/tabs/Tab.js +133 -0
  206. package/tabs/Tabs.d.ts +1 -1
  207. package/tabs/Tabs.js +364 -110
  208. package/tabs/Tabs.stories.tsx +226 -0
  209. package/tabs/Tabs.test.js +351 -0
  210. package/tabs/types.d.ts +39 -17
  211. package/tabs-nav/NavTabs.d.ts +8 -0
  212. package/tabs-nav/NavTabs.js +125 -0
  213. package/tabs-nav/NavTabs.stories.tsx +172 -0
  214. package/tabs-nav/NavTabs.test.js +82 -0
  215. package/tabs-nav/Tab.d.ts +4 -0
  216. package/tabs-nav/Tab.js +128 -0
  217. package/tabs-nav/types.d.ts +53 -0
  218. package/tabs-nav/types.js +5 -0
  219. package/tag/Tag.d.ts +1 -1
  220. package/tag/Tag.js +19 -29
  221. package/tag/Tag.stories.tsx +26 -29
  222. package/tag/Tag.test.js +60 -0
  223. package/tag/types.d.ts +23 -14
  224. package/text-input/Icons.d.ts +8 -0
  225. package/text-input/Icons.js +60 -0
  226. package/text-input/Suggestion.d.ts +4 -0
  227. package/text-input/Suggestion.js +84 -0
  228. package/text-input/Suggestions.d.ts +4 -0
  229. package/text-input/Suggestions.js +134 -0
  230. package/text-input/TextInput.js +231 -343
  231. package/text-input/TextInput.stories.tsx +569 -0
  232. package/text-input/TextInput.test.js +1724 -0
  233. package/text-input/types.d.ts +63 -23
  234. package/textarea/Textarea.d.ts +4 -0
  235. package/textarea/Textarea.js +39 -79
  236. package/textarea/Textarea.stories.jsx +37 -15
  237. package/textarea/Textarea.test.js +437 -0
  238. package/textarea/types.d.ts +137 -0
  239. package/textarea/types.js +5 -0
  240. package/toggle-group/ToggleGroup.d.ts +4 -0
  241. package/toggle-group/ToggleGroup.js +18 -46
  242. package/toggle-group/ToggleGroup.stories.tsx +69 -32
  243. package/toggle-group/ToggleGroup.test.js +156 -0
  244. package/toggle-group/types.d.ts +105 -0
  245. package/toggle-group/types.js +5 -0
  246. package/typography/Typography.d.ts +4 -0
  247. package/typography/Typography.js +131 -0
  248. package/typography/Typography.stories.tsx +198 -0
  249. package/typography/types.d.ts +18 -0
  250. package/typography/types.js +5 -0
  251. package/useTheme.d.ts +2 -0
  252. package/useTheme.js +2 -2
  253. package/useTranslatedLabels.d.ts +2 -0
  254. package/useTranslatedLabels.js +20 -0
  255. package/wizard/Wizard.d.ts +1 -1
  256. package/wizard/Wizard.js +112 -58
  257. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  258. package/wizard/Wizard.test.js +141 -0
  259. package/wizard/types.d.ts +13 -12
  260. package/ThemeContext.js +0 -246
  261. package/V3Select/V3Select.js +0 -455
  262. package/V3Select/index.d.ts +0 -27
  263. package/V3Textarea/V3Textarea.js +0 -260
  264. package/V3Textarea/index.d.ts +0 -27
  265. package/chip/index.d.ts +0 -22
  266. package/common/RequiredComponent.js +0 -32
  267. package/date/Date.js +0 -373
  268. package/date/index.d.ts +0 -27
  269. package/footer/Footer.stories.jsx +0 -151
  270. package/input-text/Icons.js +0 -22
  271. package/input-text/InputText.js +0 -611
  272. package/input-text/index.d.ts +0 -36
  273. package/radio/Radio.d.ts +0 -4
  274. package/radio/Radio.js +0 -174
  275. package/radio/Radio.stories.tsx +0 -192
  276. package/radio/types.d.ts +0 -54
  277. package/select/index.d.ts +0 -131
  278. package/textarea/index.d.ts +0 -117
  279. package/toggle/Toggle.js +0 -186
  280. package/toggle/index.d.ts +0 -21
  281. package/toggle-group/index.d.ts +0 -21
  282. package/upload/Upload.js +0 -201
  283. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  284. package/upload/buttons-upload/Icons.js +0 -40
  285. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  286. package/upload/dragAndDropArea/Icons.js +0 -39
  287. package/upload/file-upload/FileToUpload.js +0 -115
  288. package/upload/file-upload/Icons.js +0 -66
  289. package/upload/files-upload/FilesToUpload.js +0 -109
  290. package/upload/index.d.ts +0 -15
  291. package/upload/transaction/Icons.js +0 -160
  292. package/upload/transaction/Transaction.js +0 -104
  293. package/upload/transactions/Transactions.js +0 -94
  294. package/wizard/Icons.js +0 -65
@@ -0,0 +1,229 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import styled from "styled-components";
4
+ import 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
+ });
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import AppLayoutPropsType, { AppLayoutMainPropsType } from "./types";
3
+ declare const DxcApplicationLayout: {
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
+ };
9
+ Main: ({ children }: AppLayoutMainPropsType) => 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;
19
+ };
20
+ export default DxcApplicationLayout;
@@ -13,25 +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
21
 
22
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
22
+ var _Sidenav = _interopRequireDefault(require("../sidenav/Sidenav"));
23
23
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
24
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
25
25
 
26
26
  var _variables = require("../common/variables.js");
27
27
 
28
28
  var _Icons = require("./Icons");
29
29
 
30
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
30
+ var _SidenavContext = require("./SidenavContext");
31
31
 
32
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
32
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
33
33
 
34
- var _excluded = ["displayArrow", "mode"];
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
35
35
 
36
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); }
37
37
 
@@ -39,41 +39,19 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
39
39
 
40
40
  var year = new Date().getFullYear();
41
41
 
42
- var Header = function Header(_ref) {
42
+ var Main = function Main(_ref) {
43
43
  var children = _ref.children;
44
44
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
45
45
  };
46
46
 
47
- var Main = function Main(_ref2) {
48
- var children = _ref2.children;
49
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
50
- };
51
-
52
- var Footer = function Footer(_ref3) {
53
- var children = _ref3.children;
54
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children);
55
- };
56
-
57
- var SideNav = function SideNav(props) {
58
- var displayArrow = props.displayArrow,
59
- mode = props.mode,
60
- childProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
61
- return /*#__PURE__*/_react["default"].createElement(_main.DxcSidenav, childProps, childProps.children);
62
- };
63
-
64
- SideNav.propTypes = {
65
- mode: _propTypes["default"].oneOf(["overlay", "push", ""]),
66
- displayArrow: _propTypes["default"].bool,
67
- padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
68
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
69
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
70
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
71
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
72
- })])
47
+ var defaultHeader = function defaultHeader() {
48
+ return /*#__PURE__*/_react["default"].createElement(_Header["default"], {
49
+ underlined: true
50
+ });
73
51
  };
74
52
 
75
53
  var defaultFooter = function defaultFooter() {
76
- return /*#__PURE__*/_react["default"].createElement(_main.DxcFooter, {
54
+ return /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
77
55
  copyright: "\xA9 DXC Technology ".concat(year, "\u200B\u200B\u200B\u200B. All rights reserved."),
78
56
  bottomLinks: [{
79
57
  href: "https://www.linkedin.com/company/dxctechnology",
@@ -98,138 +76,96 @@ var defaultFooter = function defaultFooter() {
98
76
  });
99
77
  };
100
78
 
101
- var defaultHeader = function defaultHeader() {
102
- return /*#__PURE__*/_react["default"].createElement(_main.DxcHeader, {
103
- underlined: true
104
- });
105
- };
106
-
107
79
  var childTypeExists = function childTypeExists(children, childType) {
108
80
  return children.find(function (child) {
109
- return child && child.type && child.type === childType;
81
+ return (child === null || child === void 0 ? void 0 : child.type) === childType;
110
82
  });
111
83
  };
112
84
 
113
- var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
114
- var children = _ref4.children;
115
- var ref = (0, _react.useRef)(null);
116
- 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;
117
92
 
118
- var _useState = (0, _react.useState)(true),
93
+ var _useState = (0, _react.useState)(false),
119
94
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
120
- isSideNavVisible = _useState2[0],
121
- setIsSideNavVisible = _useState2[1];
95
+ isSidenavVisibleResponsive = _useState2[0],
96
+ setIsSidenavVisibleResponsive = _useState2[1];
122
97
 
123
- var _useState3 = (0, _react.useState)(),
98
+ var _useState3 = (0, _react.useState)(false),
124
99
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
125
100
  isResponsive = _useState4[0],
126
101
  setIsResponsive = _useState4[1];
127
102
 
103
+ var ref = (0, _react.useRef)(null);
104
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
105
+
128
106
  var childrenArray = _react["default"].Children.toArray(children);
129
107
 
130
- var header = childTypeExists(childrenArray, _main.DxcHeader) || childTypeExists(childrenArray, Header) || defaultHeader();
131
- var footer = childTypeExists(childrenArray, _main.DxcFooter) || childTypeExists(childrenArray, Footer) || defaultFooter();
132
- var sideNav = childTypeExists(childrenArray, SideNav);
108
+ var headerContent = header || defaultHeader();
109
+ var footerContent = footer || defaultFooter();
133
110
  var main = childTypeExists(childrenArray, Main);
134
- var displayArrow = sideNav && sideNav.props && sideNav.props.displayArrow;
135
- var sideNavMode = sideNav && sideNav.props && sideNav.props.mode;
136
-
137
- var ArrowIcon = function ArrowIcon() {
138
- return /*#__PURE__*/_react["default"].createElement("svg", {
139
- xmlns: "http://www.w3.org/2000/svg",
140
- width: "15.995",
141
- height: "10.01",
142
- viewBox: "0 0 15.995 10.01"
143
- }, /*#__PURE__*/_react["default"].createElement("path", {
144
- "data-testid": "arrow-to-right",
145
- 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",
146
- transform: "translate(-2 -6.996)"
147
- }));
148
- };
149
111
 
150
- var handleResize = function handleResize(width) {
151
- if (width) {
152
- if (width <= _variables.responsiveSizes.tablet ? setIsResponsive(true) : setIsResponsive(false)) ;
153
- setIsSideNavVisible(true);
154
- }
112
+ var handleResize = function handleResize() {
113
+ setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
155
114
  };
156
115
 
157
- var handleEventListener = function handleEventListener() {
158
- handleResize(ref.current.offsetWidth);
116
+ var handleSidenavVisibility = function handleSidenavVisibility() {
117
+ setIsSidenavVisibleResponsive(function (isSidenavVisibleResponsive) {
118
+ return !isSidenavVisibleResponsive;
119
+ });
159
120
  };
160
121
 
161
- (0, _react.useEffect)(function () {
162
- if (ref.current) {
163
- window.addEventListener("resize", handleEventListener);
164
- handleResize(ref.current.offsetWidth);
165
- }
166
-
122
+ (0, _react.useLayoutEffect)(function () {
123
+ handleResize();
124
+ window.addEventListener("resize", handleResize);
167
125
  return function () {
168
- window.removeEventListener("resize", handleEventListener);
126
+ window.removeEventListener("resize", handleResize);
169
127
  };
170
128
  }, []);
171
-
172
- var handleSidenav = function handleSidenav() {
173
- setIsSideNavVisible(!isSideNavVisible);
174
- };
175
-
176
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
177
- theme: colorsTheme.sidenav
178
- }, /*#__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,
179
135
  ref: ref
180
- }, /*#__PURE__*/_react["default"].createElement(HeaderContainer, null, header), /*#__PURE__*/_react["default"].createElement(BodyContainer, null, /*#__PURE__*/_react["default"].createElement(ContentContainer, null, /*#__PURE__*/_react["default"].createElement(SideNavArrowContainer, {
181
- isSideNavVisible: isSideNavVisible
182
- }, sideNav, /*#__PURE__*/_react["default"].createElement(ArrowContainer, null, sideNav && (displayArrow || isResponsive) && /*#__PURE__*/_react["default"].createElement(ArrowTrigger, {
183
- tabIndex: 0,
184
- onClick: handleSidenav,
185
- isSideNavVisible: isSideNavVisible
186
- }, /*#__PURE__*/_react["default"].createElement(ArrowIcon, null)))), /*#__PURE__*/_react["default"].createElement(MainBodyContainer, null, /*#__PURE__*/_react["default"].createElement(MainContent, {
187
- sideNav: sideNav,
188
- mode: isResponsive ? "overlay" : sideNavMode,
189
- isSideNavVisible: isSideNavVisible
190
- }, main), /*#__PURE__*/_react["default"].createElement(FooterContainer, {
191
- sideNav: sideNav,
192
- mode: isResponsive ? "overlay" : sideNavMode,
193
- isSideNavVisible: isSideNavVisible
194
- }, 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)));
195
143
  };
196
144
 
197
- DxcApplicationLayout.Header = Header;
198
- DxcApplicationLayout.Main = Main;
199
- DxcApplicationLayout.Footer = Footer;
200
- DxcApplicationLayout.SideNav = SideNav;
201
-
202
- 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"])));
203
-
204
- 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
+ });
205
150
 
206
- 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"])));
207
152
 
208
- 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"])));
209
154
 
210
- 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"])));
211
156
 
212
- var FooterContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: ", ";\n transition: margin 0.4s ease-in-out;\n"])), function (props) {
213
- return props.sideNav ? props.mode === "push" && !props.isSideNavVisible || props.mode === "overlay" ? "-300px" : "" : "";
214
- });
215
-
216
- 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) {
217
- return props.sideNav ? props.mode === "push" && props.isSideNavVisible ? "" : "-297px" : "";
218
- });
157
+ var BodyContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex: 1;\n"])));
219
158
 
220
- 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) {
221
- return props.isSideNavVisible ? "translateX(0)" : !props.isSideNavVisible ? "translateX(-100%)" : "";
222
- });
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);
223
160
 
224
- 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"])));
225
162
 
226
- 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) {
227
- return "".concat(props.theme.arrowContainerColor);
228
- }, function (props) {
229
- return props.isSideNavVisible ? "rotate(-180deg)" : "rotate(0deg)";
230
- }, function (props) {
231
- return props.theme.arrowColor;
232
- });
163
+ var MainContentContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n flex: 1;\n"])));
233
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;
234
170
  var _default = DxcApplicationLayout;
235
171
  exports["default"] = _default;