@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,931 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.VirtualList = exports.VirtualGridList = void 0;
7
+ var _util = require("@enact/core/util");
8
+ var _I18nDecorator = require("@enact/i18n/I18nDecorator");
9
+ var _SpotlightContainerDecorator = _interopRequireDefault(require("@enact/spotlight/SpotlightContainerDecorator"));
10
+ var _Resizable = require("@enact/ui/Resizable");
11
+ var _VirtualList = require("@enact/ui/VirtualList");
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _warning = _interopRequireDefault(require("warning"));
15
+ var _useScroll3 = _interopRequireDefault(require("../useScroll"));
16
+ var _HoverToScroll = _interopRequireDefault(require("../useScroll/HoverToScroll"));
17
+ var _Scrollbar = _interopRequireDefault(require("../useScroll/Scrollbar"));
18
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
19
+ var _useThemeVirtualList = require("./useThemeVirtualList");
20
+ var _VirtualListModule = _interopRequireDefault(require("./VirtualList.module.css"));
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+ var _excluded = ["itemSize", "hoverToScroll"],
23
+ _excluded2 = ["className"],
24
+ _excluded3 = ["hoverToScroll"],
25
+ _excluded4 = ["className"];
26
+ /**
27
+ * Provides Limestone-themed virtual list components and behaviors.
28
+ *
29
+ * @module limestone/VirtualList
30
+ * @exports VirtualGridList
31
+ * @exports VirtualList
32
+ */
33
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
34
+ 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; }
35
+ 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; }
36
+ 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; }
37
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
38
+ 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); }
39
+ 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; }
40
+ 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; }
41
+ var nop = function nop() {};
42
+ var virtualListDefaultProps = {
43
+ 'data-spotlight-container-disabled': false,
44
+ cbScrollTo: nop,
45
+ direction: 'vertical',
46
+ horizontalScrollbar: 'auto',
47
+ noAffordance: false,
48
+ noScrollByDrag: false,
49
+ noScrollByWheel: false,
50
+ onScroll: nop,
51
+ onScrollStart: nop,
52
+ onScrollStop: nop,
53
+ overscrollEffectOn: {
54
+ arrowKey: false,
55
+ drag: true,
56
+ pageKey: false,
57
+ track: false,
58
+ wheel: true
59
+ },
60
+ pageScroll: false,
61
+ role: 'list',
62
+ scrollMode: 'native',
63
+ verticalScrollbar: 'auto',
64
+ wrap: false
65
+ };
66
+
67
+ /**
68
+ * A Limestone-styled scrollable and spottable virtual list component.
69
+ *
70
+ * @class VirtualList
71
+ * @memberof limestone/VirtualList
72
+ * @extends ui/VirtualList.VirtualListBasic
73
+ * @ui
74
+ * @public
75
+ */
76
+ var VirtualList = exports.VirtualList = function VirtualList(props) {
77
+ var virtualListProps = (0, _util.setDefaultProps)(props, virtualListDefaultProps);
78
+ if (typeof ENACT_PACK_NO_ANIMATION !== 'undefined' && ENACT_PACK_NO_ANIMATION) {
79
+ virtualListProps.overscrollEffectOn = {
80
+ arrowKey: false,
81
+ drag: false,
82
+ pageKey: false,
83
+ track: false,
84
+ wheel: false
85
+ };
86
+ }
87
+ var itemSize = virtualListProps.itemSize,
88
+ hoverToScroll = virtualListProps.hoverToScroll,
89
+ rest = _objectWithoutProperties(virtualListProps, _excluded);
90
+ var itemSizeProps = itemSize && itemSize.minSize ? {
91
+ itemSize: itemSize.minSize,
92
+ itemSizes: itemSize.size
93
+ } : {
94
+ itemSize: itemSize
95
+ };
96
+ process.env.NODE_ENV !== "production" ? (0, _warning["default"])(!itemSizeProps.itemSizes || !rest.cbScrollTo, 'VirtualList with `minSize` in `itemSize` prop does not support `cbScrollTo` prop') : void 0;
97
+
98
+ // Hooks
99
+
100
+ var _useScroll = (0, _useScroll3["default"])(_objectSpread(_objectSpread({}, rest), itemSizeProps)),
101
+ ScrollContentWrapper = _useScroll.scrollContentWrapper,
102
+ scrollContentHandle = _useScroll.scrollContentHandle,
103
+ isHorizontalScrollbarVisible = _useScroll.isHorizontalScrollbarVisible,
104
+ isVerticalScrollbarVisible = _useScroll.isVerticalScrollbarVisible,
105
+ resizeContextProps = _useScroll.resizeContextProps,
106
+ scrollContainerProps = _useScroll.scrollContainerProps,
107
+ scrollContentWrapperProps = _useScroll.scrollContentWrapperProps,
108
+ scrollContentProps = _useScroll.scrollContentProps,
109
+ horizontalScrollbarProps = _useScroll.horizontalScrollbarProps,
110
+ verticalScrollbarProps = _useScroll.verticalScrollbarProps,
111
+ hoverToScrollProps = _useScroll.hoverToScrollProps;
112
+ var className = scrollContentWrapperProps.className,
113
+ scrollContentWrapperRest = _objectWithoutProperties(scrollContentWrapperProps, _excluded2);
114
+ var themeScrollContainerProps = _objectSpread(_objectSpread({}, scrollContainerProps), {}, {
115
+ className: (0, _classnames["default"])(_VirtualListModule["default"].scrollContainer, scrollContainerProps.className)
116
+ });
117
+ var themeScrollContentProps = (0, _useThemeVirtualList.useThemeVirtualList)(_objectSpread(_objectSpread({}, scrollContentProps), {}, {
118
+ className: (0, _classnames["default"])(className, scrollContentProps.className)
119
+ }));
120
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Resizable.ResizeContext, _objectSpread(_objectSpread({}, resizeContextProps), {}, {
121
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(ScrollContentWrapper, _objectSpread(_objectSpread(_objectSpread({}, themeScrollContainerProps), scrollContentWrapperRest), {}, {
122
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualList.VirtualListBasic, _objectSpread(_objectSpread({}, themeScrollContentProps), {}, {
123
+ ref: scrollContentHandle
124
+ })), isVerticalScrollbarVisible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Scrollbar["default"], _objectSpread({}, verticalScrollbarProps)) : null, isHorizontalScrollbarVisible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Scrollbar["default"], _objectSpread({}, horizontalScrollbarProps)) : null, hoverToScroll ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_HoverToScroll["default"], _objectSpread({}, hoverToScrollProps)) : null]
125
+ }))
126
+ }));
127
+ };
128
+ VirtualList.displayName = 'VirtualList';
129
+ VirtualList.propTypes = /** @lends limestone/VirtualList.VirtualList.prototype */{
130
+ /**
131
+ * Size of an item for the VirtualList; valid value is a number generally.
132
+ * For different item size, value is an object that has `minSize`
133
+ * and `size` as properties.
134
+ * If the direction for the list is vertical, itemSize means the height of an item.
135
+ * For horizontal, it means the width of an item.
136
+ *
137
+ * Usage:
138
+ * ```
139
+ * <VirtualList itemSize={ri.scale(144)} />
140
+ * ```
141
+ *
142
+ * @type {Number|ui/VirtualList.itemSizesShape}
143
+ * @required
144
+ * @public
145
+ */
146
+ itemSize: _propTypes["default"].oneOfType([_propTypes["default"].number, _VirtualList.itemSizesShape]).isRequired,
147
+ /**
148
+ * A callback function that receives a reference to the `scrollTo` feature.
149
+ *
150
+ * Once received, the `scrollTo` method can be called as an imperative interface.
151
+ *
152
+ * The `scrollTo` function accepts the following parameters:
153
+ * - {position: {x, y}} - Pixel value for x and/or y position
154
+ * - {align} - Where the scroll area should be aligned. Values are:
155
+ * `'left'`, `'right'`, `'top'`, `'bottom'`,
156
+ * `'topleft'`, `'topright'`, `'bottomleft'`, and `'bottomright'`.
157
+ * - {index} - Index of specific item. (`0` or positive integer)
158
+ * This option is available for only `VirtualList` kind.
159
+ * - {node} - Node to scroll into view
160
+ * - {animate} - When `true`, scroll occurs with animation. When `false`, no
161
+ * animation occurs.
162
+ * - {focus} - When `true`, attempts to focus item after scroll. Only valid when scrolling
163
+ * by `index` or `node`.
164
+ * > Note: Only specify one of: `position`, `align`, `index` or `node`
165
+ *
166
+ * Example:
167
+ * ```
168
+ * // If you set cbScrollTo prop like below;
169
+ * cbScrollTo: (fn) => {this.scrollTo = fn;}
170
+ * // You can simply call like below;
171
+ * this.scrollTo({align: 'top'}); // scroll to the top
172
+ * ```
173
+ *
174
+ * @type {Function}
175
+ * @public
176
+ */
177
+ cbScrollTo: _propTypes["default"].func,
178
+ /**
179
+ * This is set to `true` by SpotlightContainerDecorator
180
+ *
181
+ * @type {Boolean}
182
+ * @private
183
+ */
184
+ 'data-spotlight-container': _propTypes["default"].bool,
185
+ /**
186
+ * `false` if the content of the list could get focus
187
+ *
188
+ * @type {Boolean}
189
+ * @default false
190
+ * @private
191
+ */
192
+ 'data-spotlight-container-disabled': _propTypes["default"].bool,
193
+ /**
194
+ * This is passed onto the wrapped component to allow
195
+ * it to customize the spotlight container for its use case.
196
+ *
197
+ * @type {String}
198
+ * @private
199
+ */
200
+ 'data-spotlight-id': _propTypes["default"].string,
201
+ /**
202
+ * Disable voice control feature of component.
203
+ *
204
+ * @type {Boolean}
205
+ * @public
206
+ */
207
+ 'data-webos-voice-disabled': _propTypes["default"].bool,
208
+ /**
209
+ * Activates the component for voice control.
210
+ *
211
+ * @type {Boolean}
212
+ * @public
213
+ */
214
+ 'data-webos-voice-focused': _propTypes["default"].bool,
215
+ /**
216
+ * The voice control group label.
217
+ *
218
+ * @type {String}
219
+ * @public
220
+ */
221
+ 'data-webos-voice-group-label': _propTypes["default"].string,
222
+ /**
223
+ * The layout direction of the list.
224
+ *
225
+ * @type {('horizontal'|'vertical')}
226
+ * @default 'vertical'
227
+ * @public
228
+ */
229
+ direction: _propTypes["default"].oneOf(['horizontal', 'vertical']),
230
+ /**
231
+ * Specifies how to show horizontal scrollbar.
232
+ *
233
+ * @type {('auto'|'visible'|'hidden')}
234
+ * @default 'auto'
235
+ * @public
236
+ */
237
+ horizontalScrollbar: _propTypes["default"].oneOf(['auto', 'visible', 'hidden']),
238
+ /**
239
+ * Sets the hint string read when focusing the scroll thumb in the horizontal scroll bar.
240
+ *
241
+ * @type {String}
242
+ * @default $L('scroll up or down with up down button')
243
+ * @public
244
+ */
245
+ horizontalScrollThumbAriaLabel: _propTypes["default"].string,
246
+ /**
247
+ * Enables scroll by hover on edges in scroll direction.
248
+ *
249
+ * @type {Boolean}
250
+ * @public
251
+ */
252
+ hoverToScroll: _propTypes["default"].bool,
253
+ /**
254
+ * Unique identifier for the component.
255
+ *
256
+ * When defined and when the `VirtualList` is within a {@link limestone/Panels.Panel|Panel},
257
+ * the `VirtualList` will store its scroll position and restore that position when returning to
258
+ * the `Panel`.
259
+ *
260
+ * @type {String}
261
+ * @public
262
+ */
263
+ id: _propTypes["default"].string,
264
+ /**
265
+ * Prop to check if horizontal Scrollbar exists or not.
266
+ *
267
+ * @type {Boolean}
268
+ * @private
269
+ */
270
+ isHorizontalScrollbarVisible: _propTypes["default"].bool,
271
+ /**
272
+ * Prop to check if vertical Scrollbar exists or not.
273
+ *
274
+ * @type {Boolean}
275
+ * @private
276
+ */
277
+ isVerticalScrollbarVisible: _propTypes["default"].bool,
278
+ /**
279
+ * The array for individually sized items.
280
+ *
281
+ * @type {Number[]}
282
+ * @private
283
+ */
284
+ itemSizes: _propTypes["default"].arrayOf(_propTypes["default"].number),
285
+ /**
286
+ * Removes affordance area on the list.
287
+ *
288
+ * @type {Boolean}
289
+ * @default false
290
+ * @private
291
+ */
292
+ noAffordance: _propTypes["default"].bool,
293
+ /**
294
+ * Prevents scroll by dragging or flicking on the list.
295
+ *
296
+ * @type {Boolean}
297
+ * @default false
298
+ * @private
299
+ */
300
+ noScrollByDrag: _propTypes["default"].bool,
301
+ /**
302
+ * Prevents scroll by wheeling on the list.
303
+ *
304
+ * @type {Boolean}
305
+ * @default false
306
+ * @public
307
+ */
308
+ noScrollByWheel: _propTypes["default"].bool,
309
+ /**
310
+ * Called when scrolling.
311
+ *
312
+ * Passes `scrollLeft`, `scrollTop`, and `moreInfo`.
313
+ * It is not recommended to set this prop since it can cause performance degradation.
314
+ * Use `onScrollStart` or `onScrollStop` instead.
315
+ *
316
+ * @type {Function}
317
+ * @param {Object} event
318
+ * @param {Number} event.scrollLeft Scroll left value.
319
+ * @param {Number} event.scrollTop Scroll top value.
320
+ * @param {Object} event.moreInfo The object including `firstVisibleIndex` and `lastVisibleIndex` properties.
321
+ * @public
322
+ */
323
+ onScroll: _propTypes["default"].func,
324
+ /**
325
+ * Called when scroll starts.
326
+ *
327
+ * Passes `scrollLeft`, `scrollTop`, and `moreInfo`.
328
+ * You can get firstVisibleIndex and lastVisibleIndex from VirtualList with `moreInfo`.
329
+ *
330
+ * Example:
331
+ * ```
332
+ * onScrollStart = ({scrollLeft, scrollTop, moreInfo}) => {
333
+ * const {firstVisibleIndex, lastVisibleIndex} = moreInfo;
334
+ * // do something with firstVisibleIndex and lastVisibleIndex
335
+ * }
336
+ *
337
+ * render = () => (
338
+ * <VirtualList
339
+ * ...
340
+ * onScrollStart={this.onScrollStart}
341
+ * ...
342
+ * />
343
+ * )
344
+ * ```
345
+ *
346
+ * @type {Function}
347
+ * @param {Object} event
348
+ * @param {Number} event.scrollLeft Scroll left value.
349
+ * @param {Number} event.scrollTop Scroll top value.
350
+ * @param {Object} event.moreInfo The object including `firstVisibleIndex` and `lastVisibleIndex` properties.
351
+ * @public
352
+ */
353
+ onScrollStart: _propTypes["default"].func,
354
+ /**
355
+ * Called when scroll stops.
356
+ *
357
+ * Passes `scrollLeft`, `scrollTop`, and `moreInfo`.
358
+ * You can get firstVisibleIndex and lastVisibleIndex from VirtualList with `moreInfo`.
359
+ *
360
+ * Example:
361
+ * ```
362
+ * onScrollStop = ({scrollLeft, scrollTop, moreInfo}) => {
363
+ * const {firstVisibleIndex, lastVisibleIndex} = moreInfo;
364
+ * // do something with firstVisibleIndex and lastVisibleIndex
365
+ * }
366
+ *
367
+ * render = () => (
368
+ * <VirtualList
369
+ * ...
370
+ * onScrollStop={this.onScrollStop}
371
+ * ...
372
+ * />
373
+ * )
374
+ * ```
375
+ *
376
+ * @type {Function}
377
+ * @param {Object} event
378
+ * @param {Number} event.scrollLeft Scroll left value.
379
+ * @param {Number} event.scrollTop Scroll top value.
380
+ * @param {Object} event.moreInfo The object including `firstVisibleIndex` and `lastVisibleIndex` properties.
381
+ * @public
382
+ */
383
+ onScrollStop: _propTypes["default"].func,
384
+ /**
385
+ * Specifies overscroll effects shows on which type of inputs.
386
+ *
387
+ * @type {Object}
388
+ * @default {
389
+ * arrowKey: false,
390
+ * drag: true,
391
+ * pageKey: false,
392
+ * track: false,
393
+ * wheel: true
394
+ * }
395
+ * @private
396
+ */
397
+ overscrollEffectOn: _propTypes["default"].shape({
398
+ arrowKey: _propTypes["default"].bool,
399
+ drag: _propTypes["default"].bool,
400
+ pageKey: _propTypes["default"].bool,
401
+ track: _propTypes["default"].bool,
402
+ wheel: _propTypes["default"].bool
403
+ }),
404
+ /**
405
+ * When `true`, the list will scroll by page. Otherwise, the list will scroll by item.
406
+ *
407
+ * @type {Boolean}
408
+ * @default false
409
+ * @private
410
+ */
411
+ pageScroll: _propTypes["default"].bool,
412
+ /**
413
+ * The ARIA role for the list.
414
+ *
415
+ * @type {String}
416
+ * @default 'list'
417
+ * @public
418
+ */
419
+ role: _propTypes["default"].string,
420
+ /**
421
+ * Specifies how to scroll.
422
+ *
423
+ * Valid values are:
424
+ * * `'translate'`,
425
+ * * `'native'`.
426
+ *
427
+ * @type {String}
428
+ * @default 'native'
429
+ * @public
430
+ */
431
+ scrollMode: _propTypes["default"].string,
432
+ /**
433
+ * The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
434
+ *
435
+ * It is a required prop to restore focus after remounting `VirtualList`.
436
+ *
437
+ * For example, with this prop specified, when a `VirtualList` is used in a {@link limestone/Panels.Panel|Panel},
438
+ * the `Spotlight` will store the last focus information based on `SpotlightId` while navigating to another Panel.
439
+ * And the `VirtualList` will restore the focus when it remounts while the navigation returns to the `Panel`.
440
+ *
441
+ * @type {String}
442
+ * @public
443
+ */
444
+ spotlightId: _propTypes["default"].string,
445
+ /**
446
+ * Specifies how to show vertical scrollbar.
447
+ *
448
+ * Valid values are:
449
+ * * `'auto'`,
450
+ * * `'visible'`, and
451
+ * * `'hidden'`.
452
+ *
453
+ * @type {('auto'|'visible'|'hidden')}
454
+ * @default 'auto'
455
+ * @public
456
+ */
457
+ verticalScrollbar: _propTypes["default"].oneOf(['auto', 'visible', 'hidden']),
458
+ /**
459
+ * Sets the hint string read when focusing the scroll thumb in the vertical scroll bar.
460
+ *
461
+ * @type {String}
462
+ * @default $L('scroll left or right with left right button')
463
+ * @public
464
+ */
465
+ verticalScrollThumbAriaLabel: _propTypes["default"].string,
466
+ /**
467
+ * When it's `true` and the spotlight focus cannot move to the given direction anymore by 5-way keys,
468
+ * a list is scrolled with an animation to the other side and the spotlight focus moves in wraparound manner.
469
+ *
470
+ * When it's `'noAnimation'`, the spotlight focus moves in wraparound manner as same as when it's `true`
471
+ * except that a list is scrolled without an animation.
472
+ *
473
+ * Valid values are:
474
+ * * `false`,
475
+ * * `true`, and
476
+ * * `'noAnimation'`
477
+ * @type {Boolean|'noAnimation'}
478
+ * @default false
479
+ * @public
480
+ */
481
+ wrap: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].oneOf(['noAnimation'])])
482
+ };
483
+ exports.VirtualList = VirtualList = (0, _Skinnable["default"])((0, _SpotlightContainerDecorator["default"])({
484
+ overflow: true,
485
+ preserveId: true,
486
+ restrict: 'self-first'
487
+ }, (0, _I18nDecorator.I18nContextDecorator)({
488
+ rtlProp: 'rtl'
489
+ }, VirtualList)));
490
+ VirtualList.defaultPropValues = virtualListDefaultProps;
491
+ var virtualGridListDefaultProps = {
492
+ 'data-spotlight-container-disabled': false,
493
+ cbScrollTo: nop,
494
+ direction: 'vertical',
495
+ horizontalScrollbar: 'auto',
496
+ noAffordance: false,
497
+ noScrollByDrag: false,
498
+ noScrollByWheel: false,
499
+ onScroll: nop,
500
+ onScrollStart: nop,
501
+ onScrollStop: nop,
502
+ overscrollEffectOn: {
503
+ arrowKey: false,
504
+ drag: true,
505
+ pageKey: false,
506
+ track: false,
507
+ wheel: true
508
+ },
509
+ pageScroll: false,
510
+ role: 'list',
511
+ scrollMode: 'native',
512
+ verticalScrollbar: 'auto',
513
+ wrap: false
514
+ };
515
+
516
+ /**
517
+ * A Limestone-styled scrollable and spottable virtual grid list component.
518
+ *
519
+ * @class VirtualGridList
520
+ * @memberof limestone/VirtualList
521
+ * @extends ui/VirtualList.VirtualListBasic
522
+ * @ui
523
+ * @public
524
+ */
525
+ var VirtualGridList = exports.VirtualGridList = function VirtualGridList(props) {
526
+ var virtualGridListProps = (0, _util.setDefaultProps)(props, virtualGridListDefaultProps);
527
+ if (typeof ENACT_PACK_NO_ANIMATION !== 'undefined' && ENACT_PACK_NO_ANIMATION) {
528
+ virtualGridListProps.overscrollEffectOn = {
529
+ arrowKey: false,
530
+ drag: false,
531
+ pageKey: false,
532
+ track: false,
533
+ wheel: false
534
+ };
535
+ }
536
+ var hoverToScroll = virtualGridListProps.hoverToScroll,
537
+ rest = _objectWithoutProperties(virtualGridListProps, _excluded3);
538
+ var _useScroll2 = (0, _useScroll3["default"])(rest),
539
+ ScrollContentWrapper = _useScroll2.scrollContentWrapper,
540
+ scrollContentHandle = _useScroll2.scrollContentHandle,
541
+ isHorizontalScrollbarVisible = _useScroll2.isHorizontalScrollbarVisible,
542
+ isVerticalScrollbarVisible = _useScroll2.isVerticalScrollbarVisible,
543
+ resizeContextProps = _useScroll2.resizeContextProps,
544
+ scrollContainerProps = _useScroll2.scrollContainerProps,
545
+ scrollContentWrapperProps = _useScroll2.scrollContentWrapperProps,
546
+ scrollContentProps = _useScroll2.scrollContentProps,
547
+ horizontalScrollbarProps = _useScroll2.horizontalScrollbarProps,
548
+ verticalScrollbarProps = _useScroll2.verticalScrollbarProps,
549
+ hoverToScrollProps = _useScroll2.hoverToScrollProps;
550
+ var className = scrollContentWrapperProps.className,
551
+ scrollContentWrapperRest = _objectWithoutProperties(scrollContentWrapperProps, _excluded4);
552
+ var themeScrollContentProps = (0, _useThemeVirtualList.useThemeVirtualList)(_objectSpread(_objectSpread({}, scrollContentProps), {}, {
553
+ className: (0, _classnames["default"])(className, scrollContentProps.className)
554
+ }));
555
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Resizable.ResizeContext, _objectSpread(_objectSpread({}, resizeContextProps), {}, {
556
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(ScrollContentWrapper, _objectSpread(_objectSpread(_objectSpread({}, scrollContainerProps), scrollContentWrapperRest), {}, {
557
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualList.VirtualListBasic, _objectSpread(_objectSpread({}, themeScrollContentProps), {}, {
558
+ ref: scrollContentHandle
559
+ })), isVerticalScrollbarVisible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Scrollbar["default"], _objectSpread({}, verticalScrollbarProps)) : null, isHorizontalScrollbarVisible ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Scrollbar["default"], _objectSpread({}, horizontalScrollbarProps)) : null, hoverToScroll ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_HoverToScroll["default"], _objectSpread({}, hoverToScrollProps)) : null]
560
+ }))
561
+ }));
562
+ };
563
+ VirtualGridList.displayName = 'VirtualGridList';
564
+ VirtualGridList.propTypes = /** @lends limestone/VirtualList.VirtualGridList.prototype */{
565
+ /**
566
+ * Size of an item for the VirtualGridList; valid value is an object that has `minWidth`
567
+ * and `minHeight` as properties.
568
+ *
569
+ * Usage:
570
+ * ```
571
+ * <VirtualGridList
572
+ * itemSize={{
573
+ * minWidth: ri.scale(360),
574
+ * minHeight: ri.scale(540)
575
+ * }}
576
+ * />
577
+ * ```
578
+ *
579
+ * @type {ui/VirtualList.gridListItemSizeShape}
580
+ * @required
581
+ * @public
582
+ */
583
+ itemSize: _VirtualList.gridListItemSizeShape.isRequired,
584
+ /**
585
+ * A callback function that receives a reference to the `scrollTo` feature.
586
+ *
587
+ * Once received, the `scrollTo` method can be called as an imperative interface.
588
+ *
589
+ * The `scrollTo` function accepts the following parameters:
590
+ * - {position: {x, y}} - Pixel value for x and/or y position
591
+ * - {align} - Where the scroll area should be aligned. Values are:
592
+ * `'left'`, `'right'`, `'top'`, `'bottom'`,
593
+ * `'topleft'`, `'topright'`, `'bottomleft'`, and `'bottomright'`.
594
+ * - {index} - Index of specific item. (`0` or positive integer)
595
+ * This option is available for only `VirtualList` kind.
596
+ * - {node} - Node to scroll into view
597
+ * - {animate} - When `true`, scroll occurs with animation. When `false`, no
598
+ * animation occurs.
599
+ * - {focus} - When `true`, attempts to focus item after scroll. Only valid when scrolling
600
+ * by `index` or `node`.
601
+ * > Note: Only specify one of: `position`, `align`, `index` or `node`
602
+ *
603
+ * Example:
604
+ * ```
605
+ * // If you set cbScrollTo prop like below;
606
+ * cbScrollTo: (fn) => {this.scrollTo = fn;}
607
+ * // You can simply call like below;
608
+ * this.scrollTo({align: 'top'}); // scroll to the top
609
+ * ```
610
+ *
611
+ * @type {Function}
612
+ * @public
613
+ */
614
+ cbScrollTo: _propTypes["default"].func,
615
+ /**
616
+ * This is set to `true` by SpotlightContainerDecorator
617
+ *
618
+ * @type {Boolean}
619
+ * @private
620
+ */
621
+ 'data-spotlight-container': _propTypes["default"].bool,
622
+ /**
623
+ * `false` if the content of the list could get focus
624
+ *
625
+ * @type {Boolean}
626
+ * @default false
627
+ * @private
628
+ */
629
+ 'data-spotlight-container-disabled': _propTypes["default"].bool,
630
+ /**
631
+ * This is passed onto the wrapped component to allow
632
+ * it to customize the spotlight container for its use case.
633
+ *
634
+ * @type {String}
635
+ * @private
636
+ */
637
+ 'data-spotlight-id': _propTypes["default"].string,
638
+ /**
639
+ * Disable voice control feature of component.
640
+ *
641
+ * @type {Boolean}
642
+ * @public
643
+ */
644
+ 'data-webos-voice-disabled': _propTypes["default"].bool,
645
+ /**
646
+ * Activates the component for voice control.
647
+ *
648
+ * @type {Boolean}
649
+ * @public
650
+ */
651
+ 'data-webos-voice-focused': _propTypes["default"].bool,
652
+ /**
653
+ * The voice control group label.
654
+ *
655
+ * @type {String}
656
+ * @public
657
+ */
658
+ 'data-webos-voice-group-label': _propTypes["default"].string,
659
+ /**
660
+ * The layout direction of the list.
661
+ *
662
+ * @type {('horizontal'|'vertical')}
663
+ * @default 'vertical'
664
+ * @public
665
+ */
666
+ direction: _propTypes["default"].oneOf(['horizontal', 'vertical']),
667
+ /**
668
+ * Specifies how to show horizontal scrollbar.
669
+ *
670
+ * @type {('auto'|'visible'|'hidden')}
671
+ * @default 'auto'
672
+ * @public
673
+ */
674
+ horizontalScrollbar: _propTypes["default"].oneOf(['auto', 'visible', 'hidden']),
675
+ /**
676
+ * Sets the hint string read when focusing the scroll thumb in the horizontal scroll bar.
677
+ *
678
+ * @type {String}
679
+ * @default $L('scroll up or down with up down button')
680
+ * @public
681
+ */
682
+ horizontalScrollThumbAriaLabel: _propTypes["default"].string,
683
+ /**
684
+ * Enables scroll by hover on edges in scroll direction.
685
+ *
686
+ * @type {Boolean}
687
+ * @public
688
+ */
689
+ hoverToScroll: _propTypes["default"].bool,
690
+ /**
691
+ * Unique identifier for the component.
692
+ *
693
+ * When defined and when the `VirtualGridList` is within a {@link limestone/Panels.Panel|Panel},
694
+ * the `VirtualGridList` will store its scroll position and restore that position when returning to
695
+ * the `Panel`.
696
+ *
697
+ * @type {String}
698
+ * @public
699
+ */
700
+ id: _propTypes["default"].string,
701
+ /**
702
+ * Prop to check if horizontal Scrollbar exists or not.
703
+ *
704
+ * @type {Boolean}
705
+ * @private
706
+ */
707
+ isHorizontalScrollbarVisible: _propTypes["default"].bool,
708
+ /**
709
+ * Prop to check if vertical Scrollbar exists or not.
710
+ *
711
+ * @type {Boolean}
712
+ * @private
713
+ */
714
+ isVerticalScrollbarVisible: _propTypes["default"].bool,
715
+ /**
716
+ * Removes affordance area on the list.
717
+ * Set this to `true` only if the item needs to stick to the bottom for vertical direction,
718
+ * to the right for horizontal direction, when scrolling by keys.
719
+ *
720
+ * @type {Boolean}
721
+ * @default false
722
+ * @public
723
+ */
724
+ noAffordance: _propTypes["default"].bool,
725
+ /**
726
+ * Prevents scroll by dragging or flicking on the list.
727
+ *
728
+ * @type {Boolean}
729
+ * @default false
730
+ * @private
731
+ */
732
+ noScrollByDrag: _propTypes["default"].bool,
733
+ /**
734
+ * Prevents scroll by wheeling on the list.
735
+ *
736
+ * @type {Boolean}
737
+ * @default false
738
+ * @public
739
+ */
740
+ noScrollByWheel: _propTypes["default"].bool,
741
+ /**
742
+ * Called when scrolling.
743
+ *
744
+ * Passes `scrollLeft`, `scrollTop`, and `moreInfo`.
745
+ * It is not recommended to set this prop since it can cause performance degradation.
746
+ * Use `onScrollStart` or `onScrollStop` instead.
747
+ *
748
+ * @type {Function}
749
+ * @param {Object} event
750
+ * @param {Number} event.scrollLeft Scroll left value.
751
+ * @param {Number} event.scrollTop Scroll top value.
752
+ * @param {Object} event.moreInfo The object including `firstVisibleIndex` and `lastVisibleIndex` properties.
753
+ * @public
754
+ */
755
+ onScroll: _propTypes["default"].func,
756
+ /**
757
+ * Called when scroll starts.
758
+ *
759
+ * Passes `scrollLeft`, `scrollTop`, and `moreInfo`.
760
+ * You can get firstVisibleIndex and lastVisibleIndex from VirtualGridList with `moreInfo`.
761
+ *
762
+ * Example:
763
+ * ```
764
+ * onScrollStart = ({scrollLeft, scrollTop, moreInfo}) => {
765
+ * const {firstVisibleIndex, lastVisibleIndex} = moreInfo;
766
+ * // do something with firstVisibleIndex and lastVisibleIndex
767
+ * }
768
+ *
769
+ * render = () => (
770
+ * <VirtualGridList
771
+ * ...
772
+ * onScrollStart={this.onScrollStart}
773
+ * ...
774
+ * />
775
+ * )
776
+ * ```
777
+ *
778
+ * @type {Function}
779
+ * @param {Object} event
780
+ * @param {Number} event.scrollLeft Scroll left value.
781
+ * @param {Number} event.scrollTop Scroll top value.
782
+ * @param {Object} event.moreInfo The object including `firstVisibleIndex` and `lastVisibleIndex` properties.
783
+ * @public
784
+ */
785
+ onScrollStart: _propTypes["default"].func,
786
+ /**
787
+ * Called when scroll stops.
788
+ *
789
+ * Passes `scrollLeft`, `scrollTop`, and `moreInfo`.
790
+ * You can get firstVisibleIndex and lastVisibleIndex from VirtualGridList with `moreInfo`.
791
+ *
792
+ * Example:
793
+ * ```
794
+ * onScrollStop = ({scrollLeft, scrollTop, moreInfo}) => {
795
+ * const {firstVisibleIndex, lastVisibleIndex} = moreInfo;
796
+ * // do something with firstVisibleIndex and lastVisibleIndex
797
+ * }
798
+ *
799
+ * render = () => (
800
+ * <VirtualGridList
801
+ * ...
802
+ * onScrollStop={this.onScrollStop}
803
+ * ...
804
+ * />
805
+ * )
806
+ * ```
807
+ *
808
+ * @type {Function}
809
+ * @param {Object} event
810
+ * @param {Number} event.scrollLeft Scroll left value.
811
+ * @param {Number} event.scrollTop Scroll top value.
812
+ * @param {Object} event.moreInfo The object including `firstVisibleIndex` and `lastVisibleIndex` properties.
813
+ * @public
814
+ */
815
+ onScrollStop: _propTypes["default"].func,
816
+ /**
817
+ * Specifies overscroll effects shows on which type of inputs.
818
+ *
819
+ * @type {Object}
820
+ * @default {
821
+ * arrowKey: false,
822
+ * drag: true,
823
+ * pageKey: false,
824
+ * track: false,
825
+ * wheel: true
826
+ * }
827
+ * @private
828
+ */
829
+ overscrollEffectOn: _propTypes["default"].shape({
830
+ arrowKey: _propTypes["default"].bool,
831
+ drag: _propTypes["default"].bool,
832
+ pageKey: _propTypes["default"].bool,
833
+ track: _propTypes["default"].bool,
834
+ wheel: _propTypes["default"].bool
835
+ }),
836
+ /**
837
+ * When `true`, the list will scroll by page. Otherwise, the list will scroll by item.
838
+ *
839
+ * @type {Boolean}
840
+ * @default false
841
+ * @private
842
+ */
843
+ pageScroll: _propTypes["default"].bool,
844
+ /**
845
+ * The ARIA role for the list.
846
+ *
847
+ * @type {String}
848
+ * @default 'list'
849
+ * @public
850
+ */
851
+ role: _propTypes["default"].string,
852
+ /**
853
+ * Specifies how to scroll.
854
+ *
855
+ * Valid values are:
856
+ * * `'translate'`,
857
+ * * `'native'`.
858
+ *
859
+ * @type {String}
860
+ * @default 'native'
861
+ * @public
862
+ */
863
+ scrollMode: _propTypes["default"].string,
864
+ /**
865
+ * When it's true, the item snaps to center.
866
+ *
867
+ * @type {Boolean}
868
+ * @public
869
+ */
870
+ snapToCenter: _propTypes["default"].bool,
871
+ /**
872
+ * The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
873
+ *
874
+ * It is a required prop to restore focus after remounting `VirtualGridList`.
875
+ *
876
+ * For example, with this prop specified, when a `VirtualGridList` is used in a {@link limestone/Panels.Panel|Panel},
877
+ * the `Spotlight` will store the last focus information based on `SpotlightId` while navigating to another Panel.
878
+ * And the `VirtualGridList` will restore the focus when it remounts while the navigation returns to the `Panel`.
879
+ *
880
+ * @type {String}
881
+ * @public
882
+ */
883
+ spotlightId: _propTypes["default"].string,
884
+ /**
885
+ * Specifies how to show vertical scrollbar.
886
+ *
887
+ * Valid values are:
888
+ * * `'auto'`,
889
+ * * `'visible'`, and
890
+ * * `'hidden'`.
891
+ *
892
+ * @type {('auto'|'visible'|'hidden')}
893
+ * @default 'auto'
894
+ * @public
895
+ */
896
+ verticalScrollbar: _propTypes["default"].oneOf(['auto', 'visible', 'hidden']),
897
+ /**
898
+ * Sets the hint string read when focusing the scroll thumb in the vertical scroll bar.
899
+ *
900
+ * @type {String}
901
+ * @default $L('scroll left or right with left right button')
902
+ * @public
903
+ */
904
+ verticalScrollThumbAriaLabel: _propTypes["default"].string,
905
+ /**
906
+ * When it's `true` and the spotlight focus cannot move to the given direction anymore by 5-way keys,
907
+ * a list is scrolled with an animation to the other side and the spotlight focus moves in wraparound manner.
908
+ *
909
+ * When it's `'noAnimation'`, the spotlight focus moves in wraparound manner as same as when it's `true`
910
+ * except that a list is scrolled without an animation.
911
+ *
912
+ * Valid values are:
913
+ * * `false`,
914
+ * * `true`, and
915
+ * * `'noAnimation'`
916
+ *
917
+ * @type {Boolean|'noAnimation'}
918
+ * @default false
919
+ * @public
920
+ */
921
+ wrap: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].oneOf(['noAnimation'])])
922
+ };
923
+ exports.VirtualGridList = VirtualGridList = (0, _Skinnable["default"])((0, _SpotlightContainerDecorator["default"])({
924
+ overflow: true,
925
+ preserveId: true,
926
+ restrict: 'self-first'
927
+ }, (0, _I18nDecorator.I18nContextDecorator)({
928
+ rtlProp: 'rtl'
929
+ }, VirtualGridList)));
930
+ VirtualGridList.defaultPropValues = virtualGridListDefaultProps;
931
+ var _default = exports["default"] = VirtualList;