@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,204 @@
1
+ "use strict";
2
+
3
+ var _FloatingLayer = require("@enact/ui/FloatingLayer");
4
+ require("@testing-library/jest-dom");
5
+ var _react = require("@testing-library/react");
6
+ var _Alert = require("../Alert");
7
+ var _Button = _interopRequireDefault(require("../../Button"));
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ var FloatingLayerController = (0, _FloatingLayer.FloatingLayerDecorator)('div');
11
+ describe('Alert', function () {
12
+ test('should be rendered opened if open is set to true', function () {
13
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
14
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
15
+ open: true
16
+ })
17
+ }));
18
+ var alert = _react.screen.getByRole('alert');
19
+ expect(alert).toBeInTheDocument();
20
+ });
21
+ test('should not be rendered if open is set to false', function () {
22
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
23
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {})
24
+ }));
25
+ var alert = _react.screen.queryByRole('alert');
26
+ expect(alert).toBeNull();
27
+ });
28
+ test('should render title', function () {
29
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
30
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertBase, {
31
+ open: true,
32
+ title: "alert title"
33
+ })
34
+ }));
35
+ var alert = _react.screen.getByRole('alert');
36
+ var expected = 'alert title';
37
+ expect(alert).toHaveTextContent(expected);
38
+ });
39
+ test('should render content', function () {
40
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
41
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertBase, {
42
+ open: true,
43
+ title: "alert title",
44
+ children: 'alert message'
45
+ })
46
+ }));
47
+ var alert = _react.screen.getByRole('alert');
48
+ var actual = alert.textContent;
49
+ var expected = 'alert message';
50
+ expect(actual).toContain(expected);
51
+ });
52
+ test('should render to empty string if children is not set', function () {
53
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
54
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertBase, {
55
+ open: true,
56
+ title: "alert title"
57
+ })
58
+ }));
59
+ var alert = _react.screen.getByRole('alert');
60
+ var actual = alert.querySelector('#undefined_content').hasChildNodes();
61
+ expect(actual).toBeFalsy();
62
+ });
63
+ test('should have `icon` className if `type` prop is set to `icon`', function () {
64
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
65
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Alert.Alert, {
66
+ open: true,
67
+ title: "alert title",
68
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("image", {
69
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertImage, {
70
+ src: "testIconImage.png",
71
+ type: "icon"
72
+ })
73
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("buttons", {
74
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
75
+ children: "yes"
76
+ })
77
+ })]
78
+ })
79
+ }));
80
+ var image = _react.screen.getAllByRole('img')[0];
81
+ var expectedClass = 'icon';
82
+ expect(image).toHaveClass(expectedClass);
83
+ });
84
+ test('should have `thumbnail` className if `type` prop is set to `thumbnail`', function () {
85
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
86
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Alert.Alert, {
87
+ open: true,
88
+ title: "alert title",
89
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("image", {
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertImage, {
91
+ src: "testThumbnailImage.png",
92
+ type: "thumbnail"
93
+ })
94
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("buttons", {
95
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
96
+ children: "yes"
97
+ })
98
+ })]
99
+ })
100
+ }));
101
+ var image = _react.screen.getAllByRole('img')[0];
102
+ var expectedClass = 'thumbnail';
103
+ expect(image).toHaveClass(expectedClass);
104
+ });
105
+ });
106
+ describe('AlertOverlay specs', function () {
107
+ test('should be rendered opened if open is set to true', function () {
108
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
109
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
110
+ open: true,
111
+ type: "overlay"
112
+ })
113
+ }));
114
+ var alert = _react.screen.getByRole('alert');
115
+ expect(alert).toBeInTheDocument();
116
+ });
117
+ test('should not be rendered if open is set to false', function () {
118
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
119
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.Alert, {
120
+ type: "overlay"
121
+ })
122
+ }));
123
+ var alert = _react.screen.queryByRole('alert');
124
+ expect(alert).toBeNull();
125
+ });
126
+ test('should render content', function () {
127
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
128
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Alert.Alert, {
129
+ open: true,
130
+ type: "overlay",
131
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
132
+ children: "this is alert overlay."
133
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("buttons", {
134
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
135
+ size: "small",
136
+ children: "yes"
137
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
138
+ size: "small",
139
+ children: "yes"
140
+ })]
141
+ })]
142
+ })
143
+ }));
144
+ var alert = _react.screen.getByRole('alert');
145
+ var actual = alert.textContent;
146
+ var expected = 'this is alert overlay.';
147
+ expect(actual).toContain(expected);
148
+ });
149
+ test('should render to empty string if children is not set', function () {
150
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
151
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertBase, {
152
+ open: true,
153
+ type: "overlay"
154
+ })
155
+ }));
156
+ var alert = _react.screen.getByRole('alert');
157
+ var actual = alert.querySelector('#undefined_content').hasChildNodes();
158
+ expect(actual).toBeFalsy();
159
+ });
160
+ test('should have `icon` classname if `type` prop is set to `icon`', function () {
161
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
162
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Alert.Alert, {
163
+ open: true,
164
+ type: "overlay",
165
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("image", {
166
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertImage, {
167
+ src: "testIconImage.png",
168
+ type: "icon"
169
+ })
170
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("buttons", {
171
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
172
+ size: "small",
173
+ children: "yes"
174
+ })
175
+ })]
176
+ })
177
+ }));
178
+ var image = _react.screen.getAllByRole('img')[0];
179
+ var expectedClass = 'icon';
180
+ expect(image).toHaveClass(expectedClass);
181
+ });
182
+ test('should have `icon` classname if `type` prop is set to `thumbnail`', function () {
183
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(FloatingLayerController, {
184
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Alert.Alert, {
185
+ open: true,
186
+ type: "overlay",
187
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("image", {
188
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.AlertImage, {
189
+ src: "testThumbnailImage.png",
190
+ type: "thumbnail"
191
+ })
192
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("buttons", {
193
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
194
+ size: "small",
195
+ children: "yes"
196
+ })
197
+ })]
198
+ })
199
+ }));
200
+ var image = _react.screen.getAllByRole('img')[0];
201
+ var expectedClass = 'thumbnail';
202
+ expect(image).toHaveClass(expectedClass);
203
+ });
204
+ });
@@ -0,0 +1,74 @@
1
+ // Type definitions for limestone/BodyText
2
+
3
+ import { SkinnableProps as limestone_Skinnable_SkinnableProps } from "limestone/Skinnable";
4
+ import { BodyTextProps as ui_BodyText_BodyTextProps } from "@enact/ui/BodyText";
5
+ import * as React from "react";
6
+
7
+ type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
8
+ type Merge<M, N> = Omit<M, Extract<keyof M, keyof N>> & N;
9
+
10
+ export interface BodyTextBaseProps extends ui_BodyText_BodyTextProps {
11
+ /**
12
+ * Centers the contents.
13
+ *
14
+ * Applies the `centered` CSS class which can be customized by
15
+ .
16
+ */
17
+ centered?: boolean;
18
+ /**
19
+ * Customizes the component by mapping the supplied collection of CSS class names to the
20
+ corresponding internal elements and states of this component.
21
+ *
22
+ * The following classes are supported:
23
+ * * `bodyText` - The root class name
24
+ */
25
+ css?: object;
26
+ /**
27
+ * Toggles multi-line ( `false` ) vs single-line ( `true` ) behavior. `noWrap` mode
28
+ automatically enables so long text isn't permanently occluded.
29
+ */
30
+ noWrap?: boolean;
31
+ /**
32
+ * Sets the text size to one of the preset sizes.
33
+ Available sizes: 'large' (default) and 'small'.
34
+ */
35
+ size?: "small" | "large";
36
+ }
37
+ /**
38
+ * A simple text block component.
39
+ *
40
+ * This component is most often not used directly but may be composed within another component as it
41
+ is within .
42
+ */
43
+
44
+ export class BodyTextBase extends React.Component<
45
+ Merge<React.HTMLProps<HTMLElement>, BodyTextBaseProps>
46
+ > {}
47
+
48
+ export interface BodyTextDecoratorProps
49
+ extends limestone_Skinnable_SkinnableProps {}
50
+ export function BodyTextDecorator<P>(
51
+ Component: React.ComponentType<P> | string,
52
+ ): React.ComponentType<P & BodyTextDecoratorProps>;
53
+
54
+ export interface BodyTextProps
55
+ extends Merge<BodyTextBaseProps, BodyTextDecoratorProps> {}
56
+ /**
57
+ * A simple text block component, ready to use in Limestone applications.
58
+ *
59
+ * `BodyText` may be used to display a block of text and is sized and spaced appropriately for a
60
+ Limestone application.
61
+ *
62
+ * Usage:
63
+ * ```
64
+ <BodyText>
65
+ I have a Ham radio. There are many like it, but this one is mine.
66
+ </BodyText>
67
+ ```
68
+ */
69
+
70
+ export class BodyText extends React.Component<
71
+ Merge<React.HTMLProps<HTMLElement>, BodyTextProps>
72
+ > {}
73
+
74
+ export default BodyText;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.BodyTextDecorator = exports.BodyTextBase = exports.BodyText = void 0;
7
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _compose = _interopRequireDefault(require("ramda/src/compose"));
10
+ var _BodyText = _interopRequireDefault(require("@enact/ui/BodyText"));
11
+ var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
12
+ var _Marquee = require("../Marquee");
13
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
14
+ var _BodyTextModule = _interopRequireDefault(require("./BodyText.module.css"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _excluded = ["centered", "css", "noWrap"];
17
+ /**
18
+ * Limestone styled text block components and behaviors.
19
+ *
20
+ * @example
21
+ * <BodyText centered>Hello Enact!</BodyText>
22
+ *
23
+ * @module limestone/BodyText
24
+ * @exports BodyText
25
+ * @exports BodyTextBase
26
+ * @exports BodyTextDecorator
27
+ */
28
+ // Create a Marquee using BodyText as the base
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 MarqueeBodyText = (0, _Marquee.MarqueeDecorator)(_BodyText["default"]);
38
+
39
+ /**
40
+ * A simple text block component.
41
+ *
42
+ * This component is most often not used directly but may be composed within another component as it
43
+ * is within {@link limestone/BodyText.BodyText|BodyText}.
44
+ *
45
+ * @class BodyTextBase
46
+ * @memberof limestone/BodyText
47
+ * @extends ui/BodyText.BodyText
48
+ * @ui
49
+ * @public
50
+ */
51
+ var BodyTextBase = exports.BodyTextBase = (0, _kind["default"])({
52
+ name: 'BodyText',
53
+ propTypes: /** @lends limestone/BodyText.BodyTextBase.prototype */{
54
+ /**
55
+ * Centers the contents.
56
+ *
57
+ * Applies the `centered` CSS class which can be customized by
58
+ * {@link /docs/developer-guide/theming/|theming}.
59
+ *
60
+ * @type {Boolean}
61
+ * @public
62
+ */
63
+ centered: _propTypes["default"].bool,
64
+ /**
65
+ * Customizes the component by mapping the supplied collection of CSS class names to the
66
+ * corresponding internal elements and states of this component.
67
+ *
68
+ * The following classes are supported:
69
+ *
70
+ * * `bodyText` - The root class name
71
+ *
72
+ * @type {Object}
73
+ * @public
74
+ */
75
+ css: _propTypes["default"].object,
76
+ /**
77
+ * Toggles multi-line (`false`) vs single-line (`true`) behavior. `noWrap` mode
78
+ * automatically enables {@link limestone/Marquee} so long text isn't permanently occluded.
79
+ *
80
+ * @type {Boolean}
81
+ * @default false
82
+ * @public
83
+ */
84
+ noWrap: _propTypes["default"].bool,
85
+ /**
86
+ * Sets the text size to one of the preset sizes.
87
+ * Available sizes: 'large' (default) and 'small'.
88
+ *
89
+ * @type {('small'|'large')}
90
+ * @default 'large'
91
+ * @public
92
+ */
93
+ size: _propTypes["default"].oneOf(['small', 'large'])
94
+ },
95
+ defaultProps: {
96
+ noWrap: false,
97
+ size: 'large'
98
+ },
99
+ styles: {
100
+ css: _BodyTextModule["default"],
101
+ publicClassNames: 'bodyText'
102
+ },
103
+ computed: {
104
+ className: function className(_ref) {
105
+ var noWrap = _ref.noWrap,
106
+ size = _ref.size,
107
+ styler = _ref.styler;
108
+ return styler.append(size, {
109
+ noWrap: noWrap
110
+ });
111
+ }
112
+ },
113
+ render: function render(_ref2) {
114
+ var centered = _ref2.centered,
115
+ css = _ref2.css,
116
+ noWrap = _ref2.noWrap,
117
+ rest = _objectWithoutProperties(_ref2, _excluded);
118
+ delete rest.size;
119
+ if (noWrap) {
120
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(MarqueeBodyText, _objectSpread(_objectSpread({
121
+ component: "div" // Assign a new component to BodyText, since DIV is not allowed inside a P tag (the default for BodyText)
122
+ ,
123
+ marqueeOn: "render"
124
+ }, rest), {}, {
125
+ alignment: centered ? 'center' : null // Centering Marquee
126
+ ,
127
+ centered: centered // Centering UiBodyText
128
+ ,
129
+ css: css
130
+ }));
131
+ }
132
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BodyText["default"], _objectSpread(_objectSpread({}, rest), {}, {
133
+ centered: centered,
134
+ css: css
135
+ }));
136
+ }
137
+ });
138
+
139
+ /**
140
+ * Applies Limestone specific behaviors to {@link limestone/BodyText.BodyTextBase|BodyText}.
141
+ *
142
+ * @hoc
143
+ * @memberof limestone/BodyText
144
+ * @mixes limestone/Skinnable.Skinnable
145
+ * @public
146
+ */
147
+ var BodyTextDecorator = exports.BodyTextDecorator = (0, _compose["default"])(_Pure["default"], _Skinnable["default"]);
148
+
149
+ /**
150
+ * A simple text block component, ready to use in Limestone applications.
151
+ *
152
+ * `BodyText` may be used to display a block of text and is sized and spaced appropriately for a
153
+ * Limestone application.
154
+ *
155
+ * Usage:
156
+ * ```
157
+ * <BodyText>
158
+ * I have a Ham radio. There are many like it, but this one is mine.
159
+ * </BodyText>
160
+ * ```
161
+ *
162
+ * @class BodyText
163
+ * @memberof limestone/BodyText
164
+ * @extends limestone/BodyText.BodyTextBase
165
+ * @mixes limestone/BodyText.BodyTextDecorator
166
+ * @ui
167
+ * @public
168
+ */
169
+ var BodyText = exports.BodyText = BodyTextDecorator(BodyTextBase);
170
+ var _default = exports["default"] = BodyText;
@@ -0,0 +1,95 @@
1
+ .bodyText {
2
+ font-weight: var(--primitive-font-weight-regular);
3
+ font-size: var(--primitive-font-size-60);
4
+ font-style: normal;
5
+ font-family: "Limestone";
6
+ line-height: 1.4em;
7
+ margin: 0 0.75rem var(--primitive-font-size-60) 0.75rem;
8
+ padding: 0;
9
+ white-space: normal;
10
+ }
11
+ :global(.enact-locale-non-latin) .bodyText {
12
+ font-family: "Limestone";
13
+ }
14
+ :global(.enact-locale-non-latin) .bodyText {
15
+ font-family: "Limestone";
16
+ font-weight: var(--primitive-font-weight-light);
17
+ font-size: 1.125rem;
18
+ font-style: normal;
19
+ }
20
+ :global(.enact-locale-km) .bodyText {
21
+ line-height: 1.7em;
22
+ }
23
+ :global(.enact-locale-si) .bodyText {
24
+ line-height: 1.7em;
25
+ }
26
+ :global(.enact-locale-th) .bodyText {
27
+ line-height: 1.7em;
28
+ }
29
+ :global(.enact-locale-vi) .bodyText {
30
+ line-height: 1.7em;
31
+ }
32
+ .bodyText a:link {
33
+ color: inherit;
34
+ text-decoration: none;
35
+ }
36
+ .bodyText a:visited {
37
+ color: inherit;
38
+ text-decoration: none;
39
+ }
40
+ .bodyText a:hover {
41
+ color: inherit;
42
+ text-decoration: none;
43
+ }
44
+ .bodyText a:active {
45
+ color: inherit;
46
+ text-decoration: none;
47
+ }
48
+ .bodyText.large {
49
+ /* Needed to prevent global class being added in the DOM */
50
+ }
51
+ .bodyText.small {
52
+ font-size: var(--primitive-font-size-54);
53
+ line-height: 1.3em;
54
+ }
55
+ :global(.enact-locale-km) .bodyText.small {
56
+ line-height: 1.7em;
57
+ }
58
+ :global(.enact-locale-si) .bodyText.small {
59
+ line-height: 1.7em;
60
+ }
61
+ :global(.enact-locale-th) .bodyText.small {
62
+ line-height: 1.7em;
63
+ }
64
+ :global(.enact-locale-vi) .bodyText.small {
65
+ line-height: 1.7em;
66
+ }
67
+ :global(.enact-locale-km) .bodyText.small {
68
+ font-size: 1rem;
69
+ }
70
+ :global(.enact-locale-si) .bodyText.small {
71
+ font-size: 1rem;
72
+ }
73
+ :global(.enact-locale-th) .bodyText.small {
74
+ font-size: 1rem;
75
+ }
76
+ :global(.enact-locale-vi) .bodyText.small {
77
+ font-size: 1rem;
78
+ }
79
+ :global(.enact-locale-non-latin) .bodyText.small {
80
+ font-size: 1rem;
81
+ line-height: 1.375rem;
82
+ }
83
+ :global(.enact-locale-right-to-left) .bodyText {
84
+ text-align: right;
85
+ }
86
+ :global(.enact-locale-right-to-left) .bodyText.centered {
87
+ text-align: center;
88
+ }
89
+ .bodyText.noWrap {
90
+ /* Support for single-line, provided for extensibility */
91
+ white-space: nowrap;
92
+ }
93
+ :global(.enact-locale-ja) .bodyText {
94
+ line-break: strict;
95
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "main": "BodyText.js"
3
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _BodyText = _interopRequireDefault(require("../BodyText"));
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
8
+ describe('BodyText Specs', function () {
9
+ test('should support multi-line content', function () {
10
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_BodyText["default"], {
11
+ "data-testid": "bodyText"
12
+ }));
13
+ var bodyText = _react.screen.getByTestId('bodyText');
14
+ var expected = 'P';
15
+ var actual = bodyText.nodeName;
16
+ expect(actual).toBe(expected);
17
+ });
18
+ test('should support single-line marqueeing content when `noWrap` is true', function () {
19
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_BodyText["default"], {
20
+ "data-testid": "bodyText",
21
+ noWrap: true
22
+ }));
23
+ var bodyText = _react.screen.getByTestId('bodyText');
24
+ var marquee = bodyText.children.item(0);
25
+ var expected = 'marquee';
26
+ expect(marquee).toHaveClass(expected);
27
+ });
28
+ test('should include the noWrap class if `noWrap` is true', function () {
29
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_BodyText["default"], {
30
+ "data-testid": "bodyText",
31
+ noWrap: true
32
+ }));
33
+ var bodyText = _react.screen.getByTestId('bodyText');
34
+ var expected = 'noWrap';
35
+ expect(bodyText).toHaveClass(expected);
36
+ });
37
+ test('should have small class if `size` is small', function () {
38
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_BodyText["default"], {
39
+ "data-testid": "bodyText",
40
+ size: "small"
41
+ }));
42
+ var bodyText = _react.screen.getByTestId('bodyText');
43
+ var expected = 'small';
44
+ expect(bodyText).toHaveClass(expected);
45
+ });
46
+ test('should have `centered` class if `centered` is true', function () {
47
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_BodyText["default"], {
48
+ "data-testid": "bodyText",
49
+ centered: true
50
+ }));
51
+ var bodyText = _react.screen.getByTestId('bodyText');
52
+ var expected = 'centered';
53
+ expect(bodyText).toHaveClass(expected);
54
+ });
55
+ });