@enact/limestone 1.3.0

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 (463) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +28 -0
  2. package/.github/workflows/update-copyright-years.yml +25 -0
  3. package/.travis.yml +40 -0
  4. package/ActionGuide/ActionGuide.d.ts +73 -0
  5. package/ActionGuide/ActionGuide.js +164 -0
  6. package/ActionGuide/ActionGuide.module.css +73 -0
  7. package/ActionGuide/package.json +3 -0
  8. package/ActionGuide/tests/ActionGuide-specs.js +51 -0
  9. package/Alert/Alert.d.ts +155 -0
  10. package/Alert/Alert.js +313 -0
  11. package/Alert/Alert.module.css +190 -0
  12. package/Alert/AlertImage.js +102 -0
  13. package/Alert/AlertImage.module.css +15 -0
  14. package/Alert/package.json +3 -0
  15. package/Alert/tests/Alert-specs.js +204 -0
  16. package/BodyText/BodyText.d.ts +74 -0
  17. package/BodyText/BodyText.js +170 -0
  18. package/BodyText/BodyText.module.css +95 -0
  19. package/BodyText/package.json +3 -0
  20. package/BodyText/tests/BodyText-specs.js +55 -0
  21. package/Button/Button.d.ts +131 -0
  22. package/Button/Button.js +351 -0
  23. package/Button/Button.module.css +2518 -0
  24. package/Button/package.json +3 -0
  25. package/Button/tests/Button-specs.js +252 -0
  26. package/CHANGELOG.md +170 -0
  27. package/Card/Card.d.ts +138 -0
  28. package/Card/Card.js +396 -0
  29. package/Card/Card.module.css +1296 -0
  30. package/Card/package.json +3 -0
  31. package/Card/tests/Card-specs.js +65 -0
  32. package/Checkbox/Checkbox.d.ts +99 -0
  33. package/Checkbox/Checkbox.js +222 -0
  34. package/Checkbox/Checkbox.module.css +1395 -0
  35. package/Checkbox/package.json +3 -0
  36. package/Checkbox/tests/Checkbox-specs.js +79 -0
  37. package/CheckboxItem/CheckboxItem.d.ts +99 -0
  38. package/CheckboxItem/CheckboxItem.js +210 -0
  39. package/CheckboxItem/CheckboxItem.module.css +50 -0
  40. package/CheckboxItem/package.json +3 -0
  41. package/CheckboxItem/tests/CheckboxItem-specs.js +52 -0
  42. package/Chips/Chip.js +252 -0
  43. package/Chips/Chip.module.css +30 -0
  44. package/Chips/Chips.js +215 -0
  45. package/Chips/Chips.module.css +8 -0
  46. package/Chips/index.js +86 -0
  47. package/Chips/tests/Chip-specs.js +186 -0
  48. package/Chips/tests/Chips-specs.js +312 -0
  49. package/ColorPicker/ColorPicker.js +416 -0
  50. package/ColorPicker/ColorPicker.module.css +78 -0
  51. package/ColorPicker/package.json +3 -0
  52. package/ColorPicker/tests/ColorPicker-specs.js +225 -0
  53. package/ColorPicker/utils.js +135 -0
  54. package/ContextualMenuDecorator/ContextualMenuDecorator.d.ts +106 -0
  55. package/ContextualMenuDecorator/ContextualMenuDecorator.js +264 -0
  56. package/ContextualMenuDecorator/ContextualMenuDecorator.module.css +42 -0
  57. package/ContextualMenuDecorator/package.json +3 -0
  58. package/ContextualMenuDecorator/tests/ContextualMenuDecorator-specs.js +136 -0
  59. package/ContextualPopupDecorator/ContextualPopup.js +200 -0
  60. package/ContextualPopupDecorator/ContextualPopup.module.css +270 -0
  61. package/ContextualPopupDecorator/ContextualPopupDecorator.d.ts +182 -0
  62. package/ContextualPopupDecorator/ContextualPopupDecorator.js +867 -0
  63. package/ContextualPopupDecorator/ContextualPopupDecorator.module.css +3 -0
  64. package/ContextualPopupDecorator/HolePunchScrim.js +69 -0
  65. package/ContextualPopupDecorator/HolePunchScrim.module.css +38 -0
  66. package/ContextualPopupDecorator/package.json +3 -0
  67. package/ContextualPopupDecorator/tests/ContextualPopupDecorator-specs.js +621 -0
  68. package/DatePicker/DatePicker.d.ts +173 -0
  69. package/DatePicker/DatePicker.js +175 -0
  70. package/DatePicker/DatePicker.module.css +5 -0
  71. package/DatePicker/DatePickerBase.js +348 -0
  72. package/DatePicker/package.json +3 -0
  73. package/DatePicker/tests/DatePicker-specs.js +247 -0
  74. package/DayPicker/DayPicker.d.ts +92 -0
  75. package/DayPicker/DayPicker.js +188 -0
  76. package/DayPicker/DayPicker.module.css +35 -0
  77. package/DayPicker/DaySelectorDecorator.js +301 -0
  78. package/DayPicker/package.json +3 -0
  79. package/DayPicker/tests/DayPicker-specs.js +138 -0
  80. package/Dropdown/Dropdown.d.ts +135 -0
  81. package/Dropdown/Dropdown.js +460 -0
  82. package/Dropdown/Dropdown.module.css +160 -0
  83. package/Dropdown/DropdownList.js +360 -0
  84. package/Dropdown/package.json +3 -0
  85. package/Dropdown/tests/Dropdown-specs.js +267 -0
  86. package/FixedPopupPanels/FixedPopupPanels.d.ts +72 -0
  87. package/FixedPopupPanels/FixedPopupPanels.js +170 -0
  88. package/FixedPopupPanels/FixedPopupPanels.module.css +146 -0
  89. package/FixedPopupPanels/package.json +3 -0
  90. package/FixedPopupPanels/tests/FixedPopupPanels-specs.js +142 -0
  91. package/FlexiblePopupPanels/FlexiblePopupPanels.js +177 -0
  92. package/FlexiblePopupPanels/FlexiblePopupPanels.module.css +291 -0
  93. package/FlexiblePopupPanels/Header.js +110 -0
  94. package/FlexiblePopupPanels/Panel.js +256 -0
  95. package/FlexiblePopupPanels/index.d.ts +145 -0
  96. package/FlexiblePopupPanels/index.js +68 -0
  97. package/FlexiblePopupPanels/package.json +3 -0
  98. package/FlexiblePopupPanels/tests/FlexiblePopupPanels-specs.js +305 -0
  99. package/FlexiblePopupPanels/useNavButtonFocus.js +65 -0
  100. package/FormCheckboxItem/FormCheckboxItem.d.ts +87 -0
  101. package/FormCheckboxItem/FormCheckboxItem.js +200 -0
  102. package/FormCheckboxItem/FormCheckboxItem.module.css +374 -0
  103. package/FormCheckboxItem/package.json +3 -0
  104. package/FormCheckboxItem/tests/FormCheckboxItem-specs.js +164 -0
  105. package/Heading/Heading.d.ts +104 -0
  106. package/Heading/Heading.js +203 -0
  107. package/Heading/Heading.module.css +217 -0
  108. package/Heading/package.json +3 -0
  109. package/Heading/tests/Heading-specs.js +57 -0
  110. package/Icon/Icon.d.ts +377 -0
  111. package/Icon/Icon.js +503 -0
  112. package/Icon/Icon.module.css +121 -0
  113. package/Icon/IconList.js +611 -0
  114. package/Icon/package.json +3 -0
  115. package/Icon/tests/Icon-specs.js +131 -0
  116. package/IconItem/IconItem.d.ts +137 -0
  117. package/IconItem/IconItem.js +360 -0
  118. package/IconItem/IconItem.module.css +414 -0
  119. package/IconItem/package.json +3 -0
  120. package/IconItem/tests/IconItem-specs.js +106 -0
  121. package/Image/Image.d.ts +60 -0
  122. package/Image/Image.js +165 -0
  123. package/Image/Image.module.css +5 -0
  124. package/Image/package.json +3 -0
  125. package/Image/tests/Image-specs.js +62 -0
  126. package/ImageItem/ImageItem.d.ts +134 -0
  127. package/ImageItem/ImageItem.js +377 -0
  128. package/ImageItem/ImageItem.module.css +1079 -0
  129. package/ImageItem/package.json +3 -0
  130. package/ImageItem/tests/ImageItem-specs.js +223 -0
  131. package/Input/Input.js +715 -0
  132. package/Input/Input.module.css +699 -0
  133. package/Input/InputField.js +487 -0
  134. package/Input/InputField.module.css +763 -0
  135. package/Input/InputFieldDecoratorIcon.js +66 -0
  136. package/Input/InputFieldSpotlightDecorator.js +380 -0
  137. package/Input/Keypad.js +111 -0
  138. package/Input/NumberField.js +311 -0
  139. package/Input/index.d.ts +423 -0
  140. package/Input/index.js +87 -0
  141. package/Input/package.json +3 -0
  142. package/Input/pointer.js +103 -0
  143. package/Input/tests/Input-specs.js +537 -0
  144. package/Input/tests/InputField-specs.js +292 -0
  145. package/Input/tests/InputPopup-specs.js +56 -0
  146. package/Input/util.js +130 -0
  147. package/Item/Item.d.ts +108 -0
  148. package/Item/Item.js +360 -0
  149. package/Item/Item.module.css +665 -0
  150. package/Item/package.json +3 -0
  151. package/Item/tests/Item-specs.js +108 -0
  152. package/KeyGuide/KeyGuide.d.ts +103 -0
  153. package/KeyGuide/KeyGuide.js +254 -0
  154. package/KeyGuide/KeyGuide.module.css +431 -0
  155. package/KeyGuide/package.json +3 -0
  156. package/KeyGuide/tests/KeyGuide-specs.js +168 -0
  157. package/LICENSE +201 -0
  158. package/Marquee/Marquee.d.ts +42 -0
  159. package/Marquee/Marquee.js +45 -0
  160. package/Marquee/package.json +3 -0
  161. package/MediaOverlay/MediaOverlay.d.ts +134 -0
  162. package/MediaOverlay/MediaOverlay.js +304 -0
  163. package/MediaOverlay/MediaOverlay.module.css +292 -0
  164. package/MediaOverlay/package.json +3 -0
  165. package/MediaOverlay/tests/MediaOverlay-specs.js +127 -0
  166. package/MediaPlayer/MediaControls.js +934 -0
  167. package/MediaPlayer/MediaControls.module.css +86 -0
  168. package/MediaPlayer/MediaKnob.js +61 -0
  169. package/MediaPlayer/MediaSlider.js +131 -0
  170. package/MediaPlayer/MediaSlider.module.css +319 -0
  171. package/MediaPlayer/MediaSliderDecorator.js +245 -0
  172. package/MediaPlayer/Times.js +152 -0
  173. package/MediaPlayer/Times.module.css +34 -0
  174. package/MediaPlayer/index.d.ts +223 -0
  175. package/MediaPlayer/index.js +34 -0
  176. package/MediaPlayer/package.json +3 -0
  177. package/MediaPlayer/tests/MediaSlider-specs.js +126 -0
  178. package/MediaPlayer/tests/util-specs.js +114 -0
  179. package/MediaPlayer/util.js +83 -0
  180. package/PageViews/Page.js +77 -0
  181. package/PageViews/Page.module.css +3 -0
  182. package/PageViews/PageViews.js +440 -0
  183. package/PageViews/PageViews.module.css +175 -0
  184. package/PageViews/PageViewsRouter.js +150 -0
  185. package/PageViews/index.js +45 -0
  186. package/PageViews/tests/PageViews-specs.js +192 -0
  187. package/Panels/Header.js +599 -0
  188. package/Panels/Header.module.css +243 -0
  189. package/Panels/Panel.js +347 -0
  190. package/Panels/Panel.module.css +33 -0
  191. package/Panels/Panels.js +258 -0
  192. package/Panels/Panels.module.css +12 -0
  193. package/Panels/index.d.ts +376 -0
  194. package/Panels/index.js +66 -0
  195. package/Panels/package.json +3 -0
  196. package/Panels/tests/Header-specs.js +146 -0
  197. package/Panels/tests/Panels-specs.js +257 -0
  198. package/Picker/Picker.d.ts +193 -0
  199. package/Picker/Picker.js +389 -0
  200. package/Picker/Picker.module.css +46 -0
  201. package/Picker/package.json +3 -0
  202. package/Picker/tests/Picker-specs.js +91 -0
  203. package/Popup/Popup.d.ts +169 -0
  204. package/Popup/Popup.js +690 -0
  205. package/Popup/Popup.module.css +180 -0
  206. package/Popup/package.json +3 -0
  207. package/Popup/tests/Popup-specs.js +475 -0
  208. package/PopupTabLayout/PopupTabLayout.d.ts +196 -0
  209. package/PopupTabLayout/PopupTabLayout.js +605 -0
  210. package/PopupTabLayout/PopupTabLayout.module.css +226 -0
  211. package/PopupTabLayout/package.json +3 -0
  212. package/PopupTabLayout/tests/PopupTabLayout-specs.js +285 -0
  213. package/ProgressBar/ProgressBar.d.ts +171 -0
  214. package/ProgressBar/ProgressBar.js +223 -0
  215. package/ProgressBar/ProgressBar.module.css +264 -0
  216. package/ProgressBar/ProgressBarTooltip.js +359 -0
  217. package/ProgressBar/ProgressBarTooltip.module.css +86 -0
  218. package/ProgressBar/package.json +3 -0
  219. package/ProgressBar/tests/ProgressBar-specs.js +400 -0
  220. package/ProgressButton/ProgressButton.d.ts +57 -0
  221. package/ProgressButton/ProgressButton.js +143 -0
  222. package/ProgressButton/ProgressButton.module.css +147 -0
  223. package/ProgressButton/package.json +3 -0
  224. package/ProgressButton/tests/ProgressButton-specs.js +71 -0
  225. package/QuickGuidePanels/Panel.js +90 -0
  226. package/QuickGuidePanels/QuickGuidePanels.js +463 -0
  227. package/QuickGuidePanels/QuickGuidePanels.module.css +26 -0
  228. package/QuickGuidePanels/index.js +52 -0
  229. package/QuickGuidePanels/tests/QuickGuidePanels-specs.js +250 -0
  230. package/README.md +59 -0
  231. package/RadioItem/RadioItem.d.ts +59 -0
  232. package/RadioItem/RadioItem.js +146 -0
  233. package/RadioItem/RadioItem.module.css +233 -0
  234. package/RadioItem/package.json +3 -0
  235. package/RadioItem/tests/RadioItem-specs.js +62 -0
  236. package/RangePicker/RangePicker.d.ts +174 -0
  237. package/RangePicker/RangePicker.js +372 -0
  238. package/RangePicker/RangePicker.module.css +55 -0
  239. package/RangePicker/package.json +3 -0
  240. package/RangePicker/tests/RangePicker-specs.js +122 -0
  241. package/Region/Region.d.ts +33 -0
  242. package/Region/Region.js +91 -0
  243. package/Region/package.json +3 -0
  244. package/Region/tests/Region-specs.js +28 -0
  245. package/Scroller/ContentContainerDecorator.js +24 -0
  246. package/Scroller/EditableWrapper.js +1036 -0
  247. package/Scroller/EditableWrapper.module.css +22 -0
  248. package/Scroller/Scroller.d.ts +270 -0
  249. package/Scroller/Scroller.js +470 -0
  250. package/Scroller/Scroller.module.css +41 -0
  251. package/Scroller/package.json +3 -0
  252. package/Scroller/tests/ContentContainerDecorator-specs.js +20 -0
  253. package/Scroller/tests/EditableWrapper-specs.js +133 -0
  254. package/Scroller/tests/Scroller-specs.js +159 -0
  255. package/Scroller/useEvent.js +39 -0
  256. package/Scroller/useThemeScroller.js +410 -0
  257. package/Skinnable/Skinnable.d.ts +27 -0
  258. package/Skinnable/Skinnable.js +65 -0
  259. package/Skinnable/package.json +3 -0
  260. package/Slider/Slider.d.ts +218 -0
  261. package/Slider/Slider.js +441 -0
  262. package/Slider/Slider.module.css +880 -0
  263. package/Slider/SliderBehaviorDecorator.js +184 -0
  264. package/Slider/package.json +3 -0
  265. package/Slider/tests/Slider-specs.js +573 -0
  266. package/Slider/utils.js +114 -0
  267. package/Spinner/Spinner.d.ts +64 -0
  268. package/Spinner/Spinner.js +254 -0
  269. package/Spinner/Spinner.module.css +368 -0
  270. package/Spinner/package.json +3 -0
  271. package/Spinner/tests/Spinner-specs.js +70 -0
  272. package/Sprite/Sprite.d.ts +100 -0
  273. package/Sprite/Sprite.js +345 -0
  274. package/Sprite/Sprite.module.css +32 -0
  275. package/Sprite/package.json +3 -0
  276. package/Sprite/tests/Sprite-specs.js +59 -0
  277. package/Steps/Steps.d.ts +119 -0
  278. package/Steps/Steps.js +303 -0
  279. package/Steps/Steps.module.css +130 -0
  280. package/Steps/package.json +3 -0
  281. package/Steps/tests/Steps-specs.js +175 -0
  282. package/Switch/Switch.d.ts +54 -0
  283. package/Switch/Switch.js +143 -0
  284. package/Switch/Switch.module.css +714 -0
  285. package/Switch/package.json +3 -0
  286. package/Switch/tests/Switch-specs.js +54 -0
  287. package/SwitchItem/SwitchItem.d.ts +56 -0
  288. package/SwitchItem/SwitchItem.js +144 -0
  289. package/SwitchItem/SwitchItem.module.css +31 -0
  290. package/SwitchItem/package.json +3 -0
  291. package/SwitchItem/tests/SwitchItem-specs.js +49 -0
  292. package/TabLayout/RefocusDecorator.js +142 -0
  293. package/TabLayout/Tab.js +84 -0
  294. package/TabLayout/TabGroup.js +377 -0
  295. package/TabLayout/TabGroup.module.css +280 -0
  296. package/TabLayout/TabLayout.d.ts +161 -0
  297. package/TabLayout/TabLayout.js +661 -0
  298. package/TabLayout/TabLayout.module.css +101 -0
  299. package/TabLayout/package.json +3 -0
  300. package/TabLayout/tests/TabGroup-specs.js +214 -0
  301. package/TabLayout/tests/TabLayout-specs.js +740 -0
  302. package/ThemeDecorator/AccessibilityDecorator.js +151 -0
  303. package/ThemeDecorator/I18nFontDecorator.js +33 -0
  304. package/ThemeDecorator/ThemeDecorator.d.ts +143 -0
  305. package/ThemeDecorator/ThemeDecorator.js +307 -0
  306. package/ThemeDecorator/ThemeDecorator.module.css +1250 -0
  307. package/ThemeDecorator/fontGenerator.js +76 -0
  308. package/ThemeDecorator/package.json +3 -0
  309. package/ThemeDecorator/screenTypes.json +10 -0
  310. package/ThemeDecorator/tests/ThemeDecorator-specs.js +151 -0
  311. package/TimePicker/TimePicker.d.ts +147 -0
  312. package/TimePicker/TimePicker.js +255 -0
  313. package/TimePicker/TimePicker.module.css +61 -0
  314. package/TimePicker/TimePickerBase.js +396 -0
  315. package/TimePicker/package.json +3 -0
  316. package/TimePicker/tests/TimePicker-specs.js +248 -0
  317. package/TooltipDecorator/Tooltip.js +252 -0
  318. package/TooltipDecorator/Tooltip.module.css +496 -0
  319. package/TooltipDecorator/TooltipDecorator.d.ts +229 -0
  320. package/TooltipDecorator/TooltipDecorator.js +260 -0
  321. package/TooltipDecorator/TooltipLabel.js +117 -0
  322. package/TooltipDecorator/package.json +3 -0
  323. package/TooltipDecorator/tests/TooltipDecorator-specs.js +224 -0
  324. package/TooltipDecorator/tests/useTooltip-specs.js +266 -0
  325. package/TooltipDecorator/useTooltip.js +278 -0
  326. package/TooltipDecorator/util.js +273 -0
  327. package/VideoPlayer/Feedback.js +110 -0
  328. package/VideoPlayer/Feedback.module.css +55 -0
  329. package/VideoPlayer/FeedbackContent.js +99 -0
  330. package/VideoPlayer/FeedbackIcon.js +67 -0
  331. package/VideoPlayer/FeedbackIcons.js +76 -0
  332. package/VideoPlayer/FeedbackTooltip.js +242 -0
  333. package/VideoPlayer/FeedbackTooltip.module.css +160 -0
  334. package/VideoPlayer/MediaTitle.js +143 -0
  335. package/VideoPlayer/MediaTitle.module.css +95 -0
  336. package/VideoPlayer/Overlay.js +51 -0
  337. package/VideoPlayer/Video.js +345 -0
  338. package/VideoPlayer/VideoPlayer.d.ts +582 -0
  339. package/VideoPlayer/VideoPlayer.js +2116 -0
  340. package/VideoPlayer/VideoPlayer.module.css +164 -0
  341. package/VideoPlayer/package.json +3 -0
  342. package/VideoPlayer/tests/Video-specs.js +235 -0
  343. package/VideoPlayer/tests/VideoPlayer-specs.js +180 -0
  344. package/VirtualList/VirtualList.d.ts +411 -0
  345. package/VirtualList/VirtualList.js +931 -0
  346. package/VirtualList/VirtualList.module.css +52 -0
  347. package/VirtualList/package.json +3 -0
  348. package/VirtualList/tests/VirtualGridList-specs.js +289 -0
  349. package/VirtualList/tests/VirtualGridList-translate-specs.js +711 -0
  350. package/VirtualList/tests/VirtualList-specs.js +288 -0
  351. package/VirtualList/tests/VirtualList-translate-specs.js +704 -0
  352. package/VirtualList/tests/useEvent-specs.js +172 -0
  353. package/VirtualList/tests/useEvent-translate-specs.js +309 -0
  354. package/VirtualList/useEvent.js +324 -0
  355. package/VirtualList/usePreventScroll.js +31 -0
  356. package/VirtualList/useSpotlight.js +157 -0
  357. package/VirtualList/useThemeVirtualList.js +471 -0
  358. package/VirtualList/useThemeVirtualList.module.css +34 -0
  359. package/WizardPanels/Panel.js +99 -0
  360. package/WizardPanels/WizardPanels.js +501 -0
  361. package/WizardPanels/WizardPanels.module.css +15 -0
  362. package/WizardPanels/index.d.ts +182 -0
  363. package/WizardPanels/index.js +50 -0
  364. package/WizardPanels/package.json +3 -0
  365. package/WizardPanels/tests/WizardPanels-specs.js +713 -0
  366. package/codecov.yml +13 -0
  367. package/fonts/Limestone_Icons.ttf +0 -0
  368. package/fonts/Miso/LICENSE.txt +75 -0
  369. package/fonts/Miso/Miso-Bold.ttf +0 -0
  370. package/fonts/Miso/Miso-Light.ttf +0 -0
  371. package/fonts/Miso/Miso-Regular.ttf +0 -0
  372. package/fonts/MuseoSans/LICENSE.txt +75 -0
  373. package/fonts/MuseoSans/MuseoSans-Black.ttf +0 -0
  374. package/fonts/MuseoSans/MuseoSans-BlackItalic.ttf +0 -0
  375. package/fonts/MuseoSans/MuseoSans-Bold.ttf +0 -0
  376. package/fonts/MuseoSans/MuseoSans-BoldItalic.ttf +0 -0
  377. package/fonts/MuseoSans/MuseoSans-Light.ttf +0 -0
  378. package/fonts/MuseoSans/MuseoSans-Medium.ttf +0 -0
  379. package/fonts/MuseoSans/MuseoSans-MediumItalic.ttf +0 -0
  380. package/fonts/MuseoSans/MuseoSans-Thin.ttf +0 -0
  381. package/index.js +2 -0
  382. package/internal/$L/$L.d.ts +21 -0
  383. package/internal/$L/$L.js +97 -0
  384. package/internal/$L/package.json +3 -0
  385. package/internal/AsyncRenderChildren/AsyncRenderChildren.js +74 -0
  386. package/internal/AsyncRenderChildren/package.json +3 -0
  387. package/internal/AsyncRenderChildren/tests/AsyncRenderChildren-specs.js +49 -0
  388. package/internal/DateComponentPicker/DateComponentPicker.js +165 -0
  389. package/internal/DateComponentPicker/DateComponentPicker.module.css +53 -0
  390. package/internal/DateComponentPicker/DateComponentRangePicker.js +132 -0
  391. package/internal/DateComponentPicker/index.js +31 -0
  392. package/internal/DateComponentPicker/package.json +3 -0
  393. package/internal/DateTime/DateTime.js +83 -0
  394. package/internal/DateTime/DateTime.module.css +51 -0
  395. package/internal/DateTime/DateTimeDecorator.js +268 -0
  396. package/internal/DateTime/index.js +37 -0
  397. package/internal/DateTime/package.json +3 -0
  398. package/internal/DateTime/tests/DateTimeDecorator-specs.js +33 -0
  399. package/internal/DebounceDecorator/DebounceDecorator.js +125 -0
  400. package/internal/DebounceDecorator/package.json +3 -0
  401. package/internal/DebounceDecorator/tests/DebounceDecorator-specs.js +151 -0
  402. package/internal/Panels/Arrangers.js +248 -0
  403. package/internal/Panels/CancelDecorator.js +43 -0
  404. package/internal/Panels/FloatingLayerIdProvider.js +27 -0
  405. package/internal/Panels/NavigationButton.js +64 -0
  406. package/internal/Panels/NavigationButton.module.css +69 -0
  407. package/internal/Panels/PanelsRouter.js +223 -0
  408. package/internal/Panels/PopupDecorator.js +287 -0
  409. package/internal/Panels/TransitionDecorator.js +99 -0
  410. package/internal/Panels/Viewport.js +313 -0
  411. package/internal/Panels/Viewport.module.css +25 -0
  412. package/internal/Panels/captureKeys.js +48 -0
  413. package/internal/Panels/index.js +101 -0
  414. package/internal/Panels/package.json +3 -0
  415. package/internal/Panels/useAutoFocus.js +95 -0
  416. package/internal/Panels/useFocusOnTransition.js +45 -0
  417. package/internal/Panels/useToggleRole.js +30 -0
  418. package/internal/Panels/util.js +64 -0
  419. package/internal/Picker/Picker.js +942 -0
  420. package/internal/Picker/Picker.module.css +1145 -0
  421. package/internal/Picker/PickerButton.js +97 -0
  422. package/internal/Picker/PickerItem.js +38 -0
  423. package/internal/Picker/SpottablePicker.js +63 -0
  424. package/internal/Picker/package.json +3 -0
  425. package/internal/Picker/tests/Picker-specs.js +968 -0
  426. package/internal/SharedStateDecorator/SharedStateDecorator.js +167 -0
  427. package/internal/SharedStateDecorator/package.json +3 -0
  428. package/internal/SharedStateDecorator/tests/SharedStateDecorator-specs.js +277 -0
  429. package/internal/WindowEventable/WindowEventable.js +114 -0
  430. package/internal/WindowEventable/package.json +3 -0
  431. package/internal/util/package.json +3 -0
  432. package/internal/util/util.js +79 -0
  433. package/internal/validators/package.json +4 -0
  434. package/internal/validators/tests/validators-specs.js +80 -0
  435. package/internal/validators/validators.js +136 -0
  436. package/package.json +69 -0
  437. package/resources/ilibmanifest.json +3 -0
  438. package/styles/color-mixins.less +230 -0
  439. package/styles/colors-game-green.less +25 -0
  440. package/styles/colors-game-orange.less +25 -0
  441. package/styles/colors-game.less +56 -0
  442. package/styles/colors-highcontrast.less +21 -0
  443. package/styles/colors.less +435 -0
  444. package/styles/mixins.less +337 -0
  445. package/styles/skin.less +54 -0
  446. package/styles/variables-base.less +32 -0
  447. package/styles/variables-game.less +25 -0
  448. package/styles/variables.less +1182 -0
  449. package/useScroll/HoverToScroll.js +265 -0
  450. package/useScroll/HoverToScroll.module.css +38 -0
  451. package/useScroll/OverscrollEffect.module.css +14 -0
  452. package/useScroll/Scrollbar.js +171 -0
  453. package/useScroll/Scrollbar.module.css +19 -0
  454. package/useScroll/ScrollbarPlaceholder.js +64 -0
  455. package/useScroll/ScrollbarTrack.js +209 -0
  456. package/useScroll/ScrollbarTrack.module.css +136 -0
  457. package/useScroll/package.json +3 -0
  458. package/useScroll/useEvent.js +693 -0
  459. package/useScroll/useOverscrollEffect.js +105 -0
  460. package/useScroll/useScroll.js +523 -0
  461. package/useScroll/useScroll.module.css +49 -0
  462. package/useScroll/useSpotlight.js +32 -0
  463. package/useScroll/useThemeScrollContentHandle.js +32 -0
