@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,471 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useThemeVirtualList = exports["default"] = void 0;
7
+ var _spotlight = _interopRequireWildcard(require("@enact/spotlight"));
8
+ var _Accelerator = _interopRequireDefault(require("@enact/spotlight/Accelerator"));
9
+ var _Pause = _interopRequireDefault(require("@enact/spotlight/Pause"));
10
+ var _target = require("@enact/spotlight/src/target");
11
+ var _Spottable = require("@enact/spotlight/Spottable");
12
+ var _resolution = _interopRequireDefault(require("@enact/ui/resolution"));
13
+ var _utilDOM = _interopRequireDefault(require("@enact/ui/useScroll/utilDOM"));
14
+ var _react = require("react");
15
+ var _useScroll = require("../useScroll");
16
+ var _useEvent = require("./useEvent");
17
+ var _usePreventScroll = _interopRequireDefault(require("./usePreventScroll"));
18
+ var _useSpotlight = require("./useSpotlight");
19
+ var _useThemeVirtualListModule = _interopRequireDefault(require("./useThemeVirtualList.module.css"));
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ var _excluded = ["itemRenderer", "data-webos-voice-focused", "data-webos-voice-group-label", "data-webos-voice-disabled"],
22
+ _excluded2 = ["index"];
23
+ var _this = void 0;
24
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
25
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
26
+ 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; }
27
+ 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; }
28
+ 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; }
29
+ 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; }
30
+ 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; }
31
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
32
+ 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); }
33
+ var SpotlightAccelerator = new _Accelerator["default"]();
34
+ var SpotlightPlaceholder = (0, _Spottable.Spottable)('div');
35
+ var nop = function nop() {},
36
+ getNumberValue = function getNumberValue(index) {
37
+ // using '+ operator' for string > number conversion based on performance: https://jsperf.com/convert-string-to-number-techniques/7
38
+ var number = +index;
39
+ // should return -1 if index is not a number or a negative value
40
+ return number >= 0 ? number : -1;
41
+ };
42
+ var useSpottable = function useSpottable(props, instances) {
43
+ var noAffordance = props.noAffordance,
44
+ scrollMode = props.scrollMode,
45
+ snapToCenter = props.snapToCenter;
46
+ var itemRefs = instances.itemRefs,
47
+ scrollContainerRef = instances.scrollContainerRef,
48
+ scrollContentHandle = instances.scrollContentHandle;
49
+ var getItemNode = function getItemNode(index) {
50
+ var itemNode = itemRefs.current[index % scrollContentHandle.current.state.numOfItems];
51
+ return itemNode && parseInt(itemNode.dataset.index) === index ? itemNode : null;
52
+ };
53
+
54
+ // Mutable value
55
+
56
+ var mutableRef = (0, _react.useRef)({
57
+ dataSize: 0,
58
+ isScrolledBy5way: false,
59
+ isScrolledByJump: false,
60
+ isScrollingBySnapToCenter: false,
61
+ isWrappedBy5way: false,
62
+ lastFocusedIndex: null,
63
+ pause: new _Pause["default"]('VirtualListBasic'),
64
+ scaledTarget: null
65
+ });
66
+ var pause = mutableRef.current.pause;
67
+
68
+ // Hooks
69
+
70
+ (0, _useSpotlight.useSpotlightConfig)(props, {
71
+ spottable: mutableRef
72
+ });
73
+ var _useEventKey = (0, _useEvent.useEventKey)(props, instances, {
74
+ handlePageUpDownKeyDown: function handlePageUpDownKeyDown() {
75
+ mutableRef.current.isScrolledBy5way = false;
76
+ },
77
+ handleDirectionKeyDown: function handleDirectionKeyDown(ev, eventType, param) {
78
+ switch (eventType) {
79
+ case 'acceleratedKeyDown':
80
+ onAcceleratedKeyDown(param);
81
+ break;
82
+ case 'keyDown':
83
+ if (_spotlight["default"].move(param.direction)) {
84
+ var nextTargetIndex = _spotlight["default"].getCurrent().dataset.index;
85
+ ev.preventDefault();
86
+ ev.stopPropagation();
87
+ if (typeof nextTargetIndex === 'string') {
88
+ onAcceleratedKeyDown(_objectSpread(_objectSpread({}, param), {}, {
89
+ nextIndex: getNumberValue(nextTargetIndex)
90
+ }));
91
+ }
92
+ }
93
+ break;
94
+ case 'keyLeave':
95
+ SpotlightAccelerator.reset();
96
+ break;
97
+ }
98
+ },
99
+ handle5WayKeyUp: function handle5WayKeyUp() {
100
+ SpotlightAccelerator.reset();
101
+ },
102
+ spotlightAcceleratorProcessKey: function spotlightAcceleratorProcessKey(ev) {
103
+ return SpotlightAccelerator.processKey(ev, nop);
104
+ }
105
+ }),
106
+ addGlobalKeyDownEventListener = _useEventKey.addGlobalKeyDownEventListener,
107
+ removeGlobalKeyDownEventListener = _useEventKey.removeGlobalKeyDownEventListener;
108
+ (0, _useEvent.useEventFocus)(props, instances, {
109
+ removeScaleEffect: removeScaleEffect.bind(_this)
110
+ });
111
+ var _useSpotlightRestore = (0, _useSpotlight.useSpotlightRestore)(props, _objectSpread(_objectSpread({}, instances), {}, {
112
+ spottable: mutableRef
113
+ }), {
114
+ focusByIndex: focusByIndex,
115
+ getItemNode: getItemNode
116
+ }),
117
+ handlePlaceholderFocus = _useSpotlightRestore.handlePlaceholderFocus,
118
+ handleRestoreLastFocus = _useSpotlightRestore.handleRestoreLastFocus,
119
+ setPreservedIndex = _useSpotlightRestore.setPreservedIndex,
120
+ updateStatesAndBounds = _useSpotlightRestore.updateStatesAndBounds;
121
+ function pauseSpotlight(bool) {
122
+ if (bool) {
123
+ pause.pause();
124
+ } else {
125
+ pause.resume();
126
+ }
127
+ }
128
+ var setContainerDisabled = (0, _react.useCallback)(function (bool) {
129
+ if (scrollContainerRef.current) {
130
+ scrollContainerRef.current.dataset.spotlightContainerDisabled = bool;
131
+ if (bool) {
132
+ addGlobalKeyDownEventListener(handleGlobalKeyDown);
133
+ } else {
134
+ removeGlobalKeyDownEventListener();
135
+ }
136
+ }
137
+ }, [addGlobalKeyDownEventListener, handleGlobalKeyDown, removeGlobalKeyDownEventListener, scrollContainerRef]);
138
+
139
+ // eslint-disable-next-line react-hooks/exhaustive-deps
140
+ function handleGlobalKeyDown(ev) {
141
+ // To prevent scrolling by native scroller
142
+ if (scrollMode === 'native') {
143
+ ev.preventDefault();
144
+ ev.stopPropagation();
145
+ }
146
+ setContainerDisabled(false);
147
+ }
148
+ (0, _react.useEffect)(function () {
149
+ if (scrollContainerRef.current && scrollContainerRef.current.dataset.spotlightContainerDisabled === 'true') {
150
+ removeGlobalKeyDownEventListener();
151
+ addGlobalKeyDownEventListener(handleGlobalKeyDown);
152
+ }
153
+ }, [handleGlobalKeyDown]); // eslint-disable-line react-hooks/exhaustive-deps
154
+
155
+ (0, _react.useEffect)(function () {
156
+ return function () {
157
+ pause.resume();
158
+ SpotlightAccelerator.reset();
159
+ setContainerDisabled(false);
160
+ };
161
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
162
+
163
+ if (props.dataSize !== mutableRef.current.dataSize) {
164
+ var _current$dataset;
165
+ var current = _spotlight["default"].getCurrent();
166
+ if (current && props.scrollContainerContainsDangerously(current) && ((_current$dataset = current.dataset) === null || _current$dataset === void 0 ? void 0 : _current$dataset.index) > props.dataSize - 1) {
167
+ // if a focused item is about to disappear
168
+ setPreservedIndex(props.dataSize - 1);
169
+ }
170
+ mutableRef.current.dataSize = props.dataSize;
171
+ }
172
+
173
+ // Functions
174
+
175
+ function onAcceleratedKeyDown(_ref) {
176
+ var isWrapped = _ref.isWrapped,
177
+ keyCode = _ref.keyCode,
178
+ nextIndex = _ref.nextIndex,
179
+ repeat = _ref.repeat,
180
+ target = _ref.target;
181
+ var cbScrollTo = props.cbScrollTo,
182
+ dataSize = props.dataSize,
183
+ wrap = props.wrap,
184
+ orientation = props.direction;
185
+ var _scrollContentHandle$ = scrollContentHandle.current,
186
+ dimensionToExtent = _scrollContentHandle$.dimensionToExtent,
187
+ _scrollContentHandle$2 = _scrollContentHandle$.primary,
188
+ clientSize = _scrollContentHandle$2.clientSize,
189
+ itemSize = _scrollContentHandle$2.itemSize,
190
+ scrollPosition = _scrollContentHandle$.scrollPosition,
191
+ scrollPositionTarget = _scrollContentHandle$.scrollPositionTarget;
192
+ var index = getNumberValue(target.dataset.index);
193
+ var direction = (0, _spotlight.getDirection)(keyCode);
194
+ var allowAffordance = !(noAffordance || orientation === 'horizontal');
195
+ var shouldMove = snapToCenter ? nextIndex > 0 && nextIndex < dataSize - 1 && index > 0 : nextIndex >= 0 && index >= 0;
196
+ mutableRef.current.isScrolledBy5way = false;
197
+ mutableRef.current.isScrolledByJump = false;
198
+ if (shouldMove) {
199
+ var row = Math.floor(index / dimensionToExtent),
200
+ nextRow = Math.floor(nextIndex / dimensionToExtent),
201
+ start = scrollContentHandle.current.getGridPosition(nextIndex).primaryPosition,
202
+ end = props.itemSizes ? scrollContentHandle.current.getItemBottomPosition(nextIndex) : start + itemSize,
203
+ startBoundary = scrollMode === 'native' ? scrollPosition : scrollPositionTarget,
204
+ endBoundary = startBoundary + clientSize - (!allowAffordance ? 0 : _resolution["default"].scale(_useScroll.affordanceSize));
205
+ mutableRef.current.lastFocusedIndex = nextIndex;
206
+ if (start >= startBoundary && end <= endBoundary) {
207
+ // The next item could be still out of viewport. So we need to prevent scrolling into view with `isScrolledBy5way` flag.
208
+ mutableRef.current.isScrolledBy5way = true;
209
+ focusByIndex(nextIndex, direction);
210
+ mutableRef.current.isScrolledBy5way = false;
211
+ } else if (row === nextRow) {
212
+ focusByIndex(nextIndex, direction);
213
+ } else if (!snapToCenter || !mutableRef.current.isScrollingBySnapToCenter) {
214
+ var itemNode = getItemNode(nextIndex);
215
+ var stickTo = Math.abs(endBoundary - end) < Math.abs(startBoundary - start) ? 'end' : 'start';
216
+ stickTo = snapToCenter ? 'center' : stickTo;
217
+ mutableRef.current.isScrolledBy5way = true;
218
+ mutableRef.current.isWrappedBy5way = isWrapped;
219
+ if (snapToCenter) {
220
+ mutableRef.current.isScrollingBySnapToCenter = true;
221
+ }
222
+ if (isWrapped && wrap === true && itemNode === null) {
223
+ pause.pause();
224
+ target.blur();
225
+ }
226
+ focusByIndex(nextIndex, direction, true);
227
+ cbScrollTo({
228
+ index: nextIndex,
229
+ stickTo: stickTo,
230
+ offset: allowAffordance && stickTo === 'end' ? _resolution["default"].scale(_useScroll.affordanceSize) : 0,
231
+ disallowNegativeOffset: true,
232
+ animate: !(isWrapped && wrap === 'noAnimation'),
233
+ focus: snapToCenter
234
+ });
235
+ }
236
+ } else if (!repeat && _spotlight["default"].move(direction)) {
237
+ SpotlightAccelerator.reset();
238
+ }
239
+ }
240
+ function focusOnNode(node) {
241
+ if (node) {
242
+ return _spotlight["default"].focus(node);
243
+ }
244
+ return false;
245
+ }
246
+ function focusByIndex(index, direction, waiting) {
247
+ var itemNode = getItemNode(index);
248
+ var returnVal = false;
249
+ if (!itemNode && index >= 0 && index < props.dataSize) {
250
+ // Item is valid but since the dom doesn't exist yet, we set the index to focus after the ongoing update
251
+ setPreservedIndex(index, direction);
252
+ } else {
253
+ var _current = _spotlight["default"].getCurrent(),
254
+ candidate = _current ? (0, _target.getTargetByDirectionFromElement)(direction, _current) : itemNode;
255
+
256
+ // Remove any preservedIndex
257
+ setPreservedIndex(-1);
258
+ if (mutableRef.current.isWrappedBy5way) {
259
+ SpotlightAccelerator.reset();
260
+ mutableRef.current.isWrappedBy5way = false;
261
+ }
262
+ pause.resume();
263
+ if (_utilDOM["default"].containsDangerously(itemNode, candidate)) {
264
+ returnVal = focusOnNode(candidate);
265
+ } else if (!mutableRef.current.isScrollingBySnapToCenter || props.scrollContainerContainsDangerously(_current)) {
266
+ returnVal = focusOnNode(itemNode);
267
+ }
268
+ mutableRef.current.isScrolledBy5way = false;
269
+ mutableRef.current.isScrolledByJump = false;
270
+ if (!waiting) {
271
+ mutableRef.current.isScrollingBySnapToCenter = false;
272
+ }
273
+ }
274
+ return returnVal;
275
+ }
276
+ function calculatePositionOnFocus(_ref2) {
277
+ var item = _ref2.item,
278
+ _ref2$scrollPosition = _ref2.scrollPosition,
279
+ scrollPosition = _ref2$scrollPosition === void 0 ? scrollContentHandle.current.scrollPosition : _ref2$scrollPosition;
280
+ var pageScroll = props.pageScroll,
281
+ direction = props.direction;
282
+ var _scrollContentHandle$3 = scrollContentHandle.current,
283
+ numOfItems = _scrollContentHandle$3.state.numOfItems,
284
+ primary = _scrollContentHandle$3.primary;
285
+ var allowAffordance = !(noAffordance || direction === 'horizontal');
286
+ var offsetToClientEnd = Math.max(0, primary.clientSize - (snapToCenter ? primary.gridSize : primary.itemSize) - (!allowAffordance ? 0 : _resolution["default"].scale(_useScroll.affordanceSize)));
287
+ var focusedIndex = getNumberValue(item.getAttribute(_useScroll.dataIndexAttribute));
288
+ var offsetToCenter = snapToCenter ? primary.clientSize / 2 - primary.gridSize / 2 : 0;
289
+ if (focusedIndex >= 0) {
290
+ var gridPosition = scrollContentHandle.current.getGridPosition(focusedIndex);
291
+ if (numOfItems > 0 && focusedIndex % numOfItems !== mutableRef.current.lastFocusedIndex % numOfItems) {
292
+ var itemNode = getItemNode(mutableRef.current.lastFocusedIndex);
293
+ if (itemNode) {
294
+ itemNode.blur();
295
+ }
296
+ }
297
+ mutableRef.current.lastFocusedIndex = focusedIndex;
298
+ if (primary.clientSize >= primary.itemSize) {
299
+ if (gridPosition.primaryPosition > scrollPosition + offsetToClientEnd) {
300
+ // forward over
301
+ gridPosition.primaryPosition -= pageScroll ? 0 : offsetToClientEnd - offsetToCenter;
302
+ } else if (gridPosition.primaryPosition >= scrollPosition) {
303
+ // inside of client
304
+ if (scrollMode === 'translate') {
305
+ gridPosition.primaryPosition = scrollPosition;
306
+ } else {
307
+ // This code uses the trick to change the target position slightly which will not affect the actual result
308
+ // since a browser ignore `scrollTo` method if the target position is same as the current position.
309
+ gridPosition.primaryPosition = scrollPosition + (scrollContentHandle.current.scrollPosition === scrollPosition ? 0.1 : 0);
310
+ }
311
+ } else {
312
+ // backward over
313
+ gridPosition.primaryPosition -= pageScroll ? offsetToClientEnd : offsetToCenter;
314
+ }
315
+ }
316
+
317
+ // Since the result is used as a target position to be scrolled,
318
+ // secondaryPosition should be 0 here.
319
+ gridPosition.secondaryPosition = 0;
320
+ return scrollContentHandle.current.gridPositionToItemPosition(gridPosition);
321
+ }
322
+ }
323
+ function shouldPreventScrollByFocus() {
324
+ return scrollMode === 'translate' ? mutableRef.current.isScrolledBy5way : mutableRef.current.isScrolledBy5way || mutableRef.current.isScrolledByJump;
325
+ }
326
+ function shouldPreventOverscrollEffect() {
327
+ return mutableRef.current.isWrappedBy5way;
328
+ }
329
+ function setLastFocusedNode(node) {
330
+ mutableRef.current.lastFocusedIndex = node.dataset && getNumberValue(node.dataset.index);
331
+ }
332
+ function resetSnapToCenterStatus() {
333
+ mutableRef.current.isScrollingBySnapToCenter = false;
334
+ }
335
+ function addScaleEffect(elem) {
336
+ elem.classList.add(_useThemeVirtualListModule["default"].scaled);
337
+ mutableRef.current.scaledTarget = elem;
338
+ }
339
+ function removeScaleEffect() {
340
+ if (mutableRef.current.scaledTarget) {
341
+ mutableRef.current.scaledTarget.classList.remove(_useThemeVirtualListModule["default"].scaled);
342
+ mutableRef.current.scaledTarget = null;
343
+ }
344
+ }
345
+ function getScrollBounds() {
346
+ return scrollContentHandle.current.getScrollBounds();
347
+ }
348
+
349
+ // Return
350
+
351
+ return {
352
+ addScaleEffect: addScaleEffect,
353
+ calculatePositionOnFocus: calculatePositionOnFocus,
354
+ focusByIndex: focusByIndex,
355
+ focusOnNode: focusOnNode,
356
+ getScrollBounds: getScrollBounds,
357
+ handlePlaceholderFocus: handlePlaceholderFocus,
358
+ handleRestoreLastFocus: handleRestoreLastFocus,
359
+ pauseSpotlight: pauseSpotlight,
360
+ removeScaleEffect: removeScaleEffect,
361
+ resetSnapToCenterStatus: resetSnapToCenterStatus,
362
+ setContainerDisabled: setContainerDisabled,
363
+ setLastFocusedNode: setLastFocusedNode,
364
+ shouldPreventOverscrollEffect: shouldPreventOverscrollEffect,
365
+ shouldPreventScrollByFocus: shouldPreventScrollByFocus,
366
+ updateStatesAndBounds: updateStatesAndBounds
367
+ };
368
+ };
369
+ var useThemeVirtualList = exports.useThemeVirtualList = function useThemeVirtualList(props) {
370
+ var itemRefs = props.itemRefs,
371
+ scrollContainerRef = props.scrollContainerRef,
372
+ scrollContentHandle = props.scrollContentHandle,
373
+ scrollContentRef = props.scrollContentRef;
374
+
375
+ // Hooks
376
+
377
+ var instance = {
378
+ itemRefs: itemRefs,
379
+ scrollContainerRef: scrollContainerRef,
380
+ scrollContentHandle: scrollContentHandle,
381
+ scrollContentRef: scrollContentRef
382
+ };
383
+ var _useSpottable = useSpottable(props, instance),
384
+ addScaleEffect = _useSpottable.addScaleEffect,
385
+ calculatePositionOnFocus = _useSpottable.calculatePositionOnFocus,
386
+ focusByIndex = _useSpottable.focusByIndex,
387
+ focusOnNode = _useSpottable.focusOnNode,
388
+ getScrollBounds = _useSpottable.getScrollBounds,
389
+ handlePlaceholderFocus = _useSpottable.handlePlaceholderFocus,
390
+ handleRestoreLastFocus = _useSpottable.handleRestoreLastFocus,
391
+ pauseSpotlight = _useSpottable.pauseSpotlight,
392
+ removeScaleEffect = _useSpottable.removeScaleEffect,
393
+ resetSnapToCenterStatus = _useSpottable.resetSnapToCenterStatus,
394
+ setContainerDisabled = _useSpottable.setContainerDisabled,
395
+ setLastFocusedNode = _useSpottable.setLastFocusedNode,
396
+ shouldPreventOverscrollEffect = _useSpottable.shouldPreventOverscrollEffect,
397
+ shouldPreventScrollByFocus = _useSpottable.shouldPreventScrollByFocus,
398
+ updateStatesAndBounds = _useSpottable.updateStatesAndBounds;
399
+ (0, _usePreventScroll["default"])(props, instance);
400
+ var handle = {
401
+ addScaleEffect: addScaleEffect,
402
+ calculatePositionOnFocus: calculatePositionOnFocus,
403
+ focusByIndex: focusByIndex,
404
+ focusOnNode: focusOnNode,
405
+ getScrollBounds: getScrollBounds,
406
+ pauseSpotlight: pauseSpotlight,
407
+ removeScaleEffect: removeScaleEffect,
408
+ resetSnapToCenterStatus: resetSnapToCenterStatus,
409
+ setContainerDisabled: setContainerDisabled,
410
+ setLastFocusedNode: setLastFocusedNode,
411
+ shouldPreventOverscrollEffect: shouldPreventOverscrollEffect,
412
+ shouldPreventScrollByFocus: shouldPreventScrollByFocus
413
+ };
414
+ props.setThemeScrollContentHandle(handle);
415
+ function getAffordance() {
416
+ // To add space for the last item margin bottom
417
+ return props.noAffordance ? 0 : _resolution["default"].scale(30);
418
+ }
419
+
420
+ // Render
421
+
422
+ var _itemRenderer = props.itemRenderer,
423
+ voiceFocused = props['data-webos-voice-focused'],
424
+ voiceGroupLabel = props['data-webos-voice-group-label'],
425
+ voiceDisabled = props['data-webos-voice-disabled'],
426
+ rest = _objectWithoutProperties(props, _excluded);
427
+ delete rest.noAffordance;
428
+ delete rest.scrollContainerContainsDangerously;
429
+ delete rest.scrollContainerHandle;
430
+ delete rest.scrollContainerRef;
431
+ delete rest.scrollContentHandle;
432
+ delete rest.snapToCenter;
433
+ delete rest.spotlightId;
434
+ delete rest.wrap;
435
+ return _objectSpread(_objectSpread({}, rest), {}, {
436
+ containerProps: {
437
+ 'data-webos-voice-focused': voiceFocused,
438
+ 'data-webos-voice-group-label': voiceGroupLabel,
439
+ 'data-webos-voice-disabled': voiceDisabled
440
+ },
441
+ getAffordance: getAffordance,
442
+ itemRenderer: function itemRenderer(_ref3) {
443
+ var index = _ref3.index,
444
+ itemRest = _objectWithoutProperties(_ref3, _excluded2);
445
+ return _itemRenderer(_objectSpread(_objectSpread({}, itemRest), {}, _defineProperty(_defineProperty({}, _useScroll.dataIndexAttribute, index), "index", index)));
446
+ },
447
+ placeholderRenderer: function placeholderRenderer(primary) {
448
+ return _placeholderRenderer({
449
+ handlePlaceholderFocus: handlePlaceholderFocus,
450
+ primary: primary
451
+ });
452
+ },
453
+ onUpdateItems: handleRestoreLastFocus,
454
+ updateStatesAndBounds: updateStatesAndBounds
455
+ });
456
+ };
457
+ function _placeholderRenderer(_ref4) {
458
+ var handlePlaceholderFocus = _ref4.handlePlaceholderFocus,
459
+ primary = _ref4.primary;
460
+ return primary ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(SpotlightPlaceholder, {
461
+ "data-index": 0,
462
+ "data-vl-placeholder": true,
463
+ // a zero width/height element can't be focused by spotlight so we're giving
464
+ // the placeholder a small size to ensure it is navigable
465
+ onFocus: handlePlaceholderFocus,
466
+ style: {
467
+ width: 10
468
+ }
469
+ }, "placeholder");
470
+ }
471
+ var _default = exports["default"] = useThemeVirtualList;
@@ -0,0 +1,34 @@
1
+ .scaled {
2
+ transform: scale(1.1);
3
+ }
4
+ :global(.neutral) .scaled {
5
+ box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
6
+ }
7
+ :global(.enact-a11y-high-contrast) :global(.neutral):global(.highContrast) .scaled {
8
+ box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
9
+ }
10
+ :global(.light) .scaled {
11
+ box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
12
+ }
13
+ :global(.game) {
14
+ --semantic-color-surface-default: #2d224c;
15
+ --semantic-color-surface-default-focused: #6d2fa1;
16
+ --semantic-color-on-surface-main-focused: #e6e6e6;
17
+ }
18
+ :global(.game) .scaled {
19
+ box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
20
+ }
21
+ :global(.green) :global(.game) {
22
+ --semantic-color-surface-default: #1F2C24;
23
+ --semantic-color-surface-default-focused: #3ea07d;
24
+ }
25
+ :global(.green) :global(.game) .scaled {
26
+ box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
27
+ }
28
+ :global(.orange) :global(.game) {
29
+ --semantic-color-surface-default: #422923;
30
+ --semantic-color-surface-default-focused: #b85f23;
31
+ }
32
+ :global(.orange) :global(.game) .scaled {
33
+ box-shadow: 0 0.75rem 0.75rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
34
+ }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Panel = void 0;
7
+ exports.PanelBase = PanelBase;
8
+ exports["default"] = void 0;
9
+ var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
10
+ var _react = require("react");
11
+ var _PanelsRouter = require("../internal/Panels/PanelsRouter");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
+ /**
14
+ * Panel that sets the children, footer, subtitle, and title for
15
+ * {@link limestone/WizardPanels.WizardPanels|WizardPanels}.
16
+ *
17
+ * @class PanelBase
18
+ * @memberof limestone/WizardPanels
19
+ * @ui
20
+ * @private
21
+ */
22
+ function PanelBase(_ref) {
23
+ var ariaLabel = _ref['aria-label'],
24
+ children = _ref.children,
25
+ footer = _ref.footer,
26
+ nextButton = _ref.nextButton,
27
+ prevButton = _ref.prevButton,
28
+ subtitle = _ref.subtitle,
29
+ title = _ref.title;
30
+ var set = (0, _react.use)(_PanelsRouter.PanelsContext);
31
+ (0, _react.useEffect)(function () {
32
+ if (set) {
33
+ set({
34
+ 'aria-label': ariaLabel,
35
+ children: children,
36
+ footer: footer,
37
+ nextButton: nextButton,
38
+ prevButton: prevButton,
39
+ subtitle: subtitle,
40
+ title: title
41
+ });
42
+ }
43
+ }, [ariaLabel, children, footer, nextButton, prevButton, subtitle, set, title]);
44
+ return null;
45
+ }
46
+
47
+ /**
48
+ * Panel that sets the children, footer, subtitle, and title for
49
+ * {@link limestone/WizardPanels.WizardPanels|WizardPanels}.
50
+ *
51
+ * @class Panel
52
+ * @memberof limestone/WizardPanels
53
+ * @ui
54
+ * @public
55
+ */
56
+ var Panel = exports.Panel = (0, _Slottable["default"])({
57
+ slots: ['footer', 'subtitle', 'title']
58
+ }, PanelBase);
59
+
60
+ /**
61
+ * The button to use in place of the standard next button.
62
+ *
63
+ * This prop accepts a component (e.g. `Button`), a component instance or a boolean value.
64
+ *
65
+ * If `false`, the button will not show. If set to a component, or `true`, the button will
66
+ * show. This will override the setting of
67
+ * {@link limestone/WizardPanels.WizardPanelsBase.nextButtonVisibility|nextButtonVisibility}.
68
+ *
69
+ * Example:
70
+ * ```
71
+ * nextButton={<Button icon="closex" aria-label="Quit">Close</Button>}
72
+ * ```
73
+ *
74
+ * @name nextButton
75
+ * @memberof limestone/WizardPanels.Panel.prototype
76
+ * @type {Boolean|Component}
77
+ * @public
78
+ */
79
+
80
+ /**
81
+ * The button to use in place of the standard prev button.
82
+ *
83
+ * This prop accepts a component (e.g. `Button`), a component instance or a boolean value.
84
+ *
85
+ * If `false`, the button will not show. If set to a component, or `true`, the button will
86
+ * show. This will override the setting of
87
+ * {@link limestone/WizardPanels.WizardPanelsBase.prevButtonVisibility|prevButtonVisibility}.
88
+ *
89
+ * Example:
90
+ * ```
91
+ * prevButton={<Button icon="closex" aria-label="Back">Back</Button>}
92
+ * ```
93
+ *
94
+ * @name prevButton
95
+ * @memberof limestone/WizardPanels.Panel.prototype
96
+ * @type {Boolean|Component}
97
+ * @public
98
+ */
99
+ var _default = exports["default"] = Panel;