@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,80 @@
1
+ "use strict";
2
+
3
+ var _validators = require("../validators");
4
+ describe('validators', function () {
5
+ describe('warn', function () {
6
+ test('should throw a console warning', function () {
7
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
8
+ (0, _validators.warn)('Warning!');
9
+ expect(consoleSpy).toHaveBeenCalled();
10
+ });
11
+ });
12
+ describe('validateRange', function () {
13
+ test('should throw a console warning when \'value\' is less than \'min\'', function () {
14
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
15
+ (0, _validators.validateRange)(10, 11, 20, 'component', 'value', 'min', 'max');
16
+ expect(consoleSpy).toHaveBeenCalled();
17
+ });
18
+ test('should throw a console warning when \'value\' is greater than \'max\'', function () {
19
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
20
+ (0, _validators.validateRange)(21, 1, 20, 'component', 'value', 'min', 'max');
21
+ expect(consoleSpy).toHaveBeenCalled();
22
+ });
23
+ test('should throw a console warning when \'min\' is greater than \'max\'', function () {
24
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
25
+ (0, _validators.validateRange)(10, 21, 20, 'component', 'value', 'min', 'max');
26
+ expect(consoleSpy).toHaveBeenCalled();
27
+ });
28
+ });
29
+ describe('validateStepped', function () {
30
+ test('should throw a console warning when \'value\' is not evenly divisible by \'step\'', function () {
31
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
32
+ (0, _validators.validateStepped)(11, 20, 2, 'component', 'value', 'step');
33
+ expect(consoleSpy).toHaveBeenCalled();
34
+ });
35
+ });
36
+ describe('validateRangeOnce', function () {
37
+ var thingSpy;
38
+ beforeEach(function () {
39
+ thingSpy = jest.fn().mockReturnValue('ANY_THING_SPY_VALUE');
40
+ });
41
+ test('should throw a console warning when \'value\' is lower than \'min\'', function () {
42
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
43
+ var validateFn = (0, _validators.validateRangeOnce)(thingSpy, {
44
+ component: 'ANY_COMPONENT'
45
+ });
46
+ var normalizedValues = validateFn({
47
+ value: 1,
48
+ min: 2,
49
+ max: 10
50
+ });
51
+ var expected = 'Warning: ANY_COMPONENT value (1) less than min (2)';
52
+ expect(consoleSpy).toHaveBeenCalled();
53
+ expect(thingSpy).toHaveBeenCalled();
54
+ expect(consoleSpy.mock.calls[0][0]).toBe(expected);
55
+ expect(normalizedValues).toBe('ANY_THING_SPY_VALUE');
56
+ });
57
+ });
58
+ describe('validateSteppedOnce', function () {
59
+ var thingSpy;
60
+ beforeEach(function () {
61
+ thingSpy = jest.fn().mockReturnValue('ANY_THING_SPY_VALUE');
62
+ });
63
+ test('should throw a console warning when \'value\' is not evenly divisible by \'step\'', function () {
64
+ var consoleSpy = jest.spyOn(console, 'warn').mockImplementation(function () {});
65
+ var validateFn = (0, _validators.validateSteppedOnce)(thingSpy, {
66
+ component: 'ANY_COMPONENT'
67
+ });
68
+ var normalizedValues = validateFn({
69
+ value: 11,
70
+ min: 2,
71
+ step: 2
72
+ });
73
+ var expected = 'Warning: ANY_COMPONENT value (11) must be evenly divisible by step (2)';
74
+ expect(consoleSpy).toHaveBeenCalled();
75
+ expect(thingSpy).toHaveBeenCalled();
76
+ expect(consoleSpy.mock.calls[0][0]).toBe(expected);
77
+ expect(normalizedValues).toBe('ANY_THING_SPY_VALUE');
78
+ });
79
+ });
80
+ });
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.warn = exports.validateSteppedOnce = exports.validateStepped = exports.validateRangeOnce = exports.validateRange = void 0;
7
+ /**
8
+ * Exports various utilities for performing dev-time validations
9
+ *
10
+ * @module limestone/internal/validators
11
+ * @private
12
+ */
13
+
14
+ /**
15
+ * Issues a warning to the console
16
+ *
17
+ * @function
18
+ * @param {String} msg Event name
19
+ *
20
+ * @returns {undefined}
21
+ * @memberof limestone/internal/validators
22
+ * @private
23
+ */
24
+ var warn = exports.warn = function warn(msg) {
25
+ if (typeof console !== 'undefined') {
26
+ console.warn(msg); // eslint-disable-line no-console
27
+ }
28
+ };
29
+
30
+ /**
31
+ * Issues a warning to the console if `value` is not within the range
32
+ * `min` to `max` or if `min` is less than `max`. In production mode,
33
+ * no action is taken.
34
+ *
35
+ * @function
36
+ * @param {Number} value The value to validate
37
+ * @param {Number} min The minimum acceptable value to validate
38
+ * @param {Number} max The maximum acceptable value to validate
39
+ * @param {String} component The name of the invoker, used to decorate warning message
40
+ * @param {String} [valueName='value'] The name of the value property
41
+ * @param {String} [minName='min'] The name of the min property
42
+ * @param {String} [maxName='max'] The name of the max property
43
+ *
44
+ * @returns {undefined}
45
+ * @memberof limestone/internal/validators
46
+ * @private
47
+ */
48
+ var validateRange = exports.validateRange = function validateRange(value, min, max, component) {
49
+ var valueName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'value';
50
+ var minName = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'min';
51
+ var maxName = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 'max';
52
+ if (process.env.NODE_ENV !== "production") {
53
+ var warned = false;
54
+ if (value < min) {
55
+ warn("Warning: ".concat(component, " ").concat(valueName, " (").concat(value, ") less than ").concat(minName, " (").concat(min, ")"));
56
+ warned = true;
57
+ } else if (value > max) {
58
+ warn("Warning: ".concat(component, " ").concat(valueName, " (").concat(value, ") greater than ").concat(maxName, " (").concat(max, ")"));
59
+ warned = true;
60
+ }
61
+ if (min > max) {
62
+ warn("Warning: ".concat(component, " ").concat(minName, " (").concat(min, ") greater than ").concat(maxName, " (").concat(max, ")"));
63
+ warned = true;
64
+ }
65
+ return warned;
66
+ }
67
+ };
68
+ var validateRangeOnce = exports.validateRangeOnce = function validateRangeOnce(thing, _ref) {
69
+ var component = _ref.component,
70
+ _ref$valueName = _ref.valueName,
71
+ valueName = _ref$valueName === void 0 ? 'value' : _ref$valueName,
72
+ _ref$minName = _ref.minName,
73
+ minName = _ref$minName === void 0 ? 'min' : _ref$minName,
74
+ _ref$maxName = _ref.maxName,
75
+ maxName = _ref$maxName === void 0 ? 'max' : _ref$maxName;
76
+ if (process.env.NODE_ENV !== "production") {
77
+ var displayed;
78
+ return function (props) {
79
+ if (!displayed) {
80
+ displayed = validateRange(props[valueName], props[minName], props[maxName], component, valueName, minName, maxName);
81
+ }
82
+ return thing(props);
83
+ };
84
+ } else {
85
+ return thing;
86
+ }
87
+ };
88
+
89
+ /**
90
+ * Issues a warning to the console if `value`, adjusted for `min` is not evenly
91
+ * divisible by `step`. In production mode, no action is taken.
92
+ *
93
+ * @function
94
+ * @param {Number} value The value to validate
95
+ * @param {Number} min The minimum acceptable value to validate
96
+ * @param {Number} step The step
97
+ * @param {String} component The name of the invoker, used to decorate warning message
98
+ * @param {String} [valueName='value'] The name of the value property
99
+ * @param {String} [stepName='step'] The name of the step property
100
+ *
101
+ * @returns {Boolean} `true` if warned
102
+ * @memberof limestone/internal/validators
103
+ * @private
104
+ */
105
+ var validateStepped = exports.validateStepped = function validateStepped(value, min, step, component) {
106
+ var valueName = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'value';
107
+ var stepName = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'step';
108
+ if (process.env.NODE_ENV !== "production") {
109
+ // Ignore fractional steps as floating point math can give inconsistent results (1 % 0.1 != 0)
110
+ if (step && step === Math.floor(step) && (value - min) % step !== 0) {
111
+ warn("Warning: ".concat(component, " ").concat(valueName, " (").concat(value, ") must be evenly divisible by ").concat(stepName, " (").concat(step, ")"));
112
+ return true;
113
+ }
114
+ }
115
+ return false;
116
+ };
117
+ var validateSteppedOnce = exports.validateSteppedOnce = function validateSteppedOnce(thing, _ref2) {
118
+ var component = _ref2.component,
119
+ _ref2$minName = _ref2.minName,
120
+ minName = _ref2$minName === void 0 ? 'min' : _ref2$minName,
121
+ _ref2$stepName = _ref2.stepName,
122
+ stepName = _ref2$stepName === void 0 ? 'step' : _ref2$stepName,
123
+ _ref2$valueName = _ref2.valueName,
124
+ valueName = _ref2$valueName === void 0 ? 'value' : _ref2$valueName;
125
+ if (process.env.NODE_ENV !== "production") {
126
+ var displayed;
127
+ return function (props) {
128
+ if (!displayed) {
129
+ displayed = validateStepped(props[valueName], props[minName], props[stepName], component, valueName, stepName);
130
+ }
131
+ return thing(props);
132
+ };
133
+ } else {
134
+ return thing;
135
+ }
136
+ };
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@enact/limestone",
3
+ "version": "1.3.0",
4
+ "description": "Large-screen/TV support library for Enact, containing a variety of UI components.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/enactjs/limestone.git"
8
+ },
9
+ "homepage": "https://enactjs.com",
10
+ "main": "index.js",
11
+ "scripts": {
12
+ "bootstrap": "enact bootstrap",
13
+ "clean": "enact clean",
14
+ "cleanall": "enact clean --all",
15
+ "lint": "enact lint --strict",
16
+ "sampler": "npm run --prefix samples/sampler serve",
17
+ "sampler-qa": "npm run --prefix samples/sampler serve-qa",
18
+ "test": "enact test",
19
+ "test-ui": "start-tests tests/ui/config/wdio.conf.js",
20
+ "test-ui-docker": "start-tests tests/ui/config/wdio.docker.conf.js",
21
+ "test-ui-tv": "start-tests tests/ui/config/wdio.tv.conf.js",
22
+ "test-ss": "start-tests tests/screenshot/config/wdio.conf.js",
23
+ "test-ss-docker": "start-tests tests/screenshot/config/wdio.docker.conf.js",
24
+ "test-ss-tv": "start-tests tests/screenshot/config/wdio.tv.conf.js",
25
+ "test-json": "enact test --json",
26
+ "test-watch": "enact test --watch",
27
+ "transpile": "enact transpile",
28
+ "validate-docs": "validate-docs --strict --standalone"
29
+ },
30
+ "license": "Apache-2.0",
31
+ "keywords": [
32
+ "framework",
33
+ "toolkit",
34
+ "components",
35
+ "mobile",
36
+ "webOS"
37
+ ],
38
+ "enact": {
39
+ "screenTypes": "ThemeDecorator/screenTypes.json"
40
+ },
41
+ "dependencies": {
42
+ "@enact/core": "^5.2.0",
43
+ "@enact/i18n": "^5.2.0",
44
+ "@enact/spotlight": "^5.2.0",
45
+ "@enact/ui": "^5.2.0",
46
+ "@enact/webos": "^5.2.0",
47
+ "@enovaui/core-tokens": "^0.8.0",
48
+ "@enovaui/webos-tokens": "^0.8.0",
49
+ "classnames": "^2.5.1",
50
+ "ilib": "^14.21.0 || ^14.21.0-webos1",
51
+ "invariant": "^2.2.4",
52
+ "prop-types": "^15.8.1",
53
+ "ramda": "^0.31.3",
54
+ "react": "^19.1.0",
55
+ "react-dom": "^19.1.0",
56
+ "warning": "^4.0.3"
57
+ },
58
+ "peerDependencies": {
59
+ "ilib": "^14.21.0 || ^14.21.0-webos1"
60
+ },
61
+ "overrides": {
62
+ "autolinker": "^4.0.0",
63
+ "vue-template-compiler": "@vue/compiler-sfc@3.4.31"
64
+ },
65
+ "devDependencies": {
66
+ "@enact/docs-utils": "^0.4.13",
67
+ "@enact/ui-test-utils": "^3.0.0"
68
+ }
69
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "files": []
3
+ }
@@ -0,0 +1,230 @@
1
+ // color-mixins.less
2
+ //
3
+ // Mixins specifically dependent on theme colors.
4
+ // Shortcuts for easily getting consistent colorization rules onto components.
5
+ //
6
+
7
+ @import "./mixins.less";
8
+
9
+ // ---------------------------------------
10
+ // Focus Shadow and background setup
11
+ // ---------------------------------------
12
+ .lime-bg-colors (@bg) {
13
+ //// Relocate the bg styling to a pseudo-element
14
+ // &::after {
15
+ @bg();
16
+ // }
17
+ }
18
+ // .lime-shadow-colors (@shadow) {
19
+ // // &::before {
20
+ // @shadow();
21
+ // // }
22
+ // }
23
+
24
+ // Establish rules assignment for before focus has happened
25
+ .lime-spotlight-resting-bg-colors (@opacity: 0, @bg: {}, @shadow: {}) {
26
+ // These lines are really long, and occasionally repeated. Defining here as shorthand.
27
+ // @transition-opacity: opacity @lime-spotlight-focus-animation-duration ease-out;
28
+ // @transition-transform: transform @lime-spotlight-focus-animation-duration ease-out;
29
+ // @transition-filter: filter @lime-spotlight-focus-animation-duration ease-out;
30
+
31
+ opacity: @opacity;
32
+ // transition+: @transition-opacity;
33
+ // will-change+: opacity;
34
+
35
+ // Prep common aspects
36
+ // @pseudo-element-setup: {
37
+ // content: "";
38
+ // position: absolute;
39
+ // .position(0);
40
+ // border-radius: inherit;
41
+ // };
42
+
43
+ // // Shadow
44
+ // .lime-shadow-colors({
45
+ // @pseudo-element-setup();
46
+ // background-color: @lime-spotlight-bg-color;
47
+ // opacity: 0;
48
+
49
+ // // filter+: drop-shadow(@lime-spotlight-focus-shadow);
50
+ // box-shadow: @lime-spotlight-focus-shadow;
51
+
52
+ // //// Include a transform on the shadow for a better effect
53
+ // // transform+_: scale(0.9, 0.5); // Hard-coded values, not part of the design. This transform is responsible for tucking the shadow up inside the background so it can transition out.
54
+ // // transition+: @transition-opacity, @transition-transform;
55
+ // // will-change+: opacity, transition;
56
+
57
+ // //// Simple opacity change to the shadow (fade-in)
58
+ // transition+: @transition-opacity;
59
+ // will-change+: opacity;
60
+ // will-change+: box-shadow;
61
+
62
+ // @shadow();
63
+ // });
64
+
65
+ // Background coloration
66
+ .lime-bg-colors({
67
+ // @pseudo-element-setup();
68
+
69
+ background-color: @lime-spotlight-bg-color;
70
+ // transition+: @transition-filter;
71
+ will-change+: box-shadow;
72
+
73
+ @bg();
74
+ @shadow();
75
+ });
76
+ }
77
+
78
+ // Establish rules assignment for after focus has happened
79
+ .lime-spotlight-focus-bg-colors (@bg: {}, @shadow: {}) {
80
+ opacity: 1;
81
+ .lime-bg-colors({
82
+ background-color: @lime-spotlight-bg-color;
83
+ box-shadow: @lime-spotlight-focus-shadow;
84
+ @bg();
85
+ @shadow();
86
+ });
87
+ }
88
+
89
+ // // Just the spotlight shadow (merge-safe)
90
+ // .lime-spotlight-focus-shadow-colors (@shadow: {}) {
91
+ // .lime-shadow-colors({
92
+ // transform: scale(1);
93
+ // opacity: 1;
94
+ // box-shadow: @lime-spotlight-focus-shadow;
95
+ // @shadow();
96
+ // });
97
+ // }
98
+
99
+ .lime-spotlight-focus-text-colors () {
100
+ // font-weight: @lime-spotlight-font-weight;
101
+ color: @lime-spotlight-text-color;
102
+ }
103
+
104
+ //
105
+ // The following 3 mixins should be used inside the `.lime-disabled()` mixin's ruleset.
106
+ //
107
+
108
+ // Assign the standard disabled rules
109
+ .lime-disabled-colors () {
110
+ opacity: @lime-disabled-opacity;
111
+ }
112
+
113
+ .lime-disabled-bg-colors () {
114
+ opacity: @lime-disabled-bg-opacity;
115
+ }
116
+
117
+ // Assign the standard disabled rules of content to content nodes.
118
+ // This should be used on children of a root component node.
119
+ .lime-disabled-focus-content-colors () {
120
+ opacity: @lime-disabled-focus-content-opacity;
121
+ }
122
+
123
+ // Assign the standard disabled rules of backgrounds to bg nodes.
124
+ // This should be used on children of a root component node.
125
+ .lime-disabled-focus-bg-colors (@bg: {}, @shadow: {}) {
126
+ opacity: @lime-disabled-focus-bg-opacity;
127
+
128
+ .lime-bg-colors({
129
+ @bg();
130
+ @shadow();
131
+ });
132
+ }
133
+
134
+ // The technique below is special handling for opaque buttons, which have an opaque
135
+ // color defined for the initial background-color. This means we can't use the
136
+ // traditional opacity change to animate the difference. Instead, this smoothly applies
137
+ // (via transition) a series of filters that match the spotlight-focus bg color. The
138
+ // values were manually calculated to perfectly match, taking the resting bg-color and
139
+ // adjusting it to become the focus-bg-color. If either color value changes, these
140
+ // adjustments must be recalculated. This is not automatic. It may be possible to
141
+ // autonomously calculate this in the future...
142
+ // Button single-color mixins
143
+ .lime-button-resting-bg-color () {
144
+ background-color: @lime-button-fill-container-color;
145
+ }
146
+
147
+ .lime-button-selected-bg-color () {
148
+ background-color: @lime-button-fill-container-selected-color;
149
+ filter+_: @lime-button-filter-selected;
150
+ }
151
+
152
+ .lime-button-outline-selected-bg-color () {
153
+ background-color: @lime-button-outline-container-selected-color;
154
+ filter+_: @lime-button-filter-selected;
155
+ }
156
+
157
+ .lime-button-transparent-selected-bg-color () {
158
+ background-color: @lime-button-transparent-container-selected-color;
159
+ filter+_: @lime-button-filter-selected;
160
+ }
161
+
162
+ .lime-button-focus-bg-color () {
163
+ background-color: @lime-button-fill-container-focused-color;
164
+ filter+_: @lime-button-filter-focused;
165
+ }
166
+
167
+ .lime-button-outline-focus-bg-color () {
168
+ background-color: @lime-button-outline-container-focused-color;
169
+ filter+_: @lime-button-filter-focused;
170
+ }
171
+
172
+ .lime-button-transparent-focus-bg-color () {
173
+ background-color: @lime-button-transparent-container-focused-color;
174
+ filter+_: @lime-button-filter-focused;
175
+ }
176
+
177
+ // Button state mixins
178
+ .lime-button-resting-bg-colors (@bg: {}, @shadow: {}) {
179
+ .lime-spotlight-resting-bg-colors(@opacity: 0, @bg: {
180
+ .lime-button-resting-bg-color();
181
+ will-change+: transform, filter;
182
+ transition+: transform @lime-button-focus-duration ease-out;
183
+ @bg();
184
+ }, @shadow);
185
+ }
186
+
187
+ .lime-button-selected-colors (@bg: {}, @shadow: {}) {
188
+ .lime-bg-colors({
189
+ .lime-button-selected-bg-color();
190
+ @bg();
191
+ @shadow();
192
+ });
193
+ }
194
+
195
+ .lime-button-outline-selected-colors (@bg: {}, @shadow: {}) {
196
+ .lime-bg-colors({
197
+ .lime-button-outline-selected-bg-color();
198
+ @bg();
199
+ @shadow();
200
+ });
201
+ }
202
+
203
+ .lime-button-transparent-selected-colors (@bg: {}, @shadow: {}) {
204
+ .lime-bg-colors({
205
+ .lime-button-transparent-selected-bg-color();
206
+ @bg();
207
+ @shadow();
208
+ });
209
+ }
210
+
211
+ .lime-button-focus-bg-colors (@bg: {}, @shadow: {}) {
212
+ .lime-spotlight-focus-bg-colors(@bg: {
213
+ .lime-button-focus-bg-color();
214
+ @bg();
215
+ }, @shadow);
216
+ }
217
+
218
+ .lime-button-outline-focus-bg-colors (@bg: {}, @shadow: {}) {
219
+ .lime-spotlight-focus-bg-colors(@bg: {
220
+ .lime-button-outline-focus-bg-color();
221
+ @bg();
222
+ }, @shadow);
223
+ }
224
+
225
+ .lime-button-transparent-focus-bg-colors (@bg: {}, @shadow: {}) {
226
+ .lime-spotlight-focus-bg-colors(@bg: {
227
+ .lime-button-transparent-focus-bg-color();
228
+ @bg();
229
+ }, @shadow);
230
+ }
@@ -0,0 +1,25 @@
1
+ // colors-game-green.less (game skin)
2
+ // (green)
3
+
4
+ // ---------------------------------------
5
+ // Universal Color Definitions
6
+ // ---------------------------------------
7
+
8
+ // colors
9
+ @lime-game-skin-color-01: #00ffc2;
10
+ @lime-game-skin-color-02: #45c194;
11
+
12
+ @lime-game-skin-heading-border-color: #3e6354;
13
+ @lime-game-skin-item-focus-bg-gradient-1: fade(#00ffbc, 0%);
14
+ @lime-game-skin-item-focus-bg-gradient-2: fade(#00ffc2, 47%);
15
+
16
+
17
+ // UI Conceptual Colors
18
+ // ---------------------------------------
19
+
20
+ // common colors
21
+
22
+ & {
23
+ --semantic-color-surface-default: #1F2C24;
24
+ --semantic-color-surface-default-focused: #3ea07d;
25
+ }
@@ -0,0 +1,25 @@
1
+ // colors-game-orange.less (game skin)
2
+ // (orange)
3
+
4
+ // ---------------------------------------
5
+ // Universal Color Definitions
6
+ // ---------------------------------------
7
+
8
+ // colors
9
+ @lime-game-skin-color-01: #eb5e00;
10
+ @lime-game-skin-color-02: #d75431;
11
+
12
+ @lime-game-skin-heading-border-color: #ea5e00;
13
+ @lime-game-skin-item-focus-bg-gradient-1: fade(#562907, 0%);
14
+ @lime-game-skin-item-focus-bg-gradient-2: #a85c37;
15
+
16
+
17
+ // UI Conceptual Colors
18
+ // ---------------------------------------
19
+
20
+ // common colors
21
+
22
+ & {
23
+ --semantic-color-surface-default: #422923;
24
+ --semantic-color-surface-default-focused: #b85f23;
25
+ }
@@ -0,0 +1,56 @@
1
+ // colors-game.less (game skin)
2
+ // (violet)
3
+
4
+ // ---------------------------------------
5
+ // Universal Color Definitions
6
+ // ---------------------------------------
7
+
8
+ // colors
9
+ @lime-game-skin-color-01: #a273c8;
10
+ @lime-game-skin-color-02: #8b31d7;
11
+
12
+ @lime-game-skin-heading-border-color: #8151ff;
13
+ @lime-game-skin-item-focus-bg-gradient-1: fade(#603091, 0%);
14
+ @lime-game-skin-item-focus-bg-gradient-2: #6d2fa1;
15
+
16
+
17
+ // UI Conceptual Colors
18
+ // ---------------------------------------
19
+
20
+ // common colors
21
+
22
+ & {
23
+ --semantic-color-surface-default: #2d224c;
24
+ --semantic-color-surface-default-focused: #6d2fa1;
25
+ --semantic-color-on-surface-main-focused: #e6e6e6;
26
+ }
27
+
28
+ // ---------------------------------------
29
+ // Component Colors
30
+ // ---------------------------------------
31
+
32
+ // Alert
33
+ // ---------------------------------------
34
+ @lime-alert-overlay-bg-color: #000000;
35
+ @lime-alert-overlay-bg-color-opacity: 0.75;
36
+ @lime-alert-overlay-label-color: #ffffff;
37
+ @lime-alert-overlay-shadow: 0 36px 24px fade(#000, 30%), inset 0 0 0 3px fade(@lime-game-skin-color-01, 75%);
38
+
39
+ // Button
40
+ // --------------------------------------
41
+ @lime-button-outline-border: fade(@lime-game-skin-color-01, 50%);
42
+ @lime-button-icononly-bg-focused: fade(@lime-game-skin-color-02, 50%);
43
+
44
+ // Heading
45
+ // ---------------------------------------
46
+ @lime-heading-border-color: @lime-game-skin-heading-border-color;
47
+
48
+ // Item
49
+ // ---------------------------------------
50
+ @lime-item-focus-background: linear-gradient(270deg, @lime-game-skin-item-focus-bg-gradient-1, @lime-game-skin-item-focus-bg-gradient-2);
51
+ @lime-item-focus-label-color: #abaeb3;
52
+
53
+ // RadioItem
54
+ // ---------------------------------------
55
+ @lime-radioitem-icon-bg-selected: @lime-game-skin-color-02;
56
+ @lime-radioitem-icon-border-selected: @lime-game-skin-color-02;
@@ -0,0 +1,21 @@
1
+ // colors-highcontast.less (neutral skin + high-contrast variant)
2
+ //
3
+
4
+ // ---------------------------------------
5
+ // Universal Color Definitions
6
+ // ---------------------------------------
7
+
8
+ // UI Conceptual Colors
9
+ // ---------------------------------------
10
+
11
+ @lime-overlay-outline-color: #7c848b;
12
+ @lime-overlay-outline-style: solid;
13
+
14
+ // ---------------------------------------
15
+ // Component Colors
16
+ // ---------------------------------------
17
+
18
+ // Popup
19
+ // ---------------------------------------
20
+ @lime-popup-bg-color: var(--semantic-color-background-overlay-default); // opaque
21
+ @lime-popup-scrimtransparent-bg-color: var(--semantic-color-background-overlay-default); // opaque