@dxc-technology/halstack-react 0.0.0-bd47c58 → 0.0.0-bdaadec

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 (329) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +43 -138
  4. package/HalstackContext.js +10 -35
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +31 -84
  7. package/accordion/Accordion.stories.tsx +5 -51
  8. package/accordion/Accordion.test.js +18 -33
  9. package/accordion/types.d.ts +6 -6
  10. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  11. package/accordion-group/AccordionGroup.d.ts +2 -3
  12. package/accordion-group/AccordionGroup.js +17 -44
  13. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  14. package/accordion-group/AccordionGroup.test.js +42 -60
  15. package/accordion-group/AccordionGroupAccordion.js +11 -23
  16. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  17. package/accordion-group/AccordionGroupContext.js +8 -0
  18. package/accordion-group/types.d.ts +7 -7
  19. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +48 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.accessibility.test.js +95 -0
  26. package/alert/Alert.js +29 -118
  27. package/alert/Alert.test.js +28 -45
  28. package/alert/types.d.ts +5 -5
  29. package/badge/Badge.accessibility.test.js +129 -0
  30. package/badge/Badge.d.ts +1 -1
  31. package/badge/Badge.js +141 -43
  32. package/badge/Badge.stories.tsx +210 -0
  33. package/badge/Badge.test.js +30 -0
  34. package/badge/types.d.ts +52 -3
  35. package/bleed/Bleed.js +13 -21
  36. package/bleed/types.d.ts +2 -2
  37. package/box/Box.accessibility.test.js +33 -0
  38. package/box/Box.js +11 -33
  39. package/box/Box.test.js +1 -6
  40. package/box/types.d.ts +3 -3
  41. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  42. package/bulleted-list/BulletedList.js +22 -55
  43. package/bulleted-list/BulletedList.stories.tsx +2 -93
  44. package/bulleted-list/types.d.ts +5 -5
  45. package/button/Button.accessibility.test.js +127 -0
  46. package/button/Button.js +36 -59
  47. package/button/Button.stories.tsx +33 -133
  48. package/button/Button.test.js +13 -21
  49. package/button/types.d.ts +5 -5
  50. package/card/Card.accessibility.test.js +36 -0
  51. package/card/Card.js +21 -44
  52. package/card/Card.test.js +10 -21
  53. package/card/types.d.ts +5 -5
  54. package/checkbox/Checkbox.accessibility.test.js +87 -0
  55. package/checkbox/Checkbox.js +85 -120
  56. package/checkbox/Checkbox.stories.tsx +16 -54
  57. package/checkbox/Checkbox.test.js +107 -63
  58. package/checkbox/types.d.ts +8 -4
  59. package/chip/Chip.accessibility.test.js +67 -0
  60. package/chip/Chip.js +20 -36
  61. package/chip/Chip.stories.tsx +5 -24
  62. package/chip/Chip.test.js +17 -30
  63. package/chip/types.d.ts +4 -4
  64. package/common/coreTokens.d.ts +105 -14
  65. package/common/coreTokens.js +40 -23
  66. package/common/utils.js +2 -8
  67. package/common/variables.d.ts +44 -139
  68. package/common/variables.js +55 -157
  69. package/container/Container.d.ts +4 -0
  70. package/container/Container.js +194 -0
  71. package/container/Container.stories.tsx +214 -0
  72. package/container/types.d.ts +74 -0
  73. package/container/types.js +5 -0
  74. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  75. package/contextual-menu/ContextualMenu.d.ts +7 -0
  76. package/contextual-menu/ContextualMenu.js +71 -0
  77. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  78. package/contextual-menu/ContextualMenu.test.js +71 -0
  79. package/contextual-menu/MenuItemAction.d.ts +4 -0
  80. package/contextual-menu/MenuItemAction.js +46 -0
  81. package/contextual-menu/types.d.ts +22 -0
  82. package/contextual-menu/types.js +5 -0
  83. package/date-input/Calendar.js +13 -57
  84. package/date-input/DateInput.accessibility.test.js +216 -0
  85. package/date-input/DateInput.js +50 -96
  86. package/date-input/DateInput.stories.tsx +11 -30
  87. package/date-input/DateInput.test.js +674 -701
  88. package/date-input/DatePicker.js +11 -42
  89. package/date-input/Icons.d.ts +6 -6
  90. package/date-input/Icons.js +6 -23
  91. package/date-input/YearPicker.js +8 -34
  92. package/date-input/types.d.ts +28 -22
  93. package/dialog/Dialog.accessibility.test.js +69 -0
  94. package/dialog/Dialog.js +13 -40
  95. package/dialog/Dialog.stories.tsx +170 -0
  96. package/dialog/Dialog.test.js +126 -188
  97. package/dialog/types.d.ts +18 -13
  98. package/divider/Divider.accessibility.test.js +33 -0
  99. package/divider/Divider.d.ts +4 -0
  100. package/divider/Divider.js +36 -0
  101. package/divider/Divider.stories.tsx +223 -0
  102. package/divider/Divider.test.js +38 -0
  103. package/divider/types.d.ts +21 -0
  104. package/divider/types.js +5 -0
  105. package/dropdown/Dropdown.accessibility.test.js +180 -0
  106. package/dropdown/Dropdown.js +59 -128
  107. package/dropdown/Dropdown.stories.tsx +5 -16
  108. package/dropdown/Dropdown.test.js +391 -378
  109. package/dropdown/DropdownMenu.js +8 -19
  110. package/dropdown/DropdownMenuItem.js +11 -20
  111. package/dropdown/types.d.ts +20 -24
  112. package/file-input/FileInput.accessibility.test.js +160 -0
  113. package/file-input/FileInput.js +180 -284
  114. package/file-input/FileInput.stories.tsx +1 -1
  115. package/file-input/FileInput.test.js +279 -354
  116. package/file-input/FileItem.js +25 -66
  117. package/file-input/types.d.ts +9 -9
  118. package/flex/Flex.js +25 -39
  119. package/flex/types.d.ts +6 -6
  120. package/footer/Footer.accessibility.test.js +117 -0
  121. package/footer/Footer.d.ts +1 -1
  122. package/footer/Footer.js +43 -68
  123. package/footer/Footer.stories.tsx +54 -9
  124. package/footer/Footer.test.js +18 -32
  125. package/footer/Icons.d.ts +3 -2
  126. package/footer/Icons.js +66 -7
  127. package/footer/types.d.ts +17 -17
  128. package/grid/Grid.js +1 -16
  129. package/grid/types.d.ts +10 -10
  130. package/header/Header.accessibility.test.js +84 -0
  131. package/header/Header.d.ts +1 -1
  132. package/header/Header.js +28 -84
  133. package/header/Header.test.js +12 -25
  134. package/header/Icons.d.ts +2 -2
  135. package/header/Icons.js +2 -7
  136. package/header/types.d.ts +7 -8
  137. package/heading/Heading.accessibility.test.js +33 -0
  138. package/heading/Heading.js +9 -31
  139. package/heading/Heading.test.js +70 -87
  140. package/heading/types.d.ts +7 -7
  141. package/icon/Icon.accessibility.test.js +30 -0
  142. package/icon/Icon.d.ts +4 -0
  143. package/icon/Icon.js +33 -0
  144. package/icon/Icon.stories.tsx +28 -0
  145. package/icon/types.d.ts +4 -0
  146. package/icon/types.js +5 -0
  147. package/image/Image.accessibility.test.js +56 -0
  148. package/image/Image.d.ts +2 -2
  149. package/image/Image.js +17 -32
  150. package/image/Image.stories.tsx +3 -1
  151. package/image/types.d.ts +2 -2
  152. package/inset/Inset.js +13 -21
  153. package/inset/types.d.ts +2 -2
  154. package/layout/ApplicationLayout.d.ts +2 -2
  155. package/layout/ApplicationLayout.js +26 -66
  156. package/layout/ApplicationLayout.stories.tsx +1 -1
  157. package/layout/Icons.d.ts +8 -5
  158. package/layout/Icons.js +49 -59
  159. package/layout/types.d.ts +3 -3
  160. package/link/Link.accessibility.test.js +112 -0
  161. package/link/Link.js +28 -47
  162. package/link/Link.stories.tsx +2 -2
  163. package/link/Link.test.js +23 -41
  164. package/link/types.d.ts +14 -14
  165. package/main.d.ts +7 -4
  166. package/main.js +32 -60
  167. package/nav-tabs/NavTabs.accessibility.test.js +52 -0
  168. package/nav-tabs/NavTabs.d.ts +1 -2
  169. package/nav-tabs/NavTabs.js +19 -48
  170. package/nav-tabs/NavTabs.stories.tsx +7 -5
  171. package/nav-tabs/NavTabs.test.js +38 -44
  172. package/nav-tabs/NavTabsContext.d.ts +3 -0
  173. package/nav-tabs/NavTabsContext.js +8 -0
  174. package/nav-tabs/Tab.js +24 -52
  175. package/nav-tabs/types.d.ts +9 -9
  176. package/number-input/NumberInput.accessibility.test.js +228 -0
  177. package/number-input/NumberInput.d.ts +0 -7
  178. package/number-input/NumberInput.js +47 -39
  179. package/number-input/NumberInput.stories.tsx +42 -26
  180. package/number-input/NumberInput.test.js +839 -575
  181. package/number-input/NumberInputContext.d.ts +3 -0
  182. package/number-input/NumberInputContext.js +8 -0
  183. package/number-input/types.d.ts +17 -5
  184. package/package.json +39 -37
  185. package/paginator/Icons.d.ts +5 -5
  186. package/paginator/Icons.js +5 -19
  187. package/paginator/Paginator.accessibility.test.js +79 -0
  188. package/paginator/Paginator.js +15 -43
  189. package/paginator/Paginator.test.js +224 -207
  190. package/paginator/types.d.ts +3 -3
  191. package/paragraph/Paragraph.accessibility.test.js +28 -0
  192. package/paragraph/Paragraph.js +3 -19
  193. package/paragraph/Paragraph.stories.tsx +0 -17
  194. package/password-input/Icons.d.ts +3 -3
  195. package/password-input/Icons.js +1 -5
  196. package/password-input/PasswordInput.accessibility.test.js +153 -0
  197. package/password-input/PasswordInput.js +26 -48
  198. package/password-input/PasswordInput.stories.tsx +1 -34
  199. package/password-input/PasswordInput.test.js +153 -129
  200. package/password-input/types.d.ts +8 -7
  201. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  202. package/progress-bar/ProgressBar.js +21 -53
  203. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  204. package/progress-bar/ProgressBar.test.js +35 -52
  205. package/progress-bar/types.d.ts +3 -3
  206. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  207. package/quick-nav/QuickNav.js +4 -27
  208. package/quick-nav/QuickNav.stories.tsx +1 -1
  209. package/quick-nav/types.d.ts +10 -10
  210. package/radio-group/Radio.d.ts +1 -1
  211. package/radio-group/Radio.js +22 -54
  212. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  213. package/radio-group/RadioGroup.js +37 -83
  214. package/radio-group/RadioGroup.stories.tsx +10 -10
  215. package/radio-group/RadioGroup.test.js +504 -470
  216. package/radio-group/types.d.ts +8 -8
  217. package/resultset-table/Icons.d.ts +7 -0
  218. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  219. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  220. package/resultset-table/ResultsetTable.d.ts +7 -0
  221. package/{resultsetTable → resultset-table}/ResultsetTable.js +44 -69
  222. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +106 -5
  223. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
  224. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  225. package/resultset-table/types.js +5 -0
  226. package/select/Icons.d.ts +7 -7
  227. package/select/Icons.js +1 -5
  228. package/select/Listbox.js +13 -39
  229. package/select/Option.js +17 -27
  230. package/select/Select.accessibility.test.js +217 -0
  231. package/select/Select.js +87 -163
  232. package/select/Select.stories.tsx +3 -4
  233. package/select/Select.test.js +1946 -1804
  234. package/select/types.d.ts +14 -15
  235. package/sidenav/Icons.d.ts +4 -4
  236. package/sidenav/Icons.js +1 -5
  237. package/sidenav/Sidenav.accessibility.test.js +59 -0
  238. package/sidenav/Sidenav.js +29 -70
  239. package/sidenav/Sidenav.stories.tsx +0 -1
  240. package/sidenav/Sidenav.test.js +3 -10
  241. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  242. package/{layout → sidenav}/SidenavContext.js +3 -9
  243. package/sidenav/types.d.ts +18 -18
  244. package/slider/Slider.accessibility.test.js +104 -0
  245. package/slider/Slider.js +68 -125
  246. package/slider/Slider.test.js +107 -103
  247. package/slider/types.d.ts +4 -4
  248. package/spinner/Spinner.accessibility.test.js +96 -0
  249. package/spinner/Spinner.js +16 -54
  250. package/spinner/Spinner.test.js +25 -34
  251. package/spinner/types.d.ts +3 -3
  252. package/status-light/StatusLight.accessibility.test.js +157 -0
  253. package/status-light/StatusLight.d.ts +4 -0
  254. package/status-light/StatusLight.js +51 -0
  255. package/status-light/StatusLight.stories.tsx +74 -0
  256. package/status-light/StatusLight.test.js +25 -0
  257. package/status-light/types.d.ts +17 -0
  258. package/status-light/types.js +5 -0
  259. package/switch/Switch.accessibility.test.js +89 -0
  260. package/switch/Switch.js +49 -97
  261. package/switch/Switch.stories.tsx +0 -34
  262. package/switch/Switch.test.js +51 -96
  263. package/switch/types.d.ts +4 -4
  264. package/table/DropdownTheme.js +62 -0
  265. package/table/Table.accessibility.test.js +82 -0
  266. package/table/Table.d.ts +6 -2
  267. package/table/Table.js +76 -33
  268. package/table/{Table.stories.jsx → Table.stories.tsx} +297 -2
  269. package/table/Table.test.js +93 -6
  270. package/table/types.d.ts +34 -6
  271. package/tabs/Tab.js +17 -33
  272. package/tabs/Tabs.accessibility.test.js +56 -0
  273. package/tabs/Tabs.js +52 -129
  274. package/tabs/Tabs.stories.tsx +1 -1
  275. package/tabs/Tabs.test.js +62 -118
  276. package/tabs/types.d.ts +19 -19
  277. package/tag/Tag.accessibility.test.js +69 -0
  278. package/tag/Tag.js +21 -51
  279. package/tag/Tag.test.js +19 -30
  280. package/tag/types.d.ts +7 -7
  281. package/text-input/Suggestion.js +9 -26
  282. package/text-input/Suggestions.d.ts +1 -1
  283. package/text-input/Suggestions.js +19 -67
  284. package/text-input/TextInput.accessibility.test.js +321 -0
  285. package/text-input/TextInput.js +197 -287
  286. package/text-input/TextInput.stories.tsx +49 -153
  287. package/text-input/TextInput.test.js +1227 -1194
  288. package/text-input/types.d.ts +25 -17
  289. package/textarea/Textarea.accessibility.test.js +155 -0
  290. package/textarea/Textarea.js +67 -109
  291. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  292. package/textarea/Textarea.test.js +150 -179
  293. package/textarea/types.d.ts +9 -5
  294. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  295. package/toggle-group/ToggleGroup.js +21 -61
  296. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  297. package/toggle-group/ToggleGroup.test.js +48 -81
  298. package/toggle-group/types.d.ts +10 -10
  299. package/typography/Typography.accessibility.test.js +339 -0
  300. package/typography/Typography.js +4 -13
  301. package/typography/types.d.ts +1 -1
  302. package/useTheme.d.ts +41 -136
  303. package/useTheme.js +1 -8
  304. package/useTranslatedLabels.js +1 -7
  305. package/utils/BaseTypography.d.ts +2 -2
  306. package/utils/BaseTypography.js +16 -30
  307. package/utils/FocusLock.js +25 -39
  308. package/wizard/Wizard.accessibility.test.js +55 -0
  309. package/wizard/Wizard.js +14 -49
  310. package/wizard/Wizard.test.js +53 -80
  311. package/wizard/types.d.ts +7 -7
  312. package/common/OpenSans.css +0 -69
  313. package/common/fonts/OpenSans-Bold.ttf +0 -0
  314. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  315. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  316. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  317. package/common/fonts/OpenSans-Italic.ttf +0 -0
  318. package/common/fonts/OpenSans-Light.ttf +0 -0
  319. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  320. package/common/fonts/OpenSans-Regular.ttf +0 -0
  321. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  322. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  323. package/resultsetTable/Icons.d.ts +0 -7
  324. package/resultsetTable/ResultsetTable.d.ts +0 -4
  325. package/slider/Slider.stories.tsx +0 -240
  326. package/text-input/Icons.d.ts +0 -8
  327. package/text-input/Icons.js +0 -60
  328. /package/{resultsetTable → action-icon}/types.js +0 -0
  329. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
