@dxc-technology/halstack-react 0.0.0-a33ff0e → 0.0.0-a46858f

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 (266) 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 +295 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +15 -47
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +8 -8
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +15 -17
  12. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  13. package/accordion-group/AccordionGroup.test.js +151 -0
  14. package/accordion-group/types.d.ts +8 -8
  15. package/alert/Alert.js +6 -3
  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 +24 -34
  27. package/box/Box.test.js +18 -0
  28. package/button/Button.d.ts +1 -1
  29. package/button/Button.js +24 -27
  30. package/button/Button.stories.tsx +6 -8
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +5 -9
  33. package/card/Card.js +25 -28
  34. package/card/Card.stories.tsx +1 -1
  35. package/card/Card.test.js +50 -0
  36. package/checkbox/Checkbox.d.ts +1 -1
  37. package/checkbox/Checkbox.js +45 -41
  38. package/checkbox/Checkbox.stories.tsx +124 -128
  39. package/checkbox/Checkbox.test.js +78 -0
  40. package/checkbox/types.d.ts +8 -4
  41. package/chip/Chip.d.ts +4 -0
  42. package/chip/Chip.js +16 -76
  43. package/chip/Chip.stories.tsx +6 -8
  44. package/chip/Chip.test.js +56 -0
  45. package/chip/types.d.ts +45 -0
  46. package/chip/types.js +5 -0
  47. package/common/variables.js +234 -341
  48. package/date-input/DateInput.js +63 -52
  49. package/date-input/DateInput.stories.tsx +7 -7
  50. package/date-input/DateInput.test.js +479 -0
  51. package/date-input/types.d.ts +16 -9
  52. package/dialog/Dialog.js +8 -35
  53. package/dialog/Dialog.test.js +40 -0
  54. package/dropdown/Dropdown.d.ts +1 -1
  55. package/dropdown/Dropdown.js +22 -48
  56. package/dropdown/Dropdown.stories.tsx +249 -0
  57. package/dropdown/Dropdown.test.js +189 -0
  58. package/dropdown/types.d.ts +6 -15
  59. package/file-input/FileInput.d.ts +1 -1
  60. package/file-input/FileInput.js +165 -83
  61. package/file-input/FileInput.stories.tsx +507 -0
  62. package/file-input/FileInput.test.js +457 -0
  63. package/file-input/FileItem.js +12 -8
  64. package/file-input/types.d.ts +32 -7
  65. package/footer/Footer.d.ts +1 -1
  66. package/footer/Footer.js +32 -113
  67. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  68. package/footer/Footer.test.js +109 -0
  69. package/footer/Icons.d.ts +2 -0
  70. package/footer/Icons.js +4 -4
  71. package/footer/types.d.ts +21 -17
  72. package/header/Header.js +29 -50
  73. package/header/Header.stories.tsx +46 -36
  74. package/header/Header.test.js +79 -0
  75. package/header/Icons.d.ts +2 -0
  76. package/heading/Heading.js +1 -1
  77. package/heading/Heading.stories.tsx +3 -2
  78. package/heading/Heading.test.js +186 -0
  79. package/inline/Inline.d.ts +4 -0
  80. package/inline/Inline.js +56 -0
  81. package/inline/Inline.stories.tsx +264 -0
  82. package/inline/types.d.ts +32 -0
  83. package/inline/types.js +5 -0
  84. package/inset/Inset.d.ts +3 -0
  85. package/inset/Inset.js +51 -0
  86. package/inset/Inset.stories.tsx +229 -0
  87. package/inset/types.d.ts +37 -0
  88. package/inset/types.js +5 -0
  89. package/layout/ApplicationLayout.d.ts +11 -0
  90. package/layout/ApplicationLayout.js +84 -120
  91. package/layout/ApplicationLayout.stories.tsx +126 -0
  92. package/layout/Icons.d.ts +5 -0
  93. package/layout/Icons.js +13 -2
  94. package/layout/SidenavContext.d.ts +5 -0
  95. package/layout/SidenavContext.js +19 -0
  96. package/layout/types.d.ts +52 -0
  97. package/layout/types.js +5 -0
  98. package/link/Link.d.ts +3 -2
  99. package/link/Link.js +61 -86
  100. package/link/Link.stories.tsx +91 -51
  101. package/link/Link.test.js +83 -0
  102. package/link/types.d.ts +9 -29
  103. package/list/List.d.ts +4 -0
  104. package/list/List.js +47 -0
  105. package/list/List.stories.tsx +89 -0
  106. package/list/types.d.ts +7 -0
  107. package/list/types.js +5 -0
  108. package/main.d.ts +13 -9
  109. package/main.js +80 -42
  110. package/number-input/NumberInput.js +14 -24
  111. package/number-input/NumberInput.stories.tsx +5 -5
  112. package/number-input/NumberInput.test.js +506 -0
  113. package/number-input/types.d.ts +17 -10
  114. package/package.json +10 -6
  115. package/paginator/Paginator.js +19 -46
  116. package/paginator/Paginator.test.js +308 -0
  117. package/password-input/PasswordInput.js +23 -19
  118. package/password-input/PasswordInput.stories.tsx +3 -3
  119. package/password-input/PasswordInput.test.js +180 -0
  120. package/password-input/types.d.ts +26 -21
  121. package/progress-bar/ProgressBar.js +5 -5
  122. package/progress-bar/ProgressBar.stories.jsx +11 -11
  123. package/progress-bar/ProgressBar.test.js +65 -0
  124. package/quick-nav/QuickNav.d.ts +4 -0
  125. package/quick-nav/QuickNav.js +112 -0
  126. package/quick-nav/QuickNav.stories.tsx +237 -0
  127. package/quick-nav/types.d.ts +21 -0
  128. package/quick-nav/types.js +5 -0
  129. package/radio-group/Radio.d.ts +4 -0
  130. package/radio-group/Radio.js +141 -0
  131. package/radio-group/RadioGroup.d.ts +4 -0
  132. package/radio-group/RadioGroup.js +282 -0
  133. package/radio-group/RadioGroup.stories.tsx +100 -0
  134. package/radio-group/RadioGroup.test.js +695 -0
  135. package/radio-group/types.d.ts +114 -0
  136. package/radio-group/types.js +5 -0
  137. package/resultsetTable/ResultsetTable.d.ts +4 -0
  138. package/resultsetTable/ResultsetTable.js +9 -29
  139. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  140. package/resultsetTable/ResultsetTable.test.js +348 -0
  141. package/resultsetTable/types.d.ts +67 -0
  142. package/resultsetTable/types.js +5 -0
  143. package/row/Row.d.ts +3 -0
  144. package/row/Row.js +127 -0
  145. package/row/Row.stories.tsx +237 -0
  146. package/row/types.d.ts +28 -0
  147. package/row/types.js +5 -0
  148. package/select/Icons.d.ts +10 -0
  149. package/select/Icons.js +93 -0
  150. package/select/Listbox.d.ts +4 -0
  151. package/select/Listbox.js +175 -0
  152. package/select/Option.d.ts +4 -0
  153. package/select/Option.js +110 -0
  154. package/select/Select.d.ts +4 -0
  155. package/select/Select.js +161 -366
  156. package/select/Select.stories.tsx +230 -176
  157. package/select/Select.test.js +2162 -0
  158. package/select/types.d.ts +212 -0
  159. package/select/types.js +5 -0
  160. package/sidenav/Sidenav.d.ts +1 -1
  161. package/sidenav/Sidenav.js +22 -11
  162. package/sidenav/Sidenav.stories.tsx +18 -1
  163. package/sidenav/Sidenav.test.js +56 -0
  164. package/slider/Slider.d.ts +1 -1
  165. package/slider/Slider.js +4 -3
  166. package/slider/Slider.stories.tsx +8 -8
  167. package/slider/Slider.test.js +150 -0
  168. package/slider/types.d.ts +4 -0
  169. package/spinner/Spinner.js +3 -3
  170. package/spinner/Spinner.stories.jsx +1 -0
  171. package/spinner/Spinner.test.js +64 -0
  172. package/stack/Stack.d.ts +4 -0
  173. package/stack/Stack.js +50 -0
  174. package/stack/Stack.stories.tsx +225 -0
  175. package/stack/types.d.ts +28 -0
  176. package/stack/types.js +5 -0
  177. package/switch/Switch.d.ts +1 -1
  178. package/switch/Switch.js +37 -21
  179. package/switch/Switch.stories.tsx +15 -15
  180. package/switch/Switch.test.js +98 -0
  181. package/switch/types.d.ts +6 -2
  182. package/table/Table.js +3 -3
  183. package/table/Table.stories.jsx +2 -1
  184. package/table/Table.test.js +26 -0
  185. package/tabs/Tabs.d.ts +1 -1
  186. package/tabs/Tabs.js +17 -19
  187. package/tabs/Tabs.stories.tsx +112 -0
  188. package/tabs/Tabs.test.js +140 -0
  189. package/tabs/types.d.ts +27 -15
  190. package/tabs-nav/NavTabs.d.ts +8 -0
  191. package/tabs-nav/NavTabs.js +125 -0
  192. package/tabs-nav/NavTabs.stories.tsx +170 -0
  193. package/tabs-nav/NavTabs.test.js +82 -0
  194. package/tabs-nav/Tab.d.ts +4 -0
  195. package/tabs-nav/Tab.js +132 -0
  196. package/tabs-nav/types.d.ts +53 -0
  197. package/tabs-nav/types.js +5 -0
  198. package/tag/Tag.d.ts +1 -1
  199. package/tag/Tag.js +18 -28
  200. package/tag/Tag.stories.tsx +26 -29
  201. package/tag/Tag.test.js +60 -0
  202. package/tag/types.d.ts +23 -14
  203. package/text/Text.d.ts +7 -0
  204. package/text/Text.js +30 -0
  205. package/text/Text.stories.tsx +19 -0
  206. package/text-input/Suggestion.d.ts +4 -0
  207. package/text-input/Suggestion.js +55 -0
  208. package/text-input/TextInput.js +88 -103
  209. package/text-input/TextInput.stories.tsx +474 -0
  210. package/text-input/TextInput.test.js +1712 -0
  211. package/text-input/types.d.ts +44 -23
  212. package/textarea/Textarea.d.ts +4 -0
  213. package/textarea/Textarea.js +39 -79
  214. package/textarea/Textarea.stories.jsx +37 -15
  215. package/textarea/Textarea.test.js +437 -0
  216. package/textarea/types.d.ts +137 -0
  217. package/textarea/types.js +5 -0
  218. package/toggle-group/ToggleGroup.d.ts +4 -0
  219. package/toggle-group/ToggleGroup.js +18 -46
  220. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  221. package/toggle-group/ToggleGroup.test.js +156 -0
  222. package/toggle-group/types.d.ts +105 -0
  223. package/toggle-group/types.js +5 -0
  224. package/useTheme.d.ts +2 -0
  225. package/useTheme.js +2 -2
  226. package/useTranslatedLabels.d.ts +2 -0
  227. package/useTranslatedLabels.js +20 -0
  228. package/wizard/Wizard.d.ts +1 -1
  229. package/wizard/Wizard.js +107 -46
  230. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +13 -23
  231. package/wizard/Wizard.test.js +141 -0
  232. package/wizard/types.d.ts +9 -9
  233. package/ThemeContext.js +0 -246
  234. package/V3Select/V3Select.js +0 -455
  235. package/V3Select/index.d.ts +0 -27
  236. package/V3Textarea/V3Textarea.js +0 -260
  237. package/V3Textarea/index.d.ts +0 -27
  238. package/chip/index.d.ts +0 -22
  239. package/date/Date.js +0 -373
  240. package/date/index.d.ts +0 -27
  241. package/input-text/Icons.js +0 -22
  242. package/input-text/InputText.js +0 -611
  243. package/input-text/index.d.ts +0 -36
  244. package/radio/Radio.d.ts +0 -4
  245. package/radio/Radio.js +0 -174
  246. package/radio/Radio.stories.tsx +0 -192
  247. package/radio/types.d.ts +0 -54
  248. package/resultsetTable/index.d.ts +0 -19
  249. package/select/index.d.ts +0 -131
  250. package/textarea/index.d.ts +0 -117
  251. package/toggle/Toggle.js +0 -186
  252. package/toggle/index.d.ts +0 -21
  253. package/toggle-group/index.d.ts +0 -21
  254. package/upload/Upload.js +0 -201
  255. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  256. package/upload/buttons-upload/Icons.js +0 -40
  257. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  258. package/upload/dragAndDropArea/Icons.js +0 -39
  259. package/upload/file-upload/FileToUpload.js +0 -115
  260. package/upload/file-upload/Icons.js +0 -66
  261. package/upload/files-upload/FilesToUpload.js +0 -109
  262. package/upload/index.d.ts +0 -15
  263. package/upload/transaction/Icons.js +0 -160
  264. package/upload/transaction/Transaction.js +0 -104
  265. package/upload/transactions/Transactions.js +0 -94
  266. package/wizard/Icons.js +0 -65