@@ -0,0 +1,968 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
6
+ var _Picker = _interopRequireDefault(require("../Picker"));
7
+ var _PickerItem = _interopRequireDefault(require("../PickerItem"));
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
11
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
+ var keyDown = function keyDown(keyCode) {
13
+ return function (picker) {
14
+ return _react.fireEvent.keyDown(picker, {
15
+ keyCode: keyCode
16
+ });
17
+ };
18
+ };
19
+ var leftKeyDown = keyDown(37);
20
+ var rightKeyDown = keyDown(39);
21
+ describe('Picker Specs', function () {
22
+ test('should have a default \'value\' of 0', function () {
23
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
24
+ index: 0,
25
+ max: 0,
26
+ min: 0
27
+ }));
28
+ var valueText = _react.screen.getAllByRole('button')[0].nextElementSibling.nextElementSibling; // there is a dummy sibling by Spottable
29
+
30
+ var expectedValue = '0';
31
+ var expectedAttribute = 'aria-valuetext';
32
+ expect(valueText).toHaveAttribute(expectedAttribute, expectedValue);
33
+ });
34
+ test('should return an object {value: Number} that represents the next value of the Picker component when pressing the increment <span>', /*#__PURE__*/_asyncToGenerator(function* () {
35
+ var handleChange = jest.fn();
36
+ var user = _userEvent["default"].setup();
37
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
38
+ index: 0,
39
+ max: 1,
40
+ min: -1,
41
+ onChange: handleChange,
42
+ value: 0
43
+ }));
44
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
45
+ yield user.click(picker.firstElementChild);
46
+ var expected = 1;
47
+ var actual = handleChange.mock.calls[0][0].value;
48
+ expect(actual).toBe(expected);
49
+ }));
50
+ test('should return an object {value: Number} that represents the next value of the Picker component when pressing the decrement <span>', /*#__PURE__*/_asyncToGenerator(function* () {
51
+ var handleChange = jest.fn();
52
+ var user = _userEvent["default"].setup();
53
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
54
+ index: 0,
55
+ max: 1,
56
+ min: -1,
57
+ onChange: handleChange,
58
+ value: 0
59
+ }));
60
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
61
+ yield user.click(picker.lastElementChild.previousElementSibling); // there is a dummy sibling by Spottable
62
+
63
+ var expected = -1;
64
+ var actual = handleChange.mock.calls[0][0].value;
65
+ expect(actual).toBe(expected);
66
+ }));
67
+ test('should not run the onChange handler when disabled', /*#__PURE__*/_asyncToGenerator(function* () {
68
+ var handleChange = jest.fn();
69
+ var user = _userEvent["default"].setup();
70
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
71
+ disabled: true,
72
+ index: 0,
73
+ max: 0,
74
+ min: 0,
75
+ onChange: handleChange,
76
+ value: 0
77
+ }));
78
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
79
+ yield user.click(picker.firstElementChild);
80
+ expect(handleChange).not.toHaveBeenCalled();
81
+ }));
82
+ test('should wrap to the beginning of the value range if \'wrap\' is true', /*#__PURE__*/_asyncToGenerator(function* () {
83
+ var handleChange = jest.fn();
84
+ var user = _userEvent["default"].setup();
85
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
86
+ index: 0,
87
+ max: 0,
88
+ min: -1,
89
+ onChange: handleChange,
90
+ value: 0,
91
+ wrap: true
92
+ }));
93
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
94
+ yield user.click(picker.firstElementChild);
95
+ var expected = -1;
96
+ var actual = handleChange.mock.calls[0][0].value;
97
+ expect(actual).toBe(expected);
98
+ }));
99
+ test('should wrap to the end of the value range if \'wrap\' is true', /*#__PURE__*/_asyncToGenerator(function* () {
100
+ var handleChange = jest.fn();
101
+ var user = _userEvent["default"].setup();
102
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
103
+ index: 0,
104
+ max: 1,
105
+ min: 0,
106
+ onChange: handleChange,
107
+ value: 0,
108
+ wrap: true
109
+ }));
110
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
111
+ yield user.click(picker.lastElementChild.previousElementSibling); // there is a dummy sibling by Spottable
112
+
113
+ var expected = 1;
114
+ var actual = handleChange.mock.calls[0][0].value;
115
+ expect(actual).toBe(expected);
116
+ }));
117
+ test('should increment by \'step\' value', /*#__PURE__*/_asyncToGenerator(function* () {
118
+ var handleChange = jest.fn();
119
+ var user = _userEvent["default"].setup();
120
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
121
+ index: 0,
122
+ max: 6,
123
+ min: 0,
124
+ onChange: handleChange,
125
+ step: 3,
126
+ value: 0
127
+ }));
128
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
129
+ yield user.click(picker.firstElementChild);
130
+ var expected = 3;
131
+ var actual = handleChange.mock.calls[0][0].value;
132
+ expect(actual).toBe(expected);
133
+ }));
134
+ test('should decrement by \'step\' value', /*#__PURE__*/_asyncToGenerator(function* () {
135
+ var handleChange = jest.fn();
136
+ var user = _userEvent["default"].setup();
137
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
138
+ index: 0,
139
+ max: 3,
140
+ min: 0,
141
+ onChange: handleChange,
142
+ step: 3,
143
+ value: 3
144
+ }));
145
+ var picker = _react.screen.getByLabelText('3 next item').parentElement;
146
+ yield user.click(picker.lastElementChild.previousElementSibling); // there is a dummy sibling by Spottable
147
+
148
+ var expected = 0;
149
+ var actual = handleChange.mock.calls[0][0].value;
150
+ expect(actual).toBe(expected);
151
+ }));
152
+ test('should call onKeyDown when right key pressed', function () {
153
+ var handleChange = jest.fn();
154
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
155
+ index: 0,
156
+ max: 6,
157
+ min: 0,
158
+ onKeyDown: handleChange,
159
+ step: 3,
160
+ value: 0
161
+ }));
162
+ var picker = _react.screen.getAllByRole('button')[0];
163
+ rightKeyDown(picker);
164
+ expect(handleChange).toHaveBeenCalled();
165
+ });
166
+ test('should call onKeyDown when left key pressed', function () {
167
+ var handleChange = jest.fn();
168
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
169
+ index: 0,
170
+ max: 6,
171
+ min: 0,
172
+ onKeyDown: handleChange,
173
+ step: 3,
174
+ value: 0
175
+ }));
176
+ var picker = _react.screen.getAllByRole('button')[1];
177
+ leftKeyDown(picker);
178
+ expect(handleChange).toHaveBeenCalled();
179
+ });
180
+ test('should increment by \'step\' value and wrap successfully', /*#__PURE__*/_asyncToGenerator(function* () {
181
+ var handleChange = jest.fn();
182
+ var user = _userEvent["default"].setup();
183
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
184
+ index: 0,
185
+ max: 3,
186
+ min: 0,
187
+ onChange: handleChange,
188
+ step: 3,
189
+ value: 3,
190
+ wrap: true
191
+ }));
192
+ var picker = _react.screen.getByLabelText('3 next item').parentElement;
193
+ yield user.click(picker.firstElementChild);
194
+ var expected = 0;
195
+ var actual = handleChange.mock.calls[0][0].value;
196
+ expect(actual).toBe(expected);
197
+ }));
198
+ test('should call onWheel event when \'joined\' and \'value\' is between \'max\' and \'min\'', function () {
199
+ var handleWheelEvent = jest.fn();
200
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
201
+ index: 0,
202
+ joined: true,
203
+ max: 3,
204
+ min: 0,
205
+ noAnimation: true,
206
+ step: 1,
207
+ value: 1,
208
+ onWheel: handleWheelEvent
209
+ }));
210
+ var picker = _react.screen.getByLabelText('1 press ok button to change the value');
211
+ (0, _react.act)(function () {
212
+ picker.focus();
213
+ });
214
+ _react.fireEvent.wheel(picker, {
215
+ deltaY: 10
216
+ });
217
+ expect(handleWheelEvent).toHaveBeenCalled();
218
+ });
219
+ test('should call onWheel event when \'joined\' and \'value\' is \'max\' and \'deltaY\' is positive', function () {
220
+ var handleWheelEvent = jest.fn();
221
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
222
+ index: 0,
223
+ joined: true,
224
+ max: 3,
225
+ min: 0,
226
+ noAnimation: true,
227
+ step: 1,
228
+ value: 3,
229
+ onWheel: handleWheelEvent
230
+ }));
231
+ var picker = _react.screen.getByLabelText('3 press ok button to change the value');
232
+ (0, _react.act)(function () {
233
+ picker.focus();
234
+ });
235
+ _react.fireEvent.wheel(picker, {
236
+ deltaY: 10
237
+ });
238
+ expect(handleWheelEvent).toHaveBeenCalled();
239
+ });
240
+ test('should call onWheel event when \'joined\' and \'value\' is \'min\' and \'deltaY\' is negative', function () {
241
+ var handleWheelEvent = jest.fn();
242
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
243
+ index: 0,
244
+ joined: true,
245
+ max: 3,
246
+ min: 0,
247
+ noAnimation: true,
248
+ step: 1,
249
+ value: 0,
250
+ onWheel: handleWheelEvent
251
+ }));
252
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
253
+ (0, _react.act)(function () {
254
+ picker.focus();
255
+ });
256
+ _react.fireEvent.wheel(picker, {
257
+ deltaY: -10
258
+ });
259
+ expect(handleWheelEvent).toHaveBeenCalled();
260
+ });
261
+ test('should decrement by \'step\' value and wrap successfully', /*#__PURE__*/_asyncToGenerator(function* () {
262
+ var handleChange = jest.fn();
263
+ var user = _userEvent["default"].setup();
264
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
265
+ index: 0,
266
+ max: 9,
267
+ min: 0,
268
+ onChange: handleChange,
269
+ step: 3,
270
+ value: 0,
271
+ wrap: true
272
+ }));
273
+ var picker = _react.screen.getByLabelText('0 next item').parentElement;
274
+ yield user.click(picker.lastElementChild.previousElementSibling); // there is a dummy sibling by Spottable
275
+
276
+ var expected = 9;
277
+ var actual = handleChange.mock.calls[0][0].value;
278
+ expect(actual).toBe(expected);
279
+ }));
280
+ test('should enable the increment button when there is a wrapped value to increment', function () {
281
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
282
+ index: 0,
283
+ max: 2,
284
+ min: 0,
285
+ value: 2,
286
+ wrap: true
287
+ }));
288
+ var expectedAttribute = 'aria-disabled';
289
+ var expectedValue = 'false';
290
+ var actual = _react.screen.getAllByRole('button')[0];
291
+ expect(actual).toHaveAttribute(expectedAttribute, expectedValue);
292
+ });
293
+ test('should enable the decrement button when there is a wrapped value to decrement', function () {
294
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
295
+ index: 0,
296
+ max: 2,
297
+ min: 0,
298
+ value: 2,
299
+ wrap: true
300
+ }));
301
+ var expectedAttribute = 'aria-disabled';
302
+ var expectedValue = 'false';
303
+ var actual = _react.screen.getAllByRole('button')[1];
304
+ expect(actual).toHaveAttribute(expectedAttribute, expectedValue);
305
+ });
306
+ test('should disable the increment button when there is no value to increment', function () {
307
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
308
+ index: 0,
309
+ max: 2,
310
+ min: 0,
311
+ value: 2
312
+ }));
313
+ var expectedAttribute = 'disabled';
314
+ var actual = _react.screen.getAllByRole('button')[0];
315
+ expect(actual).toHaveAttribute(expectedAttribute);
316
+ });
317
+ test('should disable the decrement button when there is no value to decrement', function () {
318
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
319
+ index: 0,
320
+ max: 2,
321
+ min: 0,
322
+ value: 0
323
+ }));
324
+ var expectedAttribute = 'disabled';
325
+ var actual = _react.screen.getAllByRole('button')[1];
326
+ expect(actual).toHaveAttribute(expectedAttribute);
327
+ });
328
+ test('should disable the increment and decrement buttons when wrapped and there is a single value', function () {
329
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
330
+ index: 0,
331
+ max: 0,
332
+ min: 0,
333
+ value: 0,
334
+ wrap: true
335
+ }));
336
+ var incrementButton = _react.screen.getAllByRole('button')[0];
337
+ var decrementButton = _react.screen.getAllByRole('button')[1];
338
+ var expectedAttribute = 'disabled';
339
+ expect(incrementButton).toHaveAttribute(expectedAttribute);
340
+ expect(decrementButton).toHaveAttribute(expectedAttribute);
341
+ });
342
+
343
+ // TODO: ui-tests for select keys for joined horizontal pickers
344
+ // Note: Because of the limitation of the unit test environment, simulating `keyCode: 13` or the select/enter key will not forward the mouse events that'll trigger `onChange` like it's supposed to
345
+ test('should allow keyboard increment via enter key when \'joined\' and \'horizontal\'', function () {
346
+ var handleChange = jest.fn();
347
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
348
+ index: 0,
349
+ joined: true,
350
+ max: 1,
351
+ min: -1,
352
+ onChange: handleChange,
353
+ value: 0
354
+ }));
355
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
356
+ _react.fireEvent.keyDown(picker, {
357
+ keyCode: 13
358
+ });
359
+ _react.fireEvent.mouseDown(picker);
360
+ expect(handleChange).toHaveBeenCalled();
361
+ });
362
+ test('should increment via mousedown when \'joined\' and \'horizontal\'', function () {
363
+ var handleChange = jest.fn();
364
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
365
+ index: 0,
366
+ joined: true,
367
+ max: 1,
368
+ min: -1,
369
+ onChange: handleChange,
370
+ value: 0
371
+ }));
372
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
373
+ _react.fireEvent.mouseDown(picker);
374
+ var expected = 1;
375
+ var actual = handleChange.mock.calls[0][0].value;
376
+ expect(actual).toBe(expected);
377
+ });
378
+ test('should increment via mousedown when \'joined\' and \'horizontal\' and wrap successfully', function () {
379
+ var handleChange = jest.fn();
380
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
381
+ index: 2,
382
+ joined: true,
383
+ max: 3,
384
+ min: 0,
385
+ onChange: handleChange,
386
+ value: 3
387
+ }));
388
+ var picker = _react.screen.getByLabelText('3 press ok button to change the value');
389
+ _react.fireEvent.mouseDown(picker);
390
+ var expected = 0;
391
+ var actual = handleChange.mock.calls[0][0].value;
392
+ expect(actual).toBe(expected);
393
+ });
394
+
395
+ // TODO: ui-tests for select keys for joined horizontal pickers
396
+ // Note: Because of the limitation of the unit test environment, simulating `keyCode: 13` or the select/enter key will not forward the mouse events that'll trigger `onChange` like it's supposed to
397
+ test('should increment keyboard select when \'joined\' and \'horizontal\' and wrap successfully', function () {
398
+ var handleChange = jest.fn();
399
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
400
+ index: 2,
401
+ joined: true,
402
+ max: 3,
403
+ min: 0,
404
+ onChange: handleChange,
405
+ value: 3
406
+ }));
407
+ var picker = _react.screen.getByLabelText('3 press ok button to change the value');
408
+ _react.fireEvent.keyDown(picker, {
409
+ keyCode: 13
410
+ });
411
+ _react.fireEvent.mouseDown(picker);
412
+ var expected = 0;
413
+ var actual = handleChange.mock.calls[0][0].value;
414
+ expect(actual).toBe(expected);
415
+ });
416
+ test('should not allow keyboard decrement via left arrow keys when \'joined\' and \'horizontal\'', function () {
417
+ var handleChange = jest.fn();
418
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
419
+ index: 0,
420
+ joined: true,
421
+ max: 1,
422
+ min: -1,
423
+ onChange: handleChange,
424
+ value: 0
425
+ }));
426
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
427
+ _react.fireEvent.keyDown(picker, {
428
+ keyCode: 37
429
+ });
430
+ expect(handleChange).not.toHaveBeenCalled();
431
+ });
432
+ test('should not allow keyboard increment via right arrow keys when \'joined\' and \'horizontal\'', function () {
433
+ var handleChange = jest.fn();
434
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
435
+ index: 0,
436
+ joined: true,
437
+ max: 1,
438
+ min: -1,
439
+ onChange: handleChange,
440
+ value: 0
441
+ }));
442
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
443
+ _react.fireEvent.keyDown(picker, {
444
+ keyCode: 39
445
+ });
446
+ expect(handleChange).not.toHaveBeenCalled();
447
+ });
448
+ test('should allow keyboard decrement via left arrow keys when \'changedBy="arrow"\', \'joined\', and \'horizontal\'', function () {
449
+ var handleChange = jest.fn();
450
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
451
+ changedBy: "arrow",
452
+ index: 0,
453
+ joined: true,
454
+ max: 1,
455
+ min: -1,
456
+ onChange: handleChange,
457
+ value: 0
458
+ }));
459
+ var picker = _react.screen.getByLabelText('0 change a value with left right button');
460
+ _react.fireEvent.keyDown(picker, {
461
+ keyCode: 37
462
+ });
463
+ _react.fireEvent.mouseDown(picker);
464
+ var expected = -1;
465
+ var actual = handleChange.mock.calls[0][0].value;
466
+ expect(actual).toBe(expected);
467
+ });
468
+ test('should allow keyboard increment via right arrow keys when \'changedBy="arrow"\', \'joined\', and \'horizontal\'', function () {
469
+ var handleChange = jest.fn();
470
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
471
+ changedBy: "arrow",
472
+ index: 0,
473
+ joined: true,
474
+ max: 1,
475
+ min: -1,
476
+ onChange: handleChange,
477
+ value: 0
478
+ }));
479
+ var picker = _react.screen.getByLabelText('0 change a value with left right button');
480
+ _react.fireEvent.keyDown(picker, {
481
+ keyCode: 39
482
+ });
483
+ _react.fireEvent.mouseDown(picker);
484
+ var expected = 1;
485
+ var actual = handleChange.mock.calls[0][0].value;
486
+ expect(actual).toBe(expected);
487
+ });
488
+ test('should allow keyboard decrement via down arrow keys when \'joined\' and \'vertical\'', function () {
489
+ var handleChange = jest.fn();
490
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
491
+ index: 0,
492
+ joined: true,
493
+ max: 1,
494
+ min: -1,
495
+ onChange: handleChange,
496
+ orientation: "vertical",
497
+ value: 0
498
+ }));
499
+ var picker = _react.screen.getByLabelText('0 change a value with up down button');
500
+ _react.fireEvent.keyDown(picker, {
501
+ keyCode: 40
502
+ });
503
+ _react.fireEvent.mouseDown(picker);
504
+ var expected = -1;
505
+ var actual = handleChange.mock.calls[0][0].value;
506
+ expect(actual).toBe(expected);
507
+ });
508
+ test('should allow keyboard decrement via up arrow keys when \'joined\' and \'vertical\'', function () {
509
+ var handleChange = jest.fn();
510
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
511
+ index: 0,
512
+ joined: true,
513
+ max: 1,
514
+ min: -1,
515
+ onChange: handleChange,
516
+ orientation: "vertical",
517
+ value: 0
518
+ }));
519
+ var picker = _react.screen.getByLabelText('0 change a value with up down button');
520
+ _react.fireEvent.keyDown(picker, {
521
+ keyCode: 38
522
+ });
523
+ _react.fireEvent.mouseDown(picker);
524
+ var expected = 1;
525
+ var actual = handleChange.mock.calls[0][0].value;
526
+ expect(actual).toBe(expected);
527
+ });
528
+ test('should not allow keyboard decrement via left arrow keys when \'joined\' and \'vertical\'', function () {
529
+ var handleChange = jest.fn();
530
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
531
+ index: 0,
532
+ joined: true,
533
+ max: 1,
534
+ min: -1,
535
+ onChange: handleChange,
536
+ orientation: "vertical",
537
+ value: 0
538
+ }));
539
+ var picker = _react.screen.getByLabelText('0 change a value with up down button');
540
+ _react.fireEvent.keyDown(picker, {
541
+ keyCode: 37
542
+ });
543
+ _react.fireEvent.mouseDown(picker);
544
+ expect(handleChange).not.toHaveBeenCalled();
545
+ });
546
+ test('should not allow keyboard increment via right arrow keys when \'joined\' and \'vertical\'', function () {
547
+ var handleChange = jest.fn();
548
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
549
+ index: 0,
550
+ joined: true,
551
+ max: 1,
552
+ min: -1,
553
+ onChange: handleChange,
554
+ orientation: "vertical",
555
+ value: 0
556
+ }));
557
+ var picker = _react.screen.getByLabelText('0 change a value with up down button');
558
+ _react.fireEvent.keyDown(picker, {
559
+ keyCode: 39
560
+ });
561
+ _react.fireEvent.mouseDown(picker);
562
+ expect(handleChange).not.toHaveBeenCalled();
563
+ });
564
+ test('should not allow keyboard decrement via down arrow keys when \'joined\' and \'horizontal\'', function () {
565
+ var handleChange = jest.fn();
566
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
567
+ index: 0,
568
+ joined: true,
569
+ max: 1,
570
+ min: -1,
571
+ onChange: handleChange,
572
+ orientation: "horizontal",
573
+ value: 0
574
+ }));
575
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
576
+ _react.fireEvent.keyDown(picker, {
577
+ keyCode: 40
578
+ });
579
+ expect(handleChange).not.toHaveBeenCalled();
580
+ });
581
+ test('should not allow keyboard increment via up arrow keys when \'joined\' and \'horizontal\'', function () {
582
+ var handleChange = jest.fn();
583
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
584
+ index: 0,
585
+ joined: true,
586
+ max: 1,
587
+ min: -1,
588
+ onChange: handleChange,
589
+ orientation: "horizontal",
590
+ value: 0
591
+ }));
592
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
593
+ _react.fireEvent.keyDown(picker, {
594
+ keyCode: 38
595
+ });
596
+ expect(handleChange).not.toHaveBeenCalled();
597
+ });
598
+ test('should not allow keyboard decrement via down arrow keys when \'changedBy="arrow"\', \'joined\', and \'horizontal\'', function () {
599
+ var handleChange = jest.fn();
600
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
601
+ changedBy: "arrow",
602
+ index: 0,
603
+ joined: true,
604
+ max: 1,
605
+ min: -1,
606
+ onChange: handleChange,
607
+ orientation: "horizontal",
608
+ value: 0
609
+ }));
610
+ var picker = _react.screen.getByLabelText('0 change a value with left right button');
611
+ _react.fireEvent.keyDown(picker, {
612
+ keyCode: 40
613
+ });
614
+ expect(handleChange).not.toHaveBeenCalled();
615
+ });
616
+ test('should not allow keyboard increment via up arrow keys when \'changedBy="arrow"\', \'joined\', and \'horizontal\'', function () {
617
+ var handleChange = jest.fn();
618
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
619
+ changedBy: "arrow",
620
+ index: 0,
621
+ joined: true,
622
+ max: 1,
623
+ min: -1,
624
+ onChange: handleChange,
625
+ orientation: "horizontal",
626
+ value: 0
627
+ }));
628
+ var picker = _react.screen.getByLabelText('0 change a value with left right button');
629
+ _react.fireEvent.keyDown(picker, {
630
+ keyCode: 38
631
+ });
632
+ expect(handleChange).not.toHaveBeenCalled();
633
+ });
634
+ test('indicator Container should not show any indicator when \'joined\' and \'horizontal\' and has no children', function () {
635
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
636
+ index: 0,
637
+ joined: true,
638
+ max: 1,
639
+ min: -1,
640
+ orientation: "horizontal"
641
+ }));
642
+ var picker = _react.screen.getByLabelText('0 press ok button to change the value');
643
+ var expected = 2; // there is a dummy sibling by Spottable
644
+ // The indicator will be a child of picker's children
645
+ // With it there will be 2 child elements
646
+ var actual = picker.children.item(0).children.length;
647
+ expect(actual).toBe(expected);
648
+ });
649
+ test('indicator Container should not show any indicator when \'joined\' and \'horizontal\' and has one children', function () {
650
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], {
651
+ index: 0,
652
+ max: 1,
653
+ min: -1,
654
+ joined: true,
655
+ orientation: "horizontal",
656
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
657
+ children: "Test one picker"
658
+ })
659
+ }));
660
+ var picker = _react.screen.getByRole('spinbutton', {
661
+ hidden: true
662
+ });
663
+ var expected = 2; // there is a dummy sibling by Spottable
664
+ // The indicator will be a child of picker's children
665
+ // With it there will be 2 child elements
666
+ var actual = picker.children.length;
667
+ expect(actual).toBe(expected);
668
+ });
669
+ test('indicator Container should show with the exact number of children indicator when \'joined\' and \'horizontal\'', function () {
670
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
671
+ index: 0,
672
+ max: 2,
673
+ min: 0,
674
+ joined: true,
675
+ orientation: "horizontal",
676
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
677
+ children: "Test one picker"
678
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
679
+ children: "Test two picker"
680
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
681
+ children: "Test three picker"
682
+ })]
683
+ }));
684
+ var picker = _react.screen.getByRole('spinbutton', {
685
+ hidden: true
686
+ });
687
+ var expected = 3;
688
+ var actual = picker.children.item(2).children.length; // there is a dummy sibling by Spottable
689
+
690
+ expect(actual).toBe(expected);
691
+ });
692
+ describe('accessibility', function () {
693
+ test('should set the aria-label attribute properly in the next icon button', function () {
694
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
695
+ index: 1,
696
+ max: 3,
697
+ min: 0,
698
+ value: 1,
699
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
700
+ children: "1"
701
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
702
+ children: "2"
703
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
704
+ children: "3"
705
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
706
+ children: "4"
707
+ })]
708
+ }));
709
+ var incrementButton = _react.screen.getAllByRole('button')[0];
710
+ var expectedAttribute = 'aria-label';
711
+ var expectedValue = '2 next item';
712
+ expect(incrementButton).toHaveAttribute(expectedAttribute, expectedValue);
713
+ });
714
+ test('should set the aria-label attribute properly in the previous icon button', function () {
715
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
716
+ index: 1,
717
+ max: 3,
718
+ min: 0,
719
+ value: 1,
720
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
721
+ children: "1"
722
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
723
+ children: "2"
724
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
725
+ children: "3"
726
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
727
+ children: "4"
728
+ })]
729
+ }));
730
+ var decrementButton = _react.screen.getAllByRole('button')[1];
731
+ var expectedAttribute = 'aria-label';
732
+ var expectedValue = '2 previous item';
733
+ expect(decrementButton).toHaveAttribute(expectedAttribute, expectedValue);
734
+ });
735
+ test('should set the aria-label attribute properly in the next icon button with title', function () {
736
+ var titleText = 'title text';
737
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
738
+ index: 1,
739
+ max: 3,
740
+ min: 0,
741
+ title: titleText,
742
+ value: 1,
743
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
744
+ children: "1"
745
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
746
+ children: "2"
747
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
748
+ children: "3"
749
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
750
+ children: "4"
751
+ })]
752
+ }));
753
+ var incrementButton = _react.screen.getAllByRole('button')[0];
754
+ var expectedAttribute = 'aria-label';
755
+ var expectedValue = titleText + ' ' + '2 next item';
756
+ expect(incrementButton).toHaveAttribute(expectedAttribute, expectedValue);
757
+ });
758
+ test('should set the aria-label attribute properly in the previous icon button with title', function () {
759
+ var titleText = 'title text';
760
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
761
+ index: 1,
762
+ max: 3,
763
+ min: 0,
764
+ title: titleText,
765
+ value: 1,
766
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
767
+ children: "1"
768
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
769
+ children: "2"
770
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
771
+ children: "3"
772
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
773
+ children: "4"
774
+ })]
775
+ }));
776
+ var decrementButton = _react.screen.getAllByRole('button')[1];
777
+ var expectedAttribute = 'aria-label';
778
+ var expectedValue = titleText + ' ' + '2 previous item';
779
+ expect(decrementButton).toHaveAttribute(expectedAttribute, expectedValue);
780
+ });
781
+ test('should set the aria-valuetext attribute properly to read it when changing the value', function () {
782
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
783
+ index: 1,
784
+ max: 3,
785
+ min: 0,
786
+ value: 1,
787
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
788
+ children: "1"
789
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
790
+ children: "2"
791
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
792
+ children: "3"
793
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
794
+ children: "4"
795
+ })]
796
+ }));
797
+ var pickerItem = _react.screen.getByLabelText('2 next item').nextElementSibling.nextElementSibling; // there is a dummy sibling by Spottable
798
+ // I chose this and not getByText because in get by test you have to go 4 parentElements up
799
+
800
+ var expectedAttribute = 'aria-valuetext';
801
+ var expectedValue = '2';
802
+ expect(pickerItem).toHaveAttribute(expectedAttribute, expectedValue);
803
+ });
804
+ test('should have aria-hidden=true when \'joined\' and not active', function () {
805
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
806
+ index: 1,
807
+ joined: true,
808
+ max: 3,
809
+ min: 0,
810
+ value: 1,
811
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
812
+ children: "1"
813
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
814
+ children: "2"
815
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
816
+ children: "3"
817
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
818
+ children: "4"
819
+ })]
820
+ }));
821
+ var picker = _react.screen.getByLabelText('2 press ok button to change the value').children.item(0);
822
+ // I chose this and not getByText because in get by test you have to go 4 parentElements up
823
+
824
+ var expectedAttribute = 'aria-hidden';
825
+ var expectedValue = 'true';
826
+ expect(picker).toHaveAttribute(expectedAttribute, expectedValue);
827
+ });
828
+ test('should be aria-hidden=false when \'joined\' and active', function () {
829
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
830
+ index: 1,
831
+ joined: true,
832
+ max: 3,
833
+ min: 0,
834
+ value: 1,
835
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
836
+ children: "1"
837
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
838
+ children: "2"
839
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
840
+ children: "3"
841
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
842
+ children: "4"
843
+ })]
844
+ }));
845
+ var picker = _react.screen.getByLabelText('2 press ok button to change the value').children.item(0);
846
+ // I chose this and not getByText because in get by test you have to go 4 parentElements up
847
+
848
+ _react.fireEvent.focus(picker);
849
+ var expectedAttribute = 'aria-hidden';
850
+ var expectedValue = 'false';
851
+ expect(picker).toHaveAttribute(expectedAttribute, expectedValue);
852
+ });
853
+ test('should set picker \'decrementAriaLabel\' to decrement button', function () {
854
+ var customLabel = 'custom decrement aria-label';
855
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
856
+ decrementAriaLabel: customLabel,
857
+ index: 1,
858
+ max: 3,
859
+ min: 0,
860
+ value: 1,
861
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
862
+ children: "1"
863
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
864
+ children: "2"
865
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
866
+ children: "3"
867
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
868
+ children: "4"
869
+ })]
870
+ }));
871
+ var picker = _react.screen.getAllByRole('button')[1];
872
+ var expectedAttribute = 'aria-label';
873
+ expect(picker).toHaveAttribute(expectedAttribute, customLabel);
874
+ });
875
+ test('should set picker \'incrementAriaLabel\' to decrement button', function () {
876
+ var customLabel = 'custom increment aria-label';
877
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
878
+ incrementAriaLabel: customLabel,
879
+ index: 1,
880
+ max: 3,
881
+ min: 0,
882
+ value: 1,
883
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
884
+ children: "1"
885
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
886
+ children: "2"
887
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
888
+ children: "3"
889
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
890
+ children: "4"
891
+ })]
892
+ }));
893
+ var picker = _react.screen.getAllByRole('button')[0];
894
+ var expectedAttribute = 'aria-label';
895
+ expect(picker).toHaveAttribute(expectedAttribute, customLabel);
896
+ });
897
+ test('should set picker \'decrementAriaLabel\' to decrement button with title', function () {
898
+ var titleText = 'title text';
899
+ var customLabel = 'custom decrement aria-label';
900
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
901
+ decrementAriaLabel: customLabel,
902
+ index: 1,
903
+ max: 3,
904
+ min: 0,
905
+ title: titleText,
906
+ value: 1,
907
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
908
+ children: "1"
909
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
910
+ children: "2"
911
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
912
+ children: "3"
913
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
914
+ children: "4"
915
+ })]
916
+ }));
917
+ var picker = _react.screen.getAllByRole('button')[1];
918
+ var expectedAttribute = 'aria-label';
919
+ expect(picker).toHaveAttribute(expectedAttribute, titleText + ' ' + customLabel);
920
+ });
921
+ test('should set picker \'incrementAriaLabel\' to decrement button with title', function () {
922
+ var titleText = 'title text';
923
+ var customLabel = 'custom increment aria-label';
924
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
925
+ incrementAriaLabel: customLabel,
926
+ index: 1,
927
+ max: 3,
928
+ min: 0,
929
+ title: titleText,
930
+ value: 1,
931
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
932
+ children: "1"
933
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
934
+ children: "2"
935
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
936
+ children: "3"
937
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
938
+ children: "4"
939
+ })]
940
+ }));
941
+ var picker = _react.screen.getAllByRole('button')[0];
942
+ var expectedAttribute = 'aria-label';
943
+ expect(picker).toHaveAttribute(expectedAttribute, titleText + ' ' + customLabel);
944
+ });
945
+ test('should set \'aria-label\' to joined picker', function () {
946
+ var customLabel = 'custom joined picker aria-label';
947
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Picker["default"], {
948
+ "aria-label": customLabel,
949
+ index: 1,
950
+ joined: true,
951
+ max: 3,
952
+ min: 0,
953
+ value: 1,
954
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
955
+ children: "1"
956
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
957
+ children: "2"
958
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
959
+ children: "3"
960
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerItem["default"], {
961
+ children: "4"
962
+ })]
963
+ }));
964
+ var picker = _react.screen.getByLabelText(customLabel);
965
+ expect(picker).toBeInTheDocument();
966
+ });
967
+ });
968
+ });