@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,372 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.RangePickerBase = exports.RangePicker = void 0;
7
+ var _classnames2 = _interopRequireDefault(require("classnames"));
8
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
9
+ var _util = require("@enact/core/util");
10
+ var _Changeable = _interopRequireDefault(require("@enact/ui/Changeable"));
11
+ var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _Heading = _interopRequireDefault(require("../Heading"));
14
+ var _Picker = require("../internal/Picker");
15
+ var _validators = require("../internal/validators");
16
+ var _RangePickerModule = _interopRequireDefault(require("./RangePicker.module.css"));
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ var _excluded = ["css", "label", "inlineTitle", "title", "value", "voiceLabel"];
19
+ /**
20
+ * A component for selecting a number from a range of numbers.
21
+ *
22
+ * @example
23
+ * <RangePicker defaultValue={70} min={0} max={100}></RangePicker>
24
+ *
25
+ * @module limestone/RangePicker
26
+ * @exports RangePicker
27
+ * @exports RangePickerBase
28
+ */
29
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
30
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
33
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
34
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
35
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
36
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
37
+ var digits = function digits(num) {
38
+ // minor optimization
39
+ return num > -10 && num < 10 && 1 || num > -100 && num < 100 && 2 || num > -1000 && num < 1000 && 3 || Math.floor(Math.log(Math.abs(num)) * Math.LOG10E) + 1;
40
+ };
41
+
42
+ /**
43
+ * RangePicker base component.
44
+ *
45
+ * @class RangePickerBase
46
+ * @memberof limestone/RangePicker
47
+ * @ui
48
+ * @public
49
+ */
50
+ var RangePickerBase = exports.RangePickerBase = (0, _kind["default"])({
51
+ name: 'RangePicker',
52
+ propTypes: /** @lends limestone/RangePicker.RangePickerBase.prototype */{
53
+ /**
54
+ * The maximum value selectable by the picker (inclusive).
55
+ *
56
+ * The range between `min` and `max` should be evenly divisible by
57
+ * {@link limestone/RangePicker.RangePickerBase.step|step}.
58
+ *
59
+ * @type {Number}
60
+ * @required
61
+ * @public
62
+ */
63
+ max: _propTypes["default"].number.isRequired,
64
+ /**
65
+ * The minimum value selectable by the picker (inclusive).
66
+ *
67
+ * The range between `min` and `max` should be evenly divisible by
68
+ * {@link limestone/RangePicker.RangePickerBase.step|step}.
69
+ *
70
+ * @type {Number}
71
+ * @required
72
+ * @public
73
+ */
74
+ min: _propTypes["default"].number.isRequired,
75
+ /**
76
+ * Current value.
77
+ *
78
+ * @type {Number}
79
+ * @required
80
+ * @public
81
+ */
82
+ value: _propTypes["default"].number.isRequired,
83
+ /**
84
+ * The `aria-valuetext` for the picker.
85
+ *
86
+ * By default, `aria-valuetext` is set to the current selected child value.
87
+ *
88
+ * @type {String}
89
+ * @memberof limestone/RangePicker.RangePickerBase.prototype
90
+ * @public
91
+ */
92
+ 'aria-valuetext': _propTypes["default"].string,
93
+ /**
94
+ * Determines which key to adjust the picker's value for the joined horizontal one.
95
+ *
96
+ * * `'enter'` allows the user to use the enter key to adjust the picker's value
97
+ * * `'arrow'` allows the user to use the left or right keys to adjust the picker's value.
98
+ *
99
+ * The default value for joined horizontal picker is `'enter'`.
100
+ * If {@link limestone/RangePicker.RangePickerBase.orientation|orientation} is `'vertical'` or
101
+ * {@link limestone/RangePicker.RangePickerBase.joined|joined} is undefined or is `false`, this prop is ignored.
102
+ *
103
+ * @type {('enter'|'arrow')}
104
+ * @public
105
+ */
106
+ changedBy: _propTypes["default"].oneOf(['enter', 'arrow']),
107
+ /**
108
+ * Children from which to pick.
109
+ *
110
+ * @type {Node}
111
+ * @public
112
+ */
113
+ children: _propTypes["default"].node,
114
+ /**
115
+ * Class name for component.
116
+ *
117
+ * @type {String}
118
+ * @public
119
+ */
120
+ className: _propTypes["default"].string,
121
+ /**
122
+ * Customizes the component by mapping the supplied collection of CSS class names to the
123
+ * corresponding internal elements and states of this component.
124
+ *
125
+ * The following classes are supported:
126
+ *
127
+ * * `title` - The title component class
128
+ * * `inlineTitle` - The title component class when `inlineTitle` is true
129
+ *
130
+ * @type {Object}
131
+ * @public
132
+ */
133
+ css: _propTypes["default"].object,
134
+ /**
135
+ * A custom icon for the decrementer.
136
+ *
137
+ * All strings supported by {@link limestone/Icon.Icon|Icon} are supported. Without a
138
+ * custom icon, the default is used, and is automatically changed when the
139
+ * {@link limestone/RangePicker.RangePickerBase.orientation|orientation} is changed.
140
+ *
141
+ * @type {string}
142
+ * @public
143
+ */
144
+ decrementIcon: _propTypes["default"].string,
145
+ /**
146
+ * Disables the picker.
147
+ *
148
+ * @type {Boolean}
149
+ * @public
150
+ */
151
+ disabled: _propTypes["default"].bool,
152
+ /**
153
+ * A custom icon for the incrementer.
154
+ *
155
+ * All strings supported by {@link limestone/Icon.Icon|Icon} are supported. Without a
156
+ * custom icon, the default is used, and is automatically changed when the
157
+ * {@link limestone/RangePicker.RangePickerBase.orientation|orientation} is changed.
158
+ *
159
+ * @type {String}
160
+ * @public
161
+ */
162
+ incrementIcon: _propTypes["default"].string,
163
+ /**
164
+ * Applies inline styling to the title.
165
+ *
166
+ * @type {Boolean}
167
+ * @public
168
+ */
169
+ inlineTitle: _propTypes["default"].bool,
170
+ /**
171
+ * Allows the user can use the arrow keys or enter key to adjust the picker's value.
172
+ *
173
+ * The user may no longer use those arrow keys to navigate while this control is focused.
174
+ * A default control allows full navigation, but requires individual ENTER presses on the
175
+ * incrementer and decrementer buttons. Pointer interaction is the same for both formats.
176
+ *
177
+ * @type {Boolean}
178
+ * @public
179
+ */
180
+ joined: _propTypes["default"].bool,
181
+ /**
182
+ * Disables animation.
183
+ *
184
+ * By default, the picker will animate transitions between items, provided a `width` is
185
+ * defined.
186
+ *
187
+ * @type {Boolean}
188
+ * @public
189
+ */
190
+ noAnimation: _propTypes["default"].bool,
191
+ /**
192
+ * Called when `value` changes.
193
+ *
194
+ * @type {Function}
195
+ * @public
196
+ */
197
+ onChange: _propTypes["default"].func,
198
+ /**
199
+ * Orientation of the picker.
200
+ *
201
+ * Controls whether the buttons are arranged horizontally or vertically around the value.
202
+ *
203
+ * * Values: `'horizontal'`, `'vertical'`
204
+ *
205
+ * @type {'horizontal'|'vertical'}
206
+ * @default 'horizontal'
207
+ * @public
208
+ */
209
+ orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
210
+ /**
211
+ * Pads the display value with zeros up to the number of digits of `min` or max`, whichever
212
+ * is greater.
213
+ *
214
+ * @type {Boolean}
215
+ * @public
216
+ */
217
+ padded: _propTypes["default"].bool,
218
+ /**
219
+ * The smallest value change allowed for the picker.
220
+ *
221
+ * For example, a step of `2` would cause the picker to increment from 0 to 2 to 4, etc.
222
+ * It must evenly divide into the range designated by `min` and `max`.
223
+ *
224
+ * @type {Number}
225
+ * @default 1
226
+ * @public
227
+ */
228
+ step: _propTypes["default"].number,
229
+ /**
230
+ * The primary text of the `Picker`.
231
+ *
232
+ * @type {String}
233
+ * @public
234
+ */
235
+ title: _propTypes["default"].string,
236
+ /**
237
+ * The width of the picker.
238
+ *
239
+ * A number can be used to set the minimum number of characters to be shown. Setting a
240
+ * number to less than the number of characters in the longest value will cause the width to
241
+ * grow for the longer values.
242
+ *
243
+ * A string can be used to select from pre-defined widths:
244
+ *
245
+ * * `'small'` - numeric values
246
+ * * `'medium'` - single or short words
247
+ * * `'large'` - maximum-sized pickers taking full width of its parent
248
+ *
249
+ * By default, the picker will size according to the longest valid value.
250
+ *
251
+ * @type {('small'|'medium'|'large'|Number)}
252
+ * @public
253
+ */
254
+ width: _propTypes["default"].oneOfType([_propTypes["default"].oneOf([null, 'small', 'medium', 'large']), _propTypes["default"].number]),
255
+ /**
256
+ * Allows picker to continue from the start of the list after it reaches the end and
257
+ * vice versa.
258
+ *
259
+ * @type {Boolean}
260
+ * @public
261
+ */
262
+ wrap: _propTypes["default"].bool
263
+ },
264
+ defaultProps: {
265
+ orientation: 'horizontal'
266
+ },
267
+ styles: {
268
+ css: _RangePickerModule["default"],
269
+ className: 'rangePicker',
270
+ publicClassNames: ['inlineTitle', 'title']
271
+ },
272
+ computed: {
273
+ disabled: function disabled(_ref) {
274
+ var _disabled = _ref.disabled,
275
+ max = _ref.max,
276
+ min = _ref.min;
277
+ return min >= max ? true : _disabled;
278
+ },
279
+ label: function label(_ref2) {
280
+ var max = _ref2.max,
281
+ min = _ref2.min,
282
+ padded = _ref2.padded,
283
+ value = _ref2.value;
284
+ value = (0, _util.clamp)(min, max, value);
285
+ if (padded) {
286
+ var maxDigits = digits(Math.max(Math.abs(min), Math.abs(max)));
287
+ var valueDigits = digits(value);
288
+ var start = value < 0 ? 0 : 1;
289
+ var padding = '-00000000000000000000';
290
+ return padding.slice(start, maxDigits - valueDigits + start) + Math.abs(value);
291
+ }
292
+ return value;
293
+ },
294
+ width: function width(_ref3) {
295
+ var max = _ref3.max,
296
+ min = _ref3.min,
297
+ _width = _ref3.width;
298
+ return _width || Math.max(max.toString().length, min.toString().length);
299
+ },
300
+ value: function value(_ref4) {
301
+ var min = _ref4.min,
302
+ max = _ref4.max,
303
+ _value = _ref4.value;
304
+ if (process.env.NODE_ENV !== "production") {
305
+ (0, _validators.validateRange)(_value, min, max, 'RangePicker');
306
+ }
307
+ return (0, _util.clamp)(min, max, _value);
308
+ },
309
+ voiceLabel: function voiceLabel(_ref5) {
310
+ var min = _ref5.min,
311
+ max = _ref5.max;
312
+ return JSON.stringify([min, max]);
313
+ }
314
+ },
315
+ render: function render(_ref6) {
316
+ var css = _ref6.css,
317
+ label = _ref6.label,
318
+ inlineTitle = _ref6.inlineTitle,
319
+ title = _ref6.title,
320
+ value = _ref6.value,
321
+ voiceLabel = _ref6.voiceLabel,
322
+ rest = _objectWithoutProperties(_ref6, _excluded);
323
+ delete rest.padded;
324
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
325
+ children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
326
+ css: css,
327
+ className: (0, _classnames2["default"])(css.title, _defineProperty({}, css.inlineTitle, inlineTitle)),
328
+ size: "tiny",
329
+ children: title
330
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.Picker, _objectSpread(_objectSpread({}, rest), {}, {
331
+ css: css,
332
+ "data-webos-voice-labels-ext": voiceLabel,
333
+ index: 0,
334
+ reverse: false,
335
+ type: "number",
336
+ value: value,
337
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Picker.PickerItem, {
338
+ marqueeDisabled: true,
339
+ style: {
340
+ direction: 'ltr'
341
+ },
342
+ children: label
343
+ }, value)
344
+ }))]
345
+ });
346
+ }
347
+ });
348
+
349
+ /**
350
+ * A component that lets the user select a number from a range of numbers.
351
+ *
352
+ * By default, `RangePicker` maintains the state of its `value` property. Supply the `defaultValue`
353
+ * property to control its initial value. If you wish to directly control updates to the component,
354
+ * supply a value to `value` at creation time and update it in response to `onChange` events.
355
+ *
356
+ * @class RangePicker
357
+ * @memberof limestone/RangePicker
358
+ * @mixes ui/Changeable.Changeable
359
+ * @ui
360
+ * @public
361
+ */
362
+ var RangePicker = exports.RangePicker = (0, _Pure["default"])((0, _Changeable["default"])(RangePickerBase));
363
+
364
+ /**
365
+ * Default value
366
+ *
367
+ * @name defaultValue
368
+ * @memberof limestone/RangePicker.RangePicker.prototype
369
+ * @type {Number}
370
+ * @public
371
+ */
372
+ var _default = exports["default"] = RangePicker;
@@ -0,0 +1,55 @@
1
+ .rangePicker .valueWrapper {
2
+ font-family: "Limestone Number";
3
+ }
4
+ :global(.enact-locale-non-latin) .rangePicker .valueWrapper {
5
+ font-family: "Limestone Number";
6
+ }
7
+ .rangePicker.joined.horizontal:not(.arrow) .valueWrapper {
8
+ margin-bottom: 0;
9
+ }
10
+ .title {
11
+ margin-left: 1.875rem;
12
+ margin-right: var(--primitive-spacing-24);
13
+ }
14
+ :global(.enact-locale-right-to-left) .title {
15
+ margin-left: var(--primitive-spacing-24);
16
+ margin-right: 1.875rem;
17
+ }
18
+ .title.inlineTitle {
19
+ display: inline-block;
20
+ max-width: 10rem;
21
+ line-height: 1.5rem;
22
+ padding-bottom: 0;
23
+ margin-bottom: 0;
24
+ }
25
+ .heading:global(.neutral).tiny {
26
+ color: var(--semantic-color-on-background-main);
27
+ }
28
+ :global(.enact-a11y-high-contrast) .heading:global(.neutral):global(.highContrast).tiny {
29
+ color: var(--semantic-color-on-background-main);
30
+ }
31
+ .heading:global(.light).tiny {
32
+ color: var(--semantic-color-on-background-main);
33
+ }
34
+ .heading:global(.game) {
35
+ --semantic-color-surface-default: #2d224c;
36
+ --semantic-color-surface-default-focused: #6d2fa1;
37
+ --semantic-color-on-surface-main-focused: #e6e6e6;
38
+ }
39
+ .heading:global(.game).tiny {
40
+ color: var(--semantic-color-on-background-main);
41
+ }
42
+ :global(.green) .heading:global(.game) {
43
+ --semantic-color-surface-default: #1F2C24;
44
+ --semantic-color-surface-default-focused: #3ea07d;
45
+ }
46
+ :global(.green) .heading:global(.game).tiny {
47
+ color: var(--semantic-color-on-background-main);
48
+ }
49
+ :global(.orange) .heading:global(.game) {
50
+ --semantic-color-surface-default: #422923;
51
+ --semantic-color-surface-default-focused: #b85f23;
52
+ }
53
+ :global(.orange) .heading:global(.game).tiny {
54
+ color: var(--semantic-color-on-background-main);
55
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "RangePicker.js"
3
+ }
@@ -0,0 +1,122 @@
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 _RangePicker = require("../RangePicker");
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
+ 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); }
10
+ 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); }); }; }
11
+ describe('RangePicker Specs', function () {
12
+ test('should render a single child with the current value', function () {
13
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
14
+ min: -10,
15
+ max: 20,
16
+ value: 10
17
+ }));
18
+ var textField = _react.screen.getByText('10');
19
+ var expected = 'item';
20
+ expect(textField).toBeInTheDocument();
21
+ expect(textField).toHaveClass(expected);
22
+ });
23
+ test('should increase by step amount on increment press', /*#__PURE__*/_asyncToGenerator(function* () {
24
+ var user = _userEvent["default"].setup();
25
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
26
+ min: 0,
27
+ max: 100,
28
+ defaultValue: 10,
29
+ step: 1,
30
+ noAnimation: true
31
+ }));
32
+ var incrementButton = _react.screen.getByText('▶');
33
+ yield user.click(incrementButton);
34
+ var textField = _react.screen.getByText('11');
35
+ var expected = 'item';
36
+ expect(textField).toBeInTheDocument();
37
+ expect(textField).toHaveClass(expected);
38
+ }));
39
+ test('should decrease by step amount on decrement press', /*#__PURE__*/_asyncToGenerator(function* () {
40
+ var user = _userEvent["default"].setup();
41
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
42
+ min: 0,
43
+ max: 100,
44
+ defaultValue: 10,
45
+ step: 1,
46
+ noAnimation: true
47
+ }));
48
+ var decrementButton = _react.screen.getByText('◀');
49
+ yield user.click(decrementButton);
50
+ var textField = _react.screen.getByText('9');
51
+ var expected = 'item';
52
+ expect(textField).toBeInTheDocument();
53
+ expect(textField).toHaveClass(expected);
54
+ }));
55
+ test('should pad the value', function () {
56
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
57
+ min: 0,
58
+ max: 100,
59
+ value: 10,
60
+ step: 1,
61
+ padded: true
62
+ }));
63
+ var textField = _react.screen.getByText('010');
64
+ var expected = 'item';
65
+ expect(textField).toBeInTheDocument();
66
+ expect(textField).toHaveClass(expected);
67
+ });
68
+ test('should pad the value when min has more digits than max', function () {
69
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePicker, {
70
+ min: -1000,
71
+ max: 100,
72
+ value: 10,
73
+ step: 1,
74
+ padded: true
75
+ }));
76
+ var textField = _react.screen.getByText('0010');
77
+ var expected = 'item';
78
+ expect(textField).toBeInTheDocument();
79
+ expect(textField).toHaveClass(expected);
80
+ });
81
+ test('should be disabled when limited to a single value', function () {
82
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePickerBase, {
83
+ "data-testid": "rangePicker",
84
+ min: 0,
85
+ max: 0,
86
+ value: 0
87
+ }));
88
+ var rangePicker = _react.screen.getByTestId('rangePicker');
89
+ var expectedAttribute = 'aria-disabled';
90
+ var expectedValue = 'true';
91
+ expect(rangePicker).toHaveAttribute(expectedAttribute, expectedValue);
92
+ });
93
+ test('should have an heading element when \'title\'', function () {
94
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePickerBase, {
95
+ min: 0,
96
+ max: 0,
97
+ value: 0,
98
+ title: "title text"
99
+ }));
100
+ var title = _react.screen.getByText('title text');
101
+ var expected = 'heading';
102
+ var actual = title.parentElement.parentElement;
103
+ expect(title).toBeInTheDocument();
104
+ expect(actual).toHaveClass(expected);
105
+ });
106
+ test('should have an heading element with inline class when \'title\' and \'inlineTitle\'', function () {
107
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_RangePicker.RangePickerBase, {
108
+ inlineTitle: true,
109
+ min: 0,
110
+ max: 0,
111
+ value: 0,
112
+ title: "title text"
113
+ }));
114
+ var title = _react.screen.getByText('title text');
115
+ var expectedInline = 'inlineTitle';
116
+ var expectedHeader = 'heading';
117
+ var actual = title.parentElement.parentElement;
118
+ expect(title).toBeInTheDocument();
119
+ expect(actual).toHaveClass(expectedInline);
120
+ expect(actual).toHaveClass(expectedHeader);
121
+ });
122
+ });
@@ -0,0 +1,33 @@
1
+ // Type definitions for limestone/Region
2
+
3
+ import * as React from "react";
4
+
5
+ type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
6
+ type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
7
+
8
+ export interface RegionProps {
9
+ /**
10
+ * Title placed within an instance of before the
11
+ children.
12
+ */
13
+ title: string;
14
+ /**
15
+ * The aria-label for the region.
16
+ *
17
+ * If unset, it defaults to the value of `title`
18
+ */
19
+ "aria-label"?: string;
20
+ /**
21
+ * Contents of the region.
22
+ */
23
+ children?: React.ReactNode;
24
+ }
25
+ /**
26
+ * A component for grouping other components.
27
+ */
28
+
29
+ export class Region extends React.Component<
30
+ Merge<React.HTMLProps<HTMLElement>, RegionProps>
31
+ > {}
32
+
33
+ export default Region;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.RegionBase = exports.Region = void 0;
7
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _Heading = _interopRequireDefault(require("../Heading"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var _excluded = ["aria-label", "children", "title"];
12
+ /**
13
+ * This component provides a labeled region to a group of components.
14
+ *
15
+ * @example
16
+ * <Region title="Select an Option">
17
+ * </Region>
18
+ *
19
+ * @module limestone/Region
20
+ * @exports Region
21
+ * @exports RegionBase
22
+ */
23
+ /**
24
+ * A component for grouping other components.
25
+ *
26
+ * @class Region
27
+ * @memberof limestone/Region
28
+ * @ui
29
+ * @public
30
+ */
31
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
32
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
35
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
36
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
37
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
38
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
39
+ var RegionBase = exports.RegionBase = exports.Region = (0, _kind["default"])({
40
+ name: 'Region',
41
+ propTypes: /** @lends limestone/Region.Region.prototype */{
42
+ /**
43
+ * Title placed within an instance of {@link limestone/Heading.Heading|Heading} before the
44
+ * children.
45
+ *
46
+ * @type {String}
47
+ * @required
48
+ * @public
49
+ */
50
+ title: _propTypes["default"].string.isRequired,
51
+ /**
52
+ * The aria-label for the region.
53
+ *
54
+ * If unset, it defaults to the value of `title`
55
+ *
56
+ * @memberof limestone/Region.Region.prototype
57
+ * @type {String}
58
+ * @public
59
+ */
60
+ 'aria-label': _propTypes["default"].string,
61
+ /**
62
+ * Contents of the region.
63
+ *
64
+ * @type {Node}
65
+ * @public
66
+ */
67
+ children: _propTypes["default"].node
68
+ },
69
+ computed: {
70
+ 'aria-label': function ariaLabel(_ref) {
71
+ var _ariaLabel = _ref['aria-label'],
72
+ title = _ref.title;
73
+ return _ariaLabel || title;
74
+ }
75
+ },
76
+ render: function render(_ref2) {
77
+ var ariaLabel = _ref2['aria-label'],
78
+ children = _ref2.children,
79
+ title = _ref2.title,
80
+ rest = _objectWithoutProperties(_ref2, _excluded);
81
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, rest), {}, {
82
+ role: "region",
83
+ "aria-label": ariaLabel,
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
85
+ showLine: true,
86
+ children: title
87
+ }), children]
88
+ }));
89
+ }
90
+ });
91
+ var _default = exports["default"] = RegionBase;
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "Region.js"
3
+ }