@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,243 @@
1
+ .header {
2
+ position: relative;
3
+ max-width: 100%;
4
+ background-color: transparent;
5
+ background-repeat: no-repeat;
6
+ background-position: top left;
7
+ box-sizing: border-box;
8
+ }
9
+ .header .titlesRow {
10
+ padding-bottom: 70.2px;
11
+ }
12
+ .header .titlesRow .subtitle {
13
+ position: absolute;
14
+ right: 0;
15
+ left: 0;
16
+ }
17
+ .header .titlesRow .back {
18
+ margin-inline-start: 0;
19
+ }
20
+ .header .titlesRow .back:global(.largeText) {
21
+ font-family: "Limestone";
22
+ font-size: var(--primitive-font-size-60);
23
+ font-style: normal;
24
+ font-weight: var(--primitive-font-weight-semibold);
25
+ font-kerning: normal;
26
+ height: 2.75rem;
27
+ line-height: 2.5rem;
28
+ min-width: 2.75rem;
29
+ }
30
+ :global(.enact-locale-non-latin) .header .titlesRow .back:global(.largeText) {
31
+ font-family: "Limestone";
32
+ }
33
+ :global(.enact-locale-non-latin) .header .titlesRow .back:global(.largeText) {
34
+ font-family: "Limestone";
35
+ font-size: var(--primitive-font-size-54);
36
+ font-style: normal;
37
+ font-weight: var(--primitive-font-weight-bold);
38
+ }
39
+ .header .titlesRow .close {
40
+ margin-inline-end: 0;
41
+ }
42
+ .header.wizard .titlesRow {
43
+ padding-bottom: 70.2px;
44
+ }
45
+ .header .slotBefore,
46
+ .header .slotAfter,
47
+ .header .slotSizer {
48
+ white-space: nowrap;
49
+ }
50
+ .header .slotSizer {
51
+ display: inline-block;
52
+ }
53
+ .header.centered .title {
54
+ margin-top: var(--primitive-spacing-60);
55
+ }
56
+ .header.centered .slotAbove,
57
+ .header.centered .slotBelow {
58
+ text-align: center;
59
+ }
60
+ .header .title {
61
+ margin: 0;
62
+ }
63
+ .header .subtitle {
64
+ margin-left: var(--primitive-spacing-6);
65
+ margin-right: 0;
66
+ }
67
+ :global(.enact-locale-right-to-left) .header .subtitle {
68
+ margin-left: 0;
69
+ margin-right: var(--primitive-spacing-6);
70
+ }
71
+ .header .slotAbove {
72
+ margin: 0 -0.75rem var(--primitive-spacing-24) -0.75rem;
73
+ }
74
+ .header .slotAfter {
75
+ text-align: right;
76
+ }
77
+ :global(.enact-locale-right-to-left) .header .slotAfter {
78
+ text-align: left;
79
+ }
80
+ .header .slotBelow {
81
+ margin: 0.375rem -0.75rem 0 -0.75rem;
82
+ }
83
+ .header .standard .slotBefore > *:first-child,
84
+ .header .compact .slotBefore > *:first-child,
85
+ .header .mini .slotBefore > *:first-child {
86
+ margin-inline-start: 0;
87
+ }
88
+ .header .standard .slotAfter > *:last-child,
89
+ .header .compact .slotAfter > *:last-child,
90
+ .header .mini .slotAfter > *:last-child {
91
+ margin-inline-end: 0;
92
+ }
93
+ .header.standard {
94
+ margin: 0;
95
+ padding: 2.0375rem 2.75rem 0.125rem 2.75rem;
96
+ }
97
+ .header.standard .subtitle,
98
+ .header.standard .title {
99
+ padding: 0;
100
+ }
101
+ .header.standard .subtitle {
102
+ margin: 0.43125rem 0 0 0;
103
+ }
104
+ .header.standard.slotBefore:not(.centered) .slotBefore {
105
+ margin-left: 0;
106
+ margin-right: var(--primitive-spacing-36);
107
+ }
108
+ :global(.enact-locale-right-to-left) .header.standard.slotBefore:not(.centered) .slotBefore {
109
+ margin-left: var(--primitive-spacing-36);
110
+ margin-right: 0;
111
+ }
112
+ .header.standard.slotAfter:not(.centered) .slotAfter {
113
+ margin-left: var(--primitive-spacing-36);
114
+ margin-right: 0;
115
+ }
116
+ :global(.enact-locale-right-to-left) .header.standard.slotAfter:not(.centered) .slotAfter {
117
+ margin-left: 0;
118
+ margin-right: var(--primitive-spacing-36);
119
+ }
120
+ .header.compact {
121
+ margin: 0;
122
+ padding: 1.28125rem 1.25rem 1.5px 1.25rem;
123
+ }
124
+ .header.compact .back,
125
+ .header.compact .close {
126
+ margin: 0;
127
+ }
128
+ .header.compact .title {
129
+ padding: 0;
130
+ }
131
+ .header.compact .titlesRow {
132
+ padding: 0 0 1.75rem;
133
+ }
134
+ .header.compact .subtitle {
135
+ padding: 0;
136
+ margin-top: 0.25rem;
137
+ }
138
+ .header.compact .title {
139
+ font-size: 1.875rem;
140
+ }
141
+ :global(.enact-locale-non-latin) .header.compact .title {
142
+ font-size: 1.875rem;
143
+ }
144
+ .header.compact.slotBefore:not(.centered) .slotBefore {
145
+ margin-left: 0;
146
+ margin-right: var(--primitive-spacing-24);
147
+ }
148
+ :global(.enact-locale-right-to-left) .header.compact.slotBefore:not(.centered) .slotBefore {
149
+ margin-left: var(--primitive-spacing-24);
150
+ margin-right: 0;
151
+ }
152
+ .header.compact.slotAfter:not(.centered) .slotAfter {
153
+ margin-left: var(--primitive-spacing-30);
154
+ margin-right: 0;
155
+ }
156
+ :global(.enact-locale-right-to-left) .header.compact.slotAfter:not(.centered) .slotAfter {
157
+ margin-left: 0;
158
+ margin-right: var(--primitive-spacing-30);
159
+ }
160
+ .header.wizard {
161
+ margin: 0;
162
+ padding: 3.2875rem 2.75rem 0.125rem 2.75rem;
163
+ }
164
+ .header.wizard.noSubtitle {
165
+ padding-bottom: calc( 70.2px + var(--primitive-spacing-6));
166
+ }
167
+ .header.wizard .titleContainer:nth-child(2) {
168
+ top: 0;
169
+ position: absolute;
170
+ width: 100%;
171
+ }
172
+ .header.wizard .title {
173
+ font-size: 2.25rem;
174
+ padding: 0;
175
+ }
176
+ :global(.enact-locale-non-latin) .header.wizard .title {
177
+ font-size: 2.25rem;
178
+ }
179
+ .header.wizard .subtitle {
180
+ padding: 0;
181
+ }
182
+ .header.wizard.centered .subtitle {
183
+ text-align: center;
184
+ }
185
+ .header.mini {
186
+ margin: 0 0 0.75rem 0;
187
+ padding: 0.86458rem 1.25rem 0.55208rem 1.25rem;
188
+ }
189
+ .header.mini .titlesRow {
190
+ padding: 0;
191
+ }
192
+ .header.mini .titleCell {
193
+ width: auto;
194
+ }
195
+ .header.mini .title {
196
+ font-size: 1.875rem;
197
+ }
198
+ :global(.enact-locale-non-latin) .header.mini .title {
199
+ font-size: 1.875rem;
200
+ }
201
+ .header.mini.withSubtitle:not(.noSubtitle) .titlesRow {
202
+ padding-bottom: 70.2px;
203
+ }
204
+ .header.noSubtitle .titlesRow {
205
+ padding-bottom: 0;
206
+ }
207
+ .header:global(.neutral).shadowed .subtitle,
208
+ .header:global(.neutral).shadowed .title {
209
+ text-shadow: 0.125rem 0.25rem 0.25rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
210
+ }
211
+ :global(.enact-a11y-high-contrast) .header:global(.neutral):global(.highContrast).shadowed .subtitle,
212
+ :global(.enact-a11y-high-contrast) .header:global(.neutral):global(.highContrast).shadowed .title {
213
+ text-shadow: 0.125rem 0.25rem 0.25rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
214
+ }
215
+ .header:global(.light).shadowed .subtitle,
216
+ .header:global(.light).shadowed .title {
217
+ text-shadow: 0.125rem 0.25rem 0.25rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
218
+ }
219
+ .header:global(.game) {
220
+ --semantic-color-surface-default: #2d224c;
221
+ --semantic-color-surface-default-focused: #6d2fa1;
222
+ --semantic-color-on-surface-main-focused: #e6e6e6;
223
+ }
224
+ .header:global(.game).shadowed .subtitle,
225
+ .header:global(.game).shadowed .title {
226
+ text-shadow: 0.125rem 0.25rem 0.25rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
227
+ }
228
+ :global(.green) .header:global(.game) {
229
+ --semantic-color-surface-default: #1F2C24;
230
+ --semantic-color-surface-default-focused: #3ea07d;
231
+ }
232
+ :global(.green) .header:global(.game).shadowed .subtitle,
233
+ :global(.green) .header:global(.game).shadowed .title {
234
+ text-shadow: 0.125rem 0.25rem 0.25rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
235
+ }
236
+ :global(.orange) .header:global(.game) {
237
+ --semantic-color-surface-default: #422923;
238
+ --semantic-color-surface-default-focused: #b85f23;
239
+ }
240
+ :global(.orange) .header:global(.game).shadowed .subtitle,
241
+ :global(.orange) .header:global(.game).shadowed .title {
242
+ text-shadow: 0.125rem 0.25rem 0.25rem color(from var(--semantic-color-on-background-black) srgb r g b / 0.35);
243
+ }
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.PanelDecorator = exports.PanelBase = exports.Panel = void 0;
7
+ var _handle = require("@enact/core/handle");
8
+ var _hoc = _interopRequireDefault(require("@enact/core/hoc"));
9
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
10
+ var _propTypes = _interopRequireDefault(require("@enact/core/internal/prop-types"));
11
+ var _SpotlightContainerDecorator = _interopRequireWildcard(require("@enact/spotlight/SpotlightContainerDecorator"));
12
+ var _ComponentOverride = _interopRequireDefault(require("@enact/ui/ComponentOverride"));
13
+ var _ForwardRef = _interopRequireDefault(require("@enact/ui/ForwardRef"));
14
+ var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
15
+ var _propTypes2 = _interopRequireDefault(require("prop-types"));
16
+ var _compose = _interopRequireDefault(require("ramda/src/compose"));
17
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
18
+ var _SharedStateDecorator = _interopRequireDefault(require("../internal/SharedStateDecorator"));
19
+ var _Panels = require("../internal/Panels");
20
+ var _util = require("../internal/Panels/util");
21
+ var _PanelModule = _interopRequireDefault(require("./Panel.module.css"));
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ var _excluded = ["bodyClassName", "children", "componentRef", "css", "floatingLayerId", "header", "ids"];
24
+ 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); }
25
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
26
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
27
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
28
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
29
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
30
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
33
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
34
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
35
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
36
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
37
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
38
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
39
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
40
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
41
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
42
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
43
+ var panelId = 0;
44
+
45
+ /**
46
+ * A Panel is the standard view container used inside a {@link limestone/Panels.Panels|Panels} view
47
+ * manager instance.
48
+ *
49
+ * {@link limestone/Panels.Panels|Panels} will typically contain several instances of these and
50
+ * transition between them.
51
+ *
52
+ * @class Panel
53
+ * @memberof limestone/Panels
54
+ * @ui
55
+ * @public
56
+ */
57
+ var PanelBase = exports.PanelBase = (0, _kind["default"])({
58
+ name: 'Panel',
59
+ propTypes: /** @lends limestone/Panels.Panel.prototype */{
60
+ /**
61
+ * The "aria-label" for the Panel.
62
+ *
63
+ * By default, the panel will be labeled by its {@link limestone/Panels.Header|Header}.
64
+ * When `aria-label` is set, it will be used instead to provide an accessibility label for
65
+ * the panel.
66
+ *
67
+ * @memberof limestone/Panels.Panel.prototype
68
+ * @type {String}
69
+ * @public
70
+ */
71
+ 'aria-label': _propTypes2["default"].string,
72
+ /**
73
+ * Obtains a reference to the root node.
74
+ *
75
+ * @type {Function|Object}
76
+ * @public
77
+ */
78
+ componentRef: _propTypes["default"].ref,
79
+ /**
80
+ * Customizes the component by mapping the supplied collection of CSS class names to the
81
+ * corresponding internal elements and states of this component.
82
+ *
83
+ * The following classes are supported:
84
+ *
85
+ * * `panel` - The root class name
86
+ * * `body` - The node containing the panel's children
87
+ *
88
+ * @type {Object}
89
+ * @public
90
+ */
91
+ css: _propTypes2["default"].object,
92
+ /**
93
+ * The floating layer id
94
+ *
95
+ * @type {String}
96
+ * @private
97
+ */
98
+ floatingLayerId: _propTypes2["default"].string,
99
+ /**
100
+ * Header for the panel.
101
+ *
102
+ * This is usually passed by the {@link ui/Slottable.Slottable|Slottable} API by using a
103
+ * {@link limestone/Panels.Header|Header} component as a child of the Panel.
104
+ *
105
+ * @type {Header}
106
+ * @public
107
+ */
108
+ header: _propTypes2["default"].node,
109
+ /**
110
+ * Hides the body components.
111
+ *
112
+ * When a Panel is used within {@link limestone/Panels.Panels|Panels} this property will
113
+ * be set automatically to `true` on render and `false` after animating into view.
114
+ *
115
+ * @type {Boolean}
116
+ * @default false
117
+ * @public
118
+ */
119
+ hideChildren: _propTypes2["default"].bool,
120
+ /**
121
+ * Set the type of panel to be used.
122
+ *
123
+ * @type {('wizard')}
124
+ * @private
125
+ */
126
+ panelType: _propTypes2["default"].oneOf(['wizard'])
127
+ },
128
+ defaultProps: {
129
+ hideChildren: false
130
+ },
131
+ styles: {
132
+ css: _PanelModule["default"],
133
+ className: 'panel',
134
+ publicClassNames: ['panel', 'body']
135
+ },
136
+ handlers: {
137
+ onScroll: (0, _handle.handle)((0, _handle.forward)('onScroll'), function (_ref) {
138
+ var currentTarget = _ref.currentTarget,
139
+ eventTarget = _ref.eventTarget;
140
+ if (currentTarget === eventTarget) {
141
+ currentTarget.scrollTop = 0;
142
+ currentTarget.scrollLeft = 0;
143
+ }
144
+ })
145
+ },
146
+ computed: {
147
+ children: function children(_ref2) {
148
+ var _children = _ref2.children,
149
+ hideChildren = _ref2.hideChildren;
150
+ return hideChildren ? null : _children;
151
+ },
152
+ bodyClassName: function bodyClassName(_ref3) {
153
+ var css = _ref3.css,
154
+ header = _ref3.header,
155
+ hideChildren = _ref3.hideChildren,
156
+ styler = _ref3.styler;
157
+ return styler.join(css.body, {
158
+ noHeader: !header,
159
+ visible: !hideChildren
160
+ });
161
+ },
162
+ // nulling headerId prevents the aria-labelledby relationship which is necessary to allow
163
+ // aria-label to take precedence
164
+ // (see https://www.w3.org/TR/wai-aria/states_and_properties#aria-labelledby)
165
+ ids: function ids(_ref4) {
166
+ var label = _ref4['aria-label'],
167
+ panelType = _ref4.panelType;
168
+ if (label) {
169
+ return {};
170
+ } else if (panelType === 'wizard') {
171
+ var id = "panel_".concat(++panelId, "_header");
172
+ return {
173
+ headerId: id,
174
+ labelledby: id
175
+ };
176
+ } else {
177
+ var labelledby = "panel_".concat(++panelId, "_title panel_").concat(panelId, "_subtitle");
178
+ var _labelledby$split = labelledby.split(' '),
179
+ _labelledby$split2 = _slicedToArray(_labelledby$split, 2),
180
+ titleId = _labelledby$split2[0],
181
+ subtitleId = _labelledby$split2[1];
182
+ return {
183
+ labelledby: labelledby,
184
+ subtitleId: subtitleId,
185
+ titleId: titleId
186
+ };
187
+ }
188
+ }
189
+ },
190
+ render: function render(_ref5) {
191
+ var bodyClassName = _ref5.bodyClassName,
192
+ children = _ref5.children,
193
+ componentRef = _ref5.componentRef,
194
+ css = _ref5.css,
195
+ floatingLayerId = _ref5.floatingLayerId,
196
+ header = _ref5.header,
197
+ _ref5$ids = _ref5.ids,
198
+ _ref5$ids$headerId = _ref5$ids.headerId,
199
+ headerId = _ref5$ids$headerId === void 0 ? null : _ref5$ids$headerId,
200
+ _ref5$ids$labelledby = _ref5$ids.labelledby,
201
+ labelledby = _ref5$ids$labelledby === void 0 ? null : _ref5$ids$labelledby,
202
+ _ref5$ids$subtitleId = _ref5$ids.subtitleId,
203
+ subtitleId = _ref5$ids$subtitleId === void 0 ? null : _ref5$ids$subtitleId,
204
+ _ref5$ids$titleId = _ref5$ids.titleId,
205
+ titleId = _ref5$ids$titleId === void 0 ? null : _ref5$ids$titleId,
206
+ rest = _objectWithoutProperties(_ref5, _excluded);
207
+ delete rest.hideChildren;
208
+ delete rest.panelType;
209
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("article", _objectSpread(_objectSpread({
210
+ role: "region"
211
+ }, rest), {}, {
212
+ "aria-owns": floatingLayerId,
213
+ "aria-labelledby": labelledby,
214
+ ref: componentRef,
215
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
216
+ className: css.header,
217
+ id: headerId,
218
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ComponentOverride["default"], {
219
+ component: header,
220
+ "data-index": rest['data-index'],
221
+ subtitleId: subtitleId,
222
+ titleId: titleId
223
+ })
224
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("section", {
225
+ className: bodyClassName,
226
+ children: children
227
+ })]
228
+ }));
229
+ }
230
+ });
231
+
232
+ /**
233
+ * Sets the strategy used to automatically focus an element within the panel upon render.
234
+ *
235
+ * * "none" - Automatic focus is disabled
236
+ * * "last-focused" - The element last focused in the panel with be restored
237
+ * * "default-element" - The first spottable component within the body will be focused
238
+ * * Custom Selector - A custom CSS selector may also be provided which will be used to find
239
+ * the target within the Panel
240
+ *
241
+ * When used within {@link limestone/Panels.Panels|Panels}, this prop may be set by
242
+ * `Panels` to "default-element" when navigating "forward" to a higher index. This behavior
243
+ * may be overridden by setting `autoFocus` on the `Panel` instance as a child of `Panels`
244
+ * or by wrapping `Panel` with a custom component and overriding the value passed by
245
+ * `Panels`.
246
+ *
247
+ * ```
248
+ * // Panel within CustomPanel will always receive "last-focused"
249
+ * const CustomPanel = (props) => <Panel {...props} autoFocus="last-focused" />;
250
+ *
251
+ * // The first panel will always receive "last-focused". The second panel will receive
252
+ * // "default-element" when navigating from the first panel but `autoFocus` will be unset
253
+ * // when navigating from the third panel and as a result will default to "last-focused".
254
+ * const MyPanels = () => (
255
+ * <Panels>
256
+ * <Panel autoFocus="last-focused" />
257
+ * <Panel />
258
+ * <Panel />
259
+ * </Panels>
260
+ * );
261
+ * ```
262
+ *
263
+ * @name autoFocus
264
+ * @type {('default-element'|'last-focused'|'none'|String)}
265
+ * @memberof limestone/Panels.Panel.prototype
266
+ * @default 'last-focused'
267
+ * @public
268
+ */
269
+
270
+ /**
271
+ * Applies Limestone specific behaviors to {@link limestone/Panels.Panel.PanelBase|Panel} components.
272
+ *
273
+ * @hoc
274
+ * @memberof limestone/Panels
275
+ * @mixes spotlight/SpotlightContainerDecorator.SpotlightContainerDecorator
276
+ * @mixes ui/Slottable.Slottable
277
+ * @mixes limestone/Skinnable.Skinnable
278
+ * @public
279
+ */
280
+ var PanelDecorator = exports.PanelDecorator = (0, _hoc["default"])({
281
+ defaultElement: ".".concat(_PanelModule["default"].body, " *")
282
+ }, function (config, Wrapped) {
283
+ var defaultElement = config.defaultElement;
284
+ defaultElement = [".".concat(_SpotlightContainerDecorator.spotlightDefaultClass)].concat(_toConsumableArray(Array.isArray(defaultElement) ? defaultElement : [defaultElement]));
285
+ var Decorator = (0, _compose["default"])((0, _ForwardRef["default"])({
286
+ prop: 'componentRef'
287
+ }), _Panels.FloatingLayerIdProvider, _util.ContextAsDefaults, (0, _SharedStateDecorator["default"])({
288
+ idProp: 'data-index'
289
+ }), (0, _SpotlightContainerDecorator["default"])({
290
+ // prefer any spottable within the panel body for first render
291
+ continue5WayHold: true,
292
+ defaultElement: defaultElement,
293
+ enterTo: 'last-focused',
294
+ lastFocusedPersist: function lastFocusedPersist(node, all) {
295
+ var filtered = all.filter(function (element) {
296
+ var _element$dataset;
297
+ return element && !((_element$dataset = element.dataset) !== null && _element$dataset !== void 0 && _element$dataset.spotlightIgnoreRestore);
298
+ });
299
+ var container = typeof node === 'string';
300
+ return {
301
+ container: container,
302
+ element: !container,
303
+ key: container ? node : filtered.indexOf(node)
304
+ };
305
+ },
306
+ lastFocusedRestore: function lastFocusedRestore(_ref6, all) {
307
+ var container = _ref6.container,
308
+ key = _ref6.key;
309
+ var filtered = all.filter(function (element) {
310
+ var _element$dataset2;
311
+ return element && !((_element$dataset2 = element.dataset) !== null && _element$dataset2 !== void 0 && _element$dataset2.spotlightIgnoreRestore);
312
+ });
313
+ return container ? key : filtered[key];
314
+ },
315
+ preserveId: true
316
+ }), (0, _Slottable["default"])({
317
+ slots: ['header']
318
+ }), _Panels.AutoFocusDecorator, _Skinnable["default"]);
319
+ return Decorator(Wrapped);
320
+ });
321
+
322
+ /**
323
+ * Prevents the component from restoring any framework shared state.
324
+ *
325
+ * When `false`, the default, Panel will store state for some framework components in order to
326
+ * restore that state when returning to the Panel. Setting this prop to `true` will suppress that
327
+ * behavior and not store or retrieve any framework component state.
328
+ *
329
+ * @name noSharedState
330
+ * @type {Boolean}
331
+ * @default false
332
+ * @memberof limestone/Panels.Panel.prototype
333
+ */
334
+
335
+ /**
336
+ * The container id for {@link spotlight/SpotlightContainerDecorator/#SpotlightContainerDecorator.spotlightId|Spotlight container}.
337
+ *
338
+ * When the `Panel` is used within {@link limestone/Panels.Panels|Panels}, this prop will be
339
+ * generated by `Panels`. When using the panel alone, you need to specify this prop for restoring focus.
340
+ *
341
+ * @name spotlightId
342
+ * @type {String}
343
+ * @memberof limestone/Panels.Panel.prototype
344
+ */
345
+
346
+ var Panel = exports.Panel = PanelDecorator(PanelBase);
347
+ var _default = exports["default"] = Panel;
@@ -0,0 +1,33 @@
1
+ .panel {
2
+ position: relative;
3
+ height: 100%;
4
+ width: 100%;
5
+ overflow: hidden;
6
+ padding: 0;
7
+ box-sizing: border-box;
8
+ display: inline-flex;
9
+ flex-direction: column;
10
+ vertical-align: top;
11
+ white-space: initial;
12
+ }
13
+ .panel .body {
14
+ position: relative;
15
+ padding: 0 2rem;
16
+ flex: 1;
17
+ min-height: 0;
18
+ opacity: 0;
19
+ transition: opacity 200ms ease-out;
20
+ will-change: opacity;
21
+ }
22
+ .panel .body.noHeader {
23
+ padding-top: 0;
24
+ }
25
+ .panel .body.visible {
26
+ opacity: 1;
27
+ }
28
+ .panel:global(.enact-fit) {
29
+ height: auto;
30
+ }
31
+ :global(.enact-locale-right-to-left) .panel {
32
+ direction: rtl;
33
+ }