@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,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.AccessibilityDecorator = void 0;
7
+ var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
8
+ var _Registry = _interopRequireDefault(require("@enact/core/internal/Registry"));
9
+ var _util = require("@enact/core/util");
10
+ var _Resizable = require("@enact/ui/Resizable");
11
+ var _util2 = require("@enact/ui/Skinnable/util");
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _react = require("react");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ var _excluded = ["className", "focusRing", "highContrast", "skinVariants", "textSize"];
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
17
+ 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; }
18
+ 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; }
19
+ 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; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
21
+ 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); }
22
+ 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; }
23
+ 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; }
24
+ var accessibilityDecoratorDefaultProps = {
25
+ textSize: 'normal'
26
+ };
27
+
28
+ /**
29
+ * A higher-order component that classifies an application with a target set of font sizing rules.
30
+ *
31
+ * @class AccessibilityDecorator
32
+ * @memberof limestone/ThemeDecorator
33
+ * @hoc
34
+ * @public
35
+ */
36
+ var AccessibilityDecorator = exports.AccessibilityDecorator = (0, _hoc["default"])(function (config, Wrapped) {
37
+ // eslint-disable-next-line no-shadow
38
+ var AccessibilityDecorator = function AccessibilityDecorator(props) {
39
+ var _setDefaultProps = (0, _util.setDefaultProps)(props, accessibilityDecoratorDefaultProps),
40
+ className = _setDefaultProps.className,
41
+ focusRing = _setDefaultProps.focusRing,
42
+ highContrast = _setDefaultProps.highContrast,
43
+ skinVariants = _setDefaultProps.skinVariants,
44
+ textSize = _setDefaultProps.textSize,
45
+ rest = _objectWithoutProperties(_setDefaultProps, _excluded);
46
+ var accessibilityClassName = highContrast ? "enact-a11y-high-contrast enact-text-".concat(textSize) : "enact-text-".concat(textSize);
47
+ accessibilityClassName = focusRing ? "enact-a11y-focus-ring ".concat(accessibilityClassName) : "".concat(accessibilityClassName);
48
+ var combinedClassName = className ? "".concat(className, " ").concat(accessibilityClassName) : accessibilityClassName;
49
+ var variants = (0, _util2.objectify)(skinVariants);
50
+ if (highContrast) variants.highContrast = true;
51
+ if (textSize === 'large') variants.largeText = true;
52
+ if (focusRing) variants.focusRing = true;
53
+ var context = (0, _react.useContext)(_Resizable.ResizeContext);
54
+ var prevTextSize = (0, _react.useRef)(textSize);
55
+ var resizeRegistry = (0, _react.useRef)(_Registry["default"].create());
56
+ (0, _react.useEffect)(function () {
57
+ resizeRegistry.current.parent = context;
58
+ return function () {
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ resizeRegistry.current.parent = null;
61
+ };
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ }, []);
64
+ (0, _react.useEffect)(function () {
65
+ if (prevTextSize.current !== textSize) {
66
+ resizeRegistry.current.notify({});
67
+ prevTextSize.current = textSize;
68
+ }
69
+ }, [textSize]);
70
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Resizable.ResizeContext, {
71
+ value: resizeRegistry.current.register,
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({
73
+ className: combinedClassName,
74
+ skinVariants: variants
75
+ }, rest))
76
+ });
77
+ };
78
+ AccessibilityDecorator.displayName = 'AccessibilityDecorator';
79
+ AccessibilityDecorator.propTypes = {
80
+ /** @lends limestone/ThemeDecorator.AccessibilityDecorator.prototype */
81
+ /**
82
+ * Enables additional features to help users visually differentiate components.
83
+ *
84
+ * The UI library will be responsible for using this information to add focus ring
85
+ * to some components.
86
+ *
87
+ * @type {Boolean}
88
+ * @default false
89
+ * @public
90
+ */
91
+ focusRing: _propTypes["default"].bool,
92
+ /**
93
+ * Enables additional features to help users visually differentiate components.
94
+ *
95
+ * The UI library will be responsible for using this information to adjust
96
+ * the components' contrast to this preset.
97
+ *
98
+ * @type {Boolean}
99
+ * @default false
100
+ * @public
101
+ */
102
+ highContrast: _propTypes["default"].bool,
103
+ /**
104
+ * The variant(s) on a skin that a component should use when rendering. These will
105
+ * typically alter the appearance of a skin's existing definition in a way that does not
106
+ * override that skin's general styling.
107
+ *
108
+ * Multiple data types are supported by this prop, which afford different conveniences
109
+ * and abilities. String and Array are effectively the same, supporting just additions
110
+ * to the variants being applied to a component, and are much more convenient. Objects
111
+ * may also be used, and have the ability to disable variants being passed by their
112
+ * ancestors. Objects take the format of a basic hash, with variants as key names and
113
+ * true/false Booleans as values, depicting their state. If a variant is excluded from
114
+ * any version of data type used to set this prop, that variant will ignored, falling
115
+ * back to the defaultVariant or parent variant, in that order.
116
+ *
117
+ * skinVariants examples:
118
+ * ```
119
+ * // String
120
+ * skinVariants="highContrast"
121
+ *
122
+ * // Array
123
+ * skinVariants={['highContrast']}
124
+ *
125
+ * // Object
126
+ * skinVariants={{
127
+ * highContrast: true,
128
+ * grayscale: false
129
+ * }}
130
+ * ```
131
+ *
132
+ * @type {String|String[]|Object}
133
+ * @public
134
+ */
135
+ skinVariants: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array, _propTypes["default"].object]),
136
+ /**
137
+ * Sets the goal size of the text.
138
+ *
139
+ * The UI library will be responsible for using this
140
+ * information to adjust the components' text sizes to this preset.
141
+ * Current presets are `'normal'` (default), and `'large'`.
142
+ *
143
+ * @type {('normal'|'large')}
144
+ * @default 'normal'
145
+ * @public
146
+ */
147
+ textSize: _propTypes["default"].oneOf(['normal', 'large'])
148
+ };
149
+ return AccessibilityDecorator;
150
+ });
151
+ var _default = exports["default"] = AccessibilityDecorator;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.I18nFontDecorator = void 0;
7
+ var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
8
+ var _i18n = _interopRequireDefault(require("@enact/i18n"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = require("react");
11
+ var _fontGenerator = require("./fontGenerator");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
+ 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); }
19
+ var I18nFontDecorator = exports.I18nFontDecorator = (0, _hoc["default"])(function (config, Wrapped) {
20
+ var I18nDecorator = function I18nDecorator(props) {
21
+ var ilibLocale = _i18n["default"].getLocale();
22
+ (0, _react.useEffect)(function () {
23
+ (0, _fontGenerator.fontOverrideGenerator)(props.locale || ilibLocale);
24
+ }, [ilibLocale, props.locale]);
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({}, props));
26
+ };
27
+ I18nDecorator.displayName = 'I18nFontDecorator';
28
+ I18nDecorator.propTypes = {
29
+ locale: _propTypes["default"].string
30
+ };
31
+ return I18nDecorator;
32
+ });
33
+ var _default = exports["default"] = I18nFontDecorator;
@@ -0,0 +1,143 @@
1
+ // Type definitions for limestone/ThemeDecorator
2
+
3
+ import { FloatingLayerDecoratorProps as ui_FloatingLayer_FloatingLayerDecoratorProps } from "@enact/ui/FloatingLayer";
4
+ import { ResolutionDecoratorProps as ui_resolution_ResolutionDecoratorProps } from "@enact/ui/resolution";
5
+ import { SpotlightRootDecoratorProps as spotlight_SpotlightRootDecorator_SpotlightRootDecoratorProps } from "@enact/spotlight/SpotlightRootDecorator";
6
+ import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
7
+
8
+ type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
9
+ type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
10
+
11
+ export interface AccessibilityDecoratorProps {
12
+ /**
13
+ * Enables additional features to help users visually differentiate components.
14
+ *
15
+ * The UI library will be responsible for using this information to add focus ring
16
+ to some components.
17
+ */
18
+ focusRing?: boolean;
19
+ /**
20
+ * Enables additional features to help users visually differentiate components.
21
+ *
22
+ * The UI library will be responsible for using this information to adjust
23
+ the components' contrast to this preset.
24
+ */
25
+ highContrast?: boolean;
26
+ /**
27
+ * The variant(s) on a skin that a component should use when rendering. These will
28
+ typically alter the appearance of a skin's existing definition in a way that does not
29
+ override that skin's general styling.
30
+ *
31
+ * Multiple data types are supported by this prop, which afford different conveniences
32
+ and abilities. String and Array are effectively the same, supporting just additions
33
+ to the variants being applied to a component, and are much more convenient. Objects
34
+ may also be used, and have the ability to disable variants being passed by their
35
+ ancestors. Objects take the format of a basic hash, with variants as key names and
36
+ true/false Booleans as values, depicting their state. If a variant is excluded from
37
+ any version of data type used to set this prop, that variant will ignored, falling
38
+ back to the defaultVariant or parent variant, in that order.
39
+ *
40
+ * skinVariants examples:
41
+ * ```
42
+ // String
43
+ skinVariants="highContrast"
44
+
45
+ // Array
46
+ skinVariants={['highContrast']}
47
+
48
+ // Object
49
+ skinVariants={{
50
+ highContrast: true,
51
+ grayscale: false
52
+ }}
53
+ ```
54
+ */
55
+ skinVariants?: string | string[] | object;
56
+ /**
57
+ * Sets the goal size of the text.
58
+ *
59
+ * The UI library will be responsible for using this
60
+ information to adjust the components' text sizes to this preset.
61
+ Current presets are `'normal'` (default), and `'large'` .
62
+ */
63
+ textSize?: "normal" | "large";
64
+ }
65
+ export function AccessibilityDecorator<P>(
66
+ Component: React.ComponentType<P> | string,
67
+ ): React.ComponentType<P & AccessibilityDecoratorProps>;
68
+
69
+ export interface ThemeDecoratorConfig extends Object {
70
+ /**
71
+ * Applies AccessibilityDecorator.
72
+ *
73
+ * If not applied, app will not support accessibility options.
74
+ */
75
+ accessible?: boolean;
76
+ /**
77
+ * Disables use of full screen.
78
+ */
79
+ disableFullscreen?: boolean;
80
+ /**
81
+ * Enables a floating layer for popup components.
82
+ *
83
+ * If not applied, app will be responsible for applying the decorator.
84
+ */
85
+ float?: boolean;
86
+ /**
87
+ * Options for I18nDecorator.
88
+ *
89
+ * May be `false` to prevent applying the decorator. If not applied, app will be responsible for
90
+ applying the decorator.
91
+ */
92
+ i18n?: object | false;
93
+ /**
94
+ * Disables setting spotlight focus on first render.
95
+ */
96
+ noAutoFocus?: boolean;
97
+ /**
98
+ * Enables overlay mode (no background color will be applied).
99
+ */
100
+ overlay?: boolean;
101
+ /**
102
+ * Override the resolution independence settings.
103
+ */
104
+ ri?: object;
105
+ /**
106
+ * Specifies the id of the React DOM tree root node
107
+ */
108
+ rootId?: string;
109
+ /**
110
+ * Applies skinning support.
111
+ */
112
+ skin?: boolean;
113
+ /**
114
+ * Applies spotlight decorator.
115
+ *
116
+ * If not applied, app will be responsible for applying the decorator.
117
+ */
118
+ spotlight?: boolean;
119
+ }
120
+ export interface ThemeDecoratorProps
121
+ extends Merge<
122
+ Merge<
123
+ Merge<
124
+ Merge<
125
+ ui_FloatingLayer_FloatingLayerDecoratorProps,
126
+ ui_resolution_ResolutionDecoratorProps
127
+ >,
128
+ spotlight_SpotlightRootDecorator_SpotlightRootDecoratorProps
129
+ >,
130
+ limestone_Skinnable_SkinnableProps
131
+ >,
132
+ AccessibilityDecoratorProps
133
+ > {}
134
+ export function ThemeDecorator<P>(
135
+ config: ThemeDecoratorConfig,
136
+ Component: React.ComponentType<P> | string,
137
+ ): React.ComponentType<P & ThemeDecoratorProps>;
138
+
139
+ export function ThemeDecorator<P>(
140
+ Component: React.ComponentType<P> | string,
141
+ ): React.ComponentType<P & ThemeDecoratorProps>;
142
+
143
+ export default ThemeDecorator;
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.ThemeDecorator = void 0;
7
+ Object.defineProperty(exports, "getLastInputType", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _SpotlightRootDecorator.getInputType;
11
+ }
12
+ });
13
+ var _dispatcher = require("@enact/core/dispatcher");
14
+ var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
15
+ var _keymap = require("@enact/core/keymap");
16
+ var _I18nDecorator = _interopRequireDefault(require("@enact/i18n/I18nDecorator"));
17
+ var _SpotlightRootDecorator = _interopRequireWildcard(require("@enact/spotlight/SpotlightRootDecorator"));
18
+ var _FloatingLayer = require("@enact/ui/FloatingLayer");
19
+ var _resolution = require("@enact/ui/resolution");
20
+ var _Touchable = require("@enact/ui/Touchable");
21
+ var _lastInputType = require("@enact/webos/lastInputType");
22
+ var _platform = _interopRequireDefault(require("@enact/webos/platform"));
23
+ var _classnames = _interopRequireDefault(require("classnames"));
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
25
+ var _react = require("react");
26
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
27
+ var _AccessibilityDecorator = _interopRequireDefault(require("./AccessibilityDecorator"));
28
+ var _I18nFontDecorator = _interopRequireDefault(require("./I18nFontDecorator"));
29
+ var _screenTypes = _interopRequireDefault(require("./screenTypes.json"));
30
+ var _ThemeDecoratorModule = _interopRequireDefault(require("./ThemeDecorator.module.css"));
31
+ var _jsxRuntime = require("react/jsx-runtime");
32
+ var _excluded = ["skin"];
33
+ 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); }
34
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
35
+ 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; }
36
+ 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; }
37
+ 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; }
38
+ 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; }
39
+ 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; }
40
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
41
+ 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); } /**
42
+ * Exports the {@link limestone/ThemeDecorator.ThemeDecorator} HOC
43
+ *
44
+ * @module limestone/ThemeDecorator
45
+ * @exports ThemeDecorator
46
+ */ /**
47
+ * Default config for `ThemeDecorator`.
48
+ *
49
+ * @memberof limestone/ThemeDecorator.ThemeDecorator
50
+ * @hocconfig
51
+ */
52
+ var defaultConfig = /** @lends limestone/ThemeDecorator.ThemeDecorator.defaultConfig */{
53
+ /**
54
+ * Applies AccessibilityDecorator.
55
+ *
56
+ * If not applied, app will not support accessibility options.
57
+ *
58
+ * @type {Boolean}
59
+ * @default true
60
+ * @see {@link limestone/ThemeDecorator.AccessibilityDecorator}
61
+ * @public
62
+ */
63
+ accessible: true,
64
+ /**
65
+ * Disables use of full screen.
66
+ *
67
+ * @type {Boolean}
68
+ * @default false
69
+ * @public
70
+ */
71
+ disableFullscreen: false,
72
+ /**
73
+ * Enables a floating layer for popup components.
74
+ *
75
+ * If not applied, app will be responsible for applying the decorator.
76
+ *
77
+ * @type {Boolean}
78
+ * @default true
79
+ * @see {@link ui/FloatingLayer.FloatingLayerDecorator}
80
+ * @public
81
+ */
82
+ "float": true,
83
+ /**
84
+ * Options for I18nDecorator.
85
+ *
86
+ * May be `false` to prevent applying the decorator. If not applied, app will be responsible for
87
+ * applying the decorator.
88
+ *
89
+ * @type {Object|false}
90
+ * @default {sync: true}
91
+ * @see {@link i18n/I18nDecorator}
92
+ * @public
93
+ */
94
+ i18n: {
95
+ sync: true
96
+ },
97
+ /**
98
+ * Disables setting spotlight focus on first render.
99
+ *
100
+ * @type {Boolean}
101
+ * @default false
102
+ * @public
103
+ */
104
+ noAutoFocus: false,
105
+ /**
106
+ * Enables overlay mode (no background color will be applied).
107
+ *
108
+ * @type {Boolean}
109
+ * @default false
110
+ * @public
111
+ */
112
+ overlay: false,
113
+ /**
114
+ * Override the resolution independence settings.
115
+ *
116
+ * @type {Object}
117
+ * @see {@link ui/resolution}
118
+ * @public
119
+ */
120
+ ri: {
121
+ screenTypes: _screenTypes["default"]
122
+ },
123
+ /**
124
+ * Specifies the id of the React DOM tree root node
125
+ *
126
+ * @type {String}
127
+ * @default 'root'
128
+ * @public
129
+ */
130
+ rootId: 'root',
131
+ /**
132
+ * Applies skinning support.
133
+ *
134
+ * @type {Boolean}
135
+ * @default true
136
+ * @see {@link limestone/Skinnable}
137
+ * @public
138
+ */
139
+ skin: true,
140
+ /**
141
+ * Applies spotlight decorator.
142
+ *
143
+ * If not applied, app will be responsible for applying the decorator.
144
+ *
145
+ * @type {Boolean}
146
+ * @default true
147
+ * @see {@link spotlight/SpotlightRootDecorator}
148
+ * @public
149
+ */
150
+ spotlight: true
151
+ };
152
+
153
+ /**
154
+ * A higher-order component that applies Limestone theming to an application.
155
+ *
156
+ * It also applies {@link ui/FloatingLayer.FloatingLayerDecorator|floating layer},
157
+ * {@link ui/resolution.ResolutionDecorator|resolution independence},
158
+ * {@link limestone/Skinnable|skin support}, {@link spotlight.SpotlightRootDecorator|spotlight}, and
159
+ * {@link i18n/I18nDecorator.I18nDecorator|internationalization support}.
160
+ * It is meant to be applied to the root element of an app.
161
+ *
162
+ * {@link limestone/Skinnable|Skins} provide a way to change the coloration of your app. The
163
+ * currently supported skins for Limestone are "limestone" (the default, dark skin) and
164
+ * "limestone-light". Use the `skin` property to assign a skin. Ex: `<DecoratedApp skin="light" />`
165
+ *
166
+ * Note: This HoC passes `className` to the wrapped component. It must be passed to the main DOM
167
+ * node.
168
+ *
169
+ * @class ThemeDecorator
170
+ * @memberof limestone/ThemeDecorator
171
+ * @mixes ui/FloatingLayer.FloatingLayerDecorator
172
+ * @mixes ui/resolution.ResolutionDecorator
173
+ * @mixes spotlight/SpotlightRootDecorator.SpotlightRootDecorator
174
+ * @mixes limestone/Skinnable.Skinnable
175
+ * @mixes limestone/ThemeDecorator.AccessibilityDecorator
176
+ * @hoc
177
+ * @public
178
+ */
179
+ var ThemeDecorator = exports.ThemeDecorator = (0, _hoc["default"])(defaultConfig, function (config, Wrapped) {
180
+ var accessible = config.accessible,
181
+ ri = config.ri,
182
+ i18n = config.i18n,
183
+ spotlight = config.spotlight,
184
+ _float = config["float"],
185
+ noAutoFocus = config.noAutoFocus,
186
+ overlay = config.overlay,
187
+ skin = config.skin,
188
+ disableFullscreen = config.disableFullscreen,
189
+ rootId = config.rootId;
190
+
191
+ // Apply classes depending on screen type (overlay / fullscreen)
192
+ var bgClassName = (0, _classnames["default"])(_defineProperty({
193
+ 'enact-fit': !disableFullscreen
194
+ }, _ThemeDecoratorModule["default"].bg, !overlay));
195
+ var requestInputType = null;
196
+ var App = Wrapped;
197
+ if (_float) App = (0, _FloatingLayer.FloatingLayerDecorator)({
198
+ wrappedClassName: bgClassName
199
+ }, App);
200
+ if (ri) App = (0, _resolution.ResolutionDecorator)(ri, App);
201
+ if (i18n) {
202
+ // Apply the @enact/i18n decorator around the font decorator so the latter will update the
203
+ // font stylesheet when the locale changes
204
+ App = (0, _I18nDecorator["default"])(_objectSpread(_objectSpread({}, i18n), {}, {
205
+ // We use the latin fonts (with non-Latin fallback) for these languages (even though
206
+ // their scripts are non-latin)
207
+ latinLanguageOverrides: ['ko', 'ha', 'el', 'bg', 'mk', 'mn', 'ru', 'uk', 'kk'],
208
+ // We use the non-latin fonts for these languages (even though their scripts are
209
+ // technically considered latin)
210
+ nonLatinLanguageOverrides: ['en-JP']
211
+ }), (0, _I18nFontDecorator["default"])(App));
212
+ }
213
+ if (spotlight) App = (0, _SpotlightRootDecorator["default"])({
214
+ noAutoFocus: noAutoFocus,
215
+ rootId: rootId
216
+ }, App);
217
+ if (skin) App = (0, _Skinnable["default"])(App);
218
+ if (accessible) App = (0, _AccessibilityDecorator["default"])(App);
219
+
220
+ // add webOS-specific key maps
221
+ (0, _keymap.addAll)({
222
+ cancel: 461,
223
+ nonModal: [461, 415,
224
+ // play
225
+ 19,
226
+ // pause
227
+ 403,
228
+ // red
229
+ 404,
230
+ // green
231
+ 405,
232
+ // yellow
233
+ 406,
234
+ // blue
235
+ 33,
236
+ // channel up
237
+ 34 // channel down
238
+ ],
239
+ red: 403,
240
+ green: 404,
241
+ yellow: 405,
242
+ blue: 406,
243
+ play: 415,
244
+ pause: 19,
245
+ rewind: 412,
246
+ fastForward: 417,
247
+ pointerHide: 1537,
248
+ pointerShow: 1536
249
+ });
250
+
251
+ // configure the default hold time
252
+ (0, _Touchable.configure)({
253
+ hold: {
254
+ events: [{
255
+ name: 'hold',
256
+ time: 400
257
+ }]
258
+ }
259
+ });
260
+
261
+ // set the DOM node ID of the React DOM tree root
262
+ (0, _dispatcher.setDefaultTargetById)(rootId);
263
+ var Decorator = function Decorator(props) {
264
+ var skinProp = props.skin,
265
+ rest = _objectWithoutProperties(props, _excluded);
266
+ var skinName = skinProp || 'neutral';
267
+ var className = (0, _classnames["default"])(_ThemeDecoratorModule["default"].root, props.className, 'limestone-theme', 'enact-unselectable', _defineProperty(_defineProperty(_defineProperty({}, bgClassName, !_float), 'enact-fit', !disableFullscreen), "noAnimation", typeof ENACT_PACK_NO_ANIMATION !== 'undefined' && ENACT_PACK_NO_ANIMATION));
268
+ (0, _react.useEffect)(function () {
269
+ if (spotlight && _platform["default"].tv) {
270
+ (0, _SpotlightRootDecorator.activateInputType)(true);
271
+ requestInputType = (0, _lastInputType.requestLastInputType)({
272
+ onSuccess: function onSuccess(res) {
273
+ if (res.lastInputType === 'key' || res.lastInputType === 'mouse' || res.lastInputType === 'touch') {
274
+ (0, _SpotlightRootDecorator.setInputType)(res.lastInputType);
275
+ } else {
276
+ (0, _SpotlightRootDecorator.activateInputType)(false);
277
+ }
278
+ },
279
+ onFailure: function onFailure() {
280
+ (0, _SpotlightRootDecorator.activateInputType)(false);
281
+ }
282
+ });
283
+ }
284
+ return function () {
285
+ if (requestInputType) {
286
+ requestInputType.cancel();
287
+ }
288
+ };
289
+ }, []);
290
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, rest), {}, {
291
+ skin: skinName,
292
+ className: className
293
+ }));
294
+ };
295
+ Decorator.displayName = 'ThemeDecorator';
296
+ Decorator.propTypes = /** @lends limestone/ThemeDecorator.prototype */{
297
+ /**
298
+ * Assign a skin.
299
+ *
300
+ * @type {String}
301
+ * @private
302
+ */
303
+ skin: _propTypes["default"].string
304
+ };
305
+ return Decorator;
306
+ });
307
+ var _default = exports["default"] = ThemeDecorator;