@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,389 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.PickerBase = exports.Picker = void 0;
7
+ var _classnames2 = _interopRequireDefault(require("classnames"));
8
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
9
+ var _util = require("@enact/core/util");
10
+ var _Changeable = _interopRequireDefault(require("@enact/ui/Changeable"));
11
+ var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _react = require("react");
14
+ var _Heading = _interopRequireDefault(require("../Heading"));
15
+ var _Picker = _interopRequireWildcard(require("../internal/Picker"));
16
+ var _validators = require("../internal/validators");
17
+ var _Marquee = require("../Marquee");
18
+ var _PickerModule = _interopRequireDefault(require("./Picker.module.css"));
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ var _excluded = ["children", "css", "inlineTitle", "max", "title", "value", "voiceLabel"];
21
+ /**
22
+ * A component for selecting values from a list of values.
23
+ *
24
+ * @example
25
+ * <Picker>
26
+ * {['A', 'B', 'C']}
27
+ * </Picker>
28
+ *
29
+ * @module limestone/Picker
30
+ * @exports Picker
31
+ * @exports PickerBase
32
+ */
33
+ /**
34
+ * The base `Picker` component.
35
+ *
36
+ * This version is not {@link spotlight/Spottable.Spottable|spottable}.
37
+ *
38
+ * @class PickerBase
39
+ * @memberof limestone/Picker
40
+ * @ui
41
+ * @public
42
+ */
43
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
44
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
45
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
46
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
47
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
48
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
49
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
50
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
51
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
52
+ var PickerBase = exports.PickerBase = (0, _kind["default"])({
53
+ name: 'Picker',
54
+ propTypes: /** @lends limestone/Picker.PickerBase.prototype */{
55
+ /**
56
+ * Picker value list.
57
+ *
58
+ * @type {Node}
59
+ * @required
60
+ * @public
61
+ */
62
+ children: _propTypes["default"].node.isRequired,
63
+ /**
64
+ * The `aria-valuetext` for the picker.
65
+ *
66
+ * By default, `aria-valuetext` is set to the current selected child text.
67
+ *
68
+ * @type {String}
69
+ * @memberof limestone/Picker.PickerBase.prototype
70
+ * @public
71
+ */
72
+ 'aria-valuetext': _propTypes["default"].string,
73
+ /**
74
+ * Determines which key to adjust the picker's value for the joined horizontal one.
75
+ *
76
+ * * `'enter'` allows the user to use the enter key to adjust the picker's value
77
+ * * `'arrow'` allows the user to use the left or right keys to adjust the picker's value.
78
+ *
79
+ * The default value for joined horizontal picker is `'enter'`.
80
+ * If {@link limestone/Picker.PickerBase.orientation|orientation} is `'vertical'` or
81
+ * {@link limestone/Picker.PickerBase.joined|joined} is undefined or is `false`, this prop is ignored.
82
+ *
83
+ * @type {('enter'|'arrow')}
84
+ * @public
85
+ */
86
+ changedBy: _propTypes["default"].oneOf(['enter', 'arrow']),
87
+ /**
88
+ * Customizes the component by mapping the supplied collection of CSS class names to the
89
+ * corresponding internal elements and states of this component.
90
+ *
91
+ * The following classes are supported:
92
+ *
93
+ * * `title` - The title component class
94
+ * * `inlineTitle` - The title component class when `inlineTitle` is true
95
+ *
96
+ * @type {Object}
97
+ * @public
98
+ */
99
+ css: _propTypes["default"].object,
100
+ /**
101
+ * The voice control labels for the `children`.
102
+ *
103
+ * By default, `data-webos-voice-labels-ext` is generated from `children`. However, if
104
+ * `children` is not an array of numbers or strings, `data-webos-voice-labels-ext` should be
105
+ * set to an array of labels.
106
+ *
107
+ * @type {Number[]|String[]}
108
+ * @memberof limestone/Picker.PickerBase.prototype
109
+ * @public
110
+ */
111
+ 'data-webos-voice-labels-ext': _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].number), _propTypes["default"].arrayOf(_propTypes["default"].string)]),
112
+ /**
113
+ * A custom icon for the decrementer.
114
+ *
115
+ * All strings supported by {@link limestone/Icon.Icon|Icon} are supported. Without a
116
+ * custom icon, the default is used, and is automatically changed when the
117
+ * {@link limestone/Picker.PickerBase.orientation|orientation} is changed.
118
+ *
119
+ * @type {String}
120
+ * @public
121
+ */
122
+ decrementIcon: _propTypes["default"].string,
123
+ /**
124
+ * Disables the picker.
125
+ *
126
+ * @type {Boolean}
127
+ * @public
128
+ */
129
+ disabled: _propTypes["default"].bool,
130
+ /**
131
+ * A custom icon for the incrementer.
132
+ *
133
+ * All strings supported by {@link limestone/Icon.Icon|Icon} are supported. Without a
134
+ * custom icon, the default is used, and is automatically changed when the
135
+ * {@link limestone/Picker.PickerBase.orientation|orientation} is changed.
136
+ *
137
+ * @type {String}
138
+ * @public
139
+ */
140
+ incrementIcon: _propTypes["default"].string,
141
+ /**
142
+ * Applies inline styling to the title.
143
+ *
144
+ * @type {Boolean}
145
+ * @public
146
+ */
147
+ inlineTitle: _propTypes["default"].bool,
148
+ /**
149
+ * Allows the user to use the arrow keys or enter key to adjust the picker's value.
150
+ *
151
+ * Key presses are captured in the directions of the increment and decrement buttons but
152
+ * others are unaffected. A non-joined Picker allows navigation in any direction, but
153
+ * requires individual ENTER presses on the incrementer and decrementer buttons. Pointer
154
+ * interaction is the same for both formats.
155
+ *
156
+ * @type {Boolean}
157
+ * @public
158
+ */
159
+ joined: _propTypes["default"].bool,
160
+ /**
161
+ * Disables marqueeing of items.
162
+ *
163
+ * By default, each picker item is wrapped by a
164
+ * {@link limestone/Marquee.Marquee|Marquee}. When this is set, the items will
165
+ * not be wrapped.
166
+ *
167
+ * @type {Boolean}
168
+ * @public
169
+ */
170
+ marqueeDisabled: _propTypes["default"].bool,
171
+ /**
172
+ * Disables transition animation.
173
+ *
174
+ * @type {Boolean}
175
+ * @public
176
+ */
177
+ noAnimation: _propTypes["default"].bool,
178
+ /**
179
+ * Called when the `value` changes.
180
+ *
181
+ * @type {Function}
182
+ * @public
183
+ */
184
+ onChange: _propTypes["default"].func,
185
+ /**
186
+ * Orientation of the picker.
187
+ *
188
+ * Controls whether the buttons are arranged horizontally or vertically around the value.
189
+ *
190
+ * @type {('horizontal'|'vertical')}
191
+ * @public
192
+ */
193
+ orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
194
+ /**
195
+ * When `true`, the picker buttons operate in the reverse direction such that pressing
196
+ * up/left decrements the value and down/right increments the value. This is more natural
197
+ * for vertical lists of text options where "up" implies a spatial change rather than
198
+ * incrementing the value.
199
+ *
200
+ * If this prop is omitted, it will be determined by `orientation`.
201
+ * For example, if `orientation` is `vertical`, `reverse` is `true`.
202
+ * Conversely, if `orientation` is `horizontal`, `reverse` is `false`.
203
+ *
204
+ * @type {Boolean}
205
+ * @public
206
+ */
207
+ reverse: _propTypes["default"].bool,
208
+ /**
209
+ * The primary text of the `Picker`.
210
+ *
211
+ * The screen readers read out the title text when the `joined` prop is false
212
+ *
213
+ * @type {String}
214
+ * @public
215
+ */
216
+ title: _propTypes["default"].string,
217
+ /**
218
+ * The type of picker. It determines the aria-label for the next and previous buttons.
219
+ *
220
+ * Depending on the `type`, `joined`, `decrementAriaLabel`, and `incrementAriaLabel`,
221
+ * the screen readers read out differently when Spotlight is on the next button, the previous button,
222
+ * or the picker itself.
223
+ *
224
+ * For example, if Spotlight is on the next button, the `joined` prop is false,
225
+ * and aria label props(`decrementAriaLabel` and `incrementAriaLabel`) are not defined,
226
+ * then the screen readers read out as follows.
227
+ * `'string'` type: `'next item'`
228
+ * `'number'` type: `'press ok button to increase the value'`
229
+ *
230
+ * @type {('number'|'string')}
231
+ * @default 'string'
232
+ * @public
233
+ */
234
+ type: _propTypes["default"].oneOf(['number', 'string']),
235
+ /**
236
+ * Index of the selected child.
237
+ *
238
+ * @type {Number}
239
+ * @default 0
240
+ * @public
241
+ */
242
+ value: _propTypes["default"].number,
243
+ /**
244
+ * The width of the picker.
245
+ *
246
+ * A number can be used to set the minimum number of characters to be shown. Setting a
247
+ * number to less than the number of characters in the longest value will cause the width to
248
+ * grow for the longer values.
249
+ *
250
+ * A string can be used to select from pre-defined widths:
251
+ * * `'small'` - numeric values
252
+ * * `'medium'` - single or short words
253
+ * * `'large'` - maximum-sized pickers taking full width of its parent
254
+ *
255
+ * By default, the picker will size according to the longest valid value.
256
+ *
257
+ * @type {('small'|'medium'|'large'|Number)}
258
+ * @public
259
+ */
260
+ width: _propTypes["default"].oneOfType([_propTypes["default"].oneOf([null, 'small', 'medium', 'large']), _propTypes["default"].number]),
261
+ /**
262
+ * Allows picker to continue from the start of the list after it reaches the end and
263
+ * vice versa.
264
+ *
265
+ * @type {Boolean}
266
+ * @public
267
+ */
268
+ wrap: _propTypes["default"].bool
269
+ },
270
+ defaultProps: {
271
+ type: 'string',
272
+ value: 0
273
+ },
274
+ styles: {
275
+ css: _PickerModule["default"],
276
+ publicClassNames: ['inlineTitle', 'title']
277
+ },
278
+ computed: {
279
+ max: function max(_ref) {
280
+ var children = _ref.children;
281
+ return children && children.length ? children.length - 1 : 0;
282
+ },
283
+ reverse: function reverse(_ref2) {
284
+ var orientation = _ref2.orientation,
285
+ _reverse = _ref2.reverse;
286
+ return typeof _reverse === 'boolean' ? _reverse : orientation === 'vertical';
287
+ },
288
+ children: function children(_ref3) {
289
+ var _children = _ref3.children,
290
+ disabled = _ref3.disabled,
291
+ joined = _ref3.joined,
292
+ marqueeDisabled = _ref3.marqueeDisabled;
293
+ return _react.Children.map(_children, function (child) {
294
+ var focusOrHover = !disabled && joined ? 'focus' : 'hover';
295
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerItem, {
296
+ marqueeDisabled: marqueeDisabled,
297
+ marqueeOn: focusOrHover,
298
+ children: child
299
+ });
300
+ });
301
+ },
302
+ disabled: function disabled(_ref4) {
303
+ var children = _ref4.children,
304
+ _disabled = _ref4.disabled;
305
+ return _react.Children.count(children) > 1 ? _disabled : true;
306
+ },
307
+ value: function value(_ref5) {
308
+ var _value = _ref5.value,
309
+ children = _ref5.children;
310
+ var max = children && children.length ? children.length - 1 : 0;
311
+ if (process.env.NODE_ENV !== "production") {
312
+ (0, _validators.validateRange)(_value, 0, max, 'Picker', 'value', 'min', 'max index');
313
+ }
314
+ return (0, _util.clamp)(0, max, _value);
315
+ },
316
+ voiceLabel: function voiceLabel(_ref6) {
317
+ var children = _ref6.children,
318
+ voiceLabelsExt = _ref6['data-webos-voice-labels-ext'];
319
+ var voiceLabel;
320
+ if (voiceLabelsExt) {
321
+ voiceLabel = voiceLabelsExt;
322
+ } else {
323
+ voiceLabel = _react.Children.map(children, function (child) {
324
+ return typeof child === 'number' || typeof child === 'string' ? child : '';
325
+ });
326
+ }
327
+ return JSON.stringify(voiceLabel);
328
+ }
329
+ },
330
+ render: function render(_ref7) {
331
+ var children = _ref7.children,
332
+ css = _ref7.css,
333
+ inlineTitle = _ref7.inlineTitle,
334
+ max = _ref7.max,
335
+ title = _ref7.title,
336
+ value = _ref7.value,
337
+ voiceLabel = _ref7.voiceLabel,
338
+ rest = _objectWithoutProperties(_ref7, _excluded);
339
+ delete rest.marqueeDisabled;
340
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
341
+ children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
342
+ css: css,
343
+ className: (0, _classnames2["default"])(css.title, _defineProperty({}, css.inlineTitle, inlineTitle)),
344
+ marqueeOn: "hover",
345
+ children: title
346
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker["default"], _objectSpread(_objectSpread({}, rest), {}, {
347
+ "data-webos-voice-labels-ext": voiceLabel,
348
+ min: 0,
349
+ max: max,
350
+ index: value,
351
+ step: 1,
352
+ title: title,
353
+ value: value,
354
+ children: children
355
+ }))]
356
+ });
357
+ }
358
+ });
359
+
360
+ /**
361
+ * A Picker component that allows selecting values from a list of values.
362
+ *
363
+ * By default, `Picker` maintains the state of its `value` property. Supply the `defaultValue`
364
+ * property to control its initial value. If you wish to directly control updates to the component,
365
+ * supply a value to `value` at creation time and update it in response to `onChange` events.
366
+ *
367
+ * @class Picker
368
+ * @memberof limestone/Picker
369
+ * @extends limestone/Picker.PickerBase
370
+ * @mixes ui/Changeable.Changeable
371
+ * @mixes limestone/Marquee.MarqueeController
372
+ * @ui
373
+ * @public
374
+ */
375
+ var Picker = exports.Picker = (0, _Pure["default"])((0, _Changeable["default"])((0, _Marquee.MarqueeController)({
376
+ marqueeOnFocus: true
377
+ }, PickerBase)));
378
+
379
+ /**
380
+ * Default index of the selected child.
381
+ *
382
+ * *Note*: Changing `defaultValue` after initial render has no effect.
383
+ *
384
+ * @name defaultValue
385
+ * @memberof limestone/Picker.Picker.prototype
386
+ * @type {Number}
387
+ * @public
388
+ */
389
+ var _default = exports["default"] = Picker;
@@ -0,0 +1,46 @@
1
+ .title {
2
+ margin-left: 1.875rem;
3
+ margin-right: var(--primitive-spacing-24);
4
+ }
5
+ :global(.enact-locale-right-to-left) .title {
6
+ margin-left: var(--primitive-spacing-24);
7
+ margin-right: 1.875rem;
8
+ }
9
+ .title.inlineTitle {
10
+ display: inline-block;
11
+ max-width: 10rem;
12
+ line-height: 1.5rem;
13
+ padding-bottom: 0;
14
+ margin-bottom: 0;
15
+ }
16
+ .heading:global(.neutral).tiny {
17
+ color: var(--semantic-color-on-background-main);
18
+ }
19
+ :global(.enact-a11y-high-contrast) .heading:global(.neutral):global(.highContrast).tiny {
20
+ color: var(--semantic-color-on-background-main);
21
+ }
22
+ .heading:global(.light).tiny {
23
+ color: var(--semantic-color-on-background-main);
24
+ }
25
+ .heading:global(.game) {
26
+ --semantic-color-surface-default: #2d224c;
27
+ --semantic-color-surface-default-focused: #6d2fa1;
28
+ --semantic-color-on-surface-main-focused: #e6e6e6;
29
+ }
30
+ .heading:global(.game).tiny {
31
+ color: var(--semantic-color-on-background-main);
32
+ }
33
+ :global(.green) .heading:global(.game) {
34
+ --semantic-color-surface-default: #1F2C24;
35
+ --semantic-color-surface-default-focused: #3ea07d;
36
+ }
37
+ :global(.green) .heading:global(.game).tiny {
38
+ color: var(--semantic-color-on-background-main);
39
+ }
40
+ :global(.orange) .heading:global(.game) {
41
+ --semantic-color-surface-default: #422923;
42
+ --semantic-color-surface-default-focused: #b85f23;
43
+ }
44
+ :global(.orange) .heading:global(.game).tiny {
45
+ color: var(--semantic-color-on-background-main);
46
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "Picker.js"
3
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _Picker = require("../Picker");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ describe('Picker Specs', function () {
8
+ test('should render selected child wrapped with <PickerItem/>', function () {
9
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.Picker, {
10
+ value: 1,
11
+ children: [1, 2, 3, 4]
12
+ }));
13
+ var pickerText = _react.screen.getByText('2').parentElement.parentElement;
14
+ var expected = 'item';
15
+ expect(pickerText).toHaveClass(expected);
16
+ });
17
+ test('should set the max of <Picker> to be one less than the number of children', function () {
18
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.Picker, {
19
+ value: 3,
20
+ children: [1, 2, 3, 4]
21
+ }));
22
+ var arrowForward = _react.screen.getAllByRole('button')[0];
23
+ var expectedValue = 'true';
24
+ var expectedAttribute = 'aria-disabled';
25
+ expect(arrowForward).toHaveAttribute(expectedAttribute, expectedValue);
26
+ });
27
+ test('should be disabled when empty', function () {
28
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerBase, {
29
+ "data-testid": "picker",
30
+ children: []
31
+ }));
32
+ var picker = _react.screen.getByTestId('picker');
33
+ var expected = 'disabled';
34
+ expect(picker).toHaveAttribute(expected);
35
+ });
36
+ test('should set \'data-webos-voice-disabled\' to decrement button when voice control is disabled', function () {
37
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerBase, {
38
+ "data-webos-voice-disabled": true,
39
+ children: [1, 2, 3, 4]
40
+ }));
41
+ var decrementButton = _react.screen.getAllByRole('button')[1];
42
+ var expected = 'data-webos-voice-disabled';
43
+ expect(decrementButton).toHaveAttribute(expected);
44
+ });
45
+ test('should set \'data-webos-voice-disabled\' to increment button when voice control is disabled', function () {
46
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerBase, {
47
+ "data-webos-voice-disabled": true,
48
+ children: [1, 2, 3, 4]
49
+ }));
50
+ var incrementButton = _react.screen.getAllByRole('button')[0];
51
+ var expected = 'data-webos-voice-disabled';
52
+ expect(incrementButton).toHaveAttribute(expected);
53
+ });
54
+ test('should have a heading element when \'title\'', function () {
55
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerBase, {
56
+ title: "title text",
57
+ children: [1, 2, 3, 4]
58
+ }));
59
+ var heading = _react.screen.getByText('title text');
60
+ var expected = 'heading';
61
+ var actual = heading.parentElement.parentElement;
62
+ expect(heading).toBeInTheDocument();
63
+ expect(actual).toHaveClass(expected);
64
+ });
65
+ test('should have a heading element with inline class when \'title\' and \'inlineTitle\'', function () {
66
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerBase, {
67
+ inlineTitle: true,
68
+ title: "title text",
69
+ children: [1, 2, 3, 4]
70
+ }));
71
+ var heading = _react.screen.getByText('title text');
72
+ var expectedInline = 'inlineTitle';
73
+ var expectedHeader = 'heading';
74
+ var actual = heading.parentElement.parentElement;
75
+ expect(heading).toBeInTheDocument();
76
+ expect(actual).toHaveClass(expectedInline);
77
+ expect(actual).toHaveClass(expectedHeader);
78
+ });
79
+ test('should stringify custom voice control labels and set to \'data-webos-voice-labels-ext\'', function () {
80
+ var options = ['Option 1', 'The second one', 'This is the third option', '4'];
81
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.Picker, {
82
+ "data-webos-voice-labels-ext": options,
83
+ inlineTitle: true,
84
+ title: "title text",
85
+ children: [1, 2, 3, 4]
86
+ }));
87
+ var picker = _react.screen.getAllByRole('button')[0].parentElement;
88
+ var expected = "[\"Option 1\",\"The second one\",\"This is the third option\",\"4\"]";
89
+ expect(picker).toHaveAttribute('data-webos-voice-labels-ext', expected);
90
+ });
91
+ });