package/select/Listbox.js CHANGED
@@ -1,56 +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
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
17
-
18
12
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
19
-
20
13
  var _Option = _interopRequireDefault(require("./Option"));
21
-
22
14
  var _Icons = _interopRequireDefault(require("./Icons"));
23
-
24
15
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
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
-
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; }
30
18
  var groupsHaveOptions = function groupsHaveOptions(options) {
31
19
  return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
32
20
  var _groupOption$options;
33
-
34
21
  return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
35
22
  }) : true;
36
23
  };
37
-
38
24
  var Listbox = function Listbox(_ref) {
39
25
  var id = _ref.id,
40
- currentValue = _ref.currentValue,
41
- options = _ref.options,
42
- visualFocusIndex = _ref.visualFocusIndex,
43
- lastOptionIndex = _ref.lastOptionIndex,
44
- multiple = _ref.multiple,
45
- optional = _ref.optional,
46
- optionalItem = _ref.optionalItem,
47
- searchable = _ref.searchable,
48
- handleOptionOnClick = _ref.handleOptionOnClick,
49
- styles = _ref.styles;
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;
50
36
  var translatedLabels = (0, _useTranslatedLabels["default"])();
51
37
  var listboxRef = (0, _react.useRef)(null);
52
38
  var globalIndex = optional && !multiple ? 0 : -1;
53
-
54
39
  var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
55
40
  if (option.options) {
56
41
  var groupId = "group-".concat(mapIndex);
@@ -90,11 +75,9 @@ var Listbox = function Listbox(_ref) {
90
75
  });
91
76
  }
