@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,605 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PopupTabLayoutDecorator = exports.PopupTabLayoutBase = exports.PopupTabLayout = void 0;
7
+ Object.defineProperty(exports, "Tab", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _TabLayout.Tab;
11
+ }
12
+ });
13
+ exports["default"] = exports.TabPanelsBase = exports.TabPanels = exports.TabPanel = void 0;
14
+ var _handle = require("@enact/core/handle");
15
+ var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
16
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
17
+ var _useHandlers = _interopRequireDefault(require("@enact/core/useHandlers"));
18
+ var _util = require("@enact/core/util");
19
+ var _I18nDecorator = require("@enact/i18n/I18nDecorator");
20
+ var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
21
+ var _Pause = _interopRequireDefault(require("@enact/spotlight/Pause"));
22
+ var _SpotlightContainerDecorator = _interopRequireDefault(require("@enact/spotlight/SpotlightContainerDecorator"));
23
+ var _container = require("@enact/spotlight/src/container");
24
+ var _target = require("@enact/spotlight/src/target");
25
+ var _IdProvider = require("@enact/ui/internal/IdProvider");
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
+ var _react = require("react");
28
+ var _compose = _interopRequireDefault(require("ramda/src/compose"));
29
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
30
+ var _Panels = _interopRequireWildcard(require("../Panels"));
31
+ var _TabLayout = _interopRequireWildcard(require("../TabLayout"));
32
+ var _Popup = _interopRequireDefault(require("../Popup"));
33
+ var _PopupTabLayoutModule = _interopRequireDefault(require("./PopupTabLayout.module.css"));
34
+ var _jsxRuntime = require("react/jsx-runtime");
35
+ var _excluded = ["children", "css", "optimized", "PopupComponent"],
36
+ _excluded2 = ["rtl"],
37
+ _excluded3 = ["spotlightId"];
38
+ /**
39
+ * Provides a floating component suitable for grouping collections of managed views.
40
+ *
41
+ * @module limestone/PopupTabLayout
42
+ * @exports PopupTabLayout
43
+ * @exports Tab
44
+ * @exports TabPanels
45
+ * @exports TabPanelsBase
46
+ * @exports TabPanel
47
+ */
48
+ // List all the props from PopupTabLayout that we want to move from this component's root onto PopupTabLayout.
49
+ 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); }
50
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
51
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
52
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
53
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
54
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
55
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == typeof e || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
56
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
57
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
58
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
59
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
60
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
61
+ 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; }
62
+ 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; }
63
+ 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; }
64
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
65
+ 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); }
66
+ 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; }
67
+ 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; }
68
+ var popupPropList = ['noAutoDismiss', 'onHide', 'onKeyDown', 'onShow', 'open', 'position', 'scrimType', 'spotlightId', 'spotlightRestrict', 'id', 'className', 'style', 'noAnimation', 'onClose'];
69
+ var OptimizedContainer = (0, _SpotlightContainerDecorator["default"])({
70
+ enterTo: 'default-element',
71
+ preserveId: true
72
+ }, 'div');
73
+
74
+ /**
75
+ * Tabbed Layout component in a floating Popup.
76
+ *
77
+ * @class PopupTabLayoutBase
78
+ * @memberof limestone/PopupTabLayout
79
+ * @extends limestone/Popup.Popup
80
+ * @extends limestone/TabLayout.TabLayout
81
+ * @ui
82
+ * @public
83
+ */
84
+ var PopupTabLayoutBase = exports.PopupTabLayoutBase = (0, _kind["default"])({
85
+ name: 'PopupTabLayout',
86
+ propTypes: /** @lends limestone/PopupTabLayout.PopupTabLayoutBase.prototype */{
87
+ /**
88
+ * Collection of {@link limestone/PopupTabLayout.Tab|Tabs} to render.
89
+ *
90
+ * @type {Node}
91
+ * @public
92
+ */
93
+ children: _propTypes["default"].node,
94
+ /**
95
+ * Collapses the vertical tab list into icons only.
96
+ *
97
+ * Only applies to `orientation="vertical"`. If the tabs do not include icons, a single
98
+ * collapsed icon will be shown.
99
+ *
100
+ * @type {Boolean}
101
+ * @public
102
+ */
103
+ collapsed: _propTypes["default"].bool,
104
+ /**
105
+ * Customizes the component by mapping the supplied collection of CSS class names to the
106
+ * corresponding internal elements and states of this component.
107
+ *
108
+ * @type {Object}
109
+ * @private
110
+ */
111
+ css: _propTypes["default"].object,
112
+ /**
113
+ * Specify dimensions for the layout areas.
114
+ *
115
+ * All 4 combinations must be supplied: each of the elements, tabs and content in both
116
+ * collapsed and expanded state.
117
+ *
118
+ * @type {{tabs: {collapsed: Number, normal: Number}, content: {expanded: number, normal: number}}}
119
+ * @default {
120
+ * tabs: {
121
+ * collapsed: 236,
122
+ * normal: 660
123
+ * },
124
+ * content: {
125
+ * expanded: 1320,
126
+ * normal: 1320
127
+ * }
128
+ * }
129
+ * @private
130
+ */
131
+ dimensions: _propTypes["default"].shape({
132
+ content: _propTypes["default"].shape({
133
+ expanded: _propTypes["default"].number.isRequired,
134
+ normal: _propTypes["default"].number.isRequired
135
+ }).isRequired,
136
+ tabs: _propTypes["default"].shape({
137
+ collapsed: _propTypes["default"].number.isRequired,
138
+ normal: _propTypes["default"].number.isRequired
139
+ }).isRequired
140
+ }),
141
+ /**
142
+ * The currently selected tab.
143
+ *
144
+ * @type {Number}
145
+ * @public
146
+ */
147
+ index: _propTypes["default"].number,
148
+ /**
149
+ * Disables transition animation.
150
+ *
151
+ * @type {Boolean}
152
+ * @public
153
+ */
154
+ noAnimation: _propTypes["default"].bool,
155
+ /**
156
+ * Called when the tabs are collapsed.
157
+ *
158
+ * @type {Function}
159
+ * @public
160
+ */
161
+ onCollapse: _propTypes["default"].func,
162
+ /**
163
+ * Called when the tabs are expanded.
164
+ *
165
+ * @type {Function}
166
+ * @public
167
+ */
168
+ onExpand: _propTypes["default"].func,
169
+ /**
170
+ * Called after the popup's "hide" transition finishes.
171
+ *
172
+ * @type {Function}
173
+ * @public
174
+ */
175
+ onHide: _propTypes["default"].func,
176
+ /**
177
+ * Called when a tab is selected
178
+ *
179
+ * @type {Function}
180
+ * @public
181
+ */
182
+ onSelect: _propTypes["default"].func,
183
+ /**
184
+ * Called after the popup's "show" transition finishes.
185
+ *
186
+ * @type {Function}
187
+ * @public
188
+ */
189
+ onShow: _propTypes["default"].func,
190
+ /**
191
+ * Called when the tab collapse or expand animation completes.
192
+ *
193
+ * Event payload includes:
194
+ * * `type` - Always set to "onTabAnimationEnd"
195
+ * * `collapsed` - `true` when the tabs are collapsed
196
+ *
197
+ * @type {Function}
198
+ * @public
199
+ */
200
+ onTabAnimationEnd: _propTypes["default"].func,
201
+ /**
202
+ * Controls the visibility of the Popup.
203
+ *
204
+ * By default, the Popup and its contents are not rendered until `open`.
205
+ *
206
+ * @type {Boolean}
207
+ * @public
208
+ */
209
+ open: _propTypes["default"].bool,
210
+ /**
211
+ * Optimizes PopupTabLayout without Popup when true.
212
+ *
213
+ * @type {Boolean}
214
+ * @private
215
+ */
216
+ optimized: _propTypes["default"].bool,
217
+ /**
218
+ * Orientation of the tabs.
219
+ *
220
+ * @type {('vertical')}
221
+ * @private
222
+ */
223
+ orientation: _propTypes["default"].oneOf(['vertical']),
224
+ /**
225
+ * Position of the Popup on the screen.
226
+ *
227
+ * @type {'left'}
228
+ * @default 'left'
229
+ * @private
230
+ */
231
+ position: _propTypes["default"].oneOf(['left']),
232
+ /**
233
+ * Scrim type.
234
+ *
235
+ * * Values: `'transparent'`, `'translucent'`, or `'none'`.
236
+ *
237
+ * `'none'` is not compatible with `spotlightRestrict` of `'self-only'`, use a transparent scrim
238
+ * to prevent mouse focus when using popup.
239
+ *
240
+ * @type {('transparent'|'translucent'|'none')}
241
+ * @default 'translucent'
242
+ * @public
243
+ */
244
+ scrimType: _propTypes["default"].oneOf(['transparent', 'translucent', 'none']),
245
+ /**
246
+ * The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
247
+ *
248
+ * @type {String}
249
+ * @public
250
+ */
251
+ spotlightId: _propTypes["default"].string,
252
+ /**
253
+ * Restricts or prioritizes navigation when focus attempts to leave the popup.
254
+ *
255
+ * It can be either `'none'`, `'self-first'`, or `'self-only'`.
256
+ *
257
+ * Note: The ready-to-use {@link limestone/Popup.Popup|Popup} component only supports
258
+ * `'self-first'` and `'self-only'`.
259
+ *
260
+ * @type {('none'|'self-first'|'self-only')}
261
+ * @public
262
+ */
263
+ spotlightRestrict: _propTypes["default"].oneOf(['none', 'self-first', 'self-only'])
264
+ },
265
+ defaultProps: {
266
+ dimensions: {
267
+ tabs: {
268
+ collapsed: 216,
269
+ normal: 660
270
+ },
271
+ content: {
272
+ expanded: 1320,
273
+ normal: 1320
274
+ }
275
+ },
276
+ orientation: 'vertical',
277
+ position: 'left',
278
+ scrimType: 'translucent'
279
+ },
280
+ styles: {
281
+ css: _PopupTabLayoutModule["default"],
282
+ className: 'popupTabLayout',
283
+ publicClassNames: ['bg', 'button', 'collapsed', 'content', 'panels', 'popupTabLayout', 'scrimTranslucent', 'selected', 'tab', 'tabGroup', 'tabLayout', 'tabs', 'tabsExpanded', 'vertical']
284
+ },
285
+ computed: {
286
+ className: function className(_ref) {
287
+ var collapsed = _ref.collapsed,
288
+ optimized = _ref.optimized,
289
+ scrimType = _ref.scrimType,
290
+ styler = _ref.styler;
291
+ return styler.append({
292
+ collapsed: collapsed,
293
+ optimized: optimized
294
+ }, "scrim".concat((0, _util.cap)(scrimType)));
295
+ },
296
+ noAnimation: function noAnimation(_ref2) {
297
+ var _noAnimation = _ref2.noAnimation;
298
+ return typeof ENACT_PACK_NO_ANIMATION !== 'undefined' && ENACT_PACK_NO_ANIMATION || _noAnimation;
299
+ },
300
+ PopupComponent: function PopupComponent(_ref3) {
301
+ var optimized = _ref3.optimized;
302
+ return optimized ? OptimizedContainer : _Popup["default"];
303
+ }
304
+ },
305
+ render: function render(_ref4) {
306
+ var children = _ref4.children,
307
+ css = _ref4.css,
308
+ optimized = _ref4.optimized,
309
+ PopupComponent = _ref4.PopupComponent,
310
+ rest = _objectWithoutProperties(_ref4, _excluded);
311
+ // Extract all relevant popup props
312
+ var popupProps = {};
313
+ for (var prop in rest) {
314
+ if (popupPropList.indexOf(prop) >= 0) {
315
+ popupProps[prop] = rest[prop];
316
+ delete rest[prop];
317
+ }
318
+ }
319
+ if (!optimized) {
320
+ popupProps.noAlertRole = true;
321
+ popupProps.noOutline = true;
322
+ popupProps.css = css;
323
+ } else {
324
+ delete popupProps.noAnimation;
325
+ delete popupProps.noAutoDismiss;
326
+ delete popupProps.onHide;
327
+ delete popupProps.onShow;
328
+ delete popupProps.scrimType;
329
+ }
330
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PopupComponent, _objectSpread(_objectSpread({}, popupProps), {}, {
331
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabLayout["default"], _objectSpread(_objectSpread({}, rest), {}, {
332
+ css: css,
333
+ align: "start",
334
+ anchorTo: "left",
335
+ type: "popup",
336
+ children: children
337
+ }))
338
+ }));
339
+ }
340
+ });
341
+ var OptimizedFocusDecorator = (0, _hoc["default"])(function (config, Wrapped) {
342
+ var _Class;
343
+ return _Class = /*#__PURE__*/function (_Component) {
344
+ function _Class(props) {
345
+ var _this;
346
+ _classCallCheck(this, _Class);
347
+ _this = _callSuper(this, _Class, [props]);
348
+ if (props.optimized) {
349
+ _this.paused = new _Pause["default"]('PopupTabLayout');
350
+ if (props.open) {
351
+ _this.paused.pause();
352
+ }
353
+ }
354
+ return _this;
355
+ }
356
+ _inherits(_Class, _Component);
357
+ return _createClass(_Class, [{
358
+ key: "componentDidMount",
359
+ value: function componentDidMount() {
360
+ if (this.props.optimized && this.props.open) {
361
+ this.paused.resume();
362
+ _spotlight["default"].focus(this.props.spotlightId);
363
+ }
364
+ }
365
+ }, {
366
+ key: "componentDidUpdate",
367
+ value: function componentDidUpdate(prevProps) {
368
+ if (this.props.optimized && this.props.open !== prevProps.open) {
369
+ if (this.props.open) {
370
+ _spotlight["default"].focus(this.props.spotlightId);
371
+ }
372
+ }
373
+ }
374
+ }, {
375
+ key: "render",
376
+ value: function render() {
377
+ if (this.props.optimized) {
378
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread({}, this.props), {}, {
379
+ style: !this.props.open ? {
380
+ display: 'none'
381
+ } : null
382
+ }));
383
+ } else {
384
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread({}, this.props));
385
+ }
386
+ }
387
+ }]);
388
+ }(_react.Component), _Class.displayName = 'OptimizedFocusDecorator', _Class.propTypes = /** @lends sandstone/PopupTabLayout.OptimizedFocusDecorator.prototype */{
389
+ /**
390
+ * Controls the visibility of the PopupTabLayout.
391
+ *
392
+ * @type {Boolean}
393
+ * @private
394
+ */
395
+ open: _propTypes["default"].bool,
396
+ /**
397
+ * Optimizes PopupTabLayout without Popup when true.
398
+ *
399
+ * @type {Boolean}
400
+ * @private
401
+ */
402
+ optimized: _propTypes["default"].bool,
403
+ /**
404
+ * The container id.
405
+ *
406
+ * @type {String}
407
+ * @private
408
+ */
409
+ spotlightId: _propTypes["default"].string
410
+ }, _Class;
411
+ });
412
+
413
+ /**
414
+ * Add behaviors to PopupTabLayout.
415
+ *
416
+ * @class PopupTabLayoutDecorator
417
+ * @memberof limestone/PopupTabLayout
418
+ * @mixes limestone/Skinnable.Skinnable
419
+ * @hoc
420
+ * @public
421
+ */
422
+ var PopupTabLayoutDecorator = exports.PopupTabLayoutDecorator = (0, _compose["default"])((0, _IdProvider.IdProvider)({
423
+ idProp: 'spotlightId',
424
+ prefix: 'lime-popuptablayout-',
425
+ generateProp: null
426
+ }), OptimizedFocusDecorator, _Skinnable["default"]);
427
+
428
+ /**
429
+ * An instance of {@link limestone/Popup.Popup|Popup} which restricts the `TabLayout` content to
430
+ * the left side of the screen. The content of `TabLayout` can flex vertically, but not horizontally
431
+ * (fixed width). This is typically used to switch between several collections of managed views
432
+ * (`TabPanels` and `TabPanel`, also exported from this module).
433
+ *
434
+ * Example:
435
+ *
436
+ * ```jsx
437
+ * <PopupTabLayout>
438
+ * <Tab title="Tab One">
439
+ * <TabPanels>
440
+ * <TabPanel>
441
+ * <Header title="First Panel" type="compact" />
442
+ * <Item>Item 1 in Panel 1</Item>
443
+ * <Item>Item 2 in Panel 1</Item>
444
+ * </TabPanel>
445
+ * <TabPanel>
446
+ * <Header title="Second Panel" type="compact" />
447
+ * <Item>Item 1 in Panel 2</Item>
448
+ * <Item>Item 2 in Panel 2</Item>
449
+ * </TabPanel>
450
+ * </TabPanels>
451
+ * </Tab>
452
+ * <Tab title="Tab Two">
453
+ * <Item>Goodbye</Item>
454
+ * </Tab>
455
+ * </PopupTabLayout>
456
+ * ```
457
+ *
458
+ * @class PopupTabLayout
459
+ * @memberof limestone/PopupTabLayout
460
+ * @ui
461
+ * @public
462
+ */
463
+ var PopupTabLayout = exports.PopupTabLayout = PopupTabLayoutDecorator(PopupTabLayoutBase);
464
+
465
+ /**
466
+ * A shortcut to access {@link limestone/PopupTabLayout.Tab}
467
+ *
468
+ * @name Tab
469
+ * @type {limestone/PopupTabLayout.Tab}
470
+ * @memberof limestone/PopupTabLayout.PopupTabLayout
471
+ * @extends limestone/TabLayout.Tab
472
+ */
473
+ PopupTabLayout.Tab = _TabLayout.Tab;
474
+
475
+ /**
476
+ * A Tab for use inside this component.
477
+ *
478
+ * @class Tab
479
+ * @memberof limestone/PopupTabLayout
480
+ * @extends limestone/TabLayout.Tab
481
+ * @ui
482
+ */
483
+
484
+ var tabPanelsHandlers = {
485
+ onTransition: (0, _handle.handle)((0, _handle.forward)('onTransition'), function (ev, props, _ref5) {
486
+ var onTransition = _ref5.onTransition;
487
+ onTransition(ev);
488
+ }),
489
+ onKeyDown: (0, _handle.handle)((0, _handle.forward)('onKeyDown'), function (_ref6) {
490
+ var target = _ref6.target;
491
+ return target.tagName !== 'INPUT';
492
+ }, (0, _handle.forProp)('rtl', false), (0, _handle.forKey)('left'), function (ev, _ref7) {
493
+ var index = _ref7.index;
494
+ return index > 0;
495
+ }, function (_ref8) {
496
+ var target = _ref8.target;
497
+ var next = (0, _target.getTargetByDirectionFromElement)('left', target);
498
+ if (next === null || next && !(0, _container.getContainerNode)((0, _container.getContainersForNode)(target).pop()).contains(next)) {
499
+ return true;
500
+ }
501
+ return false;
502
+ }, function (ev) {
503
+ if ((0, _container.getContainerNode)((0, _container.getContainersForNode)(ev.target).pop()).tagName === 'HEADER') {
504
+ ev.stopPropagation();
505
+ return false;
506
+ }
507
+ return document.querySelector("section.".concat(_PopupTabLayoutModule["default"].body)).contains(ev.target);
508
+ }, (0, _handle.forwardCustom)('onBack'), function () {
509
+ _spotlight["default"].setPointerMode(false);
510
+ return true;
511
+ }, _handle.preventDefault, _handle.stop)
512
+ };
513
+
514
+ /**
515
+ * A base component for {@link limestone/PopupTabLayout.TabPanels|TabPanels} which has
516
+ * left key handler to navigate panels.
517
+ *
518
+ * @class TabPanelsBase
519
+ * @memberof limestone/PopupTabLayout
520
+ * @extends limestone/Panels.Panels
521
+ * @ui
522
+ * @public
523
+ */
524
+ var TabPanelsBase = exports.TabPanelsBase = function TabPanelsBase(_ref9) {
525
+ var rtl = _ref9.rtl,
526
+ rest = _objectWithoutProperties(_ref9, _excluded2);
527
+ var onTransition = (0, _react.use)(_TabLayout.TabLayoutContext);
528
+ var handlers = (0, _useHandlers["default"])(tabPanelsHandlers, _objectSpread({
529
+ rtl: rtl
530
+ }, rest), {
531
+ onTransition: onTransition
532
+ });
533
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Panels["default"], _objectSpread(_objectSpread({
534
+ noCloseButton: true
535
+ }, rest), {}, {
536
+ css: _PopupTabLayoutModule["default"]
537
+ }, handlers));
538
+ };
539
+ TabPanelsBase.propTypes = {
540
+ rtl: _propTypes["default"].bool
541
+ };
542
+
543
+ /**
544
+ * A customized version of Panels for use inside this component.
545
+ *
546
+ * @class TabPanels
547
+ * @memberof limestone/PopupTabLayout
548
+ * @extends limestone/PopupTabLayout.TabPanelsBase
549
+ * @ui
550
+ * @public
551
+ */
552
+ var TabPanels = exports.TabPanels = (0, _I18nDecorator.I18nContextDecorator)({
553
+ rtlProp: 'rtl'
554
+ }, TabPanelsBase);
555
+
556
+ /**
557
+ * Omits the close button.
558
+ *
559
+ * Unlike most components, this prop defaults to `true`. To show the close button, the prop must
560
+ * explicitly set it to `false`:
561
+ *
562
+ * ```
563
+ * <TabPanels noCloseButton={false} />
564
+ * ```
565
+ *
566
+ * @name noCloseButton
567
+ * @memberof limestone/PopupTabLayout.TabPanels.prototype
568
+ * @type {Boolean}
569
+ * @default true
570
+ * @public
571
+ */
572
+
573
+ /**
574
+ * A customized version of Panel for use inside this component.
575
+ *
576
+ * @class TabPanel
577
+ * @memberof limestone/PopupTabLayout
578
+ * @extends limestone/Panels.Panel
579
+ * @ui
580
+ * @public
581
+ */
582
+ var TabPanel = exports.TabPanel = function TabPanel(_ref0) {
583
+ var spotlightId = _ref0.spotlightId,
584
+ rest = _objectWithoutProperties(_ref0, _excluded3);
585
+ (0, _react.useEffect)(function () {
586
+ _spotlight["default"].set(spotlightId, {
587
+ partition: true
588
+ });
589
+ }, [spotlightId]);
590
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Panels.Panel, _objectSpread(_objectSpread({}, rest), {}, {
591
+ css: _PopupTabLayoutModule["default"],
592
+ hideChildren: false,
593
+ spotlightId: spotlightId
594
+ }));
595
+ };
596
+ TabPanel.propTypes = {
597
+ /**
598
+ * The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
599
+ *
600
+ * @type {String}
601
+ * @private
602
+ */
603
+ spotlightId: _propTypes["default"].string
604
+ };
605
+ var _default = exports["default"] = PopupTabLayout;