@dxc-technology/halstack-react 0.0.0-8719165 → 0.0.0-87842b8

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 (377) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1243 -6
  4. package/HalstackContext.js +126 -111
  5. package/README.md +47 -0
  6. package/accordion/Accordion.accessibility.test.js +71 -0
  7. package/accordion/Accordion.d.ts +1 -1
  8. package/accordion/Accordion.js +104 -161
  9. package/accordion/Accordion.stories.tsx +84 -140
  10. package/accordion/Accordion.test.js +25 -41
  11. package/accordion/types.d.ts +6 -17
  12. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  13. package/accordion-group/AccordionGroup.d.ts +2 -2
  14. package/accordion-group/AccordionGroup.js +30 -98
  15. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  16. package/accordion-group/AccordionGroup.test.js +52 -105
  17. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  18. package/accordion-group/AccordionGroupAccordion.js +31 -0
  19. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  20. package/accordion-group/AccordionGroupContext.js +8 -0
  21. package/accordion-group/types.d.ts +12 -17
  22. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  23. package/action-icon/ActionIcon.d.ts +4 -0
  24. package/action-icon/ActionIcon.js +48 -0
  25. package/action-icon/ActionIcon.stories.tsx +41 -0
  26. package/action-icon/ActionIcon.test.js +64 -0
  27. package/action-icon/types.d.ts +26 -0
  28. package/alert/Alert.accessibility.test.js +95 -0
  29. package/alert/Alert.js +32 -125
  30. package/alert/Alert.stories.tsx +28 -0
  31. package/alert/Alert.test.js +29 -46
  32. package/alert/types.d.ts +5 -5
  33. package/badge/Badge.accessibility.test.js +129 -0
  34. package/badge/Badge.d.ts +1 -1
  35. package/badge/Badge.js +141 -43
  36. package/badge/Badge.stories.tsx +210 -0
  37. package/badge/Badge.test.js +30 -0
  38. package/badge/types.d.ts +52 -3
  39. package/bleed/Bleed.js +13 -21
  40. package/bleed/Bleed.stories.tsx +1 -0
  41. package/bleed/types.d.ts +2 -2
  42. package/box/Box.accessibility.test.js +33 -0
  43. package/box/Box.d.ts +1 -1
  44. package/box/Box.js +19 -60
  45. package/box/Box.stories.tsx +38 -51
  46. package/box/Box.test.js +2 -7
  47. package/box/types.d.ts +3 -14
  48. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  49. package/bulleted-list/BulletedList.js +22 -53
  50. package/bulleted-list/BulletedList.stories.tsx +8 -93
  51. package/bulleted-list/types.d.ts +32 -5
  52. package/button/Button.accessibility.test.js +127 -0
  53. package/button/Button.d.ts +1 -1
  54. package/button/Button.js +71 -106
  55. package/button/Button.stories.tsx +143 -101
  56. package/button/Button.test.js +20 -17
  57. package/button/types.d.ts +9 -5
  58. package/card/Card.accessibility.test.js +36 -0
  59. package/card/Card.d.ts +1 -1
  60. package/card/Card.js +48 -89
  61. package/card/Card.stories.tsx +12 -42
  62. package/card/Card.test.js +11 -22
  63. package/card/types.d.ts +6 -11
  64. package/checkbox/Checkbox.accessibility.test.js +87 -0
  65. package/checkbox/Checkbox.d.ts +2 -2
  66. package/checkbox/Checkbox.js +140 -182
  67. package/checkbox/Checkbox.stories.tsx +128 -94
  68. package/checkbox/Checkbox.test.js +160 -39
  69. package/checkbox/types.d.ts +11 -3
  70. package/chip/Chip.accessibility.test.js +67 -0
  71. package/chip/Chip.js +43 -80
  72. package/chip/Chip.stories.tsx +102 -26
  73. package/chip/Chip.test.js +18 -33
  74. package/chip/types.d.ts +4 -4
  75. package/common/coreTokens.d.ts +237 -0
  76. package/common/coreTokens.js +184 -0
  77. package/common/utils.d.ts +1 -0
  78. package/common/utils.js +6 -12
  79. package/common/variables.d.ts +1395 -0
  80. package/common/variables.js +931 -1164
  81. package/container/Container.d.ts +4 -0
  82. package/container/Container.js +194 -0
  83. package/container/Container.stories.tsx +214 -0
  84. package/container/types.d.ts +74 -0
  85. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  86. package/contextual-menu/ContextualMenu.d.ts +7 -0
  87. package/contextual-menu/ContextualMenu.js +71 -0
  88. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  89. package/contextual-menu/ContextualMenu.test.js +71 -0
  90. package/contextual-menu/MenuItemAction.d.ts +4 -0
  91. package/contextual-menu/MenuItemAction.js +46 -0
  92. package/contextual-menu/types.d.ts +22 -0
  93. package/date-input/Calendar.d.ts +4 -0
  94. package/date-input/Calendar.js +214 -0
  95. package/date-input/DateInput.accessibility.test.js +216 -0
  96. package/date-input/DateInput.js +150 -299
  97. package/date-input/DateInput.stories.tsx +203 -56
  98. package/date-input/DateInput.test.js +700 -371
  99. package/date-input/DatePicker.d.ts +4 -0
  100. package/date-input/DatePicker.js +115 -0
  101. package/date-input/Icons.d.ts +6 -0
  102. package/date-input/Icons.js +58 -0
  103. package/date-input/YearPicker.d.ts +4 -0
  104. package/date-input/YearPicker.js +100 -0
  105. package/date-input/types.d.ts +72 -15
  106. package/dialog/Dialog.accessibility.test.js +69 -0
  107. package/dialog/Dialog.d.ts +1 -1
  108. package/dialog/Dialog.js +60 -118
  109. package/dialog/Dialog.stories.tsx +320 -166
  110. package/dialog/Dialog.test.js +270 -33
  111. package/dialog/types.d.ts +18 -25
  112. package/divider/Divider.accessibility.test.js +33 -0
  113. package/divider/Divider.d.ts +4 -0
  114. package/divider/Divider.js +36 -0
  115. package/divider/Divider.stories.tsx +223 -0
  116. package/divider/Divider.test.js +38 -0
  117. package/divider/types.d.ts +21 -0
  118. package/divider/types.js +5 -0
  119. package/dropdown/Dropdown.accessibility.test.js +180 -0
  120. package/dropdown/Dropdown.js +90 -158
  121. package/dropdown/Dropdown.stories.tsx +209 -94
  122. package/dropdown/Dropdown.test.js +410 -402
  123. package/dropdown/DropdownMenu.js +20 -37
  124. package/dropdown/DropdownMenuItem.js +16 -38
  125. package/dropdown/types.d.ts +20 -24
  126. package/file-input/FileInput.accessibility.test.js +160 -0
  127. package/file-input/FileInput.d.ts +2 -2
  128. package/file-input/FileInput.js +241 -355
  129. package/file-input/FileInput.stories.tsx +123 -12
  130. package/file-input/FileInput.test.js +369 -367
  131. package/file-input/FileItem.d.ts +4 -14
  132. package/file-input/FileItem.js +45 -96
  133. package/file-input/types.d.ts +25 -8
  134. package/flex/Flex.d.ts +1 -1
  135. package/flex/Flex.js +40 -40
  136. package/flex/Flex.stories.tsx +35 -26
  137. package/flex/types.d.ts +84 -8
  138. package/footer/Footer.accessibility.test.js +117 -0
  139. package/footer/Footer.d.ts +1 -1
  140. package/footer/Footer.js +73 -118
  141. package/footer/Footer.stories.tsx +87 -21
  142. package/footer/Footer.test.js +33 -57
  143. package/footer/Icons.d.ts +3 -2
  144. package/footer/Icons.js +66 -7
  145. package/footer/types.d.ts +26 -27
  146. package/grid/Grid.d.ts +7 -0
  147. package/grid/Grid.js +76 -0
  148. package/grid/Grid.stories.tsx +219 -0
  149. package/grid/types.d.ts +115 -0
  150. package/grid/types.js +5 -0
  151. package/header/Header.accessibility.test.js +84 -0
  152. package/header/Header.d.ts +4 -3
  153. package/header/Header.js +85 -168
  154. package/header/Header.stories.tsx +118 -39
  155. package/header/Header.test.js +13 -26
  156. package/header/Icons.d.ts +2 -2
  157. package/header/Icons.js +4 -9
  158. package/header/types.d.ts +7 -21
  159. package/heading/Heading.accessibility.test.js +33 -0
  160. package/heading/Heading.js +10 -32
  161. package/heading/Heading.test.js +71 -88
  162. package/heading/types.d.ts +7 -7
  163. package/icon/Icon.accessibility.test.js +30 -0
  164. package/icon/Icon.d.ts +4 -0
  165. package/icon/Icon.js +33 -0
  166. package/icon/Icon.stories.tsx +28 -0
  167. package/icon/types.d.ts +4 -0
  168. package/icon/types.js +5 -0
  169. package/image/Image.accessibility.test.js +56 -0
  170. package/image/Image.d.ts +4 -0
  171. package/image/Image.js +70 -0
  172. package/image/Image.stories.tsx +129 -0
  173. package/image/types.d.ts +72 -0
  174. package/image/types.js +5 -0
  175. package/inset/Inset.js +13 -21
  176. package/inset/Inset.stories.tsx +2 -1
  177. package/inset/types.d.ts +2 -2
  178. package/layout/ApplicationLayout.d.ts +5 -5
  179. package/layout/ApplicationLayout.js +30 -67
  180. package/layout/ApplicationLayout.stories.tsx +2 -1
  181. package/layout/Icons.d.ts +8 -5
  182. package/layout/Icons.js +49 -59
  183. package/layout/types.d.ts +5 -6
  184. package/link/Link.accessibility.test.js +112 -0
  185. package/link/Link.js +32 -51
  186. package/link/Link.stories.tsx +62 -2
  187. package/link/Link.test.js +24 -44
  188. package/link/types.d.ts +14 -14
  189. package/main.d.ts +10 -5
  190. package/main.js +47 -59
  191. package/nav-tabs/NavTabs.accessibility.test.js +52 -0
  192. package/nav-tabs/NavTabs.d.ts +7 -0
  193. package/{tabs-nav → nav-tabs}/NavTabs.js +25 -57
  194. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +115 -9
  195. package/{tabs-nav → nav-tabs}/NavTabs.test.js +39 -45
  196. package/nav-tabs/NavTabsContext.d.ts +3 -0
  197. package/nav-tabs/NavTabsContext.js +8 -0
  198. package/nav-tabs/Tab.js +118 -0
  199. package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
  200. package/nav-tabs/types.js +5 -0
  201. package/number-input/NumberInput.accessibility.test.js +228 -0
  202. package/number-input/NumberInput.js +46 -36
  203. package/number-input/NumberInput.stories.tsx +42 -26
  204. package/number-input/NumberInput.test.js +860 -377
  205. package/number-input/NumberInputContext.d.ts +3 -4
  206. package/number-input/NumberInputContext.js +3 -14
  207. package/number-input/types.d.ts +17 -5
  208. package/package.json +45 -48
  209. package/paginator/Icons.d.ts +5 -0
  210. package/paginator/Icons.js +21 -47
  211. package/paginator/Paginator.accessibility.test.js +79 -0
  212. package/paginator/Paginator.js +23 -59
  213. package/paginator/Paginator.stories.tsx +24 -0
  214. package/paginator/Paginator.test.js +253 -226
  215. package/paginator/types.d.ts +3 -3
  216. package/paragraph/Paragraph.accessibility.test.js +28 -0
  217. package/paragraph/Paragraph.d.ts +3 -4
  218. package/paragraph/Paragraph.js +6 -22
  219. package/paragraph/Paragraph.stories.tsx +0 -17
  220. package/password-input/Icons.d.ts +6 -0
  221. package/password-input/Icons.js +35 -0
  222. package/password-input/PasswordInput.accessibility.test.js +153 -0
  223. package/password-input/PasswordInput.js +57 -126
  224. package/password-input/PasswordInput.stories.tsx +1 -33
  225. package/password-input/PasswordInput.test.js +160 -142
  226. package/password-input/types.d.ts +8 -7
  227. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  228. package/progress-bar/ProgressBar.d.ts +2 -2
  229. package/progress-bar/ProgressBar.js +23 -55
  230. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +36 -3
  231. package/progress-bar/ProgressBar.test.js +36 -53
  232. package/progress-bar/types.d.ts +4 -3
  233. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  234. package/quick-nav/QuickNav.js +15 -39
  235. package/quick-nav/QuickNav.stories.tsx +112 -20
  236. package/quick-nav/types.d.ts +10 -10
  237. package/radio-group/Radio.d.ts +1 -1
  238. package/radio-group/Radio.js +59 -76
  239. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  240. package/radio-group/RadioGroup.js +59 -105
  241. package/radio-group/RadioGroup.stories.tsx +132 -18
  242. package/radio-group/RadioGroup.test.js +518 -457
  243. package/radio-group/types.d.ts +10 -10
  244. package/resultset-table/Icons.d.ts +7 -0
  245. package/resultset-table/Icons.js +47 -0
  246. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  247. package/resultset-table/ResultsetTable.d.ts +7 -0
  248. package/resultset-table/ResultsetTable.js +170 -0
  249. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +156 -30
  250. package/resultset-table/ResultsetTable.test.js +381 -0
  251. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  252. package/resultset-table/types.js +5 -0
  253. package/select/Icons.d.ts +7 -7
  254. package/select/Icons.js +1 -5
  255. package/select/Listbox.d.ts +1 -1
  256. package/select/Listbox.js +17 -73
  257. package/select/Option.js +27 -50
  258. package/select/Select.accessibility.test.js +217 -0
  259. package/select/Select.js +123 -176
  260. package/select/Select.stories.tsx +496 -153
  261. package/select/Select.test.js +1970 -1775
  262. package/select/types.d.ts +16 -17
  263. package/sidenav/Icons.d.ts +7 -0
  264. package/sidenav/Icons.js +47 -0
  265. package/sidenav/Sidenav.accessibility.test.js +59 -0
  266. package/sidenav/Sidenav.d.ts +2 -2
  267. package/sidenav/Sidenav.js +83 -154
  268. package/sidenav/Sidenav.stories.tsx +164 -63
  269. package/sidenav/Sidenav.test.js +3 -10
  270. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  271. package/{layout → sidenav}/SidenavContext.js +3 -9
  272. package/sidenav/types.d.ts +31 -28
  273. package/slider/Slider.accessibility.test.js +104 -0
  274. package/slider/Slider.d.ts +2 -2
  275. package/slider/Slider.js +148 -181
  276. package/slider/Slider.test.js +185 -81
  277. package/slider/types.d.ts +7 -3
  278. package/spinner/Spinner.accessibility.test.js +96 -0
  279. package/spinner/Spinner.js +31 -75
  280. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
  281. package/spinner/Spinner.test.js +26 -35
  282. package/spinner/types.d.ts +3 -3
  283. package/status-light/StatusLight.accessibility.test.js +157 -0
  284. package/status-light/StatusLight.d.ts +4 -0
  285. package/status-light/StatusLight.js +51 -0
  286. package/status-light/StatusLight.stories.tsx +74 -0
  287. package/status-light/StatusLight.test.js +25 -0
  288. package/status-light/types.d.ts +17 -0
  289. package/status-light/types.js +5 -0
  290. package/switch/Switch.accessibility.test.js +89 -0
  291. package/switch/Switch.d.ts +3 -3
  292. package/switch/Switch.js +113 -150
  293. package/switch/Switch.stories.tsx +33 -34
  294. package/switch/Switch.test.js +70 -102
  295. package/switch/types.d.ts +8 -3
  296. package/table/DropdownTheme.js +62 -0
  297. package/table/Table.accessibility.test.js +82 -0
  298. package/table/Table.d.ts +6 -2
  299. package/table/Table.js +78 -35
  300. package/table/Table.stories.tsx +651 -0
  301. package/table/Table.test.js +95 -8
  302. package/table/types.d.ts +34 -6
  303. package/tabs/Tab.d.ts +4 -0
  304. package/tabs/Tab.js +116 -0
  305. package/tabs/Tabs.accessibility.test.js +56 -0
  306. package/tabs/Tabs.js +314 -141
  307. package/tabs/Tabs.stories.tsx +120 -6
  308. package/tabs/Tabs.test.js +223 -69
  309. package/tabs/types.d.ts +28 -18
  310. package/tag/Tag.accessibility.test.js +69 -0
  311. package/tag/Tag.js +29 -61
  312. package/tag/Tag.stories.tsx +14 -1
  313. package/tag/Tag.test.js +20 -31
  314. package/tag/types.d.ts +7 -7
  315. package/text-input/Suggestion.js +40 -28
  316. package/text-input/Suggestions.d.ts +4 -0
  317. package/text-input/Suggestions.js +86 -0
  318. package/text-input/TextInput.accessibility.test.js +321 -0
  319. package/text-input/TextInput.js +303 -497
  320. package/text-input/TextInput.stories.tsx +266 -274
  321. package/text-input/TextInput.test.js +1419 -1375
  322. package/text-input/types.d.ts +43 -16
  323. package/textarea/Textarea.accessibility.test.js +155 -0
  324. package/textarea/Textarea.js +70 -113
  325. package/textarea/Textarea.stories.tsx +174 -0
  326. package/textarea/Textarea.test.js +152 -183
  327. package/textarea/types.d.ts +9 -5
  328. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  329. package/toggle-group/ToggleGroup.d.ts +2 -2
  330. package/toggle-group/ToggleGroup.js +92 -106
  331. package/toggle-group/ToggleGroup.stories.tsx +49 -4
  332. package/toggle-group/ToggleGroup.test.js +69 -88
  333. package/toggle-group/types.d.ts +26 -17
  334. package/typography/Typography.accessibility.test.js +339 -0
  335. package/typography/Typography.d.ts +2 -2
  336. package/typography/Typography.js +15 -123
  337. package/typography/Typography.stories.tsx +1 -1
  338. package/typography/types.d.ts +1 -1
  339. package/useTheme.d.ts +1147 -1
  340. package/useTheme.js +2 -9
  341. package/useTranslatedLabels.d.ts +84 -1
  342. package/useTranslatedLabels.js +1 -7
  343. package/utils/BaseTypography.d.ts +21 -0
  344. package/utils/BaseTypography.js +94 -0
  345. package/utils/FocusLock.d.ts +13 -0
  346. package/utils/FocusLock.js +124 -0
  347. package/wizard/Wizard.accessibility.test.js +55 -0
  348. package/wizard/Wizard.js +16 -51
  349. package/wizard/Wizard.stories.tsx +20 -0
  350. package/wizard/Wizard.test.js +54 -81
  351. package/wizard/types.d.ts +9 -10
  352. package/card/ice-cream.jpg +0 -0
  353. package/common/OpenSans.css +0 -81
  354. package/common/RequiredComponent.js +0 -32
  355. package/common/fonts/OpenSans-Bold.ttf +0 -0
  356. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  357. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  358. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  359. package/common/fonts/OpenSans-Italic.ttf +0 -0
  360. package/common/fonts/OpenSans-Light.ttf +0 -0
  361. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  362. package/common/fonts/OpenSans-Regular.ttf +0 -0
  363. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  364. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  365. package/number-input/numberInputContextTypes.d.ts +0 -19
  366. package/resultsetTable/ResultsetTable.d.ts +0 -4
  367. package/resultsetTable/ResultsetTable.js +0 -254
  368. package/resultsetTable/ResultsetTable.test.js +0 -348
  369. package/slider/Slider.stories.tsx +0 -177
  370. package/table/Table.stories.jsx +0 -277
  371. package/tabs-nav/NavTabs.d.ts +0 -8
  372. package/tabs-nav/Tab.js +0 -130
  373. package/textarea/Textarea.stories.jsx +0 -157
  374. /package/{resultsetTable → action-icon}/types.js +0 -0
  375. /package/{tabs-nav → container}/types.js +0 -0
  376. /package/{number-input/numberInputContextTypes.js → contextual-menu/types.js} +0 -0
  377. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type Column = {
9
+ export type Column = {
10
10
  /**
11
11
  * Column display value.
12
12
  */
@@ -16,7 +16,7 @@ declare type Column = {
16
16
  */
17
17
  isSortable?: boolean;
18
18
  };
19
- declare type Row = {
19
+ export type Row = {
20
20
  /**
21
21
  * Value to be displayed in the cell.
22
22
  */
@@ -27,7 +27,7 @@ declare type Row = {
27
27
  */
28
28
  sortValue?: string;
29
29
  };
30
- declare type Props = {
30
+ type CommonProps = {
31
31
  /**
32
32
  * An array of objects representing the columns of the table.
33
33
  */
@@ -37,6 +37,24 @@ declare type Props = {
37
37
  * as many objects as columns in the table.
38
38
  */
39
39
  rows: Row[][];
40
+ /**
41
+ * Size of the margin to be applied to the component. You can pass an object with 'top',
42
+ * 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
43
+ */
44
+ margin?: Space | Margin;
45
+ /**
46
+ * Value of the tabindex attribute applied to the sortable icon.
47
+ */
48
+ tabIndex?: number;
49
+ /**
50
+ * Determines the visual style and layout
51
+ * - "default": The default mode with big spacing
52
+ * - "reduced": A reduced mode with minimal spacing for dense tables
53
+ */
54
+ mode?: "default" | "reduced";
55
+ };
56
+ type PaginatedProps = CommonProps & {
57
+ hidePaginator?: false;
40
58
  /**
41
59
  * If true, a select component for navigation between pages will be displayed.
42
60
  */
@@ -53,15 +71,30 @@ declare type Props = {
53
71
  * This function will be called when the user selects an item per page
54
72
  * option. The value selected will be passed as a parameter.
55
73
  */
56
- itemsPerPageFunction?: (newValue: number) => void;
74
+ itemsPerPageFunction?: (value: number) => void;
75
+ };
76
+ type NonPaginatedProps = CommonProps & {
57
77
  /**
58
- * Size of the margin to be applied to the component. You can pass an object with 'top',
59
- * 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
78
+ * If true, paginator will not be displayed.
60
79
  */
61
- margin?: Space | Margin;
80
+ hidePaginator: true;
62
81
  /**
63
- * Value of the tabindex attribute given to the sortable icon.
82
+ * If true, a select component for navigation between pages will be displayed.
64
83
  */
65
- tabIndex?: number;
84
+ showGoToPage?: never;
85
+ /**
86
+ * Number of items per page.
87
+ */
88
+ itemsPerPage?: never;
89
+ /**
90
+ * An array of numbers representing the items per page options.
91
+ */
92
+ itemsPerPageOptions?: never;
93
+ /**
94
+ * This function will be called when the user selects an item per page
95
+ * option. The value selected will be passed as a parameter.
96
+ */
97
+ itemsPerPageFunction?: never;
66
98
  };
99
+ type Props = PaginatedProps | NonPaginatedProps;
67
100
  export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/select/Icons.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
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;
3
+ error: React.JSX.Element;
4
+ arrowUp: React.JSX.Element;
5
+ arrowDown: React.JSX.Element;
6
+ clear: React.JSX.Element;
7
+ selected: React.JSX.Element;
8
+ searchOff: React.JSX.Element;
9
9
  };
10
10
  export default selectIcons;
package/select/Icons.js CHANGED
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  var selectIcons = {
13
10
  error: /*#__PURE__*/_react["default"].createElement("svg", {
14
11
  role: "img",
@@ -89,5 +86,4 @@ var selectIcons = {
89
86
  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
87
  }))))
91
88
  };
92
- var _default = selectIcons;
93
- exports["default"] = _default;
89
+ var _default = exports["default"] = selectIcons;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { ListboxProps } from "./types";
3
- declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, getSelectWidth, }: ListboxProps) => JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, styles, }: ListboxProps) => JSX.Element>;
4
4
  export default _default;
