@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,573 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _Slider = _interopRequireDefault(require("../Slider"));
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
8
+ 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); }
9
+ 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); }); }; }
10
+ var focus = function focus(slider) {
11
+ return _react.fireEvent.focus(slider);
12
+ };
13
+ var blur = function blur(slider) {
14
+ return _react.fireEvent.blur(slider);
15
+ };
16
+ var activate = function activate(slider) {
17
+ return _react.fireEvent.keyUp(slider, {
18
+ keyCode: 13
19
+ });
20
+ };
21
+ var keyDown = function keyDown(keyCode) {
22
+ return function (slider) {
23
+ return _react.fireEvent.keyDown(slider, {
24
+ keyCode: keyCode
25
+ });
26
+ };
27
+ };
28
+ var leftKeyDown = keyDown(37);
29
+ var rightKeyDown = keyDown(39);
30
+ var upKeyDown = keyDown(38);
31
+ var downKeyDown = keyDown(40);
32
+ var getElementClientCenter = function getElementClientCenter(element) {
33
+ var _element$getBoundingC = element.getBoundingClientRect(),
34
+ left = _element$getBoundingC.left,
35
+ top = _element$getBoundingC.top,
36
+ width = _element$getBoundingC.width,
37
+ height = _element$getBoundingC.height;
38
+ return {
39
+ x: left + width / 2,
40
+ y: top + height / 2
41
+ };
42
+ };
43
+ var drag = /*#__PURE__*/function () {
44
+ var _ref2 = _asyncToGenerator(function* (element, _ref) {
45
+ var delta = _ref.delta,
46
+ _ref$steps = _ref.steps,
47
+ steps = _ref$steps === void 0 ? 1 : _ref$steps;
48
+ var from = getElementClientCenter(element);
49
+ var to = {
50
+ x: from.x + delta.x,
51
+ y: from.y + delta.y
52
+ };
53
+ var step = {
54
+ x: (to.x - from.x) / steps,
55
+ y: (to.y - from.y) / steps
56
+ };
57
+ var current = {
58
+ clientX: from.x,
59
+ clientY: from.y
60
+ };
61
+ _react.fireEvent.mouseEnter(element, current);
62
+ _react.fireEvent.mouseOver(element, current);
63
+ _react.fireEvent.mouseMove(element, current);
64
+ _react.fireEvent.mouseDown(element, current);
65
+ for (var i = 0; i < steps; i++) {
66
+ current.clientX += step.x;
67
+ current.clientY += step.y;
68
+ (0, _react.act)(function () {
69
+ return jest.advanceTimersByTime(1000 / steps);
70
+ });
71
+ _react.fireEvent.mouseMove(element, current);
72
+ }
73
+ _react.fireEvent.mouseUp(element, current);
74
+ });
75
+ return function drag(_x, _x2) {
76
+ return _ref2.apply(this, arguments);
77
+ };
78
+ }();
79
+ describe('Slider', function () {
80
+ beforeEach(function () {
81
+ jest.useFakeTimers();
82
+ });
83
+ afterEach(function () {
84
+ jest.useRealTimers();
85
+ });
86
+ test('should set "aria-valuetext" to hint string for the first render when vertical is false', function () {
87
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {}));
88
+ var slider = _react.screen.getByRole('slider');
89
+ var expectedAttribute = 'aria-valuetext';
90
+ var expectedValue = 'From 0 to 100 0 change a value with left right button';
91
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
92
+ });
93
+ test('should set "aria-valuetext" to hint string for the first render when vertical is true', function () {
94
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
95
+ orientation: "vertical"
96
+ }));
97
+ var slider = _react.screen.getByRole('slider');
98
+ var expectedAttribute = 'aria-valuetext';
99
+ var expectedValue = 'From 0 to 100 0 change a value with up down button';
100
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
101
+ });
102
+ test('should set "aria-valuetext" to value when value is changed', function () {
103
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
104
+ defaultValue: 10
105
+ }));
106
+ var slider = _react.screen.getByRole('slider');
107
+ focus(slider);
108
+ rightKeyDown(slider);
109
+ var expectedAttribute = 'aria-valuetext';
110
+ var expectedValue = '11';
111
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
112
+ });
113
+ test('should activate the slider on enter keyup', function () {
114
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
115
+ activateOnSelect: true
116
+ }));
117
+ var slider = _react.screen.getByRole('slider');
118
+ activate(slider);
119
+ var expected = 'active';
120
+ expect(slider).toHaveClass(expected);
121
+ });
122
+ test('should change value of slider on drag', /*#__PURE__*/_asyncToGenerator(function* () {
123
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
124
+ activateOnSelect: true,
125
+ defaultValue: 50
126
+ }));
127
+ var slider = _react.screen.getByRole('slider');
128
+ activate(slider);
129
+ yield drag(slider, {
130
+ delta: {
131
+ x: 50,
132
+ y: 0
133
+ }
134
+ });
135
+ var expectedAttribute = 'aria-valuetext';
136
+ var unexpectedValue = '50 change a value with left right button';
137
+ expect(slider).not.toHaveAttribute(expectedAttribute, unexpectedValue);
138
+ }));
139
+ test('should deactivate the slider on blur', function () {
140
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
141
+ activateOnSelect: true
142
+ }));
143
+ var slider = _react.screen.getByRole('slider');
144
+ var notExpected = 'active';
145
+ activate(slider);
146
+ expect(slider).toHaveClass(notExpected);
147
+ blur(slider);
148
+ expect(slider).not.toHaveClass(notExpected);
149
+ });
150
+ test('should not activate the slider on enter', function () {
151
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {}));
152
+ var slider = _react.screen.getByRole('slider');
153
+ activate(slider);
154
+ var notExpected = 'active';
155
+ expect(slider).not.toHaveClass(notExpected);
156
+ });
157
+ test('should fire `onChange` with `onChange` type when value changed', function () {
158
+ var handleChange = jest.fn();
159
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
160
+ activateOnSelect: true,
161
+ defaultValue: 50,
162
+ onChange: handleChange
163
+ }));
164
+ var slider = _react.screen.getByRole('slider');
165
+ activate(slider);
166
+ leftKeyDown(slider);
167
+ var expected = {
168
+ type: 'onChange'
169
+ };
170
+ var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
171
+ expect(actual).toMatchObject(expected);
172
+ });
173
+ test('should decrement the value of horizontal slider on key left when active', function () {
174
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
175
+ activateOnSelect: true,
176
+ defaultValue: 50
177
+ }));
178
+ var slider = _react.screen.getByRole('slider');
179
+ activate(slider);
180
+ leftKeyDown(slider);
181
+ var expectedAttribute = 'aria-valuetext';
182
+ var expectedValue = '49';
183
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
184
+ });
185
+ test('should decrement the value of horizontal slider on key left', function () {
186
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
187
+ defaultValue: 50
188
+ }));
189
+ var slider = _react.screen.getByRole('slider');
190
+ focus(slider);
191
+ leftKeyDown(slider);
192
+ var expectedAttribute = 'aria-valuetext';
193
+ var expectedValue = '49';
194
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
195
+ });
196
+ test('should decrement the value of horizontal slider on wheel down when active', function () {
197
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
198
+ activateOnSelect: true,
199
+ defaultValue: 50
200
+ }));
201
+ var slider = _react.screen.getByRole('slider');
202
+ activate(slider);
203
+ _react.fireEvent.wheel(slider, {
204
+ deltaY: 10
205
+ });
206
+ var expectedAttribute = 'aria-valuetext';
207
+ var expectedValue = '49';
208
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
209
+ });
210
+ test('should decrement the value of vertical slider on key down when active', function () {
211
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
212
+ activateOnSelect: true,
213
+ defaultValue: 50,
214
+ orientation: "vertical"
215
+ }));
216
+ var slider = _react.screen.getByRole('slider');
217
+ activate(slider);
218
+ downKeyDown(slider);
219
+ var expectedAttribute = 'aria-valuetext';
220
+ var expectedValue = '49';
221
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
222
+ });
223
+ test('should decrement the value of vertical slider on key down', function () {
224
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
225
+ defaultValue: 50,
226
+ orientation: "vertical"
227
+ }));
228
+ var slider = _react.screen.getByRole('slider');
229
+ focus(slider);
230
+ downKeyDown(slider);
231
+ var expectedAttribute = 'aria-valuetext';
232
+ var expectedValue = '49';
233
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
234
+ });
235
+ test('should decrement the value of vertical slider on wheel down when active', function () {
236
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
237
+ activateOnSelect: true,
238
+ defaultValue: 50,
239
+ orientation: "vertical"
240
+ }));
241
+ var slider = _react.screen.getByRole('slider');
242
+ activate(slider);
243
+ _react.fireEvent.wheel(slider, {
244
+ deltaY: 10
245
+ });
246
+ var expectedAttribute = 'aria-valuetext';
247
+ var expectedValue = '49';
248
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
249
+ });
250
+ test('should increment the value of horizontal slider on key right when active', function () {
251
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
252
+ activateOnSelect: true,
253
+ defaultValue: 50
254
+ }));
255
+ var slider = _react.screen.getByRole('slider');
256
+ activate(slider);
257
+ rightKeyDown(slider);
258
+ var expectedAttribute = 'aria-valuetext';
259
+ var expectedValue = '51';
260
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
261
+ });
262
+ test('should increment the value of horizontal slider on key right', function () {
263
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
264
+ defaultValue: 50
265
+ }));
266
+ var slider = _react.screen.getByRole('slider');
267
+ focus(slider);
268
+ rightKeyDown(slider);
269
+ var expectedAttribute = 'aria-valuetext';
270
+ var expectedValue = '51';
271
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
272
+ });
273
+ test('should increment the value of vertical slider on key up when active', function () {
274
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
275
+ activateOnSelect: true,
276
+ defaultValue: 50,
277
+ orientation: "vertical"
278
+ }));
279
+ var slider = _react.screen.getByRole('slider');
280
+ activate(slider);
281
+ upKeyDown(slider);
282
+ var expectedAttribute = 'aria-valuetext';
283
+ var expectedValue = '51';
284
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
285
+ });
286
+ test('should increment the value of horizontal slider on wheel up when active', function () {
287
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
288
+ activateOnSelect: true,
289
+ defaultValue: 50
290
+ }));
291
+ var slider = _react.screen.getByRole('slider');
292
+ activate(slider);
293
+ _react.fireEvent.wheel(slider, {
294
+ deltaY: -10
295
+ });
296
+ var expectedAttribute = 'aria-valuetext';
297
+ var expectedValue = '51';
298
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
299
+ });
300
+ test('should increment the value of vertical slider on key up', function () {
301
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
302
+ defaultValue: 50,
303
+ orientation: "vertical"
304
+ }));
305
+ var slider = _react.screen.getByRole('slider');
306
+ focus(slider);
307
+ upKeyDown(slider);
308
+ var expectedAttribute = 'aria-valuetext';
309
+ var expectedValue = '51';
310
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
311
+ });
312
+ test('should increment the value of vertical slider on wheel up when active', function () {
313
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
314
+ activateOnSelect: true,
315
+ defaultValue: 50,
316
+ orientation: "vertical"
317
+ }));
318
+ var slider = _react.screen.getByRole('slider');
319
+ activate(slider);
320
+ _react.fireEvent.wheel(slider, {
321
+ deltaY: -10
322
+ });
323
+ var expectedAttribute = 'aria-valuetext';
324
+ var expectedValue = '51';
325
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
326
+ });
327
+ test('should decrement the value by \'knobStep\' on key left when active', function () {
328
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
329
+ activateOnSelect: true,
330
+ defaultValue: 50,
331
+ knobStep: 5
332
+ }));
333
+ var slider = _react.screen.getByRole('slider');
334
+ activate(slider);
335
+ leftKeyDown(slider);
336
+ var expectedAttribute = 'aria-valuetext';
337
+ var expectedValue = '45';
338
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
339
+ });
340
+ test('should increment the value by \'knobStep\' on key right when active', function () {
341
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
342
+ activateOnSelect: true,
343
+ defaultValue: 50,
344
+ knobStep: 5
345
+ }));
346
+ var slider = _react.screen.getByRole('slider');
347
+ activate(slider);
348
+ rightKeyDown(slider);
349
+ var expectedAttribute = 'aria-valuetext';
350
+ var expectedValue = '55';
351
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
352
+ });
353
+ test('should decrement the value by \'step\' on key left when active', function () {
354
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
355
+ activateOnSelect: true,
356
+ defaultValue: 50,
357
+ step: 5
358
+ }));
359
+ var slider = _react.screen.getByRole('slider');
360
+ activate(slider);
361
+ leftKeyDown(slider);
362
+ var expectedAttribute = 'aria-valuetext';
363
+ var expectedValue = '45';
364
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
365
+ });
366
+ test('should increment the value by \'step\' on key right when active', function () {
367
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
368
+ activateOnSelect: true,
369
+ defaultValue: 50,
370
+ step: 5
371
+ }));
372
+ var slider = _react.screen.getByRole('slider');
373
+ activate(slider);
374
+ rightKeyDown(slider);
375
+ var expectedAttribute = 'aria-valuetext';
376
+ var expectedValue = '55';
377
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
378
+ });
379
+
380
+ // these tests validate behavior relating to `value` defaulting to `min`
381
+ test('should not emit onChange when decrementing at the lower bound when value is unset', function () {
382
+ var handleChange = jest.fn();
383
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
384
+ activateOnSelect: true,
385
+ min: 0,
386
+ max: 10,
387
+ onChange: handleChange
388
+ }));
389
+ var slider = _react.screen.getByRole('slider');
390
+ activate(slider);
391
+ leftKeyDown(slider);
392
+ expect(handleChange).not.toHaveBeenCalled();
393
+ });
394
+ test('should increment from the lower bound when value is unset', function () {
395
+ var handleChange = jest.fn();
396
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
397
+ activateOnSelect: true,
398
+ min: 0,
399
+ max: 10,
400
+ onChange: handleChange
401
+ }));
402
+ var slider = _react.screen.getByRole('slider');
403
+ activate(slider);
404
+ rightKeyDown(slider);
405
+ var expectedAttribute = 'aria-valuetext';
406
+ var expectedValue = '1';
407
+ expect(slider).toHaveAttribute(expectedAttribute, expectedValue);
408
+ });
409
+ test('should call onSpotlightLeft on horizontal slider at min value', function () {
410
+ var handleSpotlight = jest.fn();
411
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
412
+ defaultValue: 0,
413
+ onSpotlightLeft: handleSpotlight
414
+ }));
415
+ var slider = _react.screen.getByRole('slider');
416
+ focus(slider);
417
+ leftKeyDown(slider);
418
+ var expected = 1;
419
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
420
+ });
421
+ test('should call onSpotlightLeft on vertical slider at any value', function () {
422
+ var handleSpotlight = jest.fn();
423
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
424
+ defaultValue: 50,
425
+ orientation: "vertical",
426
+ onSpotlightLeft: handleSpotlight
427
+ }));
428
+ var slider = _react.screen.getByRole('slider');
429
+ focus(slider);
430
+ leftKeyDown(slider);
431
+ var expected = 1;
432
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
433
+ });
434
+ test('should not call onSpotlightLeft on horizontal slider at greater than min value', function () {
435
+ var handleSpotlight = jest.fn();
436
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
437
+ defaultValue: 1,
438
+ onSpotlightLeft: handleSpotlight
439
+ }));
440
+ var slider = _react.screen.getByRole('slider');
441
+ focus(slider);
442
+ leftKeyDown(slider);
443
+ expect(handleSpotlight).not.toHaveBeenCalled();
444
+ });
445
+ test('should call onSpotlightDown on vertical slider at min value', function () {
446
+ var handleSpotlight = jest.fn();
447
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
448
+ defaultValue: 0,
449
+ orientation: "vertical",
450
+ onSpotlightDown: handleSpotlight
451
+ }));
452
+ var slider = _react.screen.getByRole('slider');
453
+ focus(slider);
454
+ downKeyDown(slider);
455
+ var expected = 1;
456
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
457
+ });
458
+ test('should call onSpotlightDown on horizontal slider at any value', function () {
459
+ var handleSpotlight = jest.fn();
460
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
461
+ defaultValue: 50,
462
+ onSpotlightDown: handleSpotlight
463
+ }));
464
+ var slider = _react.screen.getByRole('slider');
465
+ focus(slider);
466
+ downKeyDown(slider);
467
+ var expected = 1;
468
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
469
+ });
470
+ test('should not call onSpotlightDown on vertical slider at greater than min value', function () {
471
+ var handleSpotlight = jest.fn();
472
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
473
+ defaultValue: 1,
474
+ orientation: "vertical",
475
+ onSpotlightDown: handleSpotlight
476
+ }));
477
+ var slider = _react.screen.getByRole('slider');
478
+ focus(slider);
479
+ downKeyDown(slider);
480
+ expect(handleSpotlight).not.toHaveBeenCalled();
481
+ });
482
+ test('should call onSpotlightRight on horizontal slider at max value', function () {
483
+ var handleSpotlight = jest.fn();
484
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
485
+ defaultValue: 100,
486
+ onSpotlightRight: handleSpotlight
487
+ }));
488
+ var slider = _react.screen.getByRole('slider');
489
+ focus(slider);
490
+ rightKeyDown(slider);
491
+ var expected = 1;
492
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
493
+ });
494
+ test('should call onSpotlightRight on vertical slider at any value', function () {
495
+ var handleSpotlight = jest.fn();
496
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
497
+ defaultValue: 50,
498
+ orientation: "vertical",
499
+ onSpotlightRight: handleSpotlight
500
+ }));
501
+ var slider = _react.screen.getByRole('slider');
502
+ focus(slider);
503
+ rightKeyDown(slider);
504
+ var expected = 1;
505
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
506
+ });
507
+ test('should not call onSpotlightRight on horizontal slider at less than max value', function () {
508
+ var handleSpotlight = jest.fn();
509
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
510
+ defaultValue: 99,
511
+ onSpotlightRight: handleSpotlight
512
+ }));
513
+ var slider = _react.screen.getByRole('slider');
514
+ focus(slider);
515
+ rightKeyDown(slider);
516
+ expect(handleSpotlight).not.toHaveBeenCalled();
517
+ });
518
+ test('should call onSpotlightUp on vertical slider at max value', function () {
519
+ var handleSpotlight = jest.fn();
520
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
521
+ defaultValue: 100,
522
+ max: 100,
523
+ orientation: "vertical",
524
+ onSpotlightUp: handleSpotlight
525
+ }));
526
+ var slider = _react.screen.getByRole('slider');
527
+ focus(slider);
528
+ upKeyDown(slider);
529
+ var expected = 1;
530
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
531
+ });
532
+ test('should call onSpotlightUp on horizontal slider at any value', function () {
533
+ var handleSpotlight = jest.fn();
534
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
535
+ defaultValue: 50,
536
+ onSpotlightUp: handleSpotlight
537
+ }));
538
+ var slider = _react.screen.getByRole('slider');
539
+ focus(slider);
540
+ upKeyDown(slider);
541
+ var expected = 1;
542
+ expect(handleSpotlight).toHaveBeenCalledTimes(expected);
543
+ });
544
+ test('should not call onSpotlightUp on vertical slider at less than max value', function () {
545
+ var handleSpotlight = jest.fn();
546
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
547
+ defaultValue: 99,
548
+ orientation: "vertical",
549
+ onSpotlightUp: handleSpotlight
550
+ }));
551
+ var slider = _react.screen.getByRole('slider');
552
+ focus(slider);
553
+ upKeyDown(slider);
554
+ expect(handleSpotlight).not.toHaveBeenCalled();
555
+ });
556
+ test('should set the tooltip to visible when focused', function () {
557
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
558
+ tooltip: true
559
+ }));
560
+ var slider = _react.screen.getByRole('slider');
561
+ focus(slider);
562
+ var actual = _react.screen.getByText('0');
563
+ var expected = 'tooltipLabel';
564
+ expect(actual).toHaveClass(expected);
565
+ });
566
+ test('should set the tooltip to not visible when unfocused', function () {
567
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Slider["default"], {
568
+ tooltip: true
569
+ }));
570
+ var tooltip = _react.screen.queryByText('0');
571
+ expect(tooltip).toBeNull();
572
+ });
573
+ });
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleIncrementByWheel = exports.handleIncrement = exports.handleDecrementByWheel = exports.handleDecrement = exports.forwardSpotlightEvents = exports.emitChange = void 0;
7
+ var _handle = require("@enact/core/handle");
8
+ var _keymap = require("@enact/core/keymap");
9
+ var _util = require("@enact/core/util");
10
+ var _utils = require("@enact/ui/Slider/utils");
11
+ var nop = function nop() {};
12
+ var handleAcceleratedKeyDown = function handleAcceleratedKeyDown(ev, prop, _ref) {
13
+ var spotlightAccelerator = _ref.current;
14
+ if (!spotlightAccelerator) {
15
+ return true;
16
+ }
17
+ if (!ev.repeat) {
18
+ spotlightAccelerator.reset();
19
+ }
20
+ if (spotlightAccelerator.processKey(ev, nop)) {
21
+ return false;
22
+ }
23
+ return true;
24
+ };
25
+ var calcStep = function calcStep(knobStep, step) {
26
+ var s;
27
+ if (knobStep != null) {
28
+ s = knobStep;
29
+ } else if (step != null) {
30
+ s = step;
31
+ }
32
+
33
+ // default to a step of 1 if neither are set or are set to 0
34
+ // otherwise, increment/decrement would be no-ops
35
+ return s || 1;
36
+ };
37
+ var isIncrementByWheel = function isIncrementByWheel(_ref2) {
38
+ var deltaY = _ref2.deltaY;
39
+ return deltaY < 0;
40
+ };
41
+ var isDecrementByWheel = function isDecrementByWheel(_ref3) {
42
+ var deltaY = _ref3.deltaY;
43
+ return deltaY > 0;
44
+ };
45
+ var isIncrement = function isIncrement(_ref4, _ref5) {
46
+ var keyCode = _ref4.keyCode;
47
+ var orientation = _ref5.orientation;
48
+ return orientation === 'vertical' ? (0, _keymap.is)('up', keyCode) : (0, _keymap.is)('right', keyCode);
49
+ };
50
+ var isDecrement = function isDecrement(_ref6, _ref7) {
51
+ var keyCode = _ref6.keyCode;
52
+ var orientation = _ref7.orientation;
53
+ return orientation === 'vertical' ? (0, _keymap.is)('down', keyCode) : (0, _keymap.is)('left', keyCode);
54
+ };
55
+ var isNotMax = function isNotMax(ev, _ref8) {
56
+ var value = _ref8.value,
57
+ max = _ref8.max;
58
+ return value !== max;
59
+ };
60
+ var isNotMin = function isNotMin(ev, _ref9) {
61
+ var min = _ref9.min,
62
+ _ref9$value = _ref9.value,
63
+ value = _ref9$value === void 0 ? min : _ref9$value;
64
+ return value !== min;
65
+ };
66
+ var checkInterval = function checkInterval(ev, _ref0, context) {
67
+ var wheelInterval = _ref0.wheelInterval;
68
+ if (ev.timeStamp - context.lastWheelTimeStamp < wheelInterval) {
69
+ return false;
70
+ }
71
+ context.lastWheelTimeStamp = ev.timeStamp;
72
+ return true;
73
+ };
74
+ var emitChange = exports.emitChange = function emitChange(direction) {
75
+ return (0, _handle.forwardCustom)('onChange', function (ev, _ref1) {
76
+ var knobStep = _ref1.knobStep,
77
+ max = _ref1.max,
78
+ min = _ref1.min,
79
+ step = _ref1.step,
80
+ _ref1$value = _ref1.value,
81
+ value = _ref1$value === void 0 ? min : _ref1$value;
82
+ var newValue = (0, _util.clamp)(min, max, value + calcStep(knobStep, step) * direction);
83
+ return {
84
+ value: newValue,
85
+ proportion: (0, _utils.calcProportion)(min, max, newValue)
86
+ };
87
+ });
88
+ };
89
+ var isActive = function isActive(ev, props) {
90
+ return props.active || !props.activateOnSelect;
91
+ };
92
+ var handleIncrement = exports.handleIncrement = (0, _handle.handle)(isActive, isIncrement, _handle.preventDefault, _handle.stop, handleAcceleratedKeyDown, isNotMax, emitChange(1));
93
+ var handleDecrement = exports.handleDecrement = (0, _handle.handle)(isActive, isDecrement, _handle.preventDefault, _handle.stop, handleAcceleratedKeyDown, isNotMin, emitChange(-1));
94
+ var handleIncrementByWheel = exports.handleIncrementByWheel = (0, _handle.handle)(isActive, isIncrementByWheel, _handle.preventDefault, _handle.stop, isNotMax, checkInterval, emitChange(1));
95
+ var handleDecrementByWheel = exports.handleDecrementByWheel = (0, _handle.handle)(isActive, isDecrementByWheel, _handle.preventDefault, _handle.stop, isNotMin, checkInterval, emitChange(-1));
96
+ var either = function either(a, b) {
97
+ return function () {
98
+ return a.apply(void 0, arguments) || b.apply(void 0, arguments);
99
+ };
100
+ };
101
+ var atMinimum = function atMinimum(ev, _ref10) {
102
+ var min = _ref10.min,
103
+ _ref10$value = _ref10.value,
104
+ value = _ref10$value === void 0 ? min : _ref10$value;
105
+ return value <= min;
106
+ };
107
+ var atMaximum = function atMaximum(ev, _ref11) {
108
+ var max = _ref11.max,
109
+ min = _ref11.min,
110
+ _ref11$value = _ref11.value,
111
+ value = _ref11$value === void 0 ? min : _ref11$value;
112
+ return value >= max;
113
+ };
114
+ var forwardSpotlightEvents = exports.forwardSpotlightEvents = (0, _handle.oneOf)([(0, _handle.forKey)('left'), (0, _handle.handle)(either((0, _handle.forProp)('orientation', 'vertical'), atMinimum), (0, _handle.forwardCustom)('onSpotlightLeft'))], [(0, _handle.forKey)('right'), (0, _handle.handle)(either((0, _handle.forProp)('orientation', 'vertical'), atMaximum), (0, _handle.forwardCustom)('onSpotlightRight'))], [(0, _handle.forKey)('down'), (0, _handle.handle)(either((0, _handle.forProp)('orientation', 'horizontal'), atMinimum), (0, _handle.forwardCustom)('onSpotlightDown'))], [(0, _handle.forKey)('up'), (0, _handle.handle)(either((0, _handle.forProp)('orientation', 'horizontal'), atMaximum), (0, _handle.forwardCustom)('onSpotlightUp'))]);