@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,248 @@
1
+ "use strict";
2
+
3
+ var _ilib = _interopRequireDefault(require("ilib"));
4
+ require("@testing-library/jest-dom");
5
+ var _react = require("@testing-library/react");
6
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
7
+ var _TimePicker = _interopRequireWildcard(require("../TimePicker"));
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ 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); }
12
+ 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); }); }; } // Note: Tests pass 'locale' because there's no I18nDecorator to provide a value via context and
13
+ // otherwise, nothing renders in the label.
14
+ describe('TimePicker', function () {
15
+ // Suite-wide setup
16
+
17
+ test('should emit an onChange event when changing the hour', /*#__PURE__*/_asyncToGenerator(function* () {
18
+ var handleChange = jest.fn();
19
+ var user = _userEvent["default"].setup();
20
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
21
+ onChange: handleChange,
22
+ value: new Date(2000, 6, 15, 3, 30),
23
+ locale: "en-US"
24
+ }));
25
+ var hourPicker = _react.screen.getAllByText('▲')[0];
26
+ yield user.click(hourPicker);
27
+ var expected = 1;
28
+ var expectedType = {
29
+ type: 'onChange',
30
+ value: new Date(2000, 6, 15, 4, 30)
31
+ };
32
+ var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
33
+ expect(handleChange).toHaveBeenCalledTimes(expected);
34
+ expect(actual).toMatchObject(expectedType);
35
+ }));
36
+ test('should emit an onChange event when changing the minute', /*#__PURE__*/_asyncToGenerator(function* () {
37
+ var handleChange = jest.fn();
38
+ var user = _userEvent["default"].setup();
39
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
40
+ onChange: handleChange,
41
+ value: new Date(2000, 6, 15, 3, 30),
42
+ locale: "en-US"
43
+ }));
44
+ var minutePicker = _react.screen.getAllByText('▲')[1];
45
+ yield user.click(minutePicker);
46
+ var expected = 1;
47
+ var expectedType = {
48
+ type: 'onChange',
49
+ value: new Date(2000, 6, 15, 3, 31)
50
+ };
51
+ var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
52
+ expect(handleChange).toHaveBeenCalledTimes(expected);
53
+ expect(actual).toMatchObject(expectedType);
54
+ }));
55
+ test('should emit an onChange event when changing the meridiem', /*#__PURE__*/_asyncToGenerator(function* () {
56
+ var handleChange = jest.fn();
57
+ var user = _userEvent["default"].setup();
58
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
59
+ onChange: handleChange,
60
+ value: new Date(2000, 6, 15, 3, 30),
61
+ locale: "en-US"
62
+ }));
63
+ var meridiemPicker = _react.screen.getAllByText('▲')[2];
64
+ yield user.click(meridiemPicker);
65
+ var expected = 1;
66
+ var expectedType = {
67
+ type: 'onChange',
68
+ value: new Date(2000, 6, 15, 15, 30)
69
+ };
70
+ var actual = handleChange.mock.calls.length && handleChange.mock.calls[0][0];
71
+ expect(handleChange).toHaveBeenCalledTimes(expected);
72
+ expect(actual).toMatchObject(expectedType);
73
+ }));
74
+ test('should fire onComplete event with type when enter key pressed from the last picker', function () {
75
+ var handleComplete = jest.fn();
76
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
77
+ onComplete: handleComplete,
78
+ value: new Date(2000, 6, 15, 3, 30),
79
+ locale: "en-US"
80
+ }));
81
+ var meridiemPicker = _react.screen.getByLabelText('AM change a value with up down button');
82
+ (0, _react.act)(function () {
83
+ return meridiemPicker.focus();
84
+ });
85
+ _react.fireEvent.keyDown(meridiemPicker, {
86
+ which: 13,
87
+ keyCode: 13,
88
+ code: 13
89
+ });
90
+ var expected = {
91
+ type: 'onComplete',
92
+ value: new Date(2000, 6, 15, 3, 30)
93
+ };
94
+ var actual = handleComplete.mock.calls.length && handleComplete.mock.calls[0][0];
95
+ expect(actual).toMatchObject(expected);
96
+ });
97
+ test('should accept a JavaScript Date for its value prop', function () {
98
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
99
+ value: new Date(2000, 0, 1, 12, 30),
100
+ locale: "en-US"
101
+ }));
102
+ var minutePicker = _react.screen.getByText('30');
103
+ var expected = 'item';
104
+ expect(minutePicker).toHaveClass(expected);
105
+ });
106
+ test('should set \'hourAriaLabel\' to hour picker', function () {
107
+ var label = 'custom hour aria-label';
108
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
109
+ hourAriaLabel: label,
110
+ value: new Date(2000, 0, 1, 12, 30)
111
+ }));
112
+ var hourPicker = _react.screen.getByLabelText(label);
113
+ var expected = 'hourPicker';
114
+ expect(hourPicker).toBeInTheDocument();
115
+ expect(hourPicker).toHaveClass(expected);
116
+ });
117
+ test('should set \'meridiemAriaLabel\' to meridiem picker', function () {
118
+ var label = 'custom meridiem aria-label';
119
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
120
+ meridiemAriaLabel: label,
121
+ value: new Date(2000, 0, 1, 12, 30)
122
+ }));
123
+ var meridiemPicker = _react.screen.getByLabelText(label);
124
+ var expected = 'meridiemPicker';
125
+ expect(meridiemPicker).toBeInTheDocument();
126
+ expect(meridiemPicker).toHaveClass(expected);
127
+ });
128
+ test('should set \'minuteAriaLabel\' to minute picker', function () {
129
+ var label = 'custom minute aria-label';
130
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
131
+ minuteAriaLabel: label,
132
+ value: new Date(2000, 0, 1, 12, 30)
133
+ }));
134
+ var minutePicker = _react.screen.getByLabelText(label);
135
+ var expected = 'minutePicker';
136
+ expect(minutePicker).toBeInTheDocument();
137
+ expect(minutePicker).toHaveClass(expected);
138
+ });
139
+ test('should set \'data-webos-voice-disabled\' to hour picker when voice control is disabled', function () {
140
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
141
+ value: new Date(2000, 0, 1, 12, 30),
142
+ "data-webos-voice-disabled": true
143
+ }));
144
+ var hourPicker = _react.screen.getByLabelText('12 hour change a value with up down button');
145
+ var expected = 'data-webos-voice-disabled';
146
+ expect(hourPicker).toHaveAttribute(expected);
147
+ });
148
+ test('should set \'data-webos-voice-disabled\' to meridiem picker when voice control is disabled', function () {
149
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
150
+ value: new Date(2000, 0, 1, 12, 30),
151
+ "data-webos-voice-disabled": true
152
+ }));
153
+ var merdiemPicker = _react.screen.getByLabelText('AM change a value with up down button');
154
+ var expected = 'data-webos-voice-disabled';
155
+ expect(merdiemPicker).toHaveAttribute(expected);
156
+ });
157
+ test('should set \'data-webos-voice-disabled\' to minute picker when voice control is disabled', function () {
158
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
159
+ value: new Date(2000, 0, 1, 12, 30),
160
+ "data-webos-voice-disabled": true
161
+ }));
162
+ var minutePicker = _react.screen.getByLabelText('0 minute change a value with up down button');
163
+ // The minute is 0 because it does not change based on props, this needs to be fixed in timePicker
164
+
165
+ var expected = 'data-webos-voice-disabled';
166
+ expect(minutePicker).toHaveAttribute(expected);
167
+ });
168
+ test('should format a date the same as the label', function () {
169
+ var time = new Date(2000, 0, 1, 12, 30);
170
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
171
+ value: time,
172
+ locale: "en-US"
173
+ }));
174
+ var header = _react.screen.getByText((0, _TimePicker.timeToLocaleString)(time), {
175
+ collapseWhitespace: false
176
+ }).parentElement.parentElement;
177
+ var expected = 'heading';
178
+ expect(header).toHaveClass(expected);
179
+ });
180
+ test('should format a date the same as the label in another locale', function () {
181
+ _ilib["default"].setLocale('ar-SA');
182
+ var time = new Date(2000, 0, 1, 12, 30);
183
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
184
+ value: time,
185
+ locale: "ar-SA"
186
+ }));
187
+ var header = _react.screen.getByText((0, _TimePicker.timeToLocaleString)(time), {
188
+ collapseWhitespace: false
189
+ }).parentElement.parentElement;
190
+ var expected = 'heading';
191
+ expect(header).toHaveClass(expected);
192
+ });
193
+ test('should not display Heading', function () {
194
+ _ilib["default"].setLocale('en-US');
195
+ var time = new Date(2000, 0, 1, 12, 30);
196
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
197
+ value: time,
198
+ locale: "en-US",
199
+ noLabel: true
200
+ }));
201
+ var header = _react.screen.queryByText((0, _TimePicker.timeToLocaleString)(time), {
202
+ collapseWhitespace: false
203
+ });
204
+ expect(header).toBeNull();
205
+ });
206
+ test('should change the meridiem to reflect the hour change', function () {
207
+ var time = new Date(2000, 0, 1, 12, 30);
208
+ var secondTime = new Date(2000, 0, 1, 11, 30);
209
+ var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
210
+ locale: "en-US",
211
+ value: time
212
+ })),
213
+ rerender = _render.rerender;
214
+ var firstTimeDisplayed = _react.screen.queryByText('12:30 PM');
215
+ rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
216
+ locale: "en-US",
217
+ value: secondTime
218
+ }));
219
+ var secondTimeDisplayed = _react.screen.queryByText('11:30 AM');
220
+ expect(firstTimeDisplayed).not.toBeNull();
221
+ expect(secondTimeDisplayed).not.toBeNull();
222
+ });
223
+ test('check that the date is displayed correctly for cases of more than 2 meridiems', function () {
224
+ _ilib["default"].setLocale('am-ET');
225
+ var time = new Date(2000, 0, 1, 12, 30);
226
+ var secondTime = new Date(2000, 0, 1, 11, 30);
227
+ var _render2 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
228
+ locale: "am-ET",
229
+ value: time
230
+ })),
231
+ rerender = _render2.rerender;
232
+ var firstTimeDisplayed = _react.screen.queryByText('6:30 ከሰዓት');
233
+ rerender(/*#__PURE__*/(0, _jsxRuntime.jsx)(_TimePicker["default"], {
234
+ locale: "am-ET",
235
+ value: secondTime
236
+ }));
237
+ var secondTimeDisplayed = _react.screen.queryByText('5:30 ጥዋት');
238
+ expect(firstTimeDisplayed).not.toBeNull();
239
+ expect(secondTimeDisplayed).not.toBeNull();
240
+ });
241
+ describe('#timeToLocaleString', function () {
242
+ test('method should return \'null\' for an \'undefined\' time', function () {
243
+ var time = (0, _TimePicker.timeToLocaleString)(undefined); // eslint-disable-line no-undefined
244
+
245
+ expect(time).toBeNull();
246
+ });
247
+ });
248
+ });
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.TooltipBase = exports.Tooltip = void 0;
7
+ exports.defaultArrowAnchor = defaultArrowAnchor;
8
+ exports.defaultDirection = defaultDirection;
9
+ var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
10
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
11
+ var _propTypes2 = _interopRequireDefault(require("prop-types"));
12
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
13
+ var _TooltipLabel = _interopRequireDefault(require("./TooltipLabel"));
14
+ var _TooltipModule = _interopRequireDefault(require("./Tooltip.module.css"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _excluded = ["arrowAnchor", "children", "css", "tooltipRef", "width", "labelOffset", "marquee"];
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
18
+ 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; }
19
+ 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; }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
24
+ 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); } // Set the default Arrow Anchor value based on the type of tooltip
25
+ function defaultArrowAnchor(type) {
26
+ return type === 'transparent' ? 'center' : 'right';
27
+ }
28
+
29
+ // Set the default Direction of tooltip based on the type of tooltip
30
+ function defaultDirection(type) {
31
+ return type === 'transparent' ? 'below' : 'above';
32
+ }
33
+
34
+ /**
35
+ * A stateless tooltip component with Limestone styling applied.
36
+ *
37
+ * @class TooltipBase
38
+ * @memberof limestone/TooltipDecorator
39
+ * @ui
40
+ * @public
41
+ */
42
+ var TooltipBase = exports.TooltipBase = (0, _kind["default"])({
43
+ name: 'Tooltip',
44
+ propTypes: /** @lends limestone/TooltipDecorator.TooltipBase.prototype */{
45
+ /**
46
+ * The node to be displayed as the main content of the tooltip.
47
+ *
48
+ * @type {Node}
49
+ * @required
50
+ */
51
+ children: _propTypes2["default"].node.isRequired,
52
+ /**
53
+ * Position of tooltip arrow in relation to the activator.
54
+ *
55
+ * Note that `'left'`, `'center'`, `'right'` are applicable when direction is in vertical
56
+ * orientation (i.e. `'above'`, `'below'`), and `'top'`, `'middle'`, and `'bottom'` are
57
+ * applicable when direction is in horizontal orientation (i.e. `'left'`, `'right'`)
58
+ *
59
+ * For `type="balloon"`, the default is `"right"`
60
+ * For `type="transparent"`, the default is `"center"` (The arrow will not be visible)
61
+ *
62
+ * @type {('left'|'center'|'right'|'top'|'middle'|'bottom')}
63
+ * @public
64
+ */
65
+ arrowAnchor: _propTypes2["default"].oneOf(['left', 'center', 'right', 'top', 'middle', 'bottom']),
66
+ /**
67
+ * Customizes the component by mapping the supplied collection of CSS class names to the
68
+ * corresponding internal elements and states of this component.
69
+ *
70
+ * The following classes are supported:
71
+ *
72
+ * * `tooltip` - The root component class
73
+ * * `tooltipLabel` - Applied the label node
74
+ *
75
+ * @type {Object}
76
+ * @public
77
+ */
78
+ css: _propTypes2["default"].object,
79
+ /**
80
+ * Direction of label in relation to the activator.
81
+ *
82
+ * For `type="balloon"`, the default is `"above"`
83
+ * For `type="transparent"`, the default is `"below"`
84
+ *
85
+ * @type {('above'|'below'|'left'|'right')}
86
+ * @public
87
+ */
88
+ direction: _propTypes2["default"].oneOf(['above', 'below', 'left', 'right']),
89
+ /**
90
+ * A value representing the amount to offset the label portion of the tooltip.
91
+ *
92
+ * In a "center" aligned tooltip, the label may be desirable to offset to one side or the
93
+ * other. This prop accepts a value between -0.5 and 0.5 (representing 50% to the left or
94
+ * right). This defaults to 0 offset (centered). It also automatically caps the value so it
95
+ * never positions the tooltip label past the anchored arrow. If the tooltip label or arrow
96
+ * has non-rectangular geometry (rounded corners, a wide tail, etc.), you'll need to manually
97
+ * account for that in your provided offset value.
98
+ *
99
+ * @type {Number}
100
+ * @default 0
101
+ * @public
102
+ */
103
+ labelOffset: _propTypes2["default"].number,
104
+ /**
105
+ * Allows the tooltip to marquee.
106
+ *
107
+ * Specifying a {@link limestone/TooltipDecorator.TooltipBase.width|width} restricts
108
+ * the marquee to that size.
109
+ *
110
+ * @type {Boolean}
111
+ * @public
112
+ */
113
+ marquee: _propTypes2["default"].bool,
114
+ /**
115
+ * Style object for tooltip position.
116
+ *
117
+ * @type {Object}
118
+ * @public
119
+ */
120
+ position: _propTypes2["default"].shape({
121
+ bottom: _propTypes2["default"].number,
122
+ left: _propTypes2["default"].number,
123
+ right: _propTypes2["default"].number,
124
+ top: _propTypes2["default"].number
125
+ }),
126
+ /**
127
+ * Anchors the tooltip relative to its container.
128
+ *
129
+ * Reconfigures the component to anchor itself to the designated edge of its container.
130
+ * When this is not specified, the implication is that the component is "absolutely"
131
+ * positioned, relative to the viewport, rather than its parent layer.
132
+ *
133
+ * @type {Boolean}
134
+ * @public
135
+ */
136
+ relative: _propTypes2["default"].bool,
137
+ /**
138
+ * Called when the tooltip mounts/unmounts, giving a reference to the DOM.
139
+ *
140
+ * @type {Object|Function}
141
+ * @public
142
+ */
143
+ tooltipRef: _propTypes["default"].ref,
144
+ /**
145
+ * Type of tooltip.
146
+ *
147
+ * | *Value* | *Tooltip Appearance* |
148
+ * |---|---|
149
+ * | `'balloon'` | Tooltip with a border, background and arrow to the activator |
150
+ * | `'transparent'` | Text only without any of the decorations above |
151
+ *
152
+ * @type {('balloon'|'transparent')}
153
+ * @default 'balloon'
154
+ * @public
155
+ */
156
+ type: _propTypes2["default"].oneOf(['balloon', 'transparent']),
157
+ /**
158
+ * The width of tooltip content.
159
+ *
160
+ * Value expects a number of pixels, which will be automatically scaled to the appropriate
161
+ * size given the current screen resolution, or a string value containing a measurement and
162
+ * a valid CSS unit included.
163
+ * If the content goes over the given width, it will automatically wrap, or marquee if
164
+ * `marquee` is enabled.
165
+ *
166
+ * When `null`, content will auto-size and not wrap. If `marquee` is also enabled,
167
+ * marqueeing will begin when the width is greater than the default (theme specified) width.
168
+ *
169
+ * @type {Number|String}
170
+ * @public
171
+ */
172
+ width: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string])
173
+ },
174
+ defaultProps: {
175
+ type: 'balloon',
176
+ labelOffset: 0
177
+ },
178
+ styles: {
179
+ css: _TooltipModule["default"],
180
+ className: 'tooltip',
181
+ publicClassNames: ['tooltip', 'tooltipLabel']
182
+ },
183
+ computed: {
184
+ labelOffset: function labelOffset(_ref) {
185
+ var _labelOffset = _ref.labelOffset;
186
+ if (_labelOffset) {
187
+ var cappedPosition = Math.max(-0.5, Math.min(0.5, _labelOffset));
188
+ return {
189
+ transform: "translateX(".concat(cappedPosition * 100, "%)")
190
+ };
191
+ }
192
+ },
193
+ className: function className(_ref2) {
194
+ var direction = _ref2.direction,
195
+ arrowAnchor = _ref2.arrowAnchor,
196
+ relative = _ref2.relative,
197
+ type = _ref2.type,
198
+ styler = _ref2.styler;
199
+ return styler.append(direction || defaultDirection(type), "".concat(arrowAnchor || defaultArrowAnchor(type), "Arrow"), {
200
+ relative: relative,
201
+ absolute: !relative
202
+ }, type);
203
+ },
204
+ style: function style(_ref3) {
205
+ var position = _ref3.position,
206
+ _style = _ref3.style;
207
+ return _objectSpread(_objectSpread({}, _style), position);
208
+ }
209
+ },
210
+ render: function render(_ref4) {
211
+ var arrowAnchor = _ref4.arrowAnchor,
212
+ children = _ref4.children,
213
+ css = _ref4.css,
214
+ tooltipRef = _ref4.tooltipRef,
215
+ width = _ref4.width,
216
+ labelOffset = _ref4.labelOffset,
217
+ marquee = _ref4.marquee,
218
+ rest = _objectWithoutProperties(_ref4, _excluded);
219
+ delete rest.labelOffset;
220
+ delete rest.direction;
221
+ delete rest.position;
222
+ delete rest.relative;
223
+ delete rest.type;
224
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, rest), {}, {
225
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
226
+ className: css.tooltipAnchor,
227
+ ref: tooltipRef,
228
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
229
+ className: css.tooltipArrow
230
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipLabel["default"], {
231
+ className: css.tooltipLabel,
232
+ marquee: marquee,
233
+ centered: arrowAnchor === 'center',
234
+ width: width,
235
+ style: labelOffset,
236
+ children: children
237
+ })]
238
+ })
239
+ }));
240
+ }
241
+ });
242
+
243
+ /**
244
+ * A tooltip component with Limestone styling applied.
245
+ *
246
+ * @class Tooltip
247
+ * @memberof limestone/TooltipDecorator
248
+ * @ui
249
+ * @public
250
+ */
251
+ var Tooltip = exports.Tooltip = (0, _Skinnable["default"])(TooltipBase);
252
+ var _default = exports["default"] = Tooltip;