package/select/Listbox.js CHANGED
@@ -1,67 +1,41 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
10
  var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _useTheme = _interopRequireDefault(require("../useTheme"));
21
-
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
22
12
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
-
24
13
  var _Option = _interopRequireDefault(require("./Option"));
25
-
26
14
  var _Icons = _interopRequireDefault(require("./Icons"));
27
-
28
15
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
29
-
30
- 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); }
31
-
32
- 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; }
33
-
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
34
18
  var groupsHaveOptions = function groupsHaveOptions(options) {
35
19
  return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
36
20
  var _groupOption$options;
37
-
38
21
  return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
39
22
  }) : true;
40
23
  };
41
-
42
24
  var Listbox = function Listbox(_ref) {
43
25
  var id = _ref.id,
44
- currentValue = _ref.currentValue,
45
- options = _ref.options,
46
- visualFocusIndex = _ref.visualFocusIndex,
47
- lastOptionIndex = _ref.lastOptionIndex,
48
- multiple = _ref.multiple,
49
- optional = _ref.optional,
50
- optionalItem = _ref.optionalItem,
51
- searchable = _ref.searchable,
52
- handleOptionOnClick = _ref.handleOptionOnClick,
53
- getSelectWidth = _ref.getSelectWidth;
54
- var colorsTheme = (0, _useTheme["default"])();
26
+ currentValue = _ref.currentValue,
27
+ options = _ref.options,
28
+ visualFocusIndex = _ref.visualFocusIndex,
29
+ lastOptionIndex = _ref.lastOptionIndex,
30
+ multiple = _ref.multiple,
31
+ optional = _ref.optional,
32
+ optionalItem = _ref.optionalItem,
33
+ searchable = _ref.searchable,
34
+ handleOptionOnClick = _ref.handleOptionOnClick,
35
+ styles = _ref.styles;
55
36
  var translatedLabels = (0, _useTranslatedLabels["default"])();
56
37
  var listboxRef = (0, _react.useRef)(null);
57
-
58
- var _useState = (0, _react.useState)(null),
59
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
- styles = _useState2[0],
61
- setStyles = _useState2[1];
62
-
63
- var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
64
-
38
+ var globalIndex = optional && !multiple ? 0 : -1;
65
39
  var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
66
40
  if (option.options) {
67
41
  var groupId = "group-".concat(mapIndex);
@@ -101,11 +75,9 @@ var Listbox = function Listbox(_ref) {
101
75
  });
102
76
  }