92
77
  };
93
-
94
78
  (0, _react.useLayoutEffect)(function () {
95
79
  if (currentValue && !multiple) {
96
80
  var _listEl$scrollTo;
97
-
98
81
  var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
99
82
  var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
100
83
  listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
@@ -104,7 +87,6 @@ var Listbox = function Listbox(_ref) {
104
87
  }, [currentValue, multiple]);
105
88
  (0, _react.useLayoutEffect)(function () {
106
89
  var _listboxRef$current, _visualFocusedOptionE;
107
-
108
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];
109
91
  visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
110
92
  block: "nearest",
@@ -135,7 +117,6 @@ var Listbox = function Listbox(_ref) {
135
117
  isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
136
118
  }), options.map(mapOptionFunc));
137
119
  };
138
-
139
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) {
140
121
  return props.theme.listDialogBackgroundColor;
141
122
  }, function (props) {
@@ -151,19 +132,12 @@ var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_temp
151
132
  }, function (props) {
152
133
  return props.theme.listOptionFontWeight;
153
134
  });
154
-
155
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) {
156
136
  return props.theme.systemMessageFontColor;
157
137
  });
158
-
159
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"])));
160
-
161
139
  var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
162
-
163
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) {
164
141
  return props.theme.listGroupLabelFontWeight;
165
142
  });
