@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
package/Input/Input.js ADDED
@@ -0,0 +1,715 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = exports.InputPopupBase = exports.InputPopup = exports.InputDecorator = exports.InputBase = exports.Input = void 0;
7
+ var _handle = require("@enact/core/handle");
8
+ var _kind = _interopRequireDefault(require("@enact/core/kind"));
9
+ var _util = require("@enact/core/util");
10
+ var _spotlight = _interopRequireDefault(require("@enact/spotlight"));
11
+ var _SpotlightContainerDecorator = require("@enact/spotlight/SpotlightContainerDecorator");
12
+ var _AnnounceDecorator = require("@enact/ui/AnnounceDecorator");
13
+ var _Changeable = _interopRequireDefault(require("@enact/ui/Changeable"));
14
+ var _Pure = _interopRequireDefault(require("@enact/ui/internal/Pure"));
15
+ var _Slottable = _interopRequireDefault(require("@enact/ui/Slottable"));
16
+ var _Toggleable = _interopRequireDefault(require("@enact/ui/Toggleable"));
17
+ var _Layout = _interopRequireWildcard(require("@enact/ui/Layout"));
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+ var _propTypes = _interopRequireDefault(require("prop-types"));
20
+ var _compose = _interopRequireDefault(require("ramda/src/compose"));
21
+ var _react = require("react");
22
+ var _$L = _interopRequireDefault(require("../internal/$L"));
23
+ var _Button = _interopRequireDefault(require("../Button"));
24
+ var _Popup = _interopRequireDefault(require("../Popup"));
25
+ var _Skinnable = _interopRequireDefault(require("../Skinnable"));
26
+ var _Heading = _interopRequireDefault(require("../Heading"));
27
+ var _NumberField = _interopRequireDefault(require("./NumberField"));
28
+ var _InputField = _interopRequireDefault(require("./InputField"));
29
+ var _util2 = require("./util");
30
+ var _InputModule = _interopRequireDefault(require("./Input.module.css"));
31
+ var _jsxRuntime = require("react/jsx-runtime");
32
+ var _excluded = ["announce", "backButtonAriaLabel", "buttons", "children", "css", "defaultValue", "disabled", "inputAreaClassName", "inputFieldSpotlightId", "noBackButton", "noSubmitButton", "numberInputField", "onBeforeChange", "onClose", "onNumberComplete", "onInputKeyDown", "onShow", "open", "placeholder", "popupAriaLabel", "popupClassName", "popupType", "size", "subtitle", "title", "type", "maxLength", "minLength"],
33
+ _excluded2 = ["value"],
34
+ _excluded3 = ["announce", "buttonAriaLabel", "buttonLabel", "type", "size", "disabled", "value", "placeholder", "onClick", "className", "style"];
35
+ 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); }
36
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
37
+ 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; }
38
+ 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; }
39
+ 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; }
40
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
41
+ 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); }
42
+ 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; }
43
+ 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; }
44
+ var prepareInputEventPayload = function prepareInputEventPayload(ev) {
45
+ return {
46
+ value: ev.target.value
47
+ };
48
+ };
49
+ var isPasswordType = function isPasswordType(type) {
50
+ return type && type.includes('password');
51
+ };
52
+
53
+ /**
54
+ * Base component for providing text input in the form of a popup without button.
55
+ *
56
+ * @class InputPopupBase
57
+ * @memberof limestone/Input
58
+ * @ui
59
+ * @public
60
+ */
61
+ var InputPopupBase = exports.InputPopupBase = (0, _kind["default"])({
62
+ name: 'InputPopup',
63
+ propTypes: /** @lends limestone/Input.InputPopupBase.prototype */{
64
+ /**
65
+ * Passed by AnnounceDecorator for accessibility.
66
+ *
67
+ * @type {Object}
68
+ * @public
69
+ */
70
+ announce: _propTypes["default"].func,
71
+ /**
72
+ * Sets the hint string read when focusing the back button.
73
+ *
74
+ * @type {String}
75
+ * @default 'go to previous'
76
+ * @public
77
+ */
78
+ backButtonAriaLabel: _propTypes["default"].string,
79
+ /**
80
+ * Buttons to be included under the component.
81
+ *
82
+ * Typically, up to 3 buttons are used.
83
+ *
84
+ * @type {Element|Element[]}
85
+ * @public
86
+ */
87
+ buttons: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].arrayOf(_propTypes["default"].element)]),
88
+ /**
89
+ * Customize component style
90
+ *
91
+ * @type {Object}
92
+ * @public
93
+ */
94
+ css: _propTypes["default"].object,
95
+ /**
96
+ * Initial value of the input.
97
+ *
98
+ * This value is used for setting the `defaultValue` of the `InputField`.
99
+ * @see {@link limestone/Input.InputField}
100
+ * @type {String|Number}
101
+ * @public
102
+ */
103
+ defaultValue: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
104
+ /**
105
+ * Disables the input popup.
106
+ *
107
+ * @type {Boolean}
108
+ * @public
109
+ */
110
+ disabled: _propTypes["default"].bool,
111
+ /**
112
+ * Sets spotlightId to InputField.
113
+ *
114
+ * @type {String}
115
+ * @public
116
+ */
117
+ inputFieldSpotlightId: _propTypes["default"].string,
118
+ /**
119
+ * Indicates the value is invalid and shows
120
+ * {@link limestone/Input.InputPopupBase.invalidMessage|invalidMessage}, if set.
121
+ *
122
+ * @type {Boolean}
123
+ * @public
124
+ */
125
+ invalid: _propTypes["default"].bool,
126
+ /**
127
+ * The tooltip text to be displayed when the input is
128
+ * {@link limestone/Input.InputPopupBase.invalid|invalid}.
129
+ *
130
+ * If this value is *falsy*, the tooltip will be shown with the default message.
131
+ *
132
+ * @type {String}
133
+ * @default 'Please enter a valid value.'
134
+ * @public
135
+ */
136
+ invalidMessage: _propTypes["default"].string,
137
+ /**
138
+ * Set the length of number input field.
139
+ *
140
+ * Sets the amount of numbers this field will collect. Any number between 1 and 6
141
+ * (inclusive) will render individual number cells, greater than 6 will render a single box
142
+ * with numbers in it. This only has an effect on `'number'` and `'passwordnumber'` `type`
143
+ * and when `numberInputField` is `'auto'`.
144
+ *
145
+ * This value will override `minLength` and `maxLength`.
146
+ *
147
+ * @type {Number}
148
+ * @public
149
+ */
150
+ length: _propTypes["default"].number,
151
+ /**
152
+ * The maximum length of number input fields.
153
+ *
154
+ * Overridden by `length` value.
155
+ *
156
+ * @type {Number}
157
+ * @default 4
158
+ * @public
159
+ */
160
+ maxLength: _propTypes["default"].number,
161
+ /**
162
+ * The minimum length of number input fields.
163
+ *
164
+ * Overridden by `length` value.
165
+ *
166
+ * When smaller than `maxLength`, number type inputs will show a submit button and will not
167
+ * auto-submit when the length reaches `maxLength`. Defaults to the `maxLength` value.
168
+ *
169
+ * @type {Number}
170
+ * @public
171
+ */
172
+ minLength: _propTypes["default"].number,
173
+ /**
174
+ * Omits the back button.
175
+ *
176
+ * @type {Boolean}
177
+ * @public
178
+ */
179
+ noBackButton: _propTypes["default"].bool,
180
+ /**
181
+ * Omits the submit button.
182
+ *
183
+ * @type {Boolean}
184
+ * @public
185
+ */
186
+ noSubmitButton: _propTypes["default"].bool,
187
+ /**
188
+ * The type of numeric input to use.
189
+ *
190
+ * The default is to display separated digits when `length` is less than `7`. If `field` is
191
+ * set, a standard `InputField` will be used instead of the normal number input.
192
+ *
193
+ * This has no effect on other {@link limestone/Input.InputPopupBase.type|types}.
194
+ *
195
+ * @type {('auto'|'separated'|'joined'|'field')}
196
+ * @default 'auto'
197
+ * @public
198
+ */
199
+ numberInputField: _propTypes["default"].oneOf(['auto', 'separated', 'joined', 'field']),
200
+ /**
201
+ * Called before the input value is changed.
202
+ *
203
+ * The change can be prevented by calling `preventDefault` on the event.
204
+ *
205
+ * @type {Function}
206
+ * @public
207
+ */
208
+ onBeforeChange: _propTypes["default"].func,
209
+ /**
210
+ * Called when the input value is changed.
211
+ *
212
+ * @type {Function}
213
+ * @public
214
+ */
215
+ onChange: _propTypes["default"].func,
216
+ /**
217
+ * Called when the popup is closed.
218
+ *
219
+ * @type {Function}
220
+ * @public
221
+ */
222
+ onClose: _propTypes["default"].func,
223
+ /**
224
+ * Called when input is complete.
225
+ *
226
+ * @type {Function}
227
+ * @public
228
+ */
229
+ onComplete: _propTypes["default"].func,
230
+ /**
231
+ * Called when the popup is opened.
232
+ *
233
+ * @type {Function}
234
+ * @public
235
+ */
236
+ onOpenPopup: _propTypes["default"].func,
237
+ /**
238
+ * Opens the popup.
239
+ *
240
+ * @type {Boolean}
241
+ * @public
242
+ */
243
+ open: _propTypes["default"].bool,
244
+ /**
245
+ * Text displayed when value is not set.
246
+ *
247
+ * @type {String}
248
+ * @public
249
+ */
250
+ placeholder: _propTypes["default"].string,
251
+ /**
252
+ * The "aria-label" for the popup when opened.
253
+ *
254
+ * @type {String}
255
+ * @public
256
+ */
257
+ popupAriaLabel: _propTypes["default"].string,
258
+ /**
259
+ * Type of popup.
260
+ *
261
+ * @type {('fullscreen'|'overlay')}
262
+ * @default 'fullscreen'
263
+ * @public
264
+ */
265
+ popupType: _propTypes["default"].oneOf(['fullscreen', 'overlay']),
266
+ /**
267
+ * Size of the input field.
268
+ *
269
+ * @type {('large'|'small')}
270
+ * @default 'small'
271
+ * @public
272
+ */
273
+ size: _propTypes["default"].oneOf(['small', 'large']),
274
+ /**
275
+ * Subtitle below the title of popup.
276
+ *
277
+ * @type {String}
278
+ * @default ''
279
+ * @public
280
+ */
281
+ subtitle: _propTypes["default"].string,
282
+ /**
283
+ * Title text of popup.
284
+ *
285
+ * @type {String}
286
+ * @default ''
287
+ * @public
288
+ */
289
+ title: _propTypes["default"].string,
290
+ /**
291
+ * Type of the input.
292
+ *
293
+ * @type {('text'|'password'|'number'|'passwordnumber'|'url'|'tel'|'passwordtel')}
294
+ * @default 'text'
295
+ * @public
296
+ */
297
+ type: _propTypes["default"].oneOf(['text', 'password', 'number', 'passwordnumber', 'url', 'tel', 'passwordtel'])
298
+ },
299
+ defaultProps: {
300
+ defaultValue: '',
301
+ popupType: 'fullscreen',
302
+ numberInputField: 'auto',
303
+ size: 'small',
304
+ subtitle: '',
305
+ title: '',
306
+ type: 'text'
307
+ },
308
+ styles: {
309
+ css: _InputModule["default"],
310
+ className: 'input',
311
+ publicClassNames: ['textField']
312
+ },
313
+ handlers: {
314
+ onShow: (0, _handle.handle)((0, _handle.forwardCustom)('onShow'), function (ev, _ref) {
315
+ var type = _ref.type;
316
+ return !type.includes('number');
317
+ }, function () {
318
+ return _spotlight["default"].setPointerMode(false);
319
+ }),
320
+ onNumberComplete: (0, _handle.handle)(function (ev, props) {
321
+ setTimeout(function () {
322
+ (0, _handle.forward)('onComplete', ev, props);
323
+ (0, _handle.forward)('onClose', ev, props);
324
+ }, 250);
325
+ return true;
326
+ }),
327
+ onInputKeyDown: (0, _handle.handle)((0, _handle.forKey)('enter'),
328
+ // Ensure that the source of the enter is the <input>
329
+ function (_ref2) {
330
+ var target = _ref2.target;
331
+ return target.nodeName === 'INPUT';
332
+ }, (0, _handle.forwardCustom)('onComplete', prepareInputEventPayload), (0, _handle.forwardCustom)('onClose'))
333
+ },
334
+ computed: {
335
+ buttons: function buttons(_ref3) {
336
+ var _buttons = _ref3.buttons;
337
+ return (0, _util.mapAndFilterChildren)(_buttons, function (button, index) {
338
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
339
+ shrink: true,
340
+ children: button
341
+ }, "button".concat(index));
342
+ }) || null;
343
+ },
344
+ maxLength: function maxLength(_ref4) {
345
+ var length = _ref4.length,
346
+ _maxLength = _ref4.maxLength;
347
+ return length || _maxLength;
348
+ },
349
+ minLength: function minLength(_ref5) {
350
+ var length = _ref5.length,
351
+ maxLength = _ref5.maxLength,
352
+ _minLength = _ref5.minLength;
353
+ if (length) return length;
354
+ if (_minLength != null) return _minLength;
355
+ if (maxLength != null) return maxLength;
356
+ return _util2.DEFAULT_LENGTH;
357
+ },
358
+ popupClassName: function popupClassName(_ref6) {
359
+ var popupType = _ref6.popupType,
360
+ type = _ref6.type,
361
+ styler = _ref6.styler;
362
+ return styler.join('inputPopup', popupType, type);
363
+ },
364
+ inputAreaClassName: function inputAreaClassName(_ref7) {
365
+ var buttons = _ref7.buttons,
366
+ styler = _ref7.styler;
367
+ return styler.join('inputArea', buttons ? 'withButtons' : '');
368
+ }
369
+ },
370
+ render: function render(_ref8) {
371
+ var announce = _ref8.announce,
372
+ backButtonAriaLabel = _ref8.backButtonAriaLabel,
373
+ buttons = _ref8.buttons,
374
+ children = _ref8.children,
375
+ css = _ref8.css,
376
+ defaultValue = _ref8.defaultValue,
377
+ disabled = _ref8.disabled,
378
+ inputAreaClassName = _ref8.inputAreaClassName,
379
+ inputFieldSpotlightId = _ref8.inputFieldSpotlightId,
380
+ noBackButton = _ref8.noBackButton,
381
+ noSubmitButton = _ref8.noSubmitButton,
382
+ numberInputField = _ref8.numberInputField,
383
+ onBeforeChange = _ref8.onBeforeChange,
384
+ onClose = _ref8.onClose,
385
+ onNumberComplete = _ref8.onNumberComplete,
386
+ onInputKeyDown = _ref8.onInputKeyDown,
387
+ onShow = _ref8.onShow,
388
+ open = _ref8.open,
389
+ placeholder = _ref8.placeholder,
390
+ popupAriaLabel = _ref8.popupAriaLabel,
391
+ popupClassName = _ref8.popupClassName,
392
+ popupType = _ref8.popupType,
393
+ size = _ref8.size,
394
+ subtitle = _ref8.subtitle,
395
+ title = _ref8.title,
396
+ type = _ref8.type,
397
+ maxLength = _ref8.maxLength,
398
+ minLength = _ref8.minLength,
399
+ rest = _objectWithoutProperties(_ref8, _excluded);
400
+ var id = "inputPopup";
401
+ var ariaLabelledBy = popupAriaLabel ? null : "".concat(id, "_title ").concat(id, "_subtitle");
402
+ var _extractInputFieldPro = (0, _util2.extractInputFieldProps)(_objectSpread({
403
+ disabled: disabled
404
+ }, rest)),
405
+ value = _extractInputFieldPro.value,
406
+ inputProps = _objectWithoutProperties(_extractInputFieldPro, _excluded2);
407
+ var numberMode = numberInputField !== 'field' && (type === 'number' || type === 'passwordnumber');
408
+ // Set up the back button
409
+ var backButton = !noBackButton ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
410
+ "aria-label": backButtonAriaLabel == null ? (0, _$L["default"])('go to previous') : backButtonAriaLabel,
411
+ className: css.back,
412
+ css: css,
413
+ disabled: disabled,
414
+ icon: "arrowhookleft",
415
+ iconFlip: "auto",
416
+ onClick: onClose
417
+ }) : null;
418
+ var heading = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
419
+ id: "".concat(id, "_title"),
420
+ size: "title",
421
+ marqueeOn: "render",
422
+ alignment: "center",
423
+ className: css.title,
424
+ children: title
425
+ });
426
+ delete rest.length;
427
+ delete rest.onComplete;
428
+ delete rest.onOpenPopup;
429
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
430
+ "aria-owns": id,
431
+ className: css.inputPopupWrapper,
432
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Popup["default"], {
433
+ id: id,
434
+ "aria-label": popupAriaLabel,
435
+ "aria-labelledby": ariaLabelledBy,
436
+ css: css,
437
+ onClose: onClose,
438
+ onShow: onShow,
439
+ position: popupType === 'fullscreen' ? 'fullscreen' : 'center',
440
+ className: popupClassName,
441
+ noAlertRole: true,
442
+ noAnimation: true,
443
+ open: open,
444
+ role: "region",
445
+ children: [popupType === 'fullscreen' ? backButton : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout["default"], {
446
+ orientation: "vertical",
447
+ className: css.inputBody,
448
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Cell, {
449
+ shrink: true,
450
+ className: css.titles,
451
+ children: [popupType === 'fullscreen' ? heading : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
452
+ children: [backButton, heading]
453
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Heading["default"], {
454
+ id: "".concat(id, "_subtitle"),
455
+ size: "subtitle",
456
+ marqueeOn: "render",
457
+ alignment: "center",
458
+ className: css.subtitle,
459
+ children: subtitle
460
+ })]
461
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Layout.Cell, {
462
+ shrink: true,
463
+ className: inputAreaClassName,
464
+ children: [numberMode ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_NumberField["default"], _objectSpread(_objectSpread({}, inputProps), {}, {
465
+ announce: announce,
466
+ buttonSize: popupType === 'fullscreen' ? 'large' : 'small',
467
+ maxLength: (0, _util2.limitNumberLength)(popupType, maxLength),
468
+ minLength: (0, _util2.limitNumberLength)(popupType, minLength),
469
+ defaultValue: defaultValue || value,
470
+ onBeforeChange: onBeforeChange,
471
+ onComplete: onNumberComplete,
472
+ showKeypad: true,
473
+ type: type === 'passwordnumber' ? 'password' : 'number',
474
+ numberInputField: numberInputField,
475
+ noSubmitButton: noSubmitButton
476
+ })) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputField["default"], _objectSpread(_objectSpread({}, inputProps), {}, {
477
+ className: (0, _classnames["default"])(css.textField, _SpotlightContainerDecorator.spotlightDefaultClass),
478
+ css: css,
479
+ maxLength: maxLength,
480
+ minLength: minLength,
481
+ size: size,
482
+ autoFocus: true,
483
+ type: type,
484
+ defaultValue: defaultValue || value,
485
+ placeholder: placeholder,
486
+ onBeforeChange: onBeforeChange,
487
+ onKeyDown: onInputKeyDown,
488
+ spotlightId: inputFieldSpotlightId
489
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
490
+ shrink: true,
491
+ className: css.contentArea,
492
+ children: children
493
+ })]
494
+ }), buttons ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Layout.Cell, {
495
+ shrink: true,
496
+ className: css.buttonArea,
497
+ children: buttons
498
+ }) : null]
499
+ })]
500
+ })
501
+ });
502
+ }
503
+ });
504
+
505
+ /**
506
+ * Base component for providing text input in the form of a popup.
507
+ *
508
+ * @class InputBase
509
+ * @memberof limestone/Input
510
+ * @ui
511
+ * @public
512
+ */
513
+ var InputBase = exports.InputBase = (0, _kind["default"])({
514
+ name: 'Input',
515
+ propTypes: /** @lends limestone/Input.InputBase.prototype */{
516
+ /**
517
+ * Disables the button that activates the input popup.
518
+ *
519
+ * @type {Boolean}
520
+ * @private
521
+ */
522
+ announce: _propTypes["default"].func,
523
+ /**
524
+ * Disables the button that activates the input popup.
525
+ *
526
+ * @type {Boolean}
527
+ * @public
528
+ */
529
+ disabled: _propTypes["default"].bool,
530
+ /**
531
+ * Text displayed when value is not set.
532
+ *
533
+ * @type {String}
534
+ * @default '-'
535
+ * @public
536
+ */
537
+ placeholder: _propTypes["default"].string,
538
+ /**
539
+ * The size of the input field.
540
+ *
541
+ * @type {('large'|'small')}
542
+ * @default 'small'
543
+ * @public
544
+ */
545
+ size: _propTypes["default"].oneOf(['small', 'large']),
546
+ /**
547
+ * Type of the input.
548
+ *
549
+ * @type {('text'|'password'|'number'|'passwordnumber'|'url'|'tel'|'passwordtel')}
550
+ * @default 'text'
551
+ * @public
552
+ */
553
+ type: _propTypes["default"].oneOf(['text', 'password', 'number', 'passwordnumber', 'url', 'tel', 'passwordtel']),
554
+ /**
555
+ * The value of the input.
556
+ *
557
+ * @see {@link limestone/Input.InputField}
558
+ * @type {String|Number}
559
+ * @public
560
+ */
561
+ value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
562
+ },
563
+ defaultProps: {
564
+ placeholder: '-',
565
+ type: 'text'
566
+ },
567
+ handlers: {
568
+ onClick: (0, _handle.handle)((0, _handle.forward)('onClick'), (0, _handle.forward)('onOpenPopup'))
569
+ },
570
+ computed: {
571
+ buttonAriaLabel: function buttonAriaLabel(_ref9) {
572
+ var placeholder = _ref9.placeholder,
573
+ type = _ref9.type,
574
+ value = _ref9.value;
575
+ if (value || value === 0) {
576
+ type = isPasswordType(type) ? 'password' : type;
577
+ return (0, _util2.calcAriaLabel)('', type, type === 'number' ? value.toString().split('') : value.toString());
578
+ }
579
+ return (0, _util2.calcAriaLabel)('', null, placeholder);
580
+ },
581
+ buttonLabel: function buttonLabel(_ref0) {
582
+ var placeholder = _ref0.placeholder,
583
+ type = _ref0.type,
584
+ value = _ref0.value;
585
+ if (value || value === 0) {
586
+ return isPasswordType(type) ? (0, _util2.convertToPasswordFormat)(value.toString()) : value.toString();
587
+ } else {
588
+ return placeholder;
589
+ }
590
+ }
591
+ },
592
+ render: function render(_ref1) {
593
+ var announce = _ref1.announce,
594
+ buttonAriaLabel = _ref1.buttonAriaLabel,
595
+ buttonLabel = _ref1.buttonLabel,
596
+ type = _ref1.type,
597
+ size = _ref1.size,
598
+ disabled = _ref1.disabled,
599
+ value = _ref1.value,
600
+ placeholder = _ref1.placeholder,
601
+ onClick = _ref1.onClick,
602
+ className = _ref1.className,
603
+ style = _ref1.style,
604
+ rest = _objectWithoutProperties(_ref1, _excluded3);
605
+ var ariaProps = (0, _util.extractAriaProps)(rest);
606
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
607
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(InputPopupBase, _objectSpread({
608
+ announce: announce,
609
+ type: type,
610
+ size: size,
611
+ disabled: disabled,
612
+ defaultValue: value,
613
+ placeholder: placeholder
614
+ }, rest)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], _objectSpread(_objectSpread({
615
+ size: size,
616
+ disabled: disabled,
617
+ className: className,
618
+ style: style,
619
+ onClick: onClick,
620
+ "aria-label": buttonAriaLabel
621
+ }, ariaProps), {}, {
622
+ children: buttonLabel
623
+ }))]
624
+ });
625
+ }
626
+ });
627
+
628
+ // eslint-disable-next-line no-shadow
629
+ var AnnounceDecorator = function AnnounceDecorator(Wrapped) {
630
+ return function AnnounceDecorator(props) {
631
+ var _useAnnounce = (0, _AnnounceDecorator.useAnnounce)(),
632
+ announce = _useAnnounce.announce,
633
+ children = _useAnnounce.children;
634
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
635
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapped, _objectSpread(_objectSpread({}, props), {}, {
636
+ announce: announce
637
+ })), children]
638
+ });
639
+ };
640
+ };
641
+
642
+ /**
643
+ * Limestone specific item behaviors to apply to {@link limestone/Input.InputBase|Input}.
644
+ *
645
+ * @class InputDecorator
646
+ * @hoc
647
+ * @memberof limestone/Input
648
+ * @mixes ui/Toggleable.Toggleable
649
+ * @mixes ui/Changeable.Changeable
650
+ * @mixes limestone/Skinnable.Skinnable
651
+ * @public
652
+ */
653
+ var InputDecorator = exports.InputDecorator = (0, _compose["default"])(_Pure["default"], (0, _Toggleable["default"])({
654
+ activate: 'onOpenPopup',
655
+ deactivate: 'onClose',
656
+ prop: 'open'
657
+ }), (0, _Slottable["default"])({
658
+ slots: ['buttons']
659
+ }), (0, _Changeable["default"])({
660
+ change: 'onComplete'
661
+ }), AnnounceDecorator, _Skinnable["default"]);
662
+
663
+ /**
664
+ * Provides an input in the form of a popup.
665
+ *
666
+ * Usage:
667
+ * ```
668
+ * <Input
669
+ * onComplete={this.handleInputComplete}
670
+ * placeholder="Placeholder"
671
+ * subtitle="TitleBelow"
672
+ * title="Title"
673
+ * />
674
+ * ```
675
+ *
676
+ * By default, `Input` maintains the state of its `value` property. Supply the `defaultValue`
677
+ * property to control its initial value. If you wish to directly control updates to the
678
+ * component, supply a value to `value` at creation time and update it in response to `onChange`
679
+ * events.
680
+ *
681
+ * @class Input
682
+ * @memberof limestone/Input
683
+ * @extends limestone/Input.InputBase
684
+ * @ui
685
+ * @public
686
+ */
687
+ var Input = exports.Input = InputDecorator(InputBase);
688
+
689
+ /**
690
+ * Provides an input popup without button.
691
+ *
692
+ * Usage:
693
+ * ```
694
+ * <InputPopup
695
+ * open={this.state.open}
696
+ * onComplete={this.handleInputPopupComplete}
697
+ * placeholder="Placeholder"
698
+ * subtitle="Subtitle"
699
+ * title="Title"
700
+ * />
701
+ * ```
702
+ *
703
+ * By default, `InputPopup` maintains the state of its `value` property. Supply the `defaultValue`
704
+ * property to control its initial value. If you wish to directly control updates to the
705
+ * component, supply a value to `value` at creation time and update it in response to `onChange`
706
+ * events.
707
+ *
708
+ * @class InputPopup
709
+ * @memberof limestone/Input
710
+ * @extends limestone/Input.InputPopupBase
711
+ * @ui
712
+ * @public
713
+ */
714
+ var InputPopup = exports.InputPopup = InputDecorator(InputPopupBase);
715
+ var _default = exports["default"] = Input;