103
77
  };
104
-
105
78
  (0, _react.useLayoutEffect)(function () {
106
79
  if (currentValue && !multiple) {
107
80
  var _listEl$scrollTo;
108
-
109
81
  var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
110
82
  var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
111
83
  listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
@@ -115,32 +87,13 @@ var Listbox = function Listbox(_ref) {
115
87
  }, [currentValue, multiple]);
116
88
  (0, _react.useLayoutEffect)(function () {
117
89
  var _listboxRef$current, _visualFocusedOptionE;
118
-
119
90
  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];
120
91
  visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
121
92
  block: "nearest",
122
93
  inline: "start"
123
94
  });
124
95
  }, [visualFocusIndex]);
125
-
126
- var handleResize = function handleResize() {
127
- setStyles({
128
- width: getSelectWidth()
129
- });
130
- };
131
-
132
- (0, _react.useLayoutEffect)(function () {
133
- handleResize();
134
- }, [getSelectWidth]);
135
- (0, _react.useEffect)(function () {
136
- window.addEventListener("resize", handleResize);
137
- return function () {
138
- window.removeEventListener("resize", handleResize);
139
- };
140
- }, [getSelectWidth]);
141
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
142
- theme: colorsTheme.select
143
- }, /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
96
+ return /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
144
97
  id: id,
