@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,3 @@
1
+ {
2
+ "main": "Button.js"
3
+ }
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
6
+ var _Button = _interopRequireWildcard(require("../Button"));
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ 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); }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
11
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
12
+ describe('Button', function () {
13
+ test('should have \'disabled\' HTML attribute when \'disabled\' prop is provided', function () {
14
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
15
+ disabled: true,
16
+ children: "I am a disabled Button"
17
+ }));
18
+ var button = _react.screen.getByRole('button');
19
+ expect(button).toHaveAttribute('disabled');
20
+ });
21
+ test('should have default backgroundOpacity opaque', function () {
22
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
23
+ var button = _react.screen.getByRole('button');
24
+ var expected = 'opaque';
25
+ expect(button).toHaveClass(expected);
26
+ });
27
+ test('should expand by default', function () {
28
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
29
+ var button = _react.screen.getByRole('button');
30
+ var expected = 'focusExpand';
31
+ expect(button).toHaveClass(expected);
32
+ });
33
+ test('should be able to disable the expand focus effect', function () {
34
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
35
+ focusEffect: "static"
36
+ }));
37
+ var button = _react.screen.getByRole('button');
38
+ var expected = 'focusStatic';
39
+ expect(button).toHaveClass(expected);
40
+ });
41
+ test('should have default minWidth', function () {
42
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
43
+ var button = _react.screen.getByRole('button');
44
+ var expected = 'minWidth';
45
+ expect(button).toHaveClass(expected);
46
+ });
47
+ test('should have default size large', function () {
48
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {}));
49
+ var button = _react.screen.getByRole('button');
50
+ var expected = 'large';
51
+ expect(button).toHaveClass(expected);
52
+ });
53
+ describe('with no minWidth', function () {
54
+ test('should not have minWidth class', function () {
55
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
56
+ minWidth: false
57
+ }));
58
+ var button = _react.screen.getByRole('button');
59
+ var expected = 'minWidth';
60
+ expect(button).not.toHaveClass(expected);
61
+ });
62
+ });
63
+ describe('with transparent backgroundOpacity', function () {
64
+ test('should have transparent class', function () {
65
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
66
+ backgroundOpacity: "transparent"
67
+ }));
68
+ var button = _react.screen.getByRole('button');
69
+ var expected = 'transparent';
70
+ expect(button).toHaveClass(expected);
71
+ });
72
+ test('should not have have opaque class', function () {
73
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.ButtonBase, {
74
+ backgroundOpacity: "transparent"
75
+ }));
76
+ var button = _react.screen.getByRole('button');
77
+ var expected = 'opaque';
78
+ expect(button).not.toHaveClass(expected);
79
+ });
80
+ });
81
+ describe('with icon', function () {
82
+ test('should have check icon when specified', function () {
83
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
84
+ icon: "checkmark",
85
+ children: "abc"
86
+ }));
87
+ var icon = _react.screen.getByText('✓');
88
+ expect(icon).toBeInTheDocument();
89
+ expect(icon).toHaveClass('icon');
90
+ });
91
+ test('should not have minWidth class with only icon', function () {
92
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
93
+ icon: "check"
94
+ }));
95
+ var button = _react.screen.getByRole('button');
96
+ var expected = 'minWidth';
97
+ expect(button).not.toHaveClass(expected);
98
+ });
99
+ test('should have iconAfter class with text and icon', function () {
100
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
101
+ icon: "check",
102
+ iconPosition: "after",
103
+ children: "text"
104
+ }));
105
+ var button = _react.screen.getByRole('button');
106
+ var expected = 'iconAfter';
107
+ expect(button).toHaveClass(expected);
108
+ });
109
+ test('should have iconBefore class with text and icon', function () {
110
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
111
+ icon: "check",
112
+ iconPosition: "before",
113
+ children: "text"
114
+ }));
115
+ var button = _react.screen.getByRole('button');
116
+ var expected = 'iconBefore';
117
+ expect(button).toHaveClass(expected);
118
+ });
119
+ test('should not have iconPosition classes with only icon', function () {
120
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
121
+ icon: "check"
122
+ }));
123
+ var button = _react.screen.getByRole('button');
124
+ expect(button).not.toHaveClass('iconBefore');
125
+ expect(button).not.toHaveClass('iconAfter');
126
+ });
127
+ test('should have iconOnly class when there is no children', function () {
128
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
129
+ icon: "check"
130
+ }));
131
+ var button = _react.screen.getByRole('button');
132
+ var expected = 'iconOnly';
133
+ expect(button).toHaveClass(expected);
134
+ });
135
+ });
136
+ describe('with color', function () {
137
+ test('should have hasColor class when a color is specified', function () {
138
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
139
+ color: "red",
140
+ children: "abc"
141
+ }));
142
+ var button = _react.screen.getByRole('button');
143
+ var expected = 'hasColor';
144
+ expect(button).toHaveClass(expected);
145
+ });
146
+ test('should not have hasColor when no color is specified', function () {
147
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
148
+ children: "abc"
149
+ }));
150
+ var button = _react.screen.getByRole('button');
151
+ var expected = 'hasColor';
152
+ expect(button).not.toHaveClass(expected);
153
+ });
154
+ test('should have red class', function () {
155
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
156
+ color: "red",
157
+ children: "abc"
158
+ }));
159
+ var button = _react.screen.getByRole('button');
160
+ var expected = 'red';
161
+ expect(button).toHaveClass(expected);
162
+ });
163
+ test('should have blue class', function () {
164
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
165
+ color: "blue",
166
+ children: "abc"
167
+ }));
168
+ var button = _react.screen.getByRole('button');
169
+ var expected = 'blue';
170
+ expect(button).toHaveClass(expected);
171
+ });
172
+ test('should have yellow class', function () {
173
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
174
+ color: "yellow",
175
+ children: "abc"
176
+ }));
177
+ var button = _react.screen.getByRole('button');
178
+ var expected = 'yellow';
179
+ expect(button).toHaveClass(expected);
180
+ });
181
+ test('should have green class', function () {
182
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
183
+ color: "green",
184
+ children: "abc"
185
+ }));
186
+ var button = _react.screen.getByRole('button');
187
+ var expected = 'green';
188
+ expect(button).toHaveClass(expected);
189
+ });
190
+ });
191
+ describe('with shadowed', function () {
192
+ test('should have shadowed class when the background is transparent', function () {
193
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
194
+ shadowed: true,
195
+ backgroundOpacity: "transparent"
196
+ }));
197
+ var button = _react.screen.getByRole('button');
198
+ var expected = 'shadowed';
199
+ expect(button).toHaveClass(expected);
200
+ });
201
+ test('should have shadowed class when the background is undefined and has icon only', function () {
202
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
203
+ shadowed: true,
204
+ icon: "check"
205
+ }));
206
+ var button = _react.screen.getByRole('button');
207
+ var expected = 'shadowed';
208
+ expect(button).toHaveClass(expected);
209
+ });
210
+ test('should not have shadowed class when the background is not transparent', function () {
211
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
212
+ shadowed: true,
213
+ backgroundOpacity: "opaque"
214
+ }));
215
+ var button = _react.screen.getByRole('button');
216
+ var expected = 'shadowed';
217
+ expect(button).not.toHaveClass(expected);
218
+ });
219
+ });
220
+ describe('events', function () {
221
+ test('should call onClick when not disabled', /*#__PURE__*/_asyncToGenerator(function* () {
222
+ var handleClick = jest.fn();
223
+ var user = _userEvent["default"].setup();
224
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
225
+ onClick: handleClick,
226
+ children: "I am not a disabled Button"
227
+ }));
228
+ var button = _react.screen.getByText('I am not a disabled Button');
229
+ yield user.click(button);
230
+ expect(handleClick).toHaveBeenCalled();
231
+ }));
232
+ test('should not call onClick when disabled', /*#__PURE__*/_asyncToGenerator(function* () {
233
+ var handleClick = jest.fn();
234
+ var user = _userEvent["default"].setup();
235
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
236
+ disabled: true,
237
+ onClick: handleClick,
238
+ children: "I am a disabled Button"
239
+ }));
240
+ var button = _react.screen.getByText('I am a disabled Button');
241
+ yield user.click(button);
242
+ expect(handleClick).not.toHaveBeenCalled();
243
+ }));
244
+ test('should have "Select" voice intent in the node of "role=button"', function () {
245
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
246
+ children: "Hello"
247
+ }));
248
+ var button = _react.screen.getByRole('button');
249
+ expect(button).toHaveAttribute('data-webos-voice-intent', 'Select');
250
+ });
251
+ });
252
+ });
package/CHANGELOG.md ADDED
@@ -0,0 +1,170 @@
1
+ # Change Log
2
+
3
+ The following is a curated list of changes in the Enact limestone module, newest changes on the top.
4
+
5
+ ## [1.3.0] - 2025-08-08
6
+
7
+ ### Added
8
+
9
+ - `limestone/Card` prop `imageSize` to set the size of card image
10
+ - `limestone/Icon` supported icon list, adding new icons
11
+ - `limestone/Input` prop `buttons`
12
+ - `limestone/MediaPlayer.Times` prop `includeHour` to conditionally show hour for current and total time
13
+ - `limestone/VideoPlayer` prop `includeTimeHour` to conditionally show hour for current and total time
14
+
15
+ ### Changed
16
+
17
+ - All components in `light` skin and high-contrast mode styling to match the latest GUI
18
+ - `limestone/Card` to display `captions` on focus
19
+ - `limestone/CheckboxItem` styling to match the latest GUI
20
+ - `limestone/FlexiblePopupPanels` styling to match the latest GUI
21
+ - `limestone/FormCheckboxItem` styling to match the latest GUI
22
+ - `limestone/MediaOverlay` styling to match the latest GUI
23
+ - `limestone/RadioItem` styling to match the latest GUI
24
+ - `limestone/TabLayout` vertical to be collapsed in portrait mode
25
+ - `limestone/Tooltip` styling to match the latest GUI
26
+
27
+ ### Fixed
28
+
29
+ - `limestone/Card` for `focusRing` mode
30
+ - `limestone/Card` `background` for captions
31
+ - `limestone/Icon` medium size
32
+ - `limestone/Popup` to restore focus properly when popup hides
33
+ - `limestone/QuickGuidePanels` navigation buttons position
34
+ - `limestone/Scroller` to prevent the native scrolling behavior caused by keydown events only when a popup is open
35
+ - `limestone/Scroller` to restore focus when focus is lost after scroll by voice control
36
+ - `limestone/Scroller` with `editable` prop to work properly with deployed apps
37
+ - `limestone/Scroller` with `editable` prop to recognize button if clickEvent is triggered for `Button` background
38
+ - `limestone/TabLayout` to maintain the same scroller position when `Tabs` are collapsed or expanded
39
+ - `limestone/VideoPlayer` size of the icons from the control buttons
40
+
41
+ ## [1.2.0] - 2025-07-11
42
+
43
+ ### Added
44
+
45
+ - `limestone/Chip` prop `id` to manage focus properly
46
+
47
+ ### Changed
48
+
49
+ - `limestone/ActionGuide` styling to match the latest GUI
50
+ - `limestone/IconItem` styling to match the latest GUI
51
+ - `limestone/ImageItem` styling to match the latest GUI
52
+ - `limestone/KeyGuide` styling to match the latest GUI
53
+ - `limestone/Slider` styling to match the latest GUI
54
+ - `limestone/Spinner` styling to match the latest GUI
55
+ - `limestone/TimePicker` styling to match the latest GUI
56
+ - `limestone/VideoPlayer` styling to match the latest GUI
57
+
58
+ ### Fixed
59
+
60
+ - `limestone/Chips` to handle focus properly when `children` changes
61
+ - `limestone/FixedPopupPanels` to work with `noAnimation`
62
+ - `limestone/FlexiblePopupPanels` to work with `noAnimation`
63
+ - `limestone/InputPopup` prop `defaultValue` to be displayed when it's set
64
+ - `limestone/TooltipDecorator` to change position if wrapped component changes size
65
+ - `limestone/WizardPanels` title visibility when `prevButton` or `nextButton` are set to `false`
66
+
67
+ ## [1.1.0] - 2025-06-25
68
+
69
+ ### Added
70
+
71
+ - `limestone/ContextualPopup` `large` type `offset`
72
+ - `limestone/Icon` supported icon list, adding new icons
73
+ - `limestone/ImageItem` prop `wideImage` to support wide image
74
+
75
+ ### Changed
76
+
77
+ - `limestone/Alert` styling to match the latest GUI
78
+ - `limestone/Button` styling to match the latest GUI
79
+ - `limestone/Button` font-size for non-latin locale
80
+ - `limestone/Dropdown` styling to match the latest GUI
81
+ - `limestone/ImageItem` styling to match the latest GUI
82
+ - `limestone/Input` styling to match the latest GUI
83
+ - `limestone/PageViews` indicator styling to match the latest GUI
84
+
85
+ ### Fixed
86
+
87
+ - `limestone/Button` min-width for `iconOnly` button in large text mode
88
+ - `limestone/ImageItem` props `children` and `label` to accept node type
89
+ - `limestone/TimePicker` flickering on the hour picker when the meridiem value change
90
+
91
+ ## [1.0.0] - 2025-06-13
92
+
93
+ ### Added
94
+
95
+ - `limestone/Chips`, a new container component that groups and manages multiple `limestone/Chips.Chip` for improved layout and interaction
96
+
97
+ ### Changed
98
+
99
+ - `limestone/Chips.Chip` styling to match the latest GUI
100
+ - `limestone/TabLayout` styling to match the latest GUI
101
+
102
+ ## [1.0.0-rc.2] - 2025-06-04
103
+
104
+ ### Changed
105
+
106
+ - `limestone/ContextualMenuDecorator` styling to match the latest GUI
107
+ - `limestone/FixedPopupPanels` styling to match the latest GUI
108
+
109
+ ### Fixed
110
+
111
+ - `limestone/TabLayout` to focus to the last focused tab when focus enters to the tab group
112
+
113
+ ## [1.0.0-rc.1] - 2025-05-29
114
+
115
+ ### Added
116
+
117
+ - `limestone/Icon` supported icon list, adding new icons
118
+ - `limestone/TabLayout` prop `primaryIndex` to focus primary tab when pressing back key from other tabs or initial rendering
119
+
120
+ ### Changed
121
+
122
+ - `limestone/BodyText` styling to match the latest GUI
123
+ - `limestone/DatePicker` styling to match the latest GUI
124
+ - `limestone/DayPicker` styling to match the latest GUI
125
+ - `limestone/Heading` prop `size` default value to `tiny` and styling to match the latest GUI
126
+ - `limestone/PageViews` styling to match the latest GUI
127
+ - `limestone/Panels` styling to match the latest GUI
128
+ - `limestone/Panels.Header` styling to match the latest GUI
129
+ - `limestone/PopupTabLayout` styling to match the latest GUI
130
+ - `limestone/ProgressButton` styling to match the latest GUI
131
+ - `limestone/Steps` styling to match the latest GUI
132
+ - `limestone/Switch` styling to match the latest GUI
133
+ - `limestone/SwitchItem` styling to match the latest GUI
134
+ - `limestone/WizardPanels` styling to match the latest GUI
135
+
136
+ ### Fixed
137
+
138
+ - `limestone/ContextualPopupDecorator` to update popup position properly when Wrapped component updated
139
+ - `limestone/Input.InputField` to receive focus properly when navigating with directional keys
140
+ - `limestone/Input.InputField` to receive focus properly when not contained in the same SpotlightContainer
141
+
142
+ ## [1.0.0-beta.1] - 2025-04-29
143
+
144
+ ### Added
145
+
146
+ - `limestone/Card` prop `secondaryLabel`
147
+
148
+ ### Changed
149
+
150
+ - `limestone/Button` styling to match the latest GUI
151
+ - `limestone/Checkbox` styling to match the latest GUI
152
+ - `limestone/Dropdown` styling to match the latest GUI
153
+ - `limestone/Input.InputField` styling to match the latest GUI
154
+ - `limestone/Item` styling to match the latest GUI
155
+ - `limestone/Picker` styling to match the latest GUI
156
+ - `limestone/ProgressBar` styling to match the latest GUI
157
+ - `limestone/RadioItem` styling to match the latest GUI
158
+ - `limestone/Scroller` styling to match the latest GUI
159
+ - `limestone/Tab` styling to match the latest GUI
160
+ - `limestone/VirtualList` styling to match the latest GUI
161
+ - `limestone/WizardPanels` to marquee subtitle
162
+
163
+ ### Fixed
164
+
165
+ - `limestone/ContextualPopupDecorator` to focus content only after the state has been updated when popup opens
166
+ - `limestone/Scroller` with `editable` prop to not move hidden items
167
+
168
+ ## [1.0.0-alpha.1] - 2025-04-04
169
+
170
+ Initial alpha release.
package/Card/Card.d.ts ADDED
@@ -0,0 +1,138 @@
1
+ // Type definitions for limestone/Card
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 { CardProps as ui_Card_CardProps } from "@enact/ui/Card";
7
+ import * as React from "react";
8
+
9
+ type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
10
+ type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
11
+
12
+ export interface CardBaseProps extends ui_Card_CardProps {
13
+ /**
14
+ * The primary caption displayed with the image.
15
+ */
16
+ children: string;
17
+ /**
18
+ * Source for the image.
19
+ String value or Object of values used to determine which image will appear on
20
+ a specific screenSize.
21
+ */
22
+ src: string | object;
23
+ /**
24
+ * Determines whether the caption will be placed over the image or not.
25
+ It only applies when `orientation` is `'vertical'` .
26
+ */
27
+ captionOverlay?: boolean;
28
+ /**
29
+ * Determines whether the caption will be placed over the image and shown only on card focus.
30
+ It only applies when `orientation` is `'vertical'` .
31
+ */
32
+ captionOverlayOnFocus?: boolean;
33
+ /**
34
+ * Centers the captions when `imageIconSrc` is not provided.
35
+ */
36
+ centered?: boolean;
37
+ /**
38
+ * Customizes the component by mapping the supplied collection of CSS class names to the
39
+ corresponding internal elements and states of this component.
40
+ */
41
+ css?: object;
42
+ /**
43
+ * Disables Card and becomes non-interactive.
44
+ */
45
+ disabled?: boolean;
46
+ /**
47
+ * Set to `true` to display a container with background color.
48
+ When `orientation` is `'horizontal'` , this prop is always `true` and provided value will be ignored.
49
+ */
50
+ hasContainer?: boolean;
51
+ /**
52
+ * Source for the image icon.
53
+ *
54
+ * String value or Object of values used to determine which image will appear on
55
+ a specific screenSize. This prop is only used when `orientation` is `'vertical'` .
56
+ */
57
+ imageIconSrc?: string | object;
58
+ /**
59
+ * The size of the image.
60
+ *
61
+ * The following properties should be provided:
62
+ * * `height` - The height of the image
63
+ * * `width` - The width of the image
64
+ */
65
+ imageSize?: object;
66
+ /**
67
+ * A secondary caption displayed with the image.
68
+ */
69
+ label?: string;
70
+ /**
71
+ * The layout orientation of the component.
72
+ */
73
+ orientation?: "horizontal" | "vertical";
74
+ /**
75
+ * A placeholder image to be displayed before the image is loaded.
76
+ */
77
+ placeholder?: string;
78
+ /**
79
+ * The primary badge image source.
80
+ */
81
+ primaryBadgeSrc?: string | object;
82
+ /**
83
+ * Set to `true` to display the image with rounded corners.
84
+ */
85
+ roundedImage?: boolean;
86
+ /**
87
+ * The secondary badge image source.
88
+ */
89
+ secondaryBadgeSrc?: string | object;
90
+ /**
91
+ * A ternary caption displayed with the image.
92
+ */
93
+ secondaryLabel?: string;
94
+ /**
95
+ * Applies a selected visual effect to the image.
96
+ */
97
+ selected?: boolean;
98
+ }
99
+ /**
100
+ * A Limestone styled base component for .
101
+ */
102
+
103
+ export class CardBase extends React.Component<
104
+ Merge<React.HTMLProps<HTMLElement>, CardBaseProps>
105
+ > {}
106
+
107
+ export interface CardDecoratorProps
108
+ extends Merge<
109
+ Merge<
110
+ limestone_Marquee_MarqueeControllerProps,
111
+ spotlight_Spottable_SpottableProps
112
+ >,
113
+ limestone_Skinnable_SkinnableProps
114
+ > {}
115
+ export function CardDecorator<P>(
116
+ Component: React.ComponentType<P> | string,
117
+ ): React.ComponentType<P & CardDecoratorProps>;
118
+
119
+ export interface CardProps extends Merge<CardBaseProps, CardDecoratorProps> {}
120
+ /**
121
+ * A Limestone-styled Card.
122
+ *
123
+ * Usage:
124
+ * ```
125
+ <Card
126
+ src="https://placehold.co/100x100/9037ab/ffffff/png?text=Image0"
127
+ label="A secondary caption"
128
+ >
129
+ The primary caption
130
+ </Card>
131
+ ```
132
+ */
133
+
134
+ export class Card extends React.Component<
135
+ Merge<React.HTMLProps<HTMLElement>, CardProps>
136
+ > {}
137
+
138
+ export default Card;