@@ -0,0 +1,237 @@
1
+ import React from "react";
2
+ import Title from "../../.storybook/components/Title";
3
+ import styled from "styled-components";
4
+ import DxcRow from "./Row";
5
+
6
+ export default {
7
+ title: "Row",
8
+ component: DxcRow,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <Title title="Default" theme="light" level={4} />
14
+ <Container>
15
+ <DxcRow>
16
+ <Placeholder></Placeholder>
17
+ <Placeholder></Placeholder>
18
+ <Placeholder></Placeholder>
19
+ </DxcRow>
20
+ </Container>
21
+ <Title title="Justify = center" theme="light" level={4} />
22
+ <Container>
23
+ <DxcRow justify="center">
24
+ <Placeholder></Placeholder>
25
+ <Placeholder></Placeholder>
26
+ <Placeholder></Placeholder>
27
+ </DxcRow>
28
+ </Container>
29
+ <Title title="Justify = end" theme="light" level={4} />
30
+ <Container>
31
+ <DxcRow justify="end">
32
+ <Placeholder></Placeholder>
33
+ <Placeholder></Placeholder>
34
+ <Placeholder></Placeholder>
35
+ </DxcRow>
36
+ </Container>
37
+ <Title title="Justify = spaceAround" theme="light" level={4} />
38
+ <Container>
39
+ <DxcRow justify="spaceAround">
40
+ <Placeholder></Placeholder>
41
+ <Placeholder></Placeholder>
42
+ <Placeholder></Placeholder>
43
+ </DxcRow>
44
+ </Container>
45
+ <Title title="Justify = spaceBetween" theme="light" level={4} />
46
+ <Container>
47
+ <DxcRow justify="spaceBetween">
48
+ <Placeholder></Placeholder>
49
+ <Placeholder></Placeholder>
50
+ <Placeholder></Placeholder>
51
+ </DxcRow>
52
+ </Container>
53
+ <Title title="Justify = spaceEvenly" theme="light" level={4} />
54
+ <Container>
55
+ <DxcRow justify="spaceEvenly">
56
+ <Placeholder></Placeholder>
57
+ <Placeholder></Placeholder>
58
+ <Placeholder></Placeholder>
59
+ </DxcRow>
60
+ </Container>
61
+ <Title title="Justify = start" theme="light" level={4} />
62
+ <Container>
63
+ <DxcRow justify="start">
64
+ <Placeholder></Placeholder>
65
+ <Placeholder></Placeholder>
66
+ <Placeholder></Placeholder>
67
+ </DxcRow>
68
+ </Container>
69
+ <Title title="Align = baseline" theme="light" level={4} />
70
+ <Container>
71
+ <DxcRow align="baseline">
72
+ <Placeholder paddingTop={20}>test</Placeholder>
73
+ <Placeholder>test</Placeholder>
74
+ <Placeholder paddingBottom={60}>test</Placeholder>
75
+ </DxcRow>
76
+ </Container>
77
+ <Title title="Align = center" theme="light" level={4} />
78
+ <Container>
79
+ <DxcRow align="center">
80
+ <Placeholder paddingTop={20}></Placeholder>
81
+ <Placeholder></Placeholder>
82
+ <Placeholder paddingTop={60}></Placeholder>
83
+ </DxcRow>
84
+ </Container>
85
+ <Title title="Align = end" theme="light" level={4} />
86
+ <Container>
87
+ <DxcRow align="end">
88
+ <Placeholder paddingTop={20}></Placeholder>
89
+ <Placeholder></Placeholder>
90
+ <Placeholder paddingTop={60}></Placeholder>
91
+ </DxcRow>
92
+ </Container>
93
+ <Title title="Align = start" theme="light" level={4} />
94
+ <Container>
95
+ <DxcRow align="start">
96
+ <Placeholder paddingTop={20}></Placeholder>
97
+ <Placeholder></Placeholder>
98
+ <Placeholder paddingTop={60}></Placeholder>
99
+ </DxcRow>
100
+ </Container>
101
+ <Title title="Align = stretch" theme="light" level={4} />
102
+ <Container>
103
+ <DxcRow align="stretch">
104
+ <Placeholder paddingTop={20}></Placeholder>
105
+ <Placeholder></Placeholder>
106
+ <Placeholder paddingTop={60}></Placeholder>
107
+ </DxcRow>
108
+ </Container>
109
+ <Title title="gutter = xxxsmall" theme="light" level={4} />
110
+ <Container>
111
+ <DxcRow gutter="xxxsmall">
112
+ <Placeholder></Placeholder>
113
+ <Placeholder></Placeholder>
114
+ <Placeholder></Placeholder>
115
+ </DxcRow>
116
+ </Container>
117
+ <Title title="gutter = xxsmall" theme="light" level={4} />
118
+ <Container>
119
+ <DxcRow gutter="xxsmall">
120
+ <Placeholder></Placeholder>
121
+ <Placeholder></Placeholder>
122
+ <Placeholder></Placeholder>
123
+ </DxcRow>
124
+ </Container>
125
+ <Title title="gutter = xsmall" theme="light" level={4} />
126
+ <Container>
127
+ <DxcRow gutter="xsmall">
128
+ <Placeholder></Placeholder>
129
+ <Placeholder></Placeholder>
130
+ <Placeholder></Placeholder>
131
+ </DxcRow>
132
+ </Container>
133
+ <Title title="gutter = small" theme="light" level={4} />
134
+ <Container>
135
+ <DxcRow gutter="small">
136
+ <Placeholder></Placeholder>
137
+ <Placeholder></Placeholder>
138
+ <Placeholder></Placeholder>
139
+ </DxcRow>
140
+ </Container>
141
+ <Title title="gutter = medium" theme="light" level={4} />
142
+ <Container>
143
+ <DxcRow gutter="medium">
144
+ <Placeholder></Placeholder>
145
+ <Placeholder></Placeholder>
146
+ <Placeholder></Placeholder>
147
+ </DxcRow>
148
+ </Container>
149
+ <Title title="gutter = large" theme="light" level={4} />
150
+ <Container>
151
+ <DxcRow gutter="large">
152
+ <Placeholder></Placeholder>
153
+ <Placeholder></Placeholder>
154
+ <Placeholder></Placeholder>
155
+ </DxcRow>
156
+ </Container>
157
+ <Title title="gutter = xlarge" theme="light" level={4} />
158
+ <Container>
159
+ <DxcRow gutter="xlarge">
160
+ <Placeholder></Placeholder>
161
+ <Placeholder></Placeholder>
162
+ <Placeholder></Placeholder>
163
+ </DxcRow>
164
+ </Container>
165
+ <Title title="gutter = xxlarge" theme="light" level={4} />
166
+ <Container>
167
+ <DxcRow gutter="xxlarge">
168
+ <Placeholder></Placeholder>
169
+ <Placeholder></Placeholder>
170
+ <Placeholder></Placeholder>
171
+ </DxcRow>
172
+ </Container>
173
+ <Title title="gutter = xxxlarge" theme="light" level={4} />
174
+ <Container>
175
+ <DxcRow gutter="xxxlarge">
176
+ <Placeholder></Placeholder>
177
+ <Placeholder></Placeholder>
178
+ <Placeholder></Placeholder>
179
+ </DxcRow>
180
+ </Container>
181
+ <Title title="gutter = none" theme="light" level={4} />
182
+ <Container>
183
+ <DxcRow gutter="none">
184
+ <Placeholder></Placeholder>
185
+ <Placeholder></Placeholder>
186
+ <Placeholder></Placeholder>
187
+ </DxcRow>
188
+ </Container>
189
+ <Title title="reverse = false" theme="light" level={4} />
190
+ <Container>
191
+ <DxcRow reverse={false}>
192
+ <Placeholder>1</Placeholder>
193
+ <Placeholder>2</Placeholder>
194
+ <Placeholder>3</Placeholder>
195
+ </DxcRow>
196
+ </Container>
197
+ <Title title="reverse = true" theme="light" level={4} />
198
+ <Container>
199
+ <DxcRow reverse={true}>
200
+ <Placeholder>1</Placeholder>
201
+ <Placeholder>2</Placeholder>
202
+ <Placeholder>3</Placeholder>
203
+ </DxcRow>
204
+ </Container>
205
+ <Title title="wrap = true" theme="light" level={4} />
206
+ <Container width={300}>
207
+ <DxcRow wrap={true}>
208
+ <Placeholder>1</Placeholder>
209
+ <Placeholder>2</Placeholder>
210
+ <Placeholder>3</Placeholder>
211
+ </DxcRow>
212
+ </Container>
213
+ <Title title="wrap = false" theme="light" level={4} />
214
+ <Container width={300}>
215
+ <DxcRow wrap={false}>
216
+ <Placeholder>1</Placeholder>
217
+ <Placeholder>2</Placeholder>
218
+ <Placeholder>3</Placeholder>
219
+ </DxcRow>
220
+ </Container>
221
+ </>
222
+ );
223
+
224
+ const Container = styled.div`
225
+ background: #f2eafa;
226
+ padding: 10px;
227
+ width: ${({ width }) => (width ? `${width}px` : "unset")};
228
+ `;
229
+
230
+ const Placeholder = styled.div`
231
+ min-height: 40px;
232
+ min-width: 120px;
233
+ border: 1px solid #a46ede;
234
+ background-color: #e5d5f6;
235
+ padding-top: ${({ paddingTop }) => `${paddingTop ?? 0}px`};
236
+ padding-bottom: ${({ paddingBottom }) => `${paddingBottom ?? 0}px`};
237
+ `;
package/row/types.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ /**
4
+ * Space applied between each child.
5
+ */
6
+ gutter?: "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
7
+ /**
8
+ * Alignment applied to children.
9
+ */
10
+ align?: "start" | "center" | "end" | "baseline" | "stretch";
11
+ /**
12
+ * Justification applied to children.
13
+ */
14
+ justify?: "start" | "center" | "end" | "spaceBetween" | "spaceAround" | "spaceEvenly";
15
+ /**
16
+ * If true, children will wrap onto multiple rows.
17
+ */
18
+ wrap?: boolean;
19
+ /**
20
+ * If true, children are shown in reverse order.
21
+ */
22
+ reverse?: boolean;
23
+ /**
24
+ * Custom content inside the row.
25
+ */
26
+ children: React.ReactNode;
27
+ };
28
+ export default Props;
package/row/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ declare const selectIcons: {
3
+ error: JSX.Element;
4
+ arrowUp: JSX.Element;
5
+ arrowDown: JSX.Element;
6
+ clear: JSX.Element;
7
+ selected: JSX.Element;
8
+ searchOff: JSX.Element;
9
+ };
10
+ export default selectIcons;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var selectIcons = {
13
+ error: /*#__PURE__*/_react["default"].createElement("svg", {
14
+ role: "img",
15
+ xmlns: "http://www.w3.org/2000/svg",
16
+ height: "24px",
17
+ viewBox: "0 0 24 24",
18
+ width: "24px",
19
+ fill: "currentColor"
20
+ }, /*#__PURE__*/_react["default"].createElement("path", {
21
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
22
+ })),
23
+ arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
24
+ role: "img",
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ height: "24px",
27
+ viewBox: "0 0 24 24",
28
+ width: "24px",
29
+ fill: "currentColor"
30
+ }, /*#__PURE__*/_react["default"].createElement("path", {
31
+ d: "M0 0h24v24H0V0z",
32
+ fill: "none"
33
+ }), /*#__PURE__*/_react["default"].createElement("path", {
34
+ d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
35
+ })),
36
+ arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
37
+ role: "img",
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ height: "24px",
40
+ viewBox: "0 0 24 24",
41
+ width: "24px",
42
+ fill: "currentColor"
43
+ }, /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M0 0h24v24H0V0z",
45
+ fill: "none"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
48
+ })),
49
+ clear: /*#__PURE__*/_react["default"].createElement("svg", {
50
+ role: "img",
51
+ xmlns: "http://www.w3.org/2000/svg",
52
+ width: "24",
53
+ height: "24",
54
+ viewBox: "0 0 24 24",
55
+ fill: "currentColor"
56
+ }, /*#__PURE__*/_react["default"].createElement("path", {
57
+ d: "M0 0h24v24H0V0z",
58
+ fill: "none"
59
+ }), /*#__PURE__*/_react["default"].createElement("path", {
60
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
61
+ })),
62
+ selected: /*#__PURE__*/_react["default"].createElement("svg", {
63
+ role: "img",
64
+ xmlns: "http://www.w3.org/2000/svg",
65
+ height: "24px",
66
+ viewBox: "0 0 24 24",
67
+ width: "24px",
68
+ fill: "currentColor"
69
+ }, /*#__PURE__*/_react["default"].createElement("path", {
70
+ d: "M0 0h24v24H0z",
71
+ fill: "none"
72
+ }), /*#__PURE__*/_react["default"].createElement("path", {
73
+ d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
74
+ })),
75
+ searchOff: /*#__PURE__*/_react["default"].createElement("svg", {
76
+ role: "img",
77
+ xmlns: "http://www.w3.org/2000/svg",
78
+ height: "24px",
79
+ viewBox: "0 0 24 24",
80
+ width: "24px",
81
+ fill: "currentColor"
82
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("rect", {
83
+ fill: "none",
84
+ height: "24",
85
+ width: "24"
86
+ })), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
87
+ d: "M15.5,14h-0.79l-0.28-0.27C15.41,12.59,16,11.11,16,9.5C16,5.91,13.09,3,9.5,3C6.08,3,3.28,5.64,3.03,9h2.02 C5.3,6.75,7.18,5,9.5,5C11.99,5,14,7.01,14,9.5S11.99,14,9.5,14c-0.17,0-0.33-0.03-0.5-0.05v2.02C9.17,15.99,9.33,16,9.5,16 c1.61,0,3.09-0.59,4.23-1.57L14,14.71v0.79l5,4.99L20.49,19L15.5,14z"
88
+ }), /*#__PURE__*/_react["default"].createElement("polygon", {
89
+ points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
90
+ }))))
91
+ };
92
+ var _default = selectIcons;
93
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ListboxProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, styles, }: ListboxProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
+
18
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
19
+
20
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
21
+
22
+ var _Option = _interopRequireDefault(require("./Option"));
23
+
24
+ var _Icons = _interopRequireDefault(require("./Icons"));
25
+
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
27
+
28
+ 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); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ var groupsHaveOptions = function groupsHaveOptions(options) {
33
+ return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
34
+ var _groupOption$options;
35
+
36
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
37
+ }) : true;
38
+ };
39
+
40
+ var Listbox = function Listbox(_ref) {
41
+ var id = _ref.id,
42
+ currentValue = _ref.currentValue,
43
+ options = _ref.options,
44
+ visualFocusIndex = _ref.visualFocusIndex,
45
+ lastOptionIndex = _ref.lastOptionIndex,
46
+ multiple = _ref.multiple,
47
+ optional = _ref.optional,
48
+ optionalItem = _ref.optionalItem,
49
+ searchable = _ref.searchable,
50
+ handleOptionOnClick = _ref.handleOptionOnClick,
51
+ styles = _ref.styles;
52
+ var colorsTheme = (0, _useTheme["default"])();
53
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
54
+ var listboxRef = (0, _react.useRef)(null);
55
+ var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
56
+
57
+ var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
58
+ if (option.options) {
59
+ var groupId = "group-".concat(mapIndex);
60
+ return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", {
61
+ key: "group-".concat(mapIndex)
62
+ }, /*#__PURE__*/_react["default"].createElement(GroupList, {
63
+ role: "group",
64
+ "aria-labelledby": groupId
65
+ }, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
66
+ role: "presentation",
67
+ id: groupId
68
+ }, option.label), option.options.map(function (singleOption) {
69
+ globalIndex++;
70
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
71
+ key: "option-".concat(singleOption.value),
72
+ id: "option-".concat(globalIndex),
73
+ option: singleOption,
74
+ onClick: handleOptionOnClick,
75
+ multiple: multiple,
76
+ visualFocused: visualFocusIndex === globalIndex,
77
+ isGroupedOption: true,
78
+ isLastOption: lastOptionIndex === globalIndex,
79
+ isSelected: multiple ? currentValue.includes(singleOption.value) : currentValue === singleOption.value
80
+ });
81
+ })));
82
+ } else {
83
+ globalIndex++;
84
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
85
+ key: "option-".concat(option.value),
86
+ id: "option-".concat(globalIndex),
87
+ option: option,
88
+ onClick: handleOptionOnClick,
89
+ multiple: multiple,
90
+ visualFocused: visualFocusIndex === globalIndex,
91
+ isLastOption: lastOptionIndex === globalIndex,
92
+ isSelected: multiple ? currentValue.includes(option.value) : currentValue === option.value
93
+ });
94
+ }
95
+ };
96
+
97
+ (0, _react.useLayoutEffect)(function () {
98
+ if (currentValue && !multiple) {
99
+ var _listEl$scrollTo;
100
+
101
+ var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
102
+ var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
103
+ listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
104
+ top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
105
+ });
106
+ }
107
+ }, [currentValue, multiple]);
108
+ (0, _react.useLayoutEffect)(function () {
109
+ var _listboxRef$current, _visualFocusedOptionE;
110
+
111
+ var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
112
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
113
+ block: "nearest",
114
+ inline: "start"
115
+ });
116
+ }, [visualFocusIndex]);
117
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
118
+ theme: colorsTheme.select
119
+ }, /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
120
+ id: id,
121
+ onClick: function onClick(event) {
122
+ event.stopPropagation();
123
+ },
124
+ onMouseDown: function onMouseDown(event) {
125
+ event.preventDefault();
126
+ },
127
+ ref: listboxRef,
128
+ role: "listbox",
129
+ "aria-multiselectable": multiple,
130
+ "aria-orientation": "vertical",
131
+ style: styles
132
+ }, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff), translatedLabels.select.noMatchesErrorMessage) : optional && !multiple && /*#__PURE__*/_react["default"].createElement(_Option["default"], {
133
+ key: "option-".concat(optionalItem.value),
134
+ id: "option-".concat(0),
135
+ option: optionalItem,
136
+ onClick: handleOptionOnClick,
137
+ multiple: multiple,
138
+ visualFocused: visualFocusIndex === 0,
139
+ isGroupedOption: false,
140
+ isLastOption: lastOptionIndex === 0,
141
+ isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
142
+ }), options.map(mapOptionFunc)));
143
+ };
144
+
145
+ var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
146
+ return props.theme.listDialogBackgroundColor;
147
+ }, function (props) {
148
+ return props.theme.listDialogBorderColor;
149
+ }, function (props) {
150
+ return props.theme.listOptionFontColor;
151
+ }, function (props) {
152
+ return props.theme.fontFamily;
153
+ }, function (props) {
154
+ return props.theme.listOptionFontSize;
155
+ }, function (props) {
156
+ return props.theme.listOptionFontStyle;
157
+ }, function (props) {
158
+ return props.theme.listOptionFontWeight;
159
+ });
160
+
161
+ var OptionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
162
+ return props.theme.systemMessageFontColor;
163
+ });
164
+
165
+ var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
166
+
167
+ var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
168
+
169
+ var GroupLabel = _styledComponents["default"].li(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
170
+ return props.theme.listGroupLabelFontWeight;
171
+ });
172
+
173
+ var _default = /*#__PURE__*/_react["default"].memo(Listbox);
174
+
175
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { OptionProps } from "../select/types";
3
+ declare const _default: React.MemoExoticComponent<({ id, option, onClick, multiple, visualFocused, isGroupedOption, isLastOption, isSelected, }: OptionProps) => JSX.Element>;
4
+ export default _default;