145
98
  onClick: function onClick(event) {
146
99
  event.stopPropagation();
@@ -151,7 +104,6 @@ var Listbox = function Listbox(_ref) {
151
104
  ref: listboxRef,
152
105
  role: "listbox",
153
106
  "aria-multiselectable": multiple,
154
- "aria-orientation": "vertical",
155
107
  style: styles
156
108
  }, 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"], {
157
109
  key: "option-".concat(optionalItem.value),
@@ -163,9 +115,8 @@ var Listbox = function Listbox(_ref) {
163
115
  isGroupedOption: false,
164
116
  isLastOption: lastOptionIndex === 0,
165
117
  isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
166
- }), options.map(mapOptionFunc)));
118
+ }), options.map(mapOptionFunc));
167
119
  };
168
-
169
120
  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) {
170
121
  return props.theme.listDialogBackgroundColor;
171
122
  }, function (props) {
@@ -181,19 +132,12 @@ var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_temp
181
132
  }, function (props) {
182
133
  return props.theme.listOptionFontWeight;
183
134
  });
184
-
185
135
  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) {
186
136
  return props.theme.systemMessageFontColor;
187
137
  });
188
-
189
138
  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"])));
190
-
191
139
  var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
192
-
193
140
  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) {
194
141
  return props.theme.listGroupLabelFontWeight;
195
142
  });
