@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,934 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.MediaControlsDecorator = exports.MediaControlsBase = exports.MediaControls = void 0;
7
+ var _dispatcher = require("@enact/core/dispatcher");
8
+ var _handle = require("@enact/core/handle");
9
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
10
+ var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
11
+ var _keymap = require("@enact/core/keymap");
12
+ var _util = require("@enact/core/util");
13
+ var _ApiDecorator = _interopRequireDefault(require("@enact/core/internal/ApiDecorator"));
14
+ var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
15
+ var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
16
+ var _Pause = _interopRequireDefault(require("@enact/spotlight/Pause"));
17
+ var _SpotlightContainerDecorator = require("@enact/spotlight/SpotlightContainerDecorator");
18
+ var _Cancelable = _interopRequireDefault(require("@enact/ui/Cancelable"));
19
+ var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
20
+ var _propTypes2 = _interopRequireDefault(require("prop-types"));
21
+ var _react = require("react");
22
+ var _ActionGuide = _interopRequireDefault(require("../ActionGuide"));
23
+ var _Button = _interopRequireDefault(require("../Button"));
24
+ var _$L = _interopRequireDefault(require("../internal/$L"));
25
+ var _util2 = require("../internal/util");
26
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
27
+ var _util3 = require("./util");
28
+ var _MediaControlsModule = _interopRequireDefault(require("./MediaControls.module.css"));
29
+ var _jsxRuntime = require("react/jsx-runtime");
30
+ var _excluded = ["mediaControlsRef"],
31
+ _excluded2 = ["actionGuideAriaLabel", "actionGuideButtonAriaLabel", "actionGuideDisabled", "actionGuideLabel", "actionGuideShowing", "children", "id", "jumpBackwardAriaLabel", "jumpBackwardIcon", "jumpButtonsDisabled", "jumpForwardAriaLabel", "jumpForwardIcon", "bottomComponents", "mediaControlsRef", "mediaDisabled", "moreComponentsSpotlightId", "noJumpButtons", "onActionGuideClick", "onJumpBackwardButtonClick", "onJumpForwardButtonClick", "onKeyDownFromMediaButtons", "onPlayButtonClick", "paused", "pauseIcon", "playIcon", "playPauseButtonDisabled", "showMoreComponents", "moreComponentsRendered", "moreButtonsClassName", "moreComponentsClassName", "actionGuideClassName", "spotlightDisabled", "spotlightId"];
32
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
33
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
34
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
35
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
36
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
37
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
38
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
39
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
40
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
41
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
42
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
43
+ 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; }
44
+ 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; }
45
+ 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; }
46
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
47
+ 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); }
48
+ 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; }
49
+ 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; }
50
+ var DivComponent = function DivComponent(_ref) {
51
+ var mediaControlsRef = _ref.mediaControlsRef,
52
+ rest = _objectWithoutProperties(_ref, _excluded);
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread({
54
+ ref: mediaControlsRef
55
+ }, rest));
56
+ };
57
+ DivComponent.propTypes = {
58
+ /*
59
+ * Called with the reference to the mediaControls node.
60
+ *
61
+ * @type {Object|Function}
62
+ * @public
63
+ */
64
+ mediaControlsRef: _propTypes["default"].ref
65
+ };
66
+ var OuterContainer = (0, _SpotlightContainerDecorator.SpotlightContainerDecorator)({
67
+ defaultElement: [".".concat(_SpotlightContainerDecorator.spotlightDefaultClass)],
68
+ leaveFor: {
69
+ left: '',
70
+ right: ''
71
+ }
72
+ }, DivComponent);
73
+ var Container = (0, _SpotlightContainerDecorator.SpotlightContainerDecorator)({
74
+ enterTo: 'default-element'
75
+ }, 'div');
76
+ var MediaButton = (0, _util2.onlyUpdateForProps)(_Button["default"], ['children', 'className', 'disabled', 'icon', 'onClick', 'spotlightDisabled']);
77
+ var forwardToggleMore = (0, _handle.forward)('onToggleMore');
78
+ var animationDuration = 300;
79
+
80
+ /**
81
+ * A set of components for controlling media playback and rendering additional components.
82
+ *
83
+ * @class MediaControlsBase
84
+ * @memberof limestone/MediaPlayer
85
+ * @ui
86
+ * @private
87
+ */
88
+ var MediaControlsBase = exports.MediaControlsBase = (0, _kind["default"])({
89
+ name: 'MediaControls',
90
+ // intentionally assigning these props to MediaControls instead of Base (which is private)
91
+ propTypes: /** @lends limestone/MediaPlayer.MediaControls.prototype */{
92
+ /**
93
+ * DOM id for the component.
94
+ *
95
+ * This child component `ActionGuide`'s id is generated from the id.
96
+ *
97
+ * @type {String}
98
+ * @required
99
+ * @public
100
+ */
101
+ id: _propTypes2["default"].string.isRequired,
102
+ /**
103
+ * The `aria-label` for the action guide.
104
+ *
105
+ * @type {String}
106
+ * @public
107
+ */
108
+ actionGuideAriaLabel: _propTypes2["default"].string,
109
+ /**
110
+ * The `aria-label` for the action guide button.
111
+ *
112
+ * @type {String}
113
+ * @public
114
+ */
115
+ actionGuideButtonAriaLabel: _propTypes2["default"].string,
116
+ /**
117
+ * Disables the ActionGuide.
118
+ *
119
+ * @type {Boolean}
120
+ * @public
121
+ */
122
+ actionGuideDisabled: _propTypes2["default"].bool,
123
+ /**
124
+ * The label for the action guide.
125
+ *
126
+ * @type {String}
127
+ * @public
128
+ */
129
+ actionGuideLabel: _propTypes2["default"].string,
130
+ /**
131
+ * These components are placed below the action guide. Typically, these will be media playlist controls.
132
+ *
133
+ * @type {Node}
134
+ * @public
135
+ */
136
+ bottomComponents: _propTypes2["default"].node,
137
+ /**
138
+ * The `aria-label` for the jumpBackward button.
139
+ *
140
+ * @type {String}
141
+ * @public
142
+ */
143
+ jumpBackwardAriaLabel: _propTypes2["default"].string,
144
+ /**
145
+ * Jump backward {@link limestone/Icon.Icon|icon} name. Accepts any
146
+ * {@link limestone/Icon.Icon|icon} component type.
147
+ *
148
+ * @type {String}
149
+ * @default 'jumpbackward'
150
+ * @public
151
+ */
152
+ jumpBackwardIcon: _propTypes2["default"].string,
153
+ /**
154
+ * Disables state on the media "jump" buttons; the outer pair.
155
+ *
156
+ * @type {Boolean}
157
+ * @public
158
+ */
159
+ jumpButtonsDisabled: _propTypes2["default"].bool,
160
+ /**
161
+ * The `aria-label` for the jumpForward button.
162
+ *
163
+ * @type {String}
164
+ * @public
165
+ */
166
+ jumpForwardAriaLabel: _propTypes2["default"].string,
167
+ /**
168
+ * Jump forward {@link limestone/Icon.Icon|icon} name. Accepts any
169
+ * {@link limestone/Icon.Icon|icon} component type.
170
+ *
171
+ * @type {String}
172
+ * @default 'jumpforward'
173
+ * @public
174
+ */
175
+ jumpForwardIcon: _propTypes2["default"].string,
176
+ /**
177
+ * Called with the reference to the mediaControls node.
178
+ *
179
+ * @type {Object|Function}
180
+ * @public
181
+ */
182
+ mediaControlsRef: _propTypes["default"].ref,
183
+ /**
184
+ * Disables the media buttons.
185
+ *
186
+ * @type {Boolean}
187
+ * @public
188
+ */
189
+ mediaDisabled: _propTypes2["default"].bool,
190
+ /**
191
+ * When `true`, more components are rendered. This does not indicate the visibility of more components.
192
+ *
193
+ * @type {Boolean}
194
+ * @public
195
+ */
196
+ moreComponentsRendered: _propTypes2["default"].bool,
197
+ /**
198
+ * The spotlight ID for the moreComponent container.
199
+ *
200
+ * @type {String}
201
+ * @public
202
+ * @default 'moreComponents'
203
+ */
204
+ moreComponentsSpotlightId: _propTypes2["default"].string,
205
+ /**
206
+ * Removes the "jump" buttons. The buttons that skip forward or backward in the video.
207
+ *
208
+ * @type {Boolean}
209
+ * @public
210
+ */
211
+ noJumpButtons: _propTypes2["default"].bool,
212
+ /**
213
+ * Called when the button in ActionGuide is clicked.
214
+ *
215
+ * @type {Function}
216
+ * @param {Object} event
217
+ * @public
218
+ */
219
+ onActionGuideClick: _propTypes2["default"].func,
220
+ /**
221
+ * Called when cancel/back key events are fired.
222
+ *
223
+ * @type {Function}
224
+ * @public
225
+ */
226
+ onClose: _propTypes2["default"].func,
227
+ /**
228
+ * Called when the user clicks the JumpBackward button
229
+ *
230
+ * @type {Function}
231
+ * @public
232
+ */
233
+ onJumpBackwardButtonClick: _propTypes2["default"].func,
234
+ /**
235
+ * Called when the user clicks the JumpForward button.
236
+ *
237
+ * @type {Function}
238
+ * @public
239
+ */
240
+ onJumpForwardButtonClick: _propTypes2["default"].func,
241
+ /**
242
+ * Called when the user presses a media control button.
243
+ *
244
+ * @type {Function}
245
+ * @public
246
+ */
247
+ onKeyDownFromMediaButtons: _propTypes2["default"].func,
248
+ /**
249
+ * Called when the user clicks the Play button.
250
+ *
251
+ * @type {Function}
252
+ * @public
253
+ */
254
+ onPlayButtonClick: _propTypes2["default"].func,
255
+ /**
256
+ * `true` when the video is paused.
257
+ *
258
+ * @type {Boolean}
259
+ * @public
260
+ */
261
+ paused: _propTypes2["default"].bool,
262
+ /**
263
+ * A string which is sent to the `pause` icon of the player controls. This can be
264
+ * anything that is accepted by {@link limestone/Icon.Icon|Icon}. This will be temporarily replaced by
265
+ * the {@link limestone/MediaPlayer.MediaControls.playIcon|playIcon} when the
266
+ * {@link limestone/MediaPlayer.MediaControls.paused|paused} boolean is `false`.
267
+ *
268
+ * @type {String}
269
+ * @default 'pause'
270
+ * @public
271
+ */
272
+ pauseIcon: _propTypes2["default"].string,
273
+ /**
274
+ * A string which is sent to the `play` icon of the player controls. This can be
275
+ * anything that is accepted by {@link limestone/Icon.Icon}. This will be temporarily replaced by
276
+ * the {@link limestone/MediaPlayer.MediaControls.pauseIcon|pauseIcon} when the
277
+ * {@link limestone/MediaPlayer.MediaControls.paused|paused} boolean is `true`.
278
+ *
279
+ * @type {String}
280
+ * @default 'play'
281
+ * @public
282
+ */
283
+ playIcon: _propTypes2["default"].string,
284
+ /**
285
+ * Disables the media "play"/"pause" button.
286
+ *
287
+ * @type {Boolean}
288
+ * @public
289
+ */
290
+ playPauseButtonDisabled: _propTypes2["default"].bool,
291
+ /**
292
+ * When `true`, more components are visible.
293
+ *
294
+ * @type {Boolean}
295
+ * @private
296
+ */
297
+ showMoreComponents: _propTypes2["default"].bool,
298
+ /**
299
+ * `true` controls are disabled from Spotlight.
300
+ *
301
+ * @type {Boolean}
302
+ * @public
303
+ */
304
+ spotlightDisabled: _propTypes2["default"].bool,
305
+ /**
306
+ * The spotlight ID for the media controls container.
307
+ *
308
+ * @type {String}
309
+ * @public
310
+ * @default 'mediaControls'
311
+ */
312
+ spotlightId: _propTypes2["default"].string,
313
+ /**
314
+ * The visibility of the component. When `false`, the component will be hidden.
315
+ *
316
+ * @type {Boolean}
317
+ * @default true
318
+ * @public
319
+ */
320
+ visible: _propTypes2["default"].bool
321
+ },
322
+ defaultProps: {
323
+ jumpBackwardIcon: 'jumpbackward',
324
+ jumpForwardIcon: 'jumpforward',
325
+ moreComponentsSpotlightId: 'moreComponents',
326
+ spotlightId: 'mediaControls',
327
+ pauseIcon: 'pause',
328
+ playIcon: 'play',
329
+ visible: true
330
+ },
331
+ styles: {
332
+ css: _MediaControlsModule["default"],
333
+ className: 'controlsFrame'
334
+ },
335
+ computed: {
336
+ actionGuideClassName: function actionGuideClassName(_ref2) {
337
+ var styler = _ref2.styler,
338
+ showMoreComponents = _ref2.showMoreComponents;
339
+ return styler.join({
340
+ hidden: showMoreComponents
341
+ });
342
+ },
343
+ actionGuideShowing: function actionGuideShowing(_ref3) {
344
+ var bottomComponents = _ref3.bottomComponents,
345
+ children = _ref3.children;
346
+ return (0, _util3.countReactChildren)(children) || bottomComponents;
347
+ },
348
+ className: function className(_ref4) {
349
+ var visible = _ref4.visible,
350
+ styler = _ref4.styler;
351
+ return styler.append({
352
+ hidden: !visible
353
+ });
354
+ },
355
+ moreButtonsClassName: function moreButtonsClassName(_ref5) {
356
+ var styler = _ref5.styler;
357
+ return styler.join('mediaControls', 'moreButtonsComponents');
358
+ },
359
+ moreComponentsClassName: function moreComponentsClassName(_ref6) {
360
+ var styler = _ref6.styler,
361
+ showMoreComponents = _ref6.showMoreComponents;
362
+ return styler.join({
363
+ hidden: !showMoreComponents
364
+ }, 'moreComponents');
365
+ },
366
+ moreComponentsRendered: function moreComponentsRendered(_ref7) {
367
+ var showMoreComponents = _ref7.showMoreComponents,
368
+ _moreComponentsRendered = _ref7.moreComponentsRendered;
369
+ return showMoreComponents || _moreComponentsRendered;
370
+ }
371
+ },
372
+ render: function render(_ref8) {
373
+ var actionGuideAriaLabel = _ref8.actionGuideAriaLabel,
374
+ actionGuideButtonAriaLabel = _ref8.actionGuideButtonAriaLabel,
375
+ actionGuideDisabled = _ref8.actionGuideDisabled,
376
+ actionGuideLabel = _ref8.actionGuideLabel,
377
+ actionGuideShowing = _ref8.actionGuideShowing,
378
+ children = _ref8.children,
379
+ id = _ref8.id,
380
+ jumpBackwardAriaLabel = _ref8.jumpBackwardAriaLabel,
381
+ jumpBackwardIcon = _ref8.jumpBackwardIcon,
382
+ jumpButtonsDisabled = _ref8.jumpButtonsDisabled,
383
+ jumpForwardAriaLabel = _ref8.jumpForwardAriaLabel,
384
+ jumpForwardIcon = _ref8.jumpForwardIcon,
385
+ bottomComponents = _ref8.bottomComponents,
386
+ mediaControlsRef = _ref8.mediaControlsRef,
387
+ mediaDisabled = _ref8.mediaDisabled,
388
+ moreComponentsSpotlightId = _ref8.moreComponentsSpotlightId,
389
+ noJumpButtons = _ref8.noJumpButtons,
390
+ onActionGuideClick = _ref8.onActionGuideClick,
391
+ onJumpBackwardButtonClick = _ref8.onJumpBackwardButtonClick,
392
+ onJumpForwardButtonClick = _ref8.onJumpForwardButtonClick,
393
+ onKeyDownFromMediaButtons = _ref8.onKeyDownFromMediaButtons,
394
+ onPlayButtonClick = _ref8.onPlayButtonClick,
395
+ paused = _ref8.paused,
396
+ pauseIcon = _ref8.pauseIcon,
397
+ playIcon = _ref8.playIcon,
398
+ playPauseButtonDisabled = _ref8.playPauseButtonDisabled,
399
+ showMoreComponents = _ref8.showMoreComponents,
400
+ moreComponentsRendered = _ref8.moreComponentsRendered,
401
+ moreButtonsClassName = _ref8.moreButtonsClassName,
402
+ moreComponentsClassName = _ref8.moreComponentsClassName,
403
+ actionGuideClassName = _ref8.actionGuideClassName,
404
+ spotlightDisabled = _ref8.spotlightDisabled,
405
+ spotlightId = _ref8.spotlightId,
406
+ rest = _objectWithoutProperties(_ref8, _excluded2);
407
+ delete rest.onClose;
408
+ delete rest.visible;
409
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(OuterContainer, _objectSpread(_objectSpread({}, rest), {}, {
410
+ id: id,
411
+ mediaControlsRef: mediaControlsRef,
412
+ spotlightId: spotlightId,
413
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
414
+ className: _MediaControlsModule["default"].mediaControls,
415
+ spotlightDisabled: spotlightDisabled,
416
+ onKeyDown: onKeyDownFromMediaButtons,
417
+ children: [noJumpButtons ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(MediaButton, {
418
+ "aria-label": jumpBackwardAriaLabel || (0, _$L["default"])('Previous'),
419
+ backgroundOpacity: "transparent",
420
+ css: _MediaControlsModule["default"],
421
+ disabled: mediaDisabled || jumpButtonsDisabled,
422
+ icon: jumpBackwardIcon,
423
+ onClick: onJumpBackwardButtonClick,
424
+ size: "large",
425
+ spotlightDisabled: spotlightDisabled
426
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(MediaButton, {
427
+ "aria-label": paused ? (0, _$L["default"])('Play') : (0, _$L["default"])('Pause'),
428
+ className: _SpotlightContainerDecorator.spotlightDefaultClass,
429
+ backgroundOpacity: "transparent",
430
+ css: _MediaControlsModule["default"],
431
+ disabled: mediaDisabled || playPauseButtonDisabled,
432
+ icon: paused ? playIcon : pauseIcon,
433
+ onClick: onPlayButtonClick,
434
+ size: "large",
435
+ spotlightDisabled: spotlightDisabled
436
+ }), noJumpButtons ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(MediaButton, {
437
+ "aria-label": jumpForwardAriaLabel || (0, _$L["default"])('Next'),
438
+ backgroundOpacity: "transparent",
439
+ css: _MediaControlsModule["default"],
440
+ disabled: mediaDisabled || jumpButtonsDisabled,
441
+ icon: jumpForwardIcon,
442
+ onClick: onJumpForwardButtonClick,
443
+ size: "large",
444
+ spotlightDisabled: spotlightDisabled
445
+ })]
446
+ }), actionGuideShowing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionGuide["default"], {
447
+ id: "".concat(id, "_actionGuide"),
448
+ "aria-label": actionGuideAriaLabel != null ? actionGuideAriaLabel : null,
449
+ buttonAriaLabel: actionGuideButtonAriaLabel,
450
+ css: _MediaControlsModule["default"],
451
+ className: actionGuideClassName,
452
+ icon: "arrowsmalldown",
453
+ onClick: onActionGuideClick,
454
+ disabled: actionGuideDisabled,
455
+ children: actionGuideLabel
456
+ }) : null, moreComponentsRendered ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(Container, {
457
+ spotlightId: moreComponentsSpotlightId,
458
+ className: moreComponentsClassName,
459
+ spotlightDisabled: !showMoreComponents || spotlightDisabled,
460
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
461
+ className: moreButtonsClassName,
462
+ children: children
463
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
464
+ children: bottomComponents
465
+ })]
466
+ }) : null]
467
+ }));
468
+ }
469
+ });
470
+
471
+ /**
472
+ * Media control behaviors to apply to {@link limestone/MediaPlayer.MediaControlsBase|MediaControlsBase}.
473
+ * Provides built-in support for showing more components and key handling for basic playback
474
+ * controls.
475
+ *
476
+ * @class MediaControlsDecorator
477
+ * @memberof limestone/MediaPlayer
478
+ * @mixes ui/Slottable.Slottable
479
+ * @hoc
480
+ * @private
481
+ */
482
+ var MediaControlsDecorator = exports.MediaControlsDecorator = (0, _hoc["default"])(function (config, Wrapped) {
483
+ var MediaControlsDecoratorHOC = /*#__PURE__*/function (_Component) {
484
+ function MediaControlsDecoratorHOC(props) {
485
+ var _this;
486
+ _classCallCheck(this, MediaControlsDecoratorHOC);
487
+ _this = _callSuper(this, MediaControlsDecoratorHOC, [props]);
488
+ _this.moreComponentsRenderingJob = new _util.Job(function () {
489
+ _this.setState({
490
+ moreComponentsRendered: true
491
+ });
492
+ });
493
+ _this.calculateMoreComponentsHeight = function () {
494
+ if (!_this.mediaControlsNode) {
495
+ _this.bottomComponentsHeight = 0;
496
+ return;
497
+ }
498
+ var bottomElement = _this.mediaControlsNode.querySelector(".".concat(_MediaControlsModule["default"].moreComponents));
499
+ _this.bottomComponentsHeight = bottomElement ? bottomElement.scrollHeight : 0;
500
+ };
501
+ _this.handleKeyDown = function (ev) {
502
+ var _this$props = _this.props,
503
+ mediaDisabled = _this$props.mediaDisabled,
504
+ no5WayJump = _this$props.no5WayJump,
505
+ visible = _this$props.visible;
506
+ var current = _spotlight["default"].getCurrent();
507
+ if (!no5WayJump && !visible && !mediaDisabled && !current && ((0, _keymap.is)('left', ev.keyCode) || (0, _keymap.is)('right', ev.keyCode))) {
508
+ _this.paused.pause();
509
+ _this.startListeningForPulses(ev.keyCode);
510
+ }
511
+ };
512
+ _this.handleKeyUp = function (ev) {
513
+ var _this$props2 = _this.props,
514
+ mediaDisabled = _this$props2.mediaDisabled,
515
+ no5WayJump = _this$props2.no5WayJump,
516
+ rateChangeDisabled = _this$props2.rateChangeDisabled,
517
+ playPauseButtonDisabled = _this$props2.playPauseButtonDisabled;
518
+ if (mediaDisabled) return;
519
+ if (!playPauseButtonDisabled) {
520
+ if ((0, _keymap.is)('play', ev.keyCode)) {
521
+ (0, _handle.forward)('onPlay', ev, _this.props);
522
+ } else if ((0, _keymap.is)('pause', ev.keyCode)) {
523
+ (0, _handle.forward)('onPause', ev, _this.props);
524
+ }
525
+ }
526
+ if (!no5WayJump && ((0, _keymap.is)('left', ev.keyCode) || (0, _keymap.is)('right', ev.keyCode))) {
527
+ _this.stopListeningForPulses();
528
+ _this.paused.resume();
529
+ }
530
+ if (!rateChangeDisabled) {
531
+ if ((0, _keymap.is)('rewind', ev.keyCode)) {
532
+ (0, _handle.forward)('onRewind', ev, _this.props);
533
+ } else if ((0, _keymap.is)('fastForward', ev.keyCode)) {
534
+ (0, _handle.forward)('onFastForward', ev, _this.props);
535
+ }
536
+ }
537
+ };
538
+ _this.handleBlur = function () {
539
+ _this.stopListeningForPulses();
540
+ _this.paused.resume();
541
+ };
542
+ _this.handleActionGuideClick = function () {
543
+ if (!_this.state.showMoreComponents) {
544
+ _this.showMoreComponents();
545
+ }
546
+ };
547
+ _this.startListeningForPulses = function (keyCode) {
548
+ // Ignore new pulse calls if key code is same, otherwise start new series if we're pulsing
549
+ if (_this.pulsing && keyCode !== _this.pulsingKeyCode) {
550
+ _this.stopListeningForPulses();
551
+ }
552
+ if (!_this.pulsing) {
553
+ _this.pulsingKeyCode = keyCode;
554
+ _this.pulsing = true;
555
+ _this.keyLoop = setTimeout(_this.handlePulse, _this.props.initialJumpDelay);
556
+ (0, _handle.forward)('onJump', {
557
+ keyCode: keyCode
558
+ }, _this.props);
559
+ }
560
+ };
561
+ _this.handlePulse = function () {
562
+ (0, _handle.forward)('onJump', {
563
+ keyCode: _this.pulsingKeyCode
564
+ }, _this.props);
565
+ _this.keyLoop = setTimeout(_this.handlePulse, _this.props.jumpDelay);
566
+ };
567
+ _this.handlePlayButtonClick = function (ev) {
568
+ (0, _handle.forward)('onPlayButtonClick', ev, _this.props);
569
+ if (_this.props.paused) {
570
+ (0, _handle.forward)('onPlay', ev, _this.props);
571
+ } else {
572
+ (0, _handle.forward)('onPause', ev, _this.props);
573
+ }
574
+ };
575
+ _this.getMediaControls = function (node) {
576
+ if (!node) {
577
+ _this.actionGuideHeight = 0;
578
+ return;
579
+ }
580
+ _this.mediaControlsNode = _this.mediaControlsRef.current;
581
+ var guideElement = _this.mediaControlsNode.querySelector(".".concat(_MediaControlsModule["default"].actionGuide));
582
+ _this.actionGuideHeight = guideElement ? guideElement.scrollHeight : 0;
583
+ };
584
+ _this.areMoreComponentsAvailable = function () {
585
+ return _this.state.showMoreComponents;
586
+ };
587
+ _this.showMoreComponents = function () {
588
+ _this.setState({
589
+ showMoreComponents: true
590
+ });
591
+ };
592
+ _this.hideMoreComponents = function () {
593
+ _this.setState({
594
+ showMoreComponents: false
595
+ });
596
+ };
597
+ _this.handleClose = function (ev) {
598
+ if (_this.props.visible) {
599
+ (0, _handle.forward)('onClose', ev, _this.props);
600
+ }
601
+ };
602
+ _this.handleFinish = function () {
603
+ if (_this.state.showMoreComponents) {
604
+ _this.paused.resume();
605
+ if (!_spotlight["default"].getPointerMode()) {
606
+ _spotlight["default"].focus(_this.moreComponentsSpotlightId);
607
+ }
608
+ }
609
+ };
610
+ _this.handleCancel = function () {
611
+ _this.paused.resume();
612
+ };
613
+ _this.mediaControlsNode = null;
614
+ _this.moreComponentsNode = null;
615
+ _this.actionGuideHeight = 0;
616
+ _this.animation = null;
617
+ _this.bottomComponentsHeight = 0;
618
+ _this.moreComponentsSpotlightId = 'moreComponents';
619
+ _this.keyLoop = null;
620
+ _this.pulsingKeyCode = null;
621
+ _this.pulsing = null;
622
+ _this.paused = new _Pause["default"]('MediaPlayer');
623
+ _this.mediaControlsRef = /*#__PURE__*/(0, _react.createRef)();
624
+ _this.state = {
625
+ showMoreComponents: false,
626
+ moreComponentsRendered: false
627
+ };
628
+ if (props.setApiProvider) {
629
+ props.setApiProvider(_this);
630
+ }
631
+ return _this;
632
+ }
633
+ _inherits(MediaControlsDecoratorHOC, _Component);
634
+ return _createClass(MediaControlsDecoratorHOC, [{
635
+ key: "componentDidMount",
636
+ value: function componentDidMount() {
637
+ (0, _dispatcher.on)('keydown', this.handleKeyDown, document);
638
+ (0, _dispatcher.on)('keyup', this.handleKeyUp, document);
639
+ (0, _dispatcher.on)('blur', this.handleBlur, window);
640
+ }
641
+ }, {
642
+ key: "componentDidUpdate",
643
+ value: function componentDidUpdate(prevProps, prevState) {
644
+ // Need to render `moreComponents` to show it. For performance, render `moreComponents` if it is actually shown.
645
+ if (!prevState.showMoreComponents && this.state.showMoreComponents && !this.state.moreComponentsRendered) {
646
+ this.moreComponentsRenderingJob.startRafAfter();
647
+ } else if (prevState.showMoreComponents && !this.state.showMoreComponents) {
648
+ this.moreComponentsRenderingJob.stop();
649
+ }
650
+ if (!prevState.moreComponentsRendered && this.state.moreComponentsRendered || this.state.moreComponentsRendered && prevProps.bottomComponents !== this.props.bottomComponents || !(0, _util2.compareChildren)(this.props.children, prevProps.children)) {
651
+ this.calculateMoreComponentsHeight();
652
+ }
653
+ if (this.state.showMoreComponents && !prevState.moreComponentsRendered && this.state.moreComponentsRendered || this.state.moreComponentsRendered && prevState.showMoreComponents !== this.state.showMoreComponents) {
654
+ forwardToggleMore({
655
+ type: 'onToggleMore',
656
+ showMoreComponents: this.state.showMoreComponents,
657
+ liftDistance: this.bottomComponentsHeight - this.actionGuideHeight
658
+ }, this.props);
659
+ if (this.state.showMoreComponents) {
660
+ this.moreComponentsNode = this.moreComponentsNode || this.mediaControlsNode.querySelector(".".concat(_MediaControlsModule["default"].moreComponents));
661
+ this.paused.pause();
662
+ this.animation = this.moreComponentsNode.animate([{
663
+ transform: 'none',
664
+ opacity: 0,
665
+ offset: 0
666
+ }, {
667
+ transform: "translateY(".concat(-this.actionGuideHeight, "px)"),
668
+ opacity: 1,
669
+ offset: 1
670
+ }], {
671
+ duration: typeof ENACT_PACK_NO_ANIMATION !== 'undefined' && ENACT_PACK_NO_ANIMATION ? 0 : animationDuration,
672
+ fill: 'forwards'
673
+ });
674
+ this.animation.onfinish = this.handleFinish;
675
+ this.animation.oncancel = this.handleCancel;
676
+ } else if (this.animation != null) {
677
+ this.animation.cancel();
678
+ }
679
+ }
680
+
681
+ // if media controls disabled, reset key loop
682
+ if (!prevProps.mediaDisabled && this.props.mediaDisabled || !prevProps.visible && this.props.visible) {
683
+ this.stopListeningForPulses();
684
+ this.paused.resume();
685
+ }
686
+ }
687
+ }, {
688
+ key: "componentWillUnmount",
689
+ value: function componentWillUnmount() {
690
+ (0, _dispatcher.off)('keydown', this.handleKeyDown, document);
691
+ (0, _dispatcher.off)('keyup', this.handleKeyUp, document);
692
+ (0, _dispatcher.off)('blur', this.handleBlur, window);
693
+ this.stopListeningForPulses();
694
+ this.moreComponentsRenderingJob.stop();
695
+ if (this.animation) {
696
+ this.animation.cancel();
697
+ }
698
+ }
699
+ }, {
700
+ key: "stopListeningForPulses",
701
+ value: function stopListeningForPulses() {
702
+ this.pulsing = false;
703
+ if (this.keyLoop) {
704
+ clearTimeout(this.keyLoop);
705
+ this.keyLoop = null;
706
+ }
707
+ }
708
+ }, {
709
+ key: "toggleMoreComponents",
710
+ value: function toggleMoreComponents() {
711
+ this.setState(function (prevState) {
712
+ return {
713
+ showMoreComponents: !prevState.showMoreComponents
714
+ };
715
+ });
716
+ }
717
+ }, {
718
+ key: "render",
719
+ value: function render() {
720
+ var props = Object.assign({}, this.props);
721
+ delete props.initialJumpDelay;
722
+ delete props.jumpDelay;
723
+ delete props.moreActionDisabled;
724
+ delete props.no5WayJump;
725
+ delete props.onFastForward;
726
+ delete props.onJump;
727
+ delete props.onPause;
728
+ delete props.onPlay;
729
+ delete props.onRewind;
730
+ delete props.onToggleMore;
731
+ delete props.rateChangeDisabled;
732
+ delete props.setApiProvider;
733
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread({}, props), {}, {
734
+ mediaControlsRef: this.mediaControlsRef,
735
+ actionGuideDisabled: this.props.moreActionDisabled,
736
+ moreComponentsRendered: this.state.moreComponentsRendered,
737
+ moreComponentsSpotlightId: this.moreComponentsSpotlightId,
738
+ onActionGuideClick: this.handleActionGuideClick,
739
+ onClose: this.handleClose,
740
+ onPlayButtonClick: this.handlePlayButtonClick,
741
+ ref: this.getMediaControls,
742
+ showMoreComponents: this.state.showMoreComponents
743
+ }));
744
+ }
745
+ }], [{
746
+ key: "getDerivedStateFromProps",
747
+ value: function getDerivedStateFromProps(props) {
748
+ if (!props.visible) {
749
+ return {
750
+ showMoreComponents: false
751
+ };
752
+ }
753
+ return null;
754
+ }
755
+ }]);
756
+ }(_react.Component);
757
+ MediaControlsDecoratorHOC.displayName = 'MediaControlsDecorator';
758
+ MediaControlsDecoratorHOC.propTypes = /** @lends limestone/MediaPlayer.MediaControlsDecorator.prototype */{
759
+ /**
760
+ * The label for the action guide.
761
+ *
762
+ * @type {String}
763
+ * @public
764
+ */
765
+ actionGuideLabel: _propTypes2["default"].string,
766
+ /**
767
+ * These components are placed below the children. Typically, these will be media playlist items.
768
+ *
769
+ * @type {Node}
770
+ * @public
771
+ */
772
+ bottomComponents: _propTypes2["default"].node,
773
+ /**
774
+ * The number of milliseconds that the player will pause before firing the
775
+ * first jump event on a right or left pulse.
776
+ *
777
+ * @type {Number}
778
+ * @default 400
779
+ * @public
780
+ */
781
+ initialJumpDelay: _propTypes2["default"].number,
782
+ /**
783
+ * The number of milliseconds that the player will throttle before firing a
784
+ * jump event on a right or left pulse.
785
+ *
786
+ * @type {Number}
787
+ * @default 200
788
+ * @public
789
+ */
790
+ jumpDelay: _propTypes2["default"].number,
791
+ /**
792
+ * Disables the media buttons.
793
+ *
794
+ * @type {Boolean}
795
+ * @public
796
+ */
797
+ mediaDisabled: _propTypes2["default"].bool,
798
+ /**
799
+ * Disables showing more components.
800
+ *
801
+ * @type {Boolean}
802
+ * @public
803
+ */
804
+ moreActionDisabled: _propTypes2["default"].bool,
805
+ /**
806
+ * Setting this to `true` will disable left and right keys for seeking.
807
+ *
808
+ * @type {Boolean}
809
+ * @public
810
+ */
811
+ no5WayJump: _propTypes2["default"].bool,
812
+ /**
813
+ * Called when media fast forwards.
814
+ *
815
+ * @type {Function}
816
+ * @public
817
+ */
818
+ onFastForward: _propTypes2["default"].func,
819
+ /**
820
+ * Called when media jumps.
821
+ *
822
+ * @type {Function}
823
+ * @public
824
+ */
825
+ onJump: _propTypes2["default"].func,
826
+ /**
827
+ * Called when media gets paused.
828
+ *
829
+ * @type {Function}
830
+ * @public
831
+ */
832
+ onPause: _propTypes2["default"].func,
833
+ /**
834
+ * Called when media starts playing.
835
+ *
836
+ * @type {Function}
837
+ * @public
838
+ */
839
+ onPlay: _propTypes2["default"].func,
840
+ /**
841
+ * Called when media rewinds.
842
+ *
843
+ * @type {Function}
844
+ * @public
845
+ */
846
+ onRewind: _propTypes2["default"].func,
847
+ /**
848
+ * Called when the visibility of more components is changed
849
+ *
850
+ * Event payload includes:
851
+ *
852
+ * * `type` - Type of event, `'onToggleMore'`
853
+ * * `showMoreComponents` - `true` when the components are visible`
854
+ * * `liftDistance` - The distance, in pixels, the component animates
855
+ *
856
+ * @type {Function}
857
+ * @public
858
+ */
859
+ onToggleMore: _propTypes2["default"].func,
860
+ /**
861
+ * The video pause state.
862
+ *
863
+ * @type {Boolean}
864
+ * @public
865
+ */
866
+ paused: _propTypes2["default"].bool,
867
+ /**
868
+ * Disables state on the media "play"/"pause" button
869
+ *
870
+ * @type {Boolean}
871
+ * @public
872
+ */
873
+ playPauseButtonDisabled: _propTypes2["default"].bool,
874
+ /**
875
+ * Disables the media playback-rate control via rewind and fast-forward keys
876
+ *
877
+ * @type {Boolean}
878
+ * @public
879
+ */
880
+ rateChangeDisabled: _propTypes2["default"].bool,
881
+ /**
882
+ * Registers the MediaControls component with an
883
+ * {@link core/internal/ApiDecorator.ApiDecorator|ApiDecorator}.
884
+ *
885
+ * @type {Function}
886
+ * @private
887
+ */
888
+ setApiProvider: _propTypes2["default"].func,
889
+ /**
890
+ * The visibility of the component. When `false`, the component will be hidden.
891
+ *
892
+ * @type {Boolean}
893
+ * @public
894
+ */
895
+ visible: _propTypes2["default"].bool
896
+ };
897
+ MediaControlsDecoratorHOC.defaultProps = {
898
+ initialJumpDelay: 400,
899
+ jumpDelay: 200
900
+ };
901
+ return (0, _Slottable["default"])({
902
+ slots: ['bottomComponents']
903
+ }, MediaControlsDecoratorHOC);
904
+ });
905
+ var handleCancel = function handleCancel(ev, _ref9) {
906
+ var onClose = _ref9.onClose;
907
+ if (onClose) {
908
+ onClose(ev);
909
+ }
910
+ };
911
+
912
+ /**
913
+ * A set of components for controlling media playback and rendering additional components.
914
+ *
915
+ * This uses {@link ui/Slottable|Slottable} to accept the custom tags, `<bottomComponents>`
916
+ * to add components to the bottom of the media controls. Any additional children will be
917
+ * rendered into the "more" controls area. Showing the additional components is handled by
918
+ * `MediaControls` when the user navigates down from the media buttons.
919
+ *
920
+ * @class MediaControls
921
+ * @memberof limestone/MediaPlayer
922
+ * @mixes ui/Cancelable.Cancelable
923
+ * @mixes limestone/Skinnable.Skinnable
924
+ * @ui
925
+ * @public
926
+ */
927
+ var MediaControls = exports.MediaControls = (0, _ApiDecorator["default"])({
928
+ api: ['areMoreComponentsAvailable', 'showMoreComponents', 'hideMoreComponents']
929
+ }, MediaControlsDecorator((0, _Cancelable["default"])({
930
+ modal: true,
931
+ onCancel: handleCancel
932
+ }, (0, _Skinnable["default"])(MediaControlsBase))));
933
+ MediaControls.defaultSlot = 'mediaControlsComponent';
934
+ var _default = exports["default"] = MediaControls;