@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,582 @@
1
+ // Type definitions for limestone/VideoPlayer
2
+
3
+ import { SlottableProps as ui_Slottable_SlottableProps } from "@enact/ui/Slottable";
4
+ import * as React from "react";
5
+
6
+ type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
7
+ type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
8
+
9
+ export interface VideoProps extends ui_Slottable_SlottableProps {
10
+ /**
11
+ * Video plays automatically.
12
+ */
13
+ autoPlay?: boolean;
14
+ /**
15
+ * Video component to use.
16
+ *
17
+ * The default ( `'video'` ) renders an `HTMLVideoElement` . Custom video components must have
18
+ a similar API structure, exposing the following APIs:
19
+ *
20
+ * Properties:
21
+ * * `currentTime` {Number} - Playback index of the media in seconds
22
+ * * `duration` {Number} - Media's entire duration in seconds
23
+ * * `error` {Boolean} - `true` if video playback has errored.
24
+ * * `loading` {Boolean} - `true` if video playback is loading.
25
+ * * `paused` {Boolean} - Playing vs paused state. `true` means the media is paused
26
+ * * `playbackRate` {Number} - Current playback rate, as a number
27
+ * * `proportionLoaded` {Number} - A value between `0` and `1`
28
+ representing the proportion of the media that has loaded
29
+ * * `proportionPlayed` {Number} - A value between `0` and `1` representing the
30
+ proportion of the media that has already been shown
31
+ *
32
+ * Events:
33
+ * * `onLoadStart` - Called when the video starts to load
34
+ * * `onPlay` - Sent when playback of the media starts after having been paused
35
+ * * `onUpdate` - Sent when any of the properties were updated
36
+ *
37
+ * Methods:
38
+ * * `play()` - play video
39
+ * * `pause()` - pause video
40
+ * * `load()` - load video
41
+ *
42
+ * The property is passed to
43
+ the video component as a child node.
44
+ */
45
+ mediaComponent?: string | React.ComponentType | JSX.Element;
46
+ /**
47
+ * The video source to be preloaded. Expects a `<source>` node.
48
+ */
49
+ preloadSource?: React.ReactNode;
50
+ /**
51
+ * The video source to be played.
52
+ *
53
+ * Any children `<source>` elements will be sent directly to the `mediaComponent` as video
54
+ sources.
55
+ *
56
+ * See:
57
+ */
58
+ source?: string | React.ReactNode;
59
+ }
60
+ /**
61
+ * Provides support for more advanced video configurations for `VideoPlayer` .
62
+ *
63
+ * Custom Video Tag
64
+ * ```
65
+ <VideoPlayer>
66
+ <Video mediaComponent="custom-video-element">
67
+ <source src="path/to/source.mp4" />
68
+ </Video>
69
+ </VideoPlayer>
70
+ ```
71
+
72
+ * Preload Video Source
73
+ * ```
74
+ <VideoPlayer>
75
+ <Video>
76
+ <source src="path/to/source.mp4" />
77
+ <source src="path/to/preload-source.mp4" slot="preloadSource" />
78
+ </Video>
79
+ </VideoPlayer>
80
+ ```
81
+ */
82
+
83
+ export class Video extends React.Component<
84
+ Merge<React.HTMLProps<HTMLElement>, VideoProps>
85
+ > {}
86
+
87
+ /**
88
+ * Every callback sent by receives a status package,
89
+ which includes an object with the following key/value pairs as the first argument:
90
+ */
91
+ export interface videoStatus {
92
+ /**
93
+ * Type of event that triggered this callback
94
+ */
95
+ type: string /**
96
+ * Playback index of the media in seconds
97
+ */;
98
+ currentTime: number /**
99
+ * Media's entire duration in seconds
100
+ */;
101
+ duration: number /**
102
+ * Playing vs paused state. `true` means the media is paused
103
+ */;
104
+ paused: boolean /**
105
+ * Current playback rate, as a number
106
+ */;
107
+ playbackRate: number /**
108
+ * A value between `0` and `1` representing the proportion of the media that has loaded
109
+ */;
110
+ proportionLoaded: number /**
111
+ * A value between `0` and `1` representing the proportion of the media that has already been shown
112
+ */;
113
+ proportionPlayed: number;
114
+ }
115
+ /**
116
+ * A set of playback rates when media fast forwards, rewinds, slow-forwards, or slow-rewinds.
117
+ *
118
+ * The number used for each operation is proportional to the normal playing speed, 1. If the rate
119
+ is less than 1, it will play slower than normal speed, and, if it is larger than 1, it will play
120
+ faster. If it is negative, it will play backward.
121
+ *
122
+ * The order of numbers represents the incremental order of rates that will be used for each
123
+ operation. Note that rates can be expressed as decimals, strings, and fractions.
124
+ (e.g.: `0.5` , `'0.5'` , `'1/2'` ).
125
+ */
126
+ export interface playbackRateHash {
127
+ /**
128
+ * An array of playback rates when media fast forwards
129
+ */
130
+ fastForward: Array /**
131
+ * An array of playback rates when media rewinds
132
+ */;
133
+ rewind: Array /**
134
+ * An array of playback rates when media slow-forwards
135
+ */;
136
+ slowForward: Array /**
137
+ * An array of playback rates when media slow-rewinds
138
+ */;
139
+ slowRewind: Array;
140
+ }
141
+ export interface VideoPlayerBaseProps {
142
+ /**
143
+ * The time (in milliseconds) before the control buttons will hide.
144
+ *
145
+ * Setting this to 0 or `null` disables closing, requiring user input to open and close.
146
+ */
147
+ autoCloseTimeout?: number;
148
+ /**
149
+ * Sets the hint string read when focusing the back button.
150
+ */
151
+ backButtonAriaLabel?: string;
152
+ /**
153
+ * Removes interactive capability from this component. This includes, but is not limited to,
154
+ key-press events, most clickable buttons, and prevents the showing of the controls.
155
+ */
156
+ disabled?: boolean;
157
+ /**
158
+ * Amount of time (in milliseconds) after which the feedback text/icon part of the slider's
159
+ tooltip will automatically hidden after the last action.
160
+ Setting this to 0 or `null` disables feedbackHideDelay; feedback will always be present.
161
+ */
162
+ feedbackHideDelay?: number;
163
+ /**
164
+ * Checks if current time and total time should include the hour.
165
+ */
166
+ includeTimeHour?: boolean;
167
+ /**
168
+ * Components placed below the title.
169
+ *
170
+ * Typically, these will be media descriptor icons, like how many audio channels, what codec
171
+ the video uses, but can also be a description for the video or anything else that seems
172
+ appropriate to provide information about the video to the user.
173
+ */
174
+ infoComponents?: React.ReactNode;
175
+ /**
176
+ * The number of milliseconds that the player will pause before firing the
177
+ first jump event on a right or left pulse.
178
+ */
179
+ initialJumpDelay?: number;
180
+ /**
181
+ * The number of seconds the player should skip forward or backward when a "jump" button is
182
+ pressed.
183
+ */
184
+ jumpBy?: number;
185
+ /**
186
+ * The number of milliseconds that the player will throttle before firing a
187
+ jump event on a right or left pulse.
188
+ */
189
+ jumpDelay?: number;
190
+ /**
191
+ * Manually set the loading state of the media, in case you have information that
192
+ `VideoPlayer` does not have.
193
+ */
194
+ loading?: boolean;
195
+ /**
196
+ * The current locale as a
197
+ .
198
+ */
199
+ locale?: string;
200
+ /**
201
+ * Overrides the default media control component to support customized behaviors.
202
+ *
203
+ * The provided component will receive the following props from `VideoPlayer` :
204
+ * * `initialJumpDelay` - Time (in ms) to wait before starting a jump
205
+ * * `jumpDelay` - - Time (in ms) to wait between jumps
206
+ * * `mediaDisabled` - `true` when the media controls are not interactive
207
+ * * `no5WayJump` - `true` when 5-way jumping is disabled
208
+ * * `onClose` - Called when cancel key is pressed when the media controls are visible
209
+ * * `onFastForward` - Called when the media is fast forwarded via a key event
210
+ * * `onJump` - Called when the media jumps either forward or backward
211
+ * * `onJumpBackwardButtonClick` - Called when the jump backward button is pressed
212
+ * * `onJumpForwardButtonClick` - Called when the jump forward button is pressed
213
+ * * `onKeyDown` - Called when a key is pressed
214
+ * * `onPause` - Called when the media is paused via a key event
215
+ * * `onPlay` - Called when the media is played via a key event
216
+ * * `onRewind` - Called when the media is rewound via a key event
217
+ * * `onToggleMore` - Called when the more components are hidden or shown
218
+ * * `paused` - `true` when the media is paused
219
+ * * `spotlightId` - The spotlight container Id for the media controls
220
+ * * `spotlightDisabled` - `true` when spotlight is disabled for the media controls
221
+ * * `visible` - `true` when the media controls should be displayed
222
+ */
223
+ mediaControlsComponent?: React.ComponentType | JSX.Element;
224
+ /**
225
+ * Amount of time (in milliseconds), after the last user action, that the `miniFeedback`
226
+ will automatically hide.
227
+ Setting this to 0 or `null` disables `miniFeedbackHideDelay` ; `miniFeedback` will always
228
+ be present.
229
+ */
230
+ miniFeedbackHideDelay?: number;
231
+ /**
232
+ * Disable audio for this video.
233
+ *
234
+ * In a TV context, this is handled by the remote control, not programmatically in the
235
+ VideoPlayer API.
236
+ */
237
+ muted?: boolean;
238
+ /**
239
+ * Prevents the default behavior of using left and right keys for seeking.
240
+ */
241
+ no5WayJump?: boolean;
242
+ /**
243
+ * Prevents the default behavior of playing a video immediately after it's loaded.
244
+ */
245
+ noAutoPlay?: boolean;
246
+ /**
247
+ * Prevents the default behavior of showing media controls immediately after it's loaded.
248
+ */
249
+ noAutoShowMediaControls?: boolean;
250
+ /**
251
+ * Hides media slider feedback when fast-forward or rewind while media controls are hidden.
252
+ */
253
+ noMediaSliderFeedback?: boolean;
254
+ /**
255
+ * Removes the mini feedback.
256
+ */
257
+ noMiniFeedback?: boolean;
258
+ /**
259
+ * Removes the media slider.
260
+ */
261
+ noSlider?: boolean;
262
+ /**
263
+ * Removes spinner while loading.
264
+ */
265
+ noSpinner?: boolean;
266
+ /**
267
+ * Called when the back button is clicked.
268
+ */
269
+ onBack?: Function;
270
+ /**
271
+ * Called when the player's controls change availability, whether they are shown
272
+ or hidden.
273
+ *
274
+ * The current status is sent as the first argument in an object with a key `available`
275
+ which will be either `true` or `false` . (e.g.: `onControlsAvailable({available: true})` )
276
+ */
277
+ onControlsAvailable?: Function;
278
+ /**
279
+ * Called when the video has been fast forwarded.
280
+ */
281
+ onFastForward?: Function;
282
+ /**
283
+ * Called when the user clicks the JumpBackward button.
284
+ *
285
+ * Is passed a as the first argument.
286
+ */
287
+ onJumpBackward?: Function;
288
+ /**
289
+ * Called when the user clicks the JumpForward button.
290
+ *
291
+ * Is passed a as the first argument.
292
+ */
293
+ onJumpForward?: Function;
294
+ /**
295
+ * Called when the video has been paused.
296
+ */
297
+ onPause?: Function;
298
+ /**
299
+ * Called when the video has been played.
300
+ */
301
+ onPlay?: Function;
302
+ /**
303
+ * Called when the video has been rewound.
304
+ */
305
+ onRewind?: Function;
306
+ /**
307
+ * Called when the user is moving the VideoPlayer's Slider knob independently of
308
+ the current playback position.
309
+ *
310
+ * It is passed an object with a `seconds` key (float value) to indicate the current time
311
+ index. It can be used to update the `thumbnailSrc` to reflect the current scrub
312
+ position.
313
+ */
314
+ onScrub?: Function;
315
+ /**
316
+ * Called when seek is attempted while `seekDisabled` is true.
317
+ */
318
+ onSeekFailed?: Function;
319
+ /**
320
+ * Called when seeking outside of the current `selection` range.
321
+ *
322
+ * By default, the seek will still be performed. Calling `preventDefault()` on the event
323
+ will prevent the seek operation.
324
+ */
325
+ onSeekOutsideSelection?: Function;
326
+ /**
327
+ * Called when the visibility of more components is changed
328
+ *
329
+ * Event payload includes:
330
+ * * `type` - Type of event, `'onToggleMore'`
331
+ * * `showMoreComponents` - `true` when the components are visible`
332
+ * * `liftDistance` - The distance, in pixels, the component animates
333
+ `
334
+ */
335
+ onToggleMore?: Function;
336
+ /**
337
+ * Called once before the video is forwarded.
338
+ */
339
+ onWillFastForward?: Function;
340
+ /**
341
+ * Called once before the video is jump backwarded.
342
+ *
343
+ * Is passed a as the first argument.
344
+ */
345
+ onWillJumpBackward?: Function;
346
+ /**
347
+ * Called once before the video is jump forwarded.
348
+ *
349
+ * Is passed a as the first argument.
350
+ */
351
+ onWillJumpForward?: Function;
352
+ /**
353
+ * Called once before the video is paused.
354
+ */
355
+ onWillPause?: Function;
356
+ /**
357
+ * Called once before the video is played
358
+ */
359
+ onWillPlay?: Function;
360
+ /**
361
+ * Called once before the video is rewound.
362
+ */
363
+ onWillRewind?: Function;
364
+ /**
365
+ * Pauses the video when it reaches either the start or the end of the video during rewind,
366
+ slow rewind, fast-forward, or slow forward.
367
+ */
368
+ pauseAtEnd?: boolean;
369
+ /**
370
+ * Mapping of playback rate names to playback rate values that may be set.
371
+ */
372
+ playbackRateHash?: playbackRateHash;
373
+ /**
374
+ * Disables seek function.
375
+ *
376
+ * Note that jump by arrow keys will also be disabled when `true` .
377
+ */
378
+ seekDisabled?: boolean;
379
+ /**
380
+ * A range of the video to display as selected.
381
+ *
382
+ * The value of `selection` may either be:
383
+ * * `null` or `undefined` for no selection,
384
+ * * a single-element array with the start time of the selection
385
+ * * a two-element array containing both the start and end time of the selection in seconds
386
+ *
387
+ * When the start time is specified, the media slider will show filled starting at that
388
+ time to the current time.
389
+ *
390
+ * When the end time is specified, the slider's background will be filled between the two
391
+ times.
392
+ */
393
+ selection?: number[];
394
+ /**
395
+ * The video source.
396
+ *
397
+ * Any children `<source>` tag elements of will
398
+ be sent directly to the `videoComponent` as video sources.
399
+ */
400
+ source?: React.ReactNode;
401
+ /**
402
+ * Disables spotlight navigation into the component.
403
+ */
404
+ spotlightDisabled?: boolean;
405
+ /**
406
+ * The spotlight container ID for the player.
407
+ */
408
+ spotlightId?: string;
409
+ /**
410
+ * The thumbnail component to be used instead of the built-in version.
411
+ *
412
+ * The internal thumbnail style will not be applied to this component. This component
413
+ follows the same rules as the built-in version.
414
+ */
415
+ thumbnailComponent?: string | React.ComponentType | JSX.Element;
416
+ /**
417
+ * Thumbnail image source to show on the slider knob.
418
+ *
419
+ * This is a standard component so it supports all the same
420
+ options for the `src` property. If no `thumbnailComponent` and no `thumbnailSrc` is set,
421
+ no tooltip will display.
422
+ */
423
+ thumbnailSrc?: string | object;
424
+ /**
425
+ * Enables the thumbnail transition from opaque to translucent.
426
+ */
427
+ thumbnailUnavailable?: boolean;
428
+ /**
429
+ * Title for the video being played.
430
+ */
431
+ title?: string | React.ReactNode;
432
+ /**
433
+ * The time (in milliseconds) before the title disappears from the controls.
434
+ *
435
+ * Setting this to `0` disables hiding.
436
+ */
437
+ titleHideDelay?: number;
438
+ /**
439
+ * Video component to use.
440
+ *
441
+ * The default renders an `HTMLVideoElement` . Custom video components must have a similar
442
+ API structure, exposing the following APIs:
443
+ *
444
+ * Properties:
445
+ * * `currentTime` {Number} - Playback index of the media in seconds
446
+ * * `duration` {Number} - Media's entire duration in seconds
447
+ * * `error` {Boolean} - `true` if video playback has errored.
448
+ * * `loading` {Boolean} - `true` if video playback is loading.
449
+ * * `paused` {Boolean} - Playing vs paused state. `true` means the media is paused
450
+ * * `playbackRate` {Number} - Current playback rate, as a number
451
+ * * `proportionLoaded` {Number} - A value between `0` and `1`
452
+ representing the proportion of the media that has loaded
453
+ * * `proportionPlayed` {Number} - A value between `0` and `1` representing the
454
+ proportion of the media that has already been shown
455
+ *
456
+ * Events:
457
+ * * `onLoadStart` - Called when the video starts to load
458
+ * * `onUpdate` - Sent when any of the properties were updated
459
+ *
460
+ * Methods:
461
+ * * `play()` - play video
462
+ * * `pause()` - pause video
463
+ * * `load()` - load video
464
+ *
465
+ * The property is passed to
466
+ the video component as a child node.
467
+ */
468
+ videoComponent?: React.ComponentType | JSX.Element;
469
+ }
470
+ /**
471
+ * A player for video .
472
+ */
473
+
474
+ export class VideoPlayerBase extends React.Component<
475
+ Merge<React.HTMLProps<HTMLElement>, VideoPlayerBaseProps>
476
+ > {
477
+ /**
478
+ * Shows media controls.
479
+ */
480
+ showControls(): void;
481
+ /**
482
+ * Hides media controls.
483
+ */
484
+ hideControls(): void;
485
+ /**
486
+ * Toggles the media controls.
487
+ */
488
+ toggleControls(): void;
489
+ /**
490
+ * Returns an object with the current state of the media including `currentTime` , `duration` ,
491
+ `paused` , `playbackRate` , `proportionLoaded` , and `proportionPlayed` .
492
+ */
493
+ getMediaState(): object;
494
+ /**
495
+ * Programmatically plays the current media.
496
+ If you call this function during fast forwarding or rewinding, the playback speed will be set to normal.
497
+ */
498
+ play(): void;
499
+ /**
500
+ * Programmatically pauses the current media.
501
+ If you call this function during fast forwarding or rewinding, the playback speed will be set to normal.
502
+ */
503
+ pause(): void;
504
+ /**
505
+ * Sets the media playback time index.
506
+ */
507
+ seek(timeIndex: number): void;
508
+ /**
509
+ * Step a given amount of time away from the current playback position.
510
+ Like but relative.
511
+ */
512
+ jump(distance: number): void;
513
+ /**
514
+ * Fast forwards the current media for seeking.
515
+ This function changes the playback rate.
516
+ If you call `play` or `pause` during fast forwarding, the playback speed will be set to normal.
517
+ */
518
+ fastForward(): void;
519
+ /**
520
+ * Rewinds the current media for seeking.
521
+ This function changes the playback rate.
522
+ If you call `play` or `pause` during rewinding, the playback speed will be set to normal.
523
+ */
524
+ rewind(): void;
525
+ /**
526
+ * Sets the playback speed.
527
+ */
528
+ setPlaybackSpeed(rate: number): boolean;
529
+ /**
530
+ * Returns a proxy to the underlying `<video>` node currently used by the VideoPlayer
531
+ */
532
+ getVideoNode(): void;
533
+ }
534
+
535
+ export interface VideoPlayerProps extends ui_Slottable_SlottableProps {}
536
+ /**
537
+ * A standard HTML5 video player for Limestone. It behaves, responds to, and operates like a
538
+ `<video>` tag in its support for `<source>` . It also accepts custom tags such as
539
+ `<infoComponents>` for displaying additional information in the title area and `<MediaControls>`
540
+ for handling media playback controls and adding more controls.
541
+ *
542
+ * Example usage:
543
+ * ```
544
+ <VideoPlayer title="Hilarious Cat Video" poster="https://my.cat.videos/boots-poster.jpg">
545
+ <source src="https://my.cat.videos/boots.mp4" type="video/mp4" />
546
+ <infoComponents>A video about my cat Boots, wearing boots.</infoComponents>
547
+ <MediaControls>
548
+ <leftComponents><Button backgroundOpacity="translucent" icon="star" /></leftComponents>
549
+ <rightComponents><Button backgroundOpacity="translucent" icon="notification" /></rightComponents>
550
+
551
+ <Button backgroundOpacity="translucent">Add To Favorites</Button>
552
+ <Button backgroundOpacity="translucent" icon="search" />
553
+ </MediaControls>
554
+ </VideoPlayer>
555
+ ```
556
+
557
+ * To invoke methods (e.g.: `fastForward()` ) or get the current state ( `getMediaState()` ), store a
558
+ ref to the `VideoPlayer` within your component:
559
+ * ```
560
+ ...
561
+
562
+ setVideoPlayer = (node) => {
563
+ this.videoPlayer = node;
564
+ }
565
+
566
+ play () {
567
+ this.videoPlayer.play();
568
+ }
569
+
570
+ render () {
571
+ return (
572
+ <VideoPlayer ref={this.setVideoPlayer} />
573
+ );
574
+ }
575
+ ```
576
+ */
577
+
578
+ export class VideoPlayer extends React.Component<
579
+ Merge<React.HTMLProps<HTMLElement>, VideoPlayerProps>
580
+ > {}
581
+
582
+ export default VideoPlayer;