@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,131 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _Icon = require("../Icon");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ describe('Icon Specs', function () {
8
+ test('should return the correct Unicode value for named icon \'star\'', function () {
9
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
10
+ "data-testid": "icon",
11
+ children: "star"
12
+ }));
13
+ var expected = 983080; // decimal converted charCode of Unicode 'star' character
14
+ var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
15
+ expect(actual).toBe(expected);
16
+ });
17
+ test('should return the correct Unicode value when provided \'star\' hex value', function () {
18
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
19
+ "data-testid": "icon",
20
+ children: "0x0F0028"
21
+ }));
22
+ var expected = 983080; // decimal converted charCode of character
23
+ var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
24
+ expect(actual).toBe(expected);
25
+ });
26
+ test('should return the correct Unicode value when provided HTML entity as hex value', function () {
27
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
28
+ "data-testid": "icon",
29
+ children: "\u2605"
30
+ }));
31
+ var expected = 9733; // decimal converted charCode of character
32
+ var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
33
+ expect(actual).toBe(expected);
34
+ });
35
+ test('should return the correct Unicode value when provided Unicode reference', function () {
36
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
37
+ "data-testid": "icon",
38
+ children: "\\u0F0028"
39
+ }));
40
+ var expected = 983080; // decimal converted charCode of Unicode 'star' character
41
+ var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
42
+ expect(actual).toBe(expected);
43
+ });
44
+ test('should support high code point Unicode values', function () {
45
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
46
+ "data-testid": "icon",
47
+ children: String.fromCodePoint(0x0F0028)
48
+ }));
49
+ var expected = 983080; // decimal converted charCode of Unicode 'star' character
50
+ var actual = _react.screen.getByTestId('icon').textContent.codePointAt();
51
+ expect(actual).toBe(expected);
52
+ });
53
+ test('should support preset size "large"', function () {
54
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
55
+ "data-testid": "icon",
56
+ size: "large",
57
+ children: "star"
58
+ }));
59
+ var expected = 'large';
60
+ var icon = _react.screen.getByTestId('icon');
61
+ expect(icon).toHaveClass(expected);
62
+ });
63
+ test('should support preset size "medium"', function () {
64
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
65
+ "data-testid": "icon",
66
+ size: "medium",
67
+ children: "star"
68
+ }));
69
+ var expected = 'medium';
70
+ var icon = _react.screen.getByTestId('icon');
71
+ expect(icon).toHaveClass(expected);
72
+ });
73
+ test('should support preset size "small"', function () {
74
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
75
+ "data-testid": "icon",
76
+ size: "small",
77
+ children: "star"
78
+ }));
79
+ var expected = 'small';
80
+ var icon = _react.screen.getByTestId('icon');
81
+ expect(icon).toHaveClass(expected);
82
+ });
83
+ test('should support preset size "tiny"', function () {
84
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
85
+ "data-testid": "icon",
86
+ size: "tiny",
87
+ children: "star"
88
+ }));
89
+ var expected = 'tiny';
90
+ var icon = _react.screen.getByTestId('icon');
91
+ expect(icon).toHaveClass(expected);
92
+ });
93
+ test('should support arbitrary custom numeric sizes that scale to the correct value', function () {
94
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
95
+ "data-testid": "icon",
96
+ size: 96,
97
+ children: "star"
98
+ }));
99
+ var icon = _react.screen.getByTestId('icon');
100
+
101
+ // surprisingly this returns 8rem, instead of what you'd expect
102
+ // with a base pxToRem value of 48px, which would be 2rem.
103
+ // Tests must run at a tiny simulated screen size.
104
+ expect(icon).toHaveStyle({
105
+ '--icon-size': '8rem'
106
+ });
107
+ });
108
+ test('should support RTL flip', function () {
109
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
110
+ "data-testid": "icon",
111
+ rtl: true,
112
+ flip: "auto",
113
+ children: "star"
114
+ }));
115
+ var expected = "flipHorizontal";
116
+ var icon = _react.screen.getByTestId('icon');
117
+ expect(icon).toHaveClass(expected);
118
+ });
119
+ test('should not support RTL flip when locale is he-IL and children is \'help\'', function () {
120
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.IconBase, {
121
+ "data-testid": "icon",
122
+ rtl: true,
123
+ flip: "auto",
124
+ locale: "he-IL",
125
+ children: "help"
126
+ }));
127
+ var expected = "flipHorizontal";
128
+ var icon = _react.screen.getByTestId('icon');
129
+ expect(icon).not.toHaveClass(expected);
130
+ });
131
+ });
@@ -0,0 +1,137 @@
1
+ // Type definitions for limestone/IconItem
2
+
3
+ import { MarqueeControllerProps as limestone_Marquee_MarqueeControllerProps } from "limestone/Marquee";
4
+ import { SpottableProps as spotlight_Spottable_SpottableProps } from "@enact/spotlight/Spottable";
5
+ import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
6
+ import * as React from "react";
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
+ /**
12
+ * The shape for image of .
13
+ */
14
+ export interface ImageShape {
15
+ /**
16
+ * Size for the image.
17
+ The following properties should be provided:
18
+ * * `height` - The height of the image
19
+ * * `width` - The width of the image
20
+ */
21
+ size: object /**
22
+ * Source for the image.
23
+ String value or Object of values used to determine which image will appear on
24
+ a specific screenSize.
25
+ */;
26
+ src: string | object;
27
+ }
28
+ export interface IconItemBaseProps {
29
+ /**
30
+ * The background color, gradient, or image of this item.
31
+ Accepts any format of color, gradient type value, and image url.
32
+ *
33
+ * Example: '#ff0000', 'radial-gradient(crimson, skyblue)', 'url( ) center / cover'
34
+ */
35
+ background?: string;
36
+ /**
37
+ * Specifies bordered or borderless.
38
+ */
39
+ bordered?: boolean;
40
+ /**
41
+ * The custom component rendered as the content of this IconItem.
42
+ */
43
+ children?: React.ComponentType;
44
+ /**
45
+ * Customizes the component by mapping the supplied collection of CSS class names to the
46
+ corresponding internal elements and states of this component.
47
+ *
48
+ * The following classes are supported:
49
+ * * `iconItem` - The icon item component class
50
+ * * `content` - The class for the content area except title
51
+ * * `bordered` - The border class
52
+ * * `icon` - The icon component class
53
+ * * `image` - The image component class
54
+ * * `labelContainer` - The label container class
55
+ * * `label` - The label component class
56
+ * * `title` - The title component class
57
+ */
58
+ css?: object;
59
+ /**
60
+ * The voice control intent.
61
+ */
62
+ "data-webos-voice-intent"?: string;
63
+ /**
64
+ * Disable IconItem and becomes non-interactive.
65
+ */
66
+ disabled?: boolean;
67
+ /**
68
+ * The icon content.
69
+ If this is specified, will be shown as the content.
70
+ */
71
+ icon?: string | object;
72
+ /**
73
+ * Source and size for the image.
74
+ See the details in
75
+ */
76
+ image?: ImageShape;
77
+ /**
78
+ * A label displayed in the content.
79
+ */
80
+ label?: string;
81
+ /**
82
+ * The color of label.
83
+ */
84
+ labelColor?: "dark" | "light";
85
+ /**
86
+ * Determines what triggers the label to show.
87
+ */
88
+ labelOn?: "focus" | "render";
89
+ /**
90
+ * Title text showing below the icon.
91
+ */
92
+ title?: string;
93
+ /**
94
+ * Determines what triggers the title to show.
95
+ */
96
+ titleOn?: "focus" | "render";
97
+ }
98
+ /**
99
+ * A Limestone styled base component for .
100
+ */
101
+
102
+ export class IconItemBase extends React.Component<
103
+ Merge<React.HTMLProps<HTMLElement>, IconItemBaseProps>
104
+ > {}
105
+
106
+ export interface IconItemDecoratorProps
107
+ extends Merge<
108
+ Merge<
109
+ limestone_Marquee_MarqueeControllerProps,
110
+ spotlight_Spottable_SpottableProps
111
+ >,
112
+ limestone_Skinnable_SkinnableProps
113
+ > {}
114
+ export function IconItemDecorator<P>(
115
+ Component: React.ComponentType<P> | string,
116
+ ): React.ComponentType<P & IconItemDecoratorProps>;
117
+
118
+ export interface IconItemProps
119
+ extends Merge<IconItemBaseProps, IconItemDecoratorProps> {}
120
+ /**
121
+ * A limestone-styled icon item, Marquee and Spottable applied.
122
+ *
123
+ * Usage:
124
+ * ```
125
+ <IconItem
126
+ background="#1b1b1b"
127
+ bordered
128
+ icon="usb"
129
+ />
130
+ ```
131
+ */
132
+
133
+ export class IconItem extends React.Component<
134
+ Merge<React.HTMLProps<HTMLElement>, IconItemProps>
135
+ > {}
136
+
137
+ export default IconItem;
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.IconItemDecorator = exports.IconItemBase = exports.IconItem = void 0;
7
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
8
+ var _Spottable = _interopRequireDefault(require("@enact/spotlight/Spottable"));
9
+ var _Layout = require("@enact/ui/Layout");
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _compose = _interopRequireDefault(require("ramda/src/compose"));
12
+ var _Icon = _interopRequireDefault(require("../Icon"));
13
+ var _Image = _interopRequireDefault(require("../Image"));
14
+ var _Marquee = require("../Marquee");
15
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
16
+ var _IconItemModule = _interopRequireDefault(require("./IconItem.module.css"));
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ var _excluded = ["children", "disabled"];
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ 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; }
24
+ 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; }
25
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
26
+ 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); }
27
+ function _objectDestructuringEmpty(t) { if (null == t) throw new TypeError("Cannot destructure " + t); } /**
28
+ * Provides Limestone styled icon item components and behaviors.
29
+ *
30
+ * @example
31
+ * <IconItem
32
+ * background="#1b1b1b"
33
+ * bordered
34
+ * icon="usb"
35
+ * style={{
36
+ * height: 80,
37
+ * width: 104
38
+ * }}
39
+ * />
40
+ *
41
+ * @module limestone/IconItem
42
+ * @exports IconItem
43
+ * @exports IconItemBase
44
+ * @exports IconItemDecorator
45
+ * @public
46
+ */ /**
47
+ * The shape for image of {@link limestone/IconItem|IconItem}.
48
+ *
49
+ * @typedef {Object} ImageShape
50
+ * @memberof limestone/IconItem
51
+ * @property {Object} size Size for the image.
52
+ * The following properties should be provided:
53
+ *
54
+ * * `height` - The height of the image
55
+ * * `width` - The width of the image
56
+ * @property {String|Object} src Source for the image.
57
+ * String value or Object of values used to determine which image will appear on
58
+ * a specific screenSize.
59
+ * @public
60
+ */
61
+ var ImageShape = _propTypes["default"].shape({
62
+ size: _propTypes["default"].shape({
63
+ height: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]).isRequired,
64
+ width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]).isRequired
65
+ }).isRequired,
66
+ src: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]).isRequired
67
+ });
68
+ var MarqueeBase = function MarqueeBase(_ref) {
69
+ var rest = Object.assign({}, (_objectDestructuringEmpty(_ref), _ref));
70
+ delete rest.order;
71
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread({}, rest));
72
+ };
73
+ var Marquee = (0, _Marquee.MarqueeDecorator)({
74
+ invalidateProps: ['remeasure', 'order']
75
+ }, MarqueeBase);
76
+
77
+ /**
78
+ * A Limestone styled base component for {@link limestone/IconItem.IconItem|IconItem}.
79
+ *
80
+ * @class IconItemBase
81
+ * @memberof limestone/IconItem
82
+ * @ui
83
+ * @public
84
+ */
85
+ var IconItemBase = exports.IconItemBase = (0, _kind["default"])({
86
+ name: 'IconItem',
87
+ propTypes: /** @lends limestone/IconItem.IconItemBase.prototype */{
88
+ /**
89
+ * The background color, gradient, or image of this item.
90
+ * Accepts any format of color, gradient type value, and image url.
91
+ *
92
+ * Example: '#ff0000', 'radial-gradient(crimson, skyblue)', 'url(https://example.com/image.png) center / cover'
93
+ *
94
+ * @type {String}
95
+ * @public
96
+ */
97
+ background: _propTypes["default"].string,
98
+ /**
99
+ * Specifies bordered or borderless.
100
+ *
101
+ * @type {Boolean}
102
+ * @public
103
+ */
104
+ bordered: _propTypes["default"].bool,
105
+ /**
106
+ * The custom component rendered as the content of this IconItem.
107
+ *
108
+ * @type {Component}
109
+ * @public
110
+ */
111
+ children: _propTypes["default"].any,
112
+ /**
113
+ * Customizes the component by mapping the supplied collection of CSS class names to the
114
+ * corresponding internal elements and states of this component.
115
+ *
116
+ * The following classes are supported:
117
+ *
118
+ * * `iconItem` - The icon item component class
119
+ * * `content` - The class for the content area except title
120
+ * * `bordered` - The border class
121
+ * * `icon` - The icon component class
122
+ * * `image` - The image component class
123
+ * * `labelContainer` - The label container class
124
+ * * `label` - The label component class
125
+ * * `title` - The title component class
126
+ *
127
+ * @type {Object}
128
+ * @public
129
+ */
130
+ css: _propTypes["default"].object,
131
+ /**
132
+ * The voice control intent.
133
+ *
134
+ * @type {String}
135
+ * @default 'Select'
136
+ * @public
137
+ */
138
+ 'data-webos-voice-intent': _propTypes["default"].string,
139
+ /**
140
+ * Disable IconItem and becomes non-interactive.
141
+ *
142
+ * @type {Boolean}
143
+ * @public
144
+ */
145
+ disabled: _propTypes["default"].bool,
146
+ /**
147
+ * The icon content.
148
+ * If this is specified, {@link limestone/Icon.Icon|Icon} will be shown as the content.
149
+ *
150
+ * @see {@link ui/Icon.Icon.children}
151
+ * @type {String|Object}
152
+ * @public
153
+ */
154
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
155
+ /**
156
+ * Source and size for the image.
157
+ * See the details in {@link limestone/IconItem.ImageShape|ImageShape}
158
+ *
159
+ * @type {limestone/IconItem.ImageShape}
160
+ * @public
161
+ */
162
+ image: ImageShape,
163
+ /**
164
+ * A label displayed in the content.
165
+ *
166
+ * @type {String}
167
+ * @public
168
+ */
169
+ label: _propTypes["default"].string,
170
+ /**
171
+ * The color of label.
172
+ *
173
+ * @type {('dark'|'light')}
174
+ * @default 'light'
175
+ * @public
176
+ */
177
+ labelColor: _propTypes["default"].oneOf(['dark', 'light']),
178
+ /**
179
+ * Determines what triggers the label to show.
180
+ *
181
+ * @type {('focus'|'render')}
182
+ * @default 'render'
183
+ * @public
184
+ */
185
+ labelOn: _propTypes["default"].oneOf(['focus', 'render']),
186
+ /**
187
+ * The order of the item.
188
+ * Invalidates Marquee when the order changes.
189
+ *
190
+ * @type {Number}
191
+ * @private
192
+ */
193
+ order: _propTypes["default"].number,
194
+ /**
195
+ * Title text showing below the icon.
196
+ *
197
+ * @type {String}
198
+ * @public
199
+ */
200
+ title: _propTypes["default"].string,
201
+ /**
202
+ * Determines what triggers the title to show.
203
+ *
204
+ * @type {('focus'|'render')}
205
+ * @default 'render'
206
+ * @public
207
+ */
208
+ titleOn: _propTypes["default"].oneOf(['focus', 'render'])
209
+ },
210
+ defaultProps: {
211
+ 'data-webos-voice-intent': 'Select',
212
+ labelColor: 'light',
213
+ labelOn: 'render',
214
+ titleOn: 'render'
215
+ },
216
+ styles: {
217
+ css: _IconItemModule["default"],
218
+ className: 'iconItem',
219
+ publicClassNames: true
220
+ },
221
+ computed: {
222
+ className: function className(_ref2) {
223
+ var bordered = _ref2.bordered,
224
+ label = _ref2.label,
225
+ labelColor = _ref2.labelColor,
226
+ labelOn = _ref2.labelOn,
227
+ styler = _ref2.styler,
228
+ title = _ref2.title,
229
+ titleOn = _ref2.titleOn;
230
+ return styler.append({
231
+ bordered: bordered,
232
+ hasLabel: !!label,
233
+ hasTitle: !!title,
234
+ labelOnFocus: labelOn === 'focus',
235
+ titleOnFocus: titleOn === 'focus',
236
+ darkLabel: labelColor === 'dark'
237
+ });
238
+ },
239
+ children: function children(_ref3) {
240
+ var background = _ref3.background,
241
+ _children = _ref3.children,
242
+ css = _ref3.css,
243
+ icon = _ref3.icon,
244
+ image = _ref3.image,
245
+ label = _ref3.label,
246
+ labelOn = _ref3.labelOn,
247
+ order = _ref3.order,
248
+ title = _ref3.title;
249
+ if (_children) return _children;
250
+ var imageComponent;
251
+ if (icon) {
252
+ imageComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon["default"], {
253
+ className: css.icon,
254
+ size: "large",
255
+ children: icon
256
+ });
257
+ } else if (image) {
258
+ var _image$size, _image$size2;
259
+ imageComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Image["default"], {
260
+ className: css.image,
261
+ src: image === null || image === void 0 ? void 0 : image.src,
262
+ style: {
263
+ width: image === null || image === void 0 || (_image$size = image.size) === null || _image$size === void 0 ? void 0 : _image$size.width,
264
+ height: image === null || image === void 0 || (_image$size2 = image.size) === null || _image$size2 === void 0 ? void 0 : _image$size2.height
265
+ }
266
+ });
267
+ }
268
+ if (!imageComponent && !_children && !label && !title) return;
269
+ var align = label && labelOn === 'render' ? 'center' : 'center center';
270
+ var iconContent = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Column, {
271
+ align: align,
272
+ className: css.content,
273
+ style: {
274
+ background: background
275
+ },
276
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
277
+ shrink: true,
278
+ children: imageComponent ? imageComponent : null
279
+ }), label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
280
+ shrink: true,
281
+ className: css.labelContainer,
282
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Marquee, {
283
+ alignment: "center",
284
+ className: css.label,
285
+ marqueeOn: "focus",
286
+ order: order,
287
+ children: label
288
+ })
289
+ }) : null]
290
+ });
291
+ return title ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Column, {
292
+ children: [iconContent, /*#__PURE__*/(0, _jsxRuntime.jsx)(Marquee, {
293
+ alignment: "center",
294
+ className: css.title,
295
+ marqueeOn: "focus",
296
+ order: order,
297
+ children: title
298
+ })]
299
+ }) : iconContent;
300
+ }
301
+ },
302
+ render: function render(_ref4) {
303
+ var children = _ref4.children,
304
+ disabled = _ref4.disabled,
305
+ rest = _objectWithoutProperties(_ref4, _excluded);
306
+ delete rest.background;
307
+ delete rest.bordered;
308
+ delete rest.icon;
309
+ delete rest.image;
310
+ delete rest.label;
311
+ delete rest.labelColor;
312
+ delete rest.labelOn;
313
+ delete rest.title;
314
+ delete rest.titleOn;
315
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
316
+ "aria-disabled": disabled,
317
+ disabled: disabled,
318
+ children: children
319
+ }));
320
+ }
321
+ });
322
+
323
+ /**
324
+ * Limestone-specific IconItem behaviors to apply to
325
+ * {@link limestone/IconItem.IconItem|IconItem}.
326
+ *
327
+ * @hoc
328
+ * @memberof limestone/IconItem
329
+ * @mixes limestone/Marquee.MarqueeController
330
+ * @mixes spotlight/Spottable.Spottable
331
+ * @mixes limestone/Skinnable.Skinnable
332
+ * @public
333
+ */
334
+ var IconItemDecorator = exports.IconItemDecorator = (0, _compose["default"])((0, _Marquee.MarqueeController)({
335
+ marqueeOnFocus: true
336
+ }), _Spottable["default"], _Skinnable["default"]);
337
+
338
+ /**
339
+ * A limestone-styled icon item, Marquee and Spottable applied.
340
+ *
341
+ * Usage:
342
+ * ```
343
+ * <IconItem
344
+ * background="#1b1b1b"
345
+ * bordered
346
+ * icon="usb"
347
+ * />
348
+ * ```
349
+ *
350
+ * @class IconItem
351
+ * @memberof limestone/IconItem
352
+ * @extends limestone/IconItem.IconItemBase
353
+ * @mixes limestone/IconItem.IconItemDecorator
354
+ * @see {@link limestone/IconItem.IconItemBase}
355
+ * @ui
356
+ * @public
357
+ */
358
+ var IconItem = exports.IconItem = IconItemDecorator(IconItemBase);
359
+ IconItem.displayName = 'IconItem';
360
+ var _default = exports["default"] = IconItem;