166
-
167
- var _default = /*#__PURE__*/_react["default"].memo(Listbox);
168
-
169
- exports["default"] = _default;
143
+ var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Listbox);
package/select/Option.js CHANGED
@@ -1,34 +1,31 @@
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 _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
-
12
9
  var _react = _interopRequireDefault(require("react"));
13
-
14
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
-
16
11
  var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
17
-
18
12
  var _Icons = _interopRequireDefault(require("./Icons"));
19
-
20
13
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
21
-
22
14
  var Option = function Option(_ref) {
23
15
  var id = _ref.id,
24
- option = _ref.option,
25
- _onClick = _ref.onClick,
26
- multiple = _ref.multiple,
27
- visualFocused = _ref.visualFocused,
28
- _ref$isGroupedOption = _ref.isGroupedOption,
29
- isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
30
- isLastOption = _ref.isLastOption,
31
- isSelected = _ref.isSelected;
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
+ };
32
29
  return /*#__PURE__*/_react["default"].createElement(OptionItem, {
33
30
  id: id,
34
31
  onClick: function onClick() {
@@ -57,9 +54,10 @@ var Option = function Option(_ref) {
57
54
  grouped: isGroupedOption,
58
55
  hasIcon: option.icon ? true : false,
59
56
  multiple: multiple
60
- }, /*#__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))));
61
60
  };
62
-
63
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) {
64
62
  return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
65
63
  }, function (props) {
@@ -69,29 +67,21 @@ var OptionItem = _styledComponents["default"].li(_templateObject || (_templateOb
69
67
  }, function (props) {
70
68
  return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
71
69
  });
72
-
73
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) {
74
71
  return props.grouped && props.multiple && "padding-left: 16px;";
75
72
  }, function (props) {
76
73
  return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
77
74
  });
78
-
79
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) {
80
76
  return props.grouped && !props.multiple ? "16px" : "8px";
81
77
  }, function (props) {
82
78
  return props.theme.listOptionIconColor;
83
79
  });
84
-
85
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) {
86
81
  return props.grouped && !props.multiple && !props.hasIcon ? "16px" : "8px";
87
82
  });
88
-
89
83
  var OptionLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
90
-
91
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) {
92
85
  return props.theme.selectedListOptionIconColor;
93
86
  });
94
-
95
- var _default = /*#__PURE__*/_react["default"].memo(Option);
96
-
97
- 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
+ });