196
-
197
- var _default = /*#__PURE__*/_react["default"].memo(Listbox);
198
-
199
- exports["default"] = _default;
143
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Listbox);
package/select/Option.js CHANGED
@@ -1,46 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
4
  Object.defineProperty(exports, "__esModule", {
8
5
  value: true
9
6
  });
10
7
  exports["default"] = void 0;
11
-
12
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
9
  var _react = _interopRequireDefault(require("react"));
15
-
16
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
-
18
- var _useTheme = _interopRequireDefault(require("../useTheme"));
19
-
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
20
11
  var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
21
-
22
12
  var _Icons = _interopRequireDefault(require("./Icons"));
23
-
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
25
-
26
- 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); }
27
-
28
- 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; }
29
-
13
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
30
14
  var Option = function Option(_ref) {
31
15
  var id = _ref.id,
32
- option = _ref.option,
33
- _onClick = _ref.onClick,
34
- multiple = _ref.multiple,
35
- visualFocused = _ref.visualFocused,
36
- _ref$isGroupedOption = _ref.isGroupedOption,
37
- isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
38
- isLastOption = _ref.isLastOption,
39
- isSelected = _ref.isSelected;
40
- var colorsTheme = (0, _useTheme["default"])();
41
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
42
- theme: colorsTheme.select
43
- }, /*#__PURE__*/_react["default"].createElement(OptionItem, {
16
+ option = _ref.option,
17
+ _onClick = _ref.onClick,
18
+ multiple = _ref.multiple,
19
+ visualFocused = _ref.visualFocused,
20
+ _ref$isGroupedOption = _ref.isGroupedOption,
21
+ isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
22
+ isLastOption = _ref.isLastOption,
23
+ isSelected = _ref.isSelected;
24
+ var handleOnMouseEnter = function handleOnMouseEnter(event) {
25
+ var label = event.currentTarget;
26
+ var optionElement = document.getElementById(id);
27
+ if (optionElement.title === "" && label.scrollWidth > label.clientWidth) optionElement.title = option.label;
28
+ };
29
+ return /*#__PURE__*/_react["default"].createElement(OptionItem, {
44
30
  id: id,
45
31
  onClick: function onClick() {
46
32
  _onClick(option);
@@ -62,15 +48,16 @@ var Option = function Option(_ref) {
62
48
  grouped: isGroupedOption,
63
49
  multiple: multiple,
64
50
  role: !(typeof option.icon === "string") ? "img" : undefined
65
- }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(OptionIconImg, {
51
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
66
52
  src: option.icon
67
53
  }) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
68
54
  grouped: isGroupedOption,
69
55
  hasIcon: option.icon ? true : false,
70
56
  multiple: multiple
71
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected)))));
57
+ }, /*#__PURE__*/_react["default"].createElement(OptionLabel, {
58
+ onMouseEnter: handleOnMouseEnter
59
+ }, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))));
72
60
  };
73
-
74
61
  var OptionItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
75
62
  return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
76
63
  }, function (props) {
@@ -80,31 +67,21 @@ var OptionItem = _styledComponents["default"].li(_templateObject || (_templateOb
80
67
  }, function (props) {
81
68
  return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
82
69
  });
83
-
84
70
  var StyledOption = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 0.5rem 0.188rem 0;\n min-height: 24px;\n ", "\n ", ";\n"])), function (props) {
85
71
  return props.grouped && props.multiple && "padding-left: 16px;";
86
72
  }, function (props) {
87
73
  return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
88
74
  });
89
-
90
- var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n ", "\n color: ", ";\n"])), function (props) {
91
- return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
75
+ var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.125rem;\n margin-left: ", ";\n color: ", ";\n\n svg,\n img {\n height: 20px;\n width: 20px;\n }\n"])), function (props) {
76
+ return props.grouped && !props.multiple ? "16px" : "8px";
92
77
  }, function (props) {
93
78
  return props.theme.listOptionIconColor;
94
79
  });
95
-
96
- var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "\n"])), function (props) {
97
- return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
80
+ var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n gap: 0.25rem;\n width: 100%;\n overflow: hidden;\n margin-left: ", ";\n"])), function (props) {
81
+ return props.grouped && !props.multiple && !props.hasIcon ? "16px" : "8px";
98
82
  });
99
-
100
- var OptionIconImg = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
101
-
102
- var OptionLabel = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
103
-
104
- var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"])), function (props) {
83
+ var OptionLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
84
+ var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n\n svg {\n width: 16px;\n height: 16px;\n }\n"])), function (props) {
105
85
  return props.theme.selectedListOptionIconColor;
106
86
  });
107
-
108
- var _default = /*#__PURE__*/_react["default"].memo(Option);
109
-
110
- exports["default"] = _default;
87
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Option);
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _jestAxe = require("jest-axe");
11
+ var _Select = _interopRequireDefault(require("./Select.tsx"));
12
+ var _Flex = _interopRequireDefault(require("../flex/Flex.tsx"));
13
+ var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ height: "24px",
16
+ viewBox: "0 0 24 24",
17
+ width: "24px",
18
+ fill: "currentColor"
19
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
20
+ d: "M0,0h24v24H0V0z",
21
+ fill: "none"
22
+ })), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
23
+ d: "M3,7v2h5v2H4v2h4v2H3v2h5c1.1,0,2-0.9,2-2v-1.5c0-0.83-0.67-1.5-1.5-1.5c0.83,0,1.5-0.67,1.5-1.5V9c0-1.1-0.9-2-2-2H3z M21,11v4c0,1.1-0.9,2-2,2h-5c-1.1,0-2-0.9-2-2V9c0-1.1,0.9-2,2-2h5c1.1,0,2,0.9,2,2h-7v6h5v-2h-2.5v-2H21z"
24
+ }))));
25
+ var group_options = [{
26
+ label: "Group 001",
27
+ options: [{
28
+ label: "Option 001",
29
+ value: "1"
30
+ }, {
31
+ label: "Option 002",
32
+ value: "2"
33
+ }, {
34
+ label: "Option 003",
35
+ value: "3"
36
+ }]
37
+ }, {
38
+ label: "Group 002",
39
+ options: [{
40
+ label: "Option 004",
41
+ value: "4"
42
+ }, {
43
+ label: "Option 005",
44
+ value: "5"
45
+ }, {
46
+ label: "Option 006",
47
+ value: "6"
48
+ }]
49
+ }, {
50
+ label: "Group 003",
51
+ options: [{
52
+ label: "Option 007",
53
+ value: "7"
54
+ }, {
55
+ label: "Option 008",
56
+ value: "8"
57
+ }, {
58
+ label: "Option 009",
59
+ value: "9"
60
+ }]
61
+ }, {
62
+ label: "Group 004",
63
+ options: [{
64
+ label: "Option 010",
65
+ value: "10"
66
+ }, {
67
+ label: "Option 011",
68
+ value: "11"
69
+ }, {
70
+ label: "Option 012",
71
+ value: "12"
72
+ }]
73
+ }, {
74
+ label: "Group 005",
75
+ options: [{
76
+ label: "Option 013",
77
+ value: "13"
78
+ }, {
79
+ label: "Option 014",
80
+ value: "14"
81
+ }, {
82
+ label: "Option 015",
83
+ value: "15"
84
+ }]
85
+ }];
86
+ var single_options = [{
87
+ label: "Option 01",
88
+ value: "1",
89
+ icon: iconSVG
90
+ }, {
91
+ label: "Option 02",
92
+ value: "2",
93
+ icon: iconSVG
94
+ }, {
95
+ label: "Option 03",
96
+ value: "3",
97
+ icon: iconSVG
98
+ }, {
99
+ label: "Option 04",
100
+ value: "4",
101
+ icon: iconSVG
102
+ }];
103
+
104
+ // Mocking DOMRect for Radix Primitive Popover
105
+ global.globalThis = global;
106
+ global.DOMRect = {
107
+ fromRect: function fromRect() {
108
+ return {
109
+ top: 0,
110
+ left: 0,
111
+ bottom: 0,
112
+ right: 0,
113
+ width: 0,
114
+ height: 0
115
+ };
116
+ }
117
+ };
118
+ global.ResizeObserver = /*#__PURE__*/function () {
119
+ function ResizeObserver() {
120
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
121
+ }
122
+ (0, _createClass2["default"])(ResizeObserver, [{
123
+ key: "observe",
124
+ value: function observe() {}
125
+ }, {
126
+ key: "unobserve",
127
+ value: function unobserve() {}
128
+ }, {
129
+ key: "disconnect",
130
+ value: function disconnect() {}
131
+ }]);
132
+ return ResizeObserver;
133
+ }();
134
+ describe("Select component accessibility tests", function () {
135
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
136
+ var _render, baseElement, results;
137
+ return _regenerator["default"].wrap(function _callee$(_context) {
138
+ while (1) switch (_context.prev = _context.next) {
139
+ case 0:
140
+ // baseElement is needed when using React Portals
141
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
142
+ label: "test-select-label",
143
+ helperText: "test-select-helper-text",
144
+ placeholder: "Example text",
145
+ options: single_options,
146
+ defaultValue: 1,
147
+ margin: "medium",
148
+ name: "Name",
149
+ size: "medium",
150
+ searchable: true
151
+ }), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
152
+ label: "test-select-label",
153
+ helperText: "test-select-helper-text",
154
+ placeholder: "Example text",
155
+ options: single_options,
156
+ defaultValue: ["4", "2", "6"],
157
+ margin: "medium",
158
+ name: "Name",
159
+ size: "medium",
160
+ searchable: true,
161
+ multiple: true,
162
+ optional: true
163
+ }))), baseElement = _render.baseElement;
164
+ _context.next = 3;
165
+ return (0, _jestAxe.axe)(baseElement);
166
+ case 3:
167
+ results = _context.sent;
168
+ expect(results).toHaveNoViolations();
169
+ case 5:
170
+ case "end":
171
+ return _context.stop();
172
+ }
173
+ }, _callee);
174
+ })));
175
+ it("Should not have basic accessibility issues for group mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
176
+ var _render2, baseElement, results;
177
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
178
+ while (1) switch (_context2.prev = _context2.next) {
179
+ case 0:
180
+ // baseElement is needed when using React Portals
181
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
182
+ label: "test-select-label",
183
+ helperText: "test-select-helper-text",
184
+ placeholder: "Example text",
185
+ options: group_options,
186
+ defaultValue: ["4", "2", "6"],
187
+ error: "Error",
188
+ margin: "medium",
189
+ name: "Name",
190
+ size: "medium",
191
+ searchable: true,
192
+ multiple: true
193
+ }), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
194
+ label: "test-select-label",
195
+ helperText: "test-select-helper-text",
196
+ placeholder: "Example text",
197
+ options: group_options,
198
+ defaultValue: ["4", "2", "6"],
199
+ margin: "medium",
200
+ name: "Name",
201
+ size: "medium",
202
+ searchable: true,
203
+ multiple: true,
204
+ disabled: true
205
+ }))), baseElement = _render2.baseElement;
206
+ _context2.next = 3;
207
+ return (0, _jestAxe.axe)(baseElement);
208
+ case 3:
209
+ results = _context2.sent;
210
+ expect(results).toHaveNoViolations();
211
+ case 5:
212
+ case "end":
213
+ return _context2.stop();
214
+ }
215
+ }, _callee2);
216
+ })));
217
+ });