@servicetitan/design-system 13.4.0 → 14.0.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 (520) hide show
  1. package/dist/components/ActionMenu/ActionMenu.css +29 -21
  2. package/dist/components/ActionMenu/ActionMenu.css.map +1 -1
  3. package/dist/components/ActionMenu/ActionMenu.d.ts +8 -2
  4. package/dist/components/ActionMenu/ActionMenu.js +46 -3
  5. package/dist/components/ActionMenu/ActionMenu.js.map +1 -1
  6. package/dist/components/ActionMenu/ActionMenu.stories.d.ts +39 -0
  7. package/dist/components/ActionMenu/ActionMenu.stories.js +249 -0
  8. package/dist/components/ActionMenu/ActionMenu.stories.js.map +1 -0
  9. package/dist/components/ActionMenu/ActionMenu.test.js.map +1 -1
  10. package/dist/components/ActionMenu/ActionMenuGroup.js.map +1 -1
  11. package/dist/components/ActionMenu/ActionMenuItem.js +2 -5
  12. package/dist/components/ActionMenu/ActionMenuItem.js.map +1 -1
  13. package/dist/components/ActionMenu/index.css +29 -21
  14. package/dist/components/ActionMenu/index.css.map +1 -1
  15. package/dist/components/ActionMenu/index.js.map +1 -1
  16. package/dist/components/ActionMenu/useLatestEvent.d.ts +2 -0
  17. package/dist/components/ActionMenu/useLatestEvent.js +20 -0
  18. package/dist/components/ActionMenu/useLatestEvent.js.map +1 -0
  19. package/dist/components/Announcement/Announcement.js.map +1 -1
  20. package/dist/components/Announcement/Announcement.test.js.map +1 -1
  21. package/dist/components/Announcement/index.js.map +1 -1
  22. package/dist/components/AnvilSelect/AnvilSelect.d.ts +2 -1
  23. package/dist/components/AnvilSelect/AnvilSelect.js +17 -41
  24. package/dist/components/AnvilSelect/AnvilSelect.js.map +1 -1
  25. package/dist/components/AnvilSelect/AnvilSelect.test.js.map +1 -1
  26. package/dist/components/AnvilSelect/components/DrillIn.js.map +1 -1
  27. package/dist/components/AnvilSelect/components/FocusProvider.d.ts +2 -1
  28. package/dist/components/AnvilSelect/components/FocusProvider.js.map +1 -1
  29. package/dist/components/AnvilSelect/components/SelectFooter.js +6 -6
  30. package/dist/components/AnvilSelect/components/SelectFooter.js.map +1 -1
  31. package/dist/components/AnvilSelect/components/SelectHeader.js.map +1 -1
  32. package/dist/components/AnvilSelect/components/SelectOptions.js.map +1 -1
  33. package/dist/components/AnvilSelect/components/Tree.js.map +1 -1
  34. package/dist/components/AnvilSelect/components/Trigger.js +2 -0
  35. package/dist/components/AnvilSelect/components/Trigger.js.map +1 -1
  36. package/dist/components/AnvilSelect/components/index.js.map +1 -1
  37. package/dist/components/AnvilSelect/index.js.map +1 -1
  38. package/dist/components/AnvilSelect/utils/FocusActionType.js.map +1 -1
  39. package/dist/components/AnvilSelect/utils/FocusContext.js.map +1 -1
  40. package/dist/components/AnvilSelect/utils/FooterAction.js.map +1 -1
  41. package/dist/components/AnvilSelect/utils/focus-utils.d.ts +0 -3
  42. package/dist/components/AnvilSelect/utils/focus-utils.js +1 -19
  43. package/dist/components/AnvilSelect/utils/focus-utils.js.map +1 -1
  44. package/dist/components/AnvilSelect/utils/index.js.map +1 -1
  45. package/dist/components/Avatar/Avatar.js.map +1 -1
  46. package/dist/components/Avatar/Avatar.test.js.map +1 -1
  47. package/dist/components/Avatar/index.js.map +1 -1
  48. package/dist/components/BackLink/BackLink.js.map +1 -1
  49. package/dist/components/BackLink/BackLink.test.js.map +1 -1
  50. package/dist/components/BackLink/index.js.map +1 -1
  51. package/dist/components/Backdrop/Backdrop.js.map +1 -1
  52. package/dist/components/Backdrop/Backdrop.test.js.map +1 -1
  53. package/dist/components/Backdrop/index.js.map +1 -1
  54. package/dist/components/Banner/Banner.js.map +1 -1
  55. package/dist/components/Banner/Banner.test.js.map +1 -1
  56. package/dist/components/Banner/index.js.map +1 -1
  57. package/dist/components/BodyText/BodyText.js +2 -2
  58. package/dist/components/BodyText/BodyText.js.map +1 -1
  59. package/dist/components/BodyText/BodyText.test.js.map +1 -1
  60. package/dist/components/BodyText/index.js.map +1 -1
  61. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  62. package/dist/components/Breadcrumb/BreadcrumbLink.js.map +1 -1
  63. package/dist/components/Breadcrumb/BreadcrumbLink.test.js.map +1 -1
  64. package/dist/components/Breadcrumb/index.js.map +1 -1
  65. package/dist/components/BreakPoint/BreakPoint.d.ts +2 -1
  66. package/dist/components/BreakPoint/BreakPoint.js.map +1 -1
  67. package/dist/components/BreakPoint/BreakPoint.test.js.map +1 -1
  68. package/dist/components/BreakPoint/index.js.map +1 -1
  69. package/dist/components/Button/Button.js +2 -10
  70. package/dist/components/Button/Button.js.map +1 -1
  71. package/dist/components/Button/Button.test.js.map +1 -1
  72. package/dist/components/Button/index.js.map +1 -1
  73. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  74. package/dist/components/ButtonGroup/ButtonGroup.test.js.map +1 -1
  75. package/dist/components/ButtonGroup/ButtonGroupItem.js.map +1 -1
  76. package/dist/components/ButtonGroup/index.js.map +1 -1
  77. package/dist/components/ButtonToggle/ButtonToggle.d.ts +1 -1
  78. package/dist/components/ButtonToggle/ButtonToggle.js +11 -1
  79. package/dist/components/ButtonToggle/ButtonToggle.js.map +1 -1
  80. package/dist/components/ButtonToggle/ButtonToggle.test.js.map +1 -1
  81. package/dist/components/ButtonToggle/ButtonToggleItem.js +1 -1
  82. package/dist/components/ButtonToggle/ButtonToggleItem.js.map +1 -1
  83. package/dist/components/ButtonToggle/index.js.map +1 -1
  84. package/dist/components/Card/Card.js.map +1 -1
  85. package/dist/components/Card/Card.test.js.map +1 -1
  86. package/dist/components/Card/CardSection.js.map +1 -1
  87. package/dist/components/Card/index.js.map +1 -1
  88. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  89. package/dist/components/Checkbox/Checkbox.test.js.map +1 -1
  90. package/dist/components/Checkbox/index.js.map +1 -1
  91. package/dist/components/Collapsible/Collapsible.js +1 -1
  92. package/dist/components/Collapsible/Collapsible.js.map +1 -1
  93. package/dist/components/Collapsible/Collapsible.test.js.map +1 -1
  94. package/dist/components/Collapsible/index.js.map +1 -1
  95. package/dist/components/ColorPicker/ColorPicker.css +6 -4
  96. package/dist/components/ColorPicker/ColorPicker.css.map +1 -1
  97. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -7
  98. package/dist/components/ColorPicker/ColorPicker.js +14 -27
  99. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  100. package/dist/components/ColorPicker/ColorPicker.test.js.map +1 -1
  101. package/dist/components/ColorPicker/index.css +6 -4
  102. package/dist/components/ColorPicker/index.css.map +1 -1
  103. package/dist/components/ColorPicker/index.js.map +1 -1
  104. package/dist/components/Container/Container.js.map +1 -1
  105. package/dist/components/Container/index.js.map +1 -1
  106. package/dist/components/DataList/DataList.js +3 -3
  107. package/dist/components/DataList/DataList.js.map +1 -1
  108. package/dist/components/DataList/DataList.test.js.map +1 -1
  109. package/dist/components/DataList/DataListCell.d.ts +6 -4
  110. package/dist/components/DataList/DataListCell.js +2 -3
  111. package/dist/components/DataList/DataListCell.js.map +1 -1
  112. package/dist/components/DataList/DataListHeaderCell.d.ts +4 -2
  113. package/dist/components/DataList/DataListHeaderCell.js +2 -3
  114. package/dist/components/DataList/DataListHeaderCell.js.map +1 -1
  115. package/dist/components/DataList/DataListHeaderRow.js.map +1 -1
  116. package/dist/components/DataList/DataListRow.js.map +1 -1
  117. package/dist/components/DataList/index.js.map +1 -1
  118. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  119. package/dist/components/DatePicker/DatePicker.js +9 -6
  120. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  121. package/dist/components/DatePicker/DatePicker.test.js.map +1 -1
  122. package/dist/components/DatePicker/InputDateMask.js +2 -2
  123. package/dist/components/DatePicker/InputDateMask.js.map +1 -1
  124. package/dist/components/DatePicker/index.js.map +1 -1
  125. package/dist/components/DatePicker/utils/expandMaskUtils.js.map +1 -1
  126. package/dist/components/DatePicker/utils/expandMaskUtils.test.js.map +1 -1
  127. package/dist/components/DatePicker/utils/maskUtils.js.map +1 -1
  128. package/dist/components/DatePicker/utils/utils.js.map +1 -1
  129. package/dist/components/DateRangePicker/DateRangePicker.js +7 -2
  130. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  131. package/dist/components/DateRangePicker/DateRangePicker.test.js.map +1 -1
  132. package/dist/components/DateRangePicker/components/DateRangeInput.js +1 -1
  133. package/dist/components/DateRangePicker/components/DateRangeInput.js.map +1 -1
  134. package/dist/components/DateRangePicker/components/DateRangeOptionList.js.map +1 -1
  135. package/dist/components/DateRangePicker/components/DateRangeTrigger.js.map +1 -1
  136. package/dist/components/DateRangePicker/components/index.js.map +1 -1
  137. package/dist/components/DateRangePicker/index.js.map +1 -1
  138. package/dist/components/DateRangePicker/utils/checkScope.js.map +1 -1
  139. package/dist/components/DateRangePicker/utils/index.js.map +1 -1
  140. package/dist/components/Dialog/Dialog.d.ts +1 -0
  141. package/dist/components/Dialog/Dialog.js.map +1 -1
  142. package/dist/components/Dialog/Dialog.test.js.map +1 -1
  143. package/dist/components/Dialog/index.js.map +1 -1
  144. package/dist/components/Divider/Divider.js.map +1 -1
  145. package/dist/components/Divider/Divider.test.js.map +1 -1
  146. package/dist/components/Divider/index.js.map +1 -1
  147. package/dist/components/Drawer/Drawer.d.ts +1 -0
  148. package/dist/components/Drawer/Drawer.js.map +1 -1
  149. package/dist/components/Drawer/Drawer.test.js.map +1 -1
  150. package/dist/components/Drawer/index.js.map +1 -1
  151. package/dist/components/Dropdown/Dropdown.d.ts +2 -1
  152. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  153. package/dist/components/Dropdown/DropdownIcon.js.map +1 -1
  154. package/dist/components/Dropdown/index.js.map +1 -1
  155. package/dist/components/Eyebrow/Eyebrow.js.map +1 -1
  156. package/dist/components/Eyebrow/Eyebrow.test.js.map +1 -1
  157. package/dist/components/Eyebrow/index.js.map +1 -1
  158. package/dist/components/FilePicker/FilePicker.js.map +1 -1
  159. package/dist/components/FilePicker/FilePicker.test.js.map +1 -1
  160. package/dist/components/FilePicker/index.js.map +1 -1
  161. package/dist/components/FilterButton/FilterButton.js.map +1 -1
  162. package/dist/components/FilterButton/FilterButton.test.js.map +1 -1
  163. package/dist/components/FilterButton/index.js.map +1 -1
  164. package/dist/components/FlowCard/FlowCard.d.ts +2 -1
  165. package/dist/components/FlowCard/FlowCard.js.map +1 -1
  166. package/dist/components/FlowCard/FlowCard.test.js.map +1 -1
  167. package/dist/components/FlowCard/FlowCardStep.js.map +1 -1
  168. package/dist/components/FlowCard/index.js.map +1 -1
  169. package/dist/components/Form/Form.js.map +1 -1
  170. package/dist/components/Form/Form.test.js.map +1 -1
  171. package/dist/components/Form/index.js.map +1 -1
  172. package/dist/components/FormControls/FormAnvilSelect.js.map +1 -1
  173. package/dist/components/FormControls/FormButton.js.map +1 -1
  174. package/dist/components/FormControls/FormButtonToggle.js.map +1 -1
  175. package/dist/components/FormControls/FormCheckbox.js.map +1 -1
  176. package/dist/components/FormControls/FormColorPicker.js.map +1 -1
  177. package/dist/components/FormControls/FormDatePicker.js.map +1 -1
  178. package/dist/components/FormControls/FormDateRangePicker.js.map +1 -1
  179. package/dist/components/FormControls/FormDropdown.js.map +1 -1
  180. package/dist/components/FormControls/FormInput.d.ts +1 -1
  181. package/dist/components/FormControls/FormInput.js.map +1 -1
  182. package/dist/components/FormControls/FormRadio.js.map +1 -1
  183. package/dist/components/FormControls/FormSelect.js.map +1 -1
  184. package/dist/components/FormControls/FormTextArea.js.map +1 -1
  185. package/dist/components/FormControls/FormTimePicker.js.map +1 -1
  186. package/dist/components/FormControls/FormToggleSwitch.js.map +1 -1
  187. package/dist/components/FormControls/FormTogglebox.js.map +1 -1
  188. package/dist/components/FormControls/index.js.map +1 -1
  189. package/dist/components/FormField/FormField.js +8 -6
  190. package/dist/components/FormField/FormField.js.map +1 -1
  191. package/dist/components/FormField/FormField.test.js.map +1 -1
  192. package/dist/components/FormField/FormFieldContext.js.map +1 -1
  193. package/dist/components/FormField/index.js.map +1 -1
  194. package/dist/components/FormGroup/FormGroup.js.map +1 -1
  195. package/dist/components/FormGroup/FormGroup.test.js.map +1 -1
  196. package/dist/components/FormGroup/index.js.map +1 -1
  197. package/dist/components/Frame/Frame.js.map +1 -1
  198. package/dist/components/Frame/Frame.test.js.map +1 -1
  199. package/dist/components/Frame/index.js.map +1 -1
  200. package/dist/components/Grid/Grid.js.map +1 -1
  201. package/dist/components/Grid/Grid.test.js.map +1 -1
  202. package/dist/components/Grid/GridColumn.js.map +1 -1
  203. package/dist/components/Grid/GridRow.js.map +1 -1
  204. package/dist/components/Grid/index.js.map +1 -1
  205. package/dist/components/Headline/Headline.js.map +1 -1
  206. package/dist/components/Headline/Headline.test.js.map +1 -1
  207. package/dist/components/Headline/index.js.map +1 -1
  208. package/dist/components/Icon/Icon.js.map +1 -1
  209. package/dist/components/Icon/Icon.test.js.map +1 -1
  210. package/dist/components/Icon/index.js.map +1 -1
  211. package/dist/components/InlineEdit/InlineEdit.js.map +1 -1
  212. package/dist/components/InlineEdit/InlineEdit.test.js.map +1 -1
  213. package/dist/components/InlineEdit/index.js.map +1 -1
  214. package/dist/components/Input/Input.d.ts +1 -0
  215. package/dist/components/Input/Input.js.map +1 -1
  216. package/dist/components/Input/Input.test.js.map +1 -1
  217. package/dist/components/Input/InputAddon.js.map +1 -1
  218. package/dist/components/Input/index.js.map +1 -1
  219. package/dist/components/Input/inputProps.js.map +1 -1
  220. package/dist/components/KeyPressListener/KeyPressListener.js.map +1 -1
  221. package/dist/components/KeyPressListener/index.js.map +1 -1
  222. package/dist/components/Label/Label.js.map +1 -1
  223. package/dist/components/Label/index.js.map +1 -1
  224. package/dist/components/Layout/Layout.js.map +1 -1
  225. package/dist/components/Layout/Layout.test.js.map +1 -1
  226. package/dist/components/Layout/LayoutSection.js.map +1 -1
  227. package/dist/components/Layout/index.js.map +1 -1
  228. package/dist/components/Link/Link.js.map +1 -1
  229. package/dist/components/Link/Link.test.js.map +1 -1
  230. package/dist/components/Link/index.js.map +1 -1
  231. package/dist/components/Mask/Mask.js.map +1 -1
  232. package/dist/components/Mask/Mask.test.js.map +1 -1
  233. package/dist/components/Mask/index.js.map +1 -1
  234. package/dist/components/Modal/Modal.js +4 -5
  235. package/dist/components/Modal/Modal.js.map +1 -1
  236. package/dist/components/Modal/Modal.test.js.map +1 -1
  237. package/dist/components/Modal/components.d.ts +1 -0
  238. package/dist/components/Modal/components.js.map +1 -1
  239. package/dist/components/Modal/index.js.map +1 -1
  240. package/dist/components/MoreDetails/MoreDetails.js.map +1 -1
  241. package/dist/components/MoreDetails/MoreDetails.test.js.map +1 -1
  242. package/dist/components/MoreDetails/index.js.map +1 -1
  243. package/dist/components/OptionList/Option.js.map +1 -1
  244. package/dist/components/OptionList/OptionList.d.ts +2 -0
  245. package/dist/components/OptionList/OptionList.js +6 -2
  246. package/dist/components/OptionList/OptionList.js.map +1 -1
  247. package/dist/components/OptionList/OptionList.test.js.map +1 -1
  248. package/dist/components/OptionList/index.js.map +1 -1
  249. package/dist/components/OptionList/useOnExpand.js.map +1 -1
  250. package/dist/components/Page/Page.js.map +1 -1
  251. package/dist/components/Page/Page.test.js.map +1 -1
  252. package/dist/components/Page/components/ActionToolbar.js.map +1 -1
  253. package/dist/components/Page/components/Panel.js.map +1 -1
  254. package/dist/components/Page/components/index.js.map +1 -1
  255. package/dist/components/Page/index.js.map +1 -1
  256. package/dist/components/Popover/Popover.d.ts +2 -1
  257. package/dist/components/Popover/Popover.js.map +1 -1
  258. package/dist/components/Popover/Popover.test.js.map +1 -1
  259. package/dist/components/Popover/components.d.ts +2 -0
  260. package/dist/components/Popover/components.js.map +1 -1
  261. package/dist/components/Popover/index.js.map +1 -1
  262. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  263. package/dist/components/ProgressBar/ProgressBar.test.js.map +1 -1
  264. package/dist/components/ProgressBar/index.js.map +1 -1
  265. package/dist/components/ProgressCircle/ProgressCircle.js.map +1 -1
  266. package/dist/components/ProgressCircle/ProgressCircle.test.js.map +1 -1
  267. package/dist/components/ProgressCircle/index.js.map +1 -1
  268. package/dist/components/ProgressTracker/ProgressTracker.js.map +1 -1
  269. package/dist/components/ProgressTracker/ProgressTracker.test.js.map +1 -1
  270. package/dist/components/ProgressTracker/ProgressTrackerDivider.js +3 -3
  271. package/dist/components/ProgressTracker/ProgressTrackerDivider.js.map +1 -1
  272. package/dist/components/ProgressTracker/ProgressTrackerStep.js.map +1 -1
  273. package/dist/components/ProgressTracker/index.js.map +1 -1
  274. package/dist/components/Radio/Radio.js.map +1 -1
  275. package/dist/components/Radio/Radio.test.js.map +1 -1
  276. package/dist/components/Radio/index.js.map +1 -1
  277. package/dist/components/Scroll/Scroll.js.map +1 -1
  278. package/dist/components/Scroll/Scroll.test.js.map +1 -1
  279. package/dist/components/Scroll/index.js.map +1 -1
  280. package/dist/components/Select/Select.js.map +1 -1
  281. package/dist/components/Select/Select.test.js.map +1 -1
  282. package/dist/components/Select/index.js.map +1 -1
  283. package/dist/components/SideNav/SideNav.d.ts +1 -0
  284. package/dist/components/SideNav/SideNav.js +20 -5
  285. package/dist/components/SideNav/SideNav.js.map +1 -1
  286. package/dist/components/SideNav/SideNav.test.js.map +1 -1
  287. package/dist/components/SideNav/SideNavGroup.js.map +1 -1
  288. package/dist/components/SideNav/SideNavItem.css +4 -2
  289. package/dist/components/SideNav/SideNavItem.css.map +1 -1
  290. package/dist/components/SideNav/SideNavItem.d.ts +1 -0
  291. package/dist/components/SideNav/SideNavItem.js +13 -51
  292. package/dist/components/SideNav/SideNavItem.js.map +1 -1
  293. package/dist/components/SideNav/index.css +4 -2
  294. package/dist/components/SideNav/index.css.map +1 -1
  295. package/dist/components/SideNav/index.js.map +1 -1
  296. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  297. package/dist/components/Sidebar/Sidebar.test.js.map +1 -1
  298. package/dist/components/Sidebar/SidebarSection.js.map +1 -1
  299. package/dist/components/Sidebar/index.js.map +1 -1
  300. package/dist/components/Snackbar/Snackbar.d.ts +1 -0
  301. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  302. package/dist/components/Snackbar/Snackbar.test.js.map +1 -1
  303. package/dist/components/Snackbar/index.js.map +1 -1
  304. package/dist/components/Spinner/Spinner.js.map +1 -1
  305. package/dist/components/Spinner/Spinner.test.js.map +1 -1
  306. package/dist/components/Spinner/index.js.map +1 -1
  307. package/dist/components/Stack/Stack.js.map +1 -1
  308. package/dist/components/Stack/Stack.test.js.map +1 -1
  309. package/dist/components/Stack/StackItem.js.map +1 -1
  310. package/dist/components/Stack/index.js.map +1 -1
  311. package/dist/components/StatusLight/StatusLight.js.map +1 -1
  312. package/dist/components/StatusLight/StatusLight.test.js.map +1 -1
  313. package/dist/components/StatusLight/index.js.map +1 -1
  314. package/dist/components/Tab/Tab.js +1 -1
  315. package/dist/components/Tab/Tab.js.map +1 -1
  316. package/dist/components/Tab/Tab.test.js.map +1 -1
  317. package/dist/components/Tab/index.js.map +1 -1
  318. package/dist/components/TabGroup/TabGroup.js +8 -1
  319. package/dist/components/TabGroup/TabGroup.js.map +1 -1
  320. package/dist/components/TabGroup/TabGroup.test.js.map +1 -1
  321. package/dist/components/TabGroup/TabGroupItem.js.map +1 -1
  322. package/dist/components/TabGroup/components.d.ts +4 -2
  323. package/dist/components/TabGroup/components.js.map +1 -1
  324. package/dist/components/TabGroup/index.js.map +1 -1
  325. package/dist/components/Table/GridMod.js.map +1 -1
  326. package/dist/components/Table/Table.css +11 -1
  327. package/dist/components/Table/Table.css.map +1 -1
  328. package/dist/components/Table/Table.js.map +1 -1
  329. package/dist/components/Table/Table.test.js.map +1 -1
  330. package/dist/components/Table/TableLoadingPanel.js.map +1 -1
  331. package/dist/components/Table/components.js.map +1 -1
  332. package/dist/components/Table/index.css +11 -1
  333. package/dist/components/Table/index.css.map +1 -1
  334. package/dist/components/Table/index.js.map +1 -1
  335. package/dist/components/Table/useTableMinWidth.js.map +1 -1
  336. package/dist/components/Tag/Tag.js.map +1 -1
  337. package/dist/components/Tag/Tag.test.js.map +1 -1
  338. package/dist/components/Tag/index.js.map +1 -1
  339. package/dist/components/TagGroup/TagGroup.js.map +1 -1
  340. package/dist/components/TagGroup/TagGroup.test.js.map +1 -1
  341. package/dist/components/TagGroup/TagGroupItem.js.map +1 -1
  342. package/dist/components/TagGroup/index.js.map +1 -1
  343. package/dist/components/Takeover/Takeover.js.map +1 -1
  344. package/dist/components/Takeover/Takeover.test.js.map +1 -1
  345. package/dist/components/Takeover/TakeoverFooter.js.map +1 -1
  346. package/dist/components/Takeover/TakeoverHeader.js.map +1 -1
  347. package/dist/components/Takeover/TakeoverSection.js.map +1 -1
  348. package/dist/components/Takeover/index.js.map +1 -1
  349. package/dist/components/Text/Text.js.map +1 -1
  350. package/dist/components/Text/Text.test.js.map +1 -1
  351. package/dist/components/Text/index.js.map +1 -1
  352. package/dist/components/TextArea/TextArea.d.ts +2 -1
  353. package/dist/components/TextArea/TextArea.js +1 -1
  354. package/dist/components/TextArea/TextArea.js.map +1 -1
  355. package/dist/components/TextArea/TextArea.test.js.map +1 -1
  356. package/dist/components/TextArea/index.js.map +1 -1
  357. package/dist/components/Thumbnail/Thumbnail.js.map +1 -1
  358. package/dist/components/Thumbnail/Thumbnail.test.js.map +1 -1
  359. package/dist/components/Thumbnail/index.js.map +1 -1
  360. package/dist/components/TimePicker/TimePicker.js +10 -8
  361. package/dist/components/TimePicker/TimePicker.js.map +1 -1
  362. package/dist/components/TimePicker/TimePicker.test.js +13 -4
  363. package/dist/components/TimePicker/TimePicker.test.js.map +1 -1
  364. package/dist/components/TimePicker/components/TimePickerOptionList.d.ts +1 -1
  365. package/dist/components/TimePicker/components/TimePickerOptionList.js +21 -25
  366. package/dist/components/TimePicker/components/TimePickerOptionList.js.map +1 -1
  367. package/dist/components/TimePicker/components/index.js.map +1 -1
  368. package/dist/components/TimePicker/index.js.map +1 -1
  369. package/dist/components/TimePicker/utils/TimePickerUtils.test.js.map +1 -1
  370. package/dist/components/TimePicker/utils/checkMinMax.js.map +1 -1
  371. package/dist/components/TimePicker/utils/filterOptions.js +7 -5
  372. package/dist/components/TimePicker/utils/filterOptions.js.map +1 -1
  373. package/dist/components/TimePicker/utils/generateOptions.js.map +1 -1
  374. package/dist/components/TimePicker/utils/getClosestOption.js.map +1 -1
  375. package/dist/components/TimePicker/utils/getOptionByText.js.map +1 -1
  376. package/dist/components/TimePicker/utils/highlightOption.js.map +1 -1
  377. package/dist/components/TimePicker/utils/index.js.map +1 -1
  378. package/dist/components/TimePicker/utils/injectOption.js.map +1 -1
  379. package/dist/components/TimePicker/utils/stringToDate.js.map +1 -1
  380. package/dist/components/TimePicker/utils/timezoneUtils.js.map +1 -1
  381. package/dist/components/TimePicker/utils/toTimeFormat.js.map +1 -1
  382. package/dist/components/TimePicker/utils/utils.js +10 -12
  383. package/dist/components/TimePicker/utils/utils.js.map +1 -1
  384. package/dist/components/Toast/Toast.d.ts +2 -1
  385. package/dist/components/Toast/Toast.js.map +1 -1
  386. package/dist/components/Toast/Toast.test.js.map +1 -1
  387. package/dist/components/Toast/ToastGroup.d.ts +1 -1
  388. package/dist/components/Toast/ToastGroup.js.map +1 -1
  389. package/dist/components/Toast/index.js.map +1 -1
  390. package/dist/components/ToggleSwitch/ToggleSwitch.js +8 -7
  391. package/dist/components/ToggleSwitch/ToggleSwitch.js.map +1 -1
  392. package/dist/components/ToggleSwitch/ToggleSwitch.test.js.map +1 -1
  393. package/dist/components/ToggleSwitch/index.js.map +1 -1
  394. package/dist/components/Togglebox/Togglebox.js.map +1 -1
  395. package/dist/components/Togglebox/Togglebox.test.js.map +1 -1
  396. package/dist/components/Togglebox/index.js.map +1 -1
  397. package/dist/components/Tooltip/Tooltip.js +3 -4
  398. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  399. package/dist/components/Tooltip/Tooltip.test.js.map +1 -1
  400. package/dist/components/Tooltip/index.js.map +1 -1
  401. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +2 -1
  402. package/dist/components/VisuallyHidden/VisuallyHidden.js +1 -1
  403. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  404. package/dist/components/VisuallyHidden/index.js.map +1 -1
  405. package/dist/components/index.css +50 -28
  406. package/dist/components/index.css.map +1 -1
  407. package/dist/components/index.js.map +1 -1
  408. package/dist/global/index.css +1 -1
  409. package/dist/global/version.css +1 -1
  410. package/dist/hooks/index.js.map +1 -1
  411. package/dist/hooks/useArrowNav/index.d.ts +1 -0
  412. package/dist/hooks/useArrowNav/index.js +2 -0
  413. package/dist/hooks/useArrowNav/index.js.map +1 -0
  414. package/dist/hooks/useArrowNav/useArrowNav.d.ts +27 -0
  415. package/dist/hooks/useArrowNav/useArrowNav.js +65 -0
  416. package/dist/hooks/useArrowNav/useArrowNav.js.map +1 -0
  417. package/dist/hooks/useArrowNav/utils/index.d.ts +3 -0
  418. package/dist/hooks/useArrowNav/utils/index.js +4 -0
  419. package/dist/hooks/useArrowNav/utils/index.js.map +1 -0
  420. package/dist/hooks/useArrowNav/utils/keys.d.ts +3 -0
  421. package/dist/hooks/useArrowNav/utils/keys.js +12 -0
  422. package/dist/hooks/useArrowNav/utils/keys.js.map +1 -0
  423. package/dist/hooks/useArrowNav/utils/tabIndex.d.ts +2 -0
  424. package/dist/hooks/useArrowNav/utils/tabIndex.js +53 -0
  425. package/dist/hooks/useArrowNav/utils/tabIndex.js.map +1 -0
  426. package/dist/hooks/useArrowNav/utils/utils.d.ts +14 -0
  427. package/dist/hooks/useArrowNav/utils/utils.js +111 -0
  428. package/dist/hooks/useArrowNav/utils/utils.js.map +1 -0
  429. package/dist/hooks/useFocusTrap/index.js.map +1 -1
  430. package/dist/hooks/useFocusTrap/internal/index.js.map +1 -1
  431. package/dist/hooks/useFocusTrap/internal/useAutoFocus.js +12 -13
  432. package/dist/hooks/useFocusTrap/internal/useAutoFocus.js.map +1 -1
  433. package/dist/hooks/useFocusTrap/internal/useAutoFocusContainer.js.map +1 -1
  434. package/dist/hooks/useFocusTrap/internal/useDisableClickOutside.js +5 -5
  435. package/dist/hooks/useFocusTrap/internal/useDisableClickOutside.js.map +1 -1
  436. package/dist/hooks/useFocusTrap/internal/useFocusLock.js +4 -5
  437. package/dist/hooks/useFocusTrap/internal/useFocusLock.js.map +1 -1
  438. package/dist/hooks/useFocusTrap/internal/useRestoreFocus.js +4 -1
  439. package/dist/hooks/useFocusTrap/internal/useRestoreFocus.js.map +1 -1
  440. package/dist/hooks/useFocusTrap/internal/utils.d.ts +6 -2
  441. package/dist/hooks/useFocusTrap/internal/utils.js +27 -12
  442. package/dist/hooks/useFocusTrap/internal/utils.js.map +1 -1
  443. package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -1
  444. package/dist/hooks/useFocusVisible.js +9 -11
  445. package/dist/hooks/useFocusVisible.js.map +1 -1
  446. package/dist/hooks/useFocusVisible.test.js.map +1 -1
  447. package/dist/hooks/useMergedRef.js.map +1 -1
  448. package/dist/hooks/useScreenSize.js.map +1 -1
  449. package/dist/hooks/useScrollPosition.js.map +1 -1
  450. package/dist/hooks/useVisuallyHidden.js.map +1 -1
  451. package/dist/internal/CollapsibleList/CollapsibleContext.js.map +1 -1
  452. package/dist/internal/CollapsibleList/CollapsibleList.d.ts +2 -1
  453. package/dist/internal/CollapsibleList/CollapsibleList.js.map +1 -1
  454. package/dist/internal/CollapsibleList/CollapsibleListItem.d.ts +2 -1
  455. package/dist/internal/CollapsibleList/CollapsibleListItem.js +20 -2
  456. package/dist/internal/CollapsibleList/CollapsibleListItem.js.map +1 -1
  457. package/dist/internal/CollapsibleList/index.js.map +1 -1
  458. package/dist/internal/Overlay/Overlay.d.ts +2 -1
  459. package/dist/internal/Overlay/Overlay.js.map +1 -1
  460. package/dist/internal/Overlay/index.js.map +1 -1
  461. package/dist/internal/Popper/Popper.css +4 -2
  462. package/dist/internal/Popper/Popper.css.map +1 -1
  463. package/dist/internal/Popper/Popper.d.ts +1 -1
  464. package/dist/internal/Popper/Popper.js +3 -3
  465. package/dist/internal/Popper/Popper.js.map +1 -1
  466. package/dist/internal/Popper/index.css +4 -2
  467. package/dist/internal/Popper/index.css.map +1 -1
  468. package/dist/internal/Popper/index.js.map +1 -1
  469. package/dist/internal/Portal/Portal.d.ts +2 -1
  470. package/dist/internal/Portal/Portal.js.map +1 -1
  471. package/dist/internal/Portal/index.js.map +1 -1
  472. package/dist/internal/index.css +4 -2
  473. package/dist/internal/index.css.map +1 -1
  474. package/dist/internal/index.js.map +1 -1
  475. package/dist/system-light.css +5 -9
  476. package/dist/system-light.css.map +1 -1
  477. package/dist/system-light.min.css +1 -1
  478. package/dist/system.css +86 -97
  479. package/dist/system.css.map +1 -1
  480. package/dist/system.js.map +1 -1
  481. package/dist/system.min.css +2 -2
  482. package/dist/utilities/AnvilProvider.js.map +1 -1
  483. package/dist/utilities/ConditionalWrapper.js.map +1 -1
  484. package/dist/utilities/DefaultPortalContext.js.map +1 -1
  485. package/dist/utilities/KeyboardAccessTests/KeyboardAccess.test.js +143 -32
  486. package/dist/utilities/KeyboardAccessTests/KeyboardAccess.test.js.map +1 -1
  487. package/dist/utilities/KeyboardAccessTests/components/KeyboardTester.js.map +1 -1
  488. package/dist/utilities/KeyboardAccessTests/components/components.d.ts +1 -0
  489. package/dist/utilities/KeyboardAccessTests/components/components.js +78 -39
  490. package/dist/utilities/KeyboardAccessTests/components/components.js.map +1 -1
  491. package/dist/utilities/KeyboardAccessTests/components/index.js.map +1 -1
  492. package/dist/utilities/KeyboardAccessTests/utils/index.js.map +1 -1
  493. package/dist/utilities/KeyboardAccessTests/utils/jestUtils.d.ts +1 -0
  494. package/dist/utilities/KeyboardAccessTests/utils/jestUtils.js +18 -0
  495. package/dist/utilities/KeyboardAccessTests/utils/jestUtils.js.map +1 -1
  496. package/dist/utilities/KeyboardAccessTests/utils/utils.d.ts +0 -1
  497. package/dist/utilities/KeyboardAccessTests/utils/utils.js +0 -16
  498. package/dist/utilities/KeyboardAccessTests/utils/utils.js.map +1 -1
  499. package/dist/utilities/OverlayContext.js.map +1 -1
  500. package/dist/utilities/SemanticUtils/index.js.map +1 -1
  501. package/dist/utilities/SemanticUtils/refUtils.js.map +1 -1
  502. package/dist/utilities/SemanticUtils/widths.js.map +1 -1
  503. package/dist/utilities/ThemeProvider.js.map +1 -1
  504. package/dist/utilities/TimezoneProvider/TimezoneProvider.js.map +1 -1
  505. package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js.map +1 -1
  506. package/dist/utilities/TimezoneProvider/index.js.map +1 -1
  507. package/dist/utilities/color-utils.js.map +1 -1
  508. package/dist/utilities/dateFormat.js.map +1 -1
  509. package/dist/utilities/debounce.js.map +1 -1
  510. package/dist/utilities/getContent.js.map +1 -1
  511. package/dist/utilities/index.js.map +1 -1
  512. package/dist/utilities/isElementOfType.js.map +1 -1
  513. package/dist/utilities/justify-props.js.map +1 -1
  514. package/dist/utilities/keyCodes.js.map +1 -1
  515. package/dist/utilities/usePrefersColorScheme.js.map +1 -1
  516. package/dist/utilities/useStorybookFigmaAddon.js.map +1 -1
  517. package/dist/utilities/wrapChildren.js.map +1 -1
  518. package/dist/utilities/wrapWithComponent.d.ts +1 -1
  519. package/dist/utilities/wrapWithComponent.js.map +1 -1
  520. package/package.json +29 -35
@@ -1 +1 @@
1
- {"version":3,"file":"AnvilProvider.js","sourceRoot":"","sources":["../../src/utilities/AnvilProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5E,OAAO,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAiB,CAAC;AAChE,CAAC,CAAC"}
1
+ {"version":3,"file":"AnvilProvider.js","sourceRoot":"","sources":["../../src/utilities/AnvilProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC5E,OAAO,oBAAC,aAAa,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAiB,CAAC;AAChE,CAAC,CAAC","sourcesContent":["import React, { FC } from 'react';\nimport { ThemeProvider, themeProviderProps } from './ThemeProvider';\n\nexport const AnvilProvider: FC<themeProviderProps> = ({ children, theme }) => {\n\treturn <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalWrapper.js","sourceRoot":"","sources":["../../src/utilities/ConditionalWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAOlC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC/D,SAAS,EACT,OAAO,EACP,QAAQ,GACR,EAAE,EAAE;IACJ,MAAM,SAAS,GAAG,oBAAC,KAAK,CAAC,QAAQ,QAAE,QAAQ,CAAkB,CAAC;IAE9D,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC"}
1
+ {"version":3,"file":"ConditionalWrapper.js","sourceRoot":"","sources":["../../src/utilities/ConditionalWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAOlC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,EAC/D,SAAS,EACT,OAAO,EACP,QAAQ,GACR,EAAE,EAAE;IACJ,MAAM,SAAS,GAAG,oBAAC,KAAK,CAAC,QAAQ,QAAE,QAAQ,CAAkB,CAAC;IAE9D,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC,CAAC","sourcesContent":["import React, { FC } from 'react';\ninterface ConditionalWrapperProps {\n\tcondition: boolean;\n\twrapper: (child: React.ReactElement) => React.ReactElement;\n\tchildren: React.ReactElement | React.ReactElement[];\n}\n\nexport const ConditionalWrapper: FC<ConditionalWrapperProps> = ({\n\tcondition,\n\twrapper,\n\tchildren,\n}) => {\n\tconst container = <React.Fragment>{children}</React.Fragment>;\n\n\treturn condition ? wrapper(container) : container;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultPortalContext.js","sourceRoot":"","sources":["../../src/utilities/DefaultPortalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAE/C,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"DefaultPortalContext.js","sourceRoot":"","sources":["../../src/utilities/DefaultPortalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAE/C,IAAI,CAAC,CAAC","sourcesContent":["import { createContext } from 'react';\n\n/*\n * Provides default element for the portal property\n */\nexport const DefaultPortalContext = createContext<\n\tHTMLElement | ShadowRoot | null\n>(null);\n"]}
@@ -10,9 +10,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import React from 'react';
11
11
  import { render, screen } from '@testing-library/react';
12
12
  import userEvent from '@testing-library/user-event';
13
- import { mockResizeObserver, expectLog, keypressLegacy } from './utils';
13
+ import { mockResizeObserver, mockElementOffset, expectLog, keypressLegacy, } from './utils';
14
14
  import { KeyboardTester, DatePickerWithValue, DateRangePickerWithValue, TimePickerWithValue, SelectWithValue, FocusTrapTest, ModalTest, DrawerTest, DialogTest, PopoverTest, TakeoverTest, ActionMenuTest, SideNavTest, TabTest, ButtonToggleTest, } from './components';
15
15
  mockResizeObserver();
16
+ mockElementOffset();
16
17
  window.HTMLElement.prototype.scrollIntoView = () => { };
17
18
  describe('DatePicker', () => {
18
19
  beforeEach(() => jest.spyOn(console, 'error'));
@@ -20,8 +21,7 @@ describe('DatePicker', () => {
20
21
  const user = userEvent.setup();
21
22
  render(React.createElement(KeyboardTester, null,
22
23
  React.createElement(DatePickerWithValue, null)));
23
- const cal = () => screen.getByRole('grid') || global.document;
24
- // focus on icon → enter → arrow keys → enter to select value → tab to exit
24
+ const cal = () => screen.getAllByRole('grid')[0] || global.document;
25
25
  yield expectLog({ text: 'first focusable' });
26
26
  yield user.tab();
27
27
  yield expectLog({ text: 'toggle calendar' });
@@ -46,10 +46,7 @@ describe('DatePicker', () => {
46
46
  const user = userEvent.setup();
47
47
  render(React.createElement(KeyboardTester, null,
48
48
  React.createElement(DatePickerWithValue, null)));
49
- const cal = () => screen.getByRole('grid') || global.document;
50
- /*
51
- * focus input → arrow keys → enter to select value → tab to exit
52
- */
49
+ const cal = () => screen.getAllByRole('grid')[0] || global.document;
53
50
  yield expectLog({ text: 'first focusable' });
54
51
  yield user.tab();
55
52
  yield expectLog({ text: 'toggle calendar' }); // Icon focused
@@ -72,10 +69,9 @@ describe('DatePicker', () => {
72
69
  describe('DateRangePicker', () => {
73
70
  const user = userEvent.setup();
74
71
  beforeEach(() => jest.spyOn(console, 'error'));
75
- it('keyboard nav: (TBD) {enter} or {arrowDown} on mask to open picker, autofocus on start, tab to end date, tab to navigation over calendar', () => __awaiter(void 0, void 0, void 0, function* () {
72
+ it('keyboard nav: {enter} or {arrowDown} on mask to open picker, autofocus on start, tab to end date, tab to navigation over calendar', () => __awaiter(void 0, void 0, void 0, function* () {
76
73
  render(React.createElement(KeyboardTester, null,
77
74
  React.createElement(DateRangePickerWithValue, null)));
78
- // focus on icon → enter → arrow keys → enter to select value → tab to exit
79
75
  yield expectLog({ text: 'first focusable' });
80
76
  yield user.tab();
81
77
  yield expectLog({ text: 'Nov 7, 2022 - Nov 15, 2022' });
@@ -92,7 +88,6 @@ describe('TimePicker', () => {
92
88
  const user = userEvent.setup();
93
89
  render(React.createElement(KeyboardTester, null,
94
90
  React.createElement(TimePickerWithValue, null)));
95
- // focus on input → arrow down → enter to select value → tab to exit
96
91
  yield expectLog({ text: 'first focusable' });
97
92
  yield user.tab();
98
93
  yield expectLog({ text: '08:00 AM' });
@@ -166,7 +161,7 @@ describe('AnvilSelect', () => {
166
161
  });
167
162
  describe('ActionMenu', () => {
168
163
  beforeEach(() => jest.spyOn(console, 'error'));
169
- it('keyboard nav: (TBD) arrow keys should move focus, {Enter} should open submenu', () => __awaiter(void 0, void 0, void 0, function* () {
164
+ it('keyboard nav: arrow keys moves focus, {Enter}, {ArrowRight} opens submenu, {ArrowLeft} closes, {Escape} closes all menus', () => __awaiter(void 0, void 0, void 0, function* () {
170
165
  const user = userEvent.setup();
171
166
  render(React.createElement(KeyboardTester, null,
172
167
  React.createElement(ActionMenuTest, null)));
@@ -174,25 +169,94 @@ describe('ActionMenu', () => {
174
169
  yield user.tab();
175
170
  yield expectLog({ text: 'Open' });
176
171
  yield user.keyboard('{Enter}'); // Render ActionMenu
177
- // TBD write test keyboard here, keyboard yet is not supported
178
- yield user.tab();
179
- yield expectLog({ text: 'last focusable' });
172
+ yield expectLog({ text: 'Item 1' }); // Focus is inside
173
+ yield user.keyboard('{ArrowDown}');
174
+ yield expectLog({ text: 'Item 2 (cascading)' }); // Focus is moving
175
+ yield user.keyboard('{ArrowRight}');
176
+ yield expectLog({ text: 'Item 21' }); // Submenu opened
177
+ yield user.keyboard('{ArrowDown}{ArrowDown}{ArrowDown}');
178
+ yield expectLog({ text: 'Item 24' }); // Last item focused
179
+ yield user.keyboard('{ArrowDown}');
180
+ yield expectLog({ text: 'Item 21' }); // Looping
181
+ yield user.keyboard('{ArrowLeft}');
182
+ yield expectLog({ text: 'Item 2 (cascading)' }); // Submenu closed
183
+ yield user.keyboard('{ }'); // Submenu opened on Space keypress
184
+ yield expectLog({ text: 'Item 21' });
185
+ yield user.keyboard('{ArrowLeft}');
186
+ yield expectLog({ text: 'Item 2 (cascading)' }); // Submenu closed
187
+ yield user.keyboard('{ArrowDown}');
188
+ yield expectLog({ text: 'Item 3' }); // Focus is moving
189
+ yield user.keyboard('{ArrowDown}');
190
+ yield expectLog({ text: 'Item 4' });
191
+ yield user.keyboard('{ArrowDown}');
192
+ yield expectLog({ text: 'Item 1' }); // Looping
193
+ yield user.keyboard('{Escape}');
194
+ yield expectLog({ text: 'Open' }); // Menu closed
195
+ yield user.keyboard('{Enter}{ArrowDown}{ArrowRight}{ArrowDown}');
196
+ yield expectLog({ text: 'Item 22 (cascading)' });
197
+ yield user.keyboard('{Escape}');
198
+ yield expectLog({ text: 'Open' }); // Escape to close all the menus
199
+ yield user.keyboard('{Enter}');
200
+ yield user.tab({ shift: true });
201
+ yield expectLog({ text: 'Open' }); // Focus not locked, shift+tab sends focus back to the trigger
202
+ yield user.keyboard('{ }');
203
+ yield expectLog({ text: 'Item 1' }); // Space to open the menu and focus first item
204
+ yield user.keyboard('{ArrowDown}');
205
+ yield expectLog({ text: 'Item 2 (cascading)' });
206
+ yield user.keyboard('{ArrowDown}');
207
+ yield expectLog({ text: 'Item 3' });
180
208
  }));
181
209
  });
182
210
  describe('SideNav', () => {
183
211
  beforeEach(() => jest.spyOn(console, 'error'));
184
- it('keyboard nav: arrow keys should navigate over SideNav, {Enter} should open submenu', () => __awaiter(void 0, void 0, void 0, function* () {
212
+ it('keyboard nav: {Enter}, {Space} should make selection', () => __awaiter(void 0, void 0, void 0, function* () {
185
213
  const user = userEvent.setup();
186
214
  render(React.createElement(KeyboardTester, null,
187
215
  React.createElement(SideNavTest, null)));
188
216
  yield expectLog({ text: 'first focusable' });
189
217
  yield user.tab();
190
218
  yield user.tab();
191
- yield expectLog({ text: 'Item 1' });
219
+ yield expectLog({ text: 'Item 21' }); // Focus on selected item
192
220
  yield user.keyboard('{ArrowDown}');
193
- yield expectLog({ text: 'Item 2' }); // Collapsible
221
+ yield expectLog({ text: 'Item 22' });
222
+ yield user.keyboard('{Enter}'); // Makes selection
223
+ yield expectLog({ text: 'Item 22' });
194
224
  yield user.keyboard('{ArrowDown}');
195
- yield expectLog({ text: 'Item 3' });
225
+ yield expectLog({ text: 'Item 23' });
226
+ yield user.tab();
227
+ yield expectLog({ text: 'last focusable' });
228
+ yield user.tab({ shift: true });
229
+ yield expectLog({ text: 'Item 22' }); // Focus back on selected
230
+ yield user.tab({ shift: true });
231
+ yield user.tab({ shift: true });
232
+ yield expectLog({ text: 'first focusable' });
233
+ yield user.tab();
234
+ yield user.tab();
235
+ yield expectLog({ text: 'Item 22' }); // Focus back on selected
236
+ yield user.keyboard('{ArrowDown}');
237
+ yield user.keyboard('{ }'); // {Space} make selection
238
+ yield user.tab();
239
+ yield user.tab({ shift: true });
240
+ yield expectLog({ text: 'Item 23' }); // Focus back on selected
241
+ }));
242
+ it('keyboard nav: arrow keys should navigate over SideNav, {Enter}, {ArrowLeft}, {ArrowRight} should toggle submenu', () => __awaiter(void 0, void 0, void 0, function* () {
243
+ const user = userEvent.setup();
244
+ render(React.createElement(KeyboardTester, null,
245
+ React.createElement(SideNavTest, null)));
246
+ yield expectLog({ text: 'first focusable' });
247
+ yield user.tab();
248
+ yield user.tab();
249
+ yield expectLog({ text: 'Item 21' }); // Focus on selected item
250
+ yield user.keyboard('{ArrowDown}');
251
+ yield expectLog({ text: 'Item 22' });
252
+ yield user.keyboard('{ArrowLeft}');
253
+ yield expectLog({ text: 'Item 2' }); // Left should move focus on collapsible parent
254
+ yield user.keyboard('{ArrowLeft}');
255
+ yield expectLog({ text: 'Item 2' }); // Closes collapsible
256
+ yield user.keyboard('{ArrowLeft}');
257
+ yield expectLog({ text: 'Item 2' }); // Should do nothing
258
+ yield user.keyboard('{ArrowDown}');
259
+ yield expectLog({ text: 'Item 3' }); // Collapsible is really closed
196
260
  yield user.keyboard('{ArrowUp}');
197
261
  yield user.keyboard('{Enter}'); // Opens collapsible
198
262
  yield user.keyboard('{ArrowDown}');
@@ -201,46 +265,93 @@ describe('SideNav', () => {
201
265
  yield expectLog({ text: 'Item 3' });
202
266
  yield user.keyboard('{ArrowDown}');
203
267
  yield expectLog({ text: 'Item 4' });
204
- yield user.keyboard('{ArrowDown}'); // Nowhere to go
205
- yield expectLog({ text: 'Item 4' });
268
+ yield user.keyboard('{ArrowDown}');
269
+ yield expectLog({ text: 'Item 4' }); // Looping is disabled
270
+ yield user.keyboard('{Home}');
271
+ yield expectLog({ text: 'Item 1' }); // Home works
272
+ yield user.keyboard('{End}');
273
+ yield expectLog({ text: 'Item 4' }); // End works
274
+ yield user.keyboard('{Home}');
275
+ yield user.keyboard('{ArrowDown}');
276
+ yield user.keyboard('{Enter}'); // Closes collapsible
277
+ yield user.keyboard('{ArrowRight}'); // Opens collapsible
278
+ yield expectLog({ text: 'Item 2' }); // Collapsible is opened
279
+ yield user.keyboard('{ArrowRight}');
280
+ yield expectLog({ text: 'Item 21' });
281
+ yield user.keyboard('{ArrowDown}');
282
+ yield expectLog({ text: 'Item 22' });
206
283
  yield user.tab();
207
284
  yield expectLog({ text: 'last focusable' });
208
285
  }));
209
286
  });
210
287
  describe('Tab', () => {
211
288
  beforeEach(() => jest.spyOn(console, 'error'));
212
- it('keyboard nav: (TBD) arrow keys should move focus, {Enter} or {Space} should activate Tab', () => __awaiter(void 0, void 0, void 0, function* () {
289
+ it('keyboard nav: arrow keys should move focus, {Enter} or {Space} should activate Tab', () => __awaiter(void 0, void 0, void 0, function* () {
213
290
  const user = userEvent.setup();
214
291
  render(React.createElement(KeyboardTester, null,
215
292
  React.createElement(TabTest, null)));
216
293
  yield expectLog({ text: 'first focusable' });
217
294
  yield user.tab();
218
- yield expectLog({ text: 'Tab 1' });
219
- // TBD write test keyboard here, keyboard yet is not supported
220
- yield user.tab();
295
+ yield expectLog({ text: 'Tab 2' }); // Focus on selected item
296
+ yield user.keyboard('{ArrowRight}');
297
+ yield expectLog({ text: 'Tab 3' });
298
+ yield user.keyboard('{ArrowRight}');
299
+ yield expectLog({ text: 'Tab 1' }); // Looping works
300
+ yield user.keyboard('{ArrowLeft}');
301
+ yield expectLog({ text: 'Tab 3' });
302
+ yield user.keyboard('{ArrowRight}{ArrowRight}');
221
303
  yield expectLog({ text: 'Tab 2' });
222
304
  yield user.tab();
223
- yield expectLog({ text: 'Tab 3' });
305
+ yield expectLog({ text: 'Action' });
224
306
  yield user.tab();
225
307
  yield expectLog({ text: 'last focusable' });
308
+ yield user.tab({ shift: true });
309
+ yield expectLog({ text: 'Action' });
310
+ yield user.tab({ shift: true });
311
+ yield expectLog({ text: 'Tab 2' }); // Focus back on selected
312
+ yield user.keyboard('{ArrowRight}');
313
+ yield expectLog({ text: 'Tab 3' });
314
+ yield user.keyboard('{ }'); // {Space} make selection
315
+ yield expectLog({ text: 'Tab 3' });
316
+ yield user.tab({ shift: true });
317
+ yield expectLog({ text: 'first focusable' });
318
+ yield user.tab();
319
+ yield expectLog({ text: 'Tab 3' }); // Focus back
320
+ yield user.keyboard('{ArrowUp}');
321
+ yield expectLog({ text: 'Tab 3' }); // Do nothing
322
+ yield user.keyboard('{ArrowDown}');
323
+ yield expectLog({ text: 'Tab 3' }); // Do nothing
226
324
  }));
227
325
  });
228
326
  describe('ButtonToggle', () => {
229
327
  beforeEach(() => jest.spyOn(console, 'error'));
230
- it('keyboard nav: (TBD) arrow keys should move focus, {Enter} or {Space} should activate', () => __awaiter(void 0, void 0, void 0, function* () {
328
+ it('keyboard nav: arrow left and right keys should move selection', () => __awaiter(void 0, void 0, void 0, function* () {
231
329
  const user = userEvent.setup();
232
330
  render(React.createElement(KeyboardTester, null,
233
331
  React.createElement(ButtonToggleTest, null)));
234
332
  yield expectLog({ text: 'first focusable' });
235
333
  yield user.tab();
334
+ yield expectLog({ text: 'Item 2' }); // Focus on selected item
335
+ yield user.keyboard('{ArrowRight}');
336
+ yield expectLog({ text: 'Item 3' });
337
+ yield user.keyboard('{ArrowRight}');
338
+ yield expectLog({ text: 'Item 1' }); // Loop from 3 to 1, skipping disabled (4)
339
+ yield user.keyboard('{ArrowRight}');
340
+ yield expectLog({ text: 'Item 2' });
341
+ yield user.keyboard('{ArrowLeft}');
236
342
  yield expectLog({ text: 'Item 1' });
237
- // TBD write test keyboard here, keyboard yet is not supported
343
+ yield user.keyboard('{ArrowDown}');
344
+ yield expectLog({ text: 'Item 1' }); // Nothing happens
238
345
  yield user.tab();
346
+ yield expectLog({ text: 'last focusable' });
347
+ yield user.tab({ shift: true });
348
+ yield expectLog({ text: 'Item 1' }); // Focus back
349
+ yield user.keyboard('{ArrowRight}');
239
350
  yield expectLog({ text: 'Item 2' });
351
+ yield user.tab({ shift: true });
352
+ yield expectLog({ text: 'first focusable' });
240
353
  yield user.tab();
241
- yield expectLog({ text: 'Item 3' });
242
- yield user.tab();
243
- yield expectLog({ text: 'last focusable' });
354
+ yield expectLog({ text: 'Item 2' }); // Focus back
244
355
  }));
245
356
  });
246
357
  describe('useFocusTrap', () => {
@@ -257,7 +368,7 @@ describe('useFocusTrap', () => {
257
368
  yield user.tab();
258
369
  yield expectLog({ text: 'Inside 3 (shard)' });
259
370
  yield user.tab();
260
- yield expectLog({ text: 'Inside 1' });
371
+ yield expectLog({ text: 'Inside 1' }); // Focus is trapped
261
372
  // Reversed tabbing
262
373
  yield user.tab({ shift: true });
263
374
  yield expectLog({ text: 'Inside 3 (shard)' });
@@ -266,7 +377,7 @@ describe('useFocusTrap', () => {
266
377
  yield user.tab({ shift: true });
267
378
  yield expectLog({ text: 'Inside 1' });
268
379
  yield user.tab({ shift: true });
269
- yield expectLog({ text: 'Inside 3 (shard)' });
380
+ yield expectLog({ text: 'Inside 3 (shard)' }); // Focus is trapped
270
381
  }));
271
382
  it('Modal: focus trap, auto focus and restore focus should work inside Modal', () => __awaiter(void 0, void 0, void 0, function* () {
272
383
  const user = userEvent.setup();
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardAccess.test.js","sourceRoot":"","sources":["../../../src/utilities/KeyboardAccessTests/KeyboardAccess.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardAccess.test.js","sourceRoot":"","sources":["../../../src/utilities/KeyboardAccessTests/KeyboardAccess.test.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { render, screen } from '@testing-library/react';\nimport userEvent from '@testing-library/user-event';\n\nimport {\n\tmockResizeObserver,\n\tmockElementOffset,\n\texpectLog,\n\tkeypressLegacy,\n} from './utils';\nimport {\n\tKeyboardTester,\n\tDatePickerWithValue,\n\tDateRangePickerWithValue,\n\tTimePickerWithValue,\n\tSelectWithValue,\n\tFocusTrapTest,\n\tModalTest,\n\tDrawerTest,\n\tDialogTest,\n\tPopoverTest,\n\tTakeoverTest,\n\tActionMenuTest,\n\tSideNavTest,\n\tTabTest,\n\tButtonToggleTest,\n} from './components';\n\nmockResizeObserver();\nmockElementOffset();\nwindow.HTMLElement.prototype.scrollIntoView = () => {};\n\ndescribe('DatePicker', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: {enter} on icon to open picker, navigation over calendar', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<DatePickerWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tconst cal = () => screen.getAllByRole('grid')[0] || global.document;\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'toggle calendar' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'toggle calendar' });\n\t\tawait user.keyboard('{enter}'); // Opens calendar\n\t\tkeypressLegacy(cal(), 'ArrowDown'); // Kendo relied on event.code, which is unsupported by user-events@v14\n\t\tkeypressLegacy(cal(), 'ArrowDown');\n\t\tkeypressLegacy(cal(), 'ArrowLeft');\n\t\tawait expectLog({ text: '24' });\n\t\tkeypressLegacy(cal(), 'Enter'); // Select value\n\t\tawait expectLog({\n\t\t\ttext: '11/24/2022',\n\t\t\tanvilComponent: 'DatePicker', // Just for example\n\t\t});\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t});\n\n\tit('keyboard nav: {arrowDown} on mask to open picker, navigation over calendar', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<DatePickerWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tconst cal = () => screen.getAllByRole('grid')[0] || global.document;\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'toggle calendar' }); // Icon focused\n\t\tawait user.tab();\n\t\tawait expectLog({ text: '11/11/2022' }); // Input focused\n\t\tawait user.keyboard('{ArrowDown}'); // Opens calendar\n\t\tawait expectLog({ text: '11/11/2022' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: '11' });\n\t\tkeypressLegacy(cal(), 'ArrowDown'); // Kendo relied on event.code, which is unsupported by user-events@v14\n\t\tawait expectLog({ text: '18' });\n\t\tkeypressLegacy(cal(), 'ArrowRight');\n\t\tawait expectLog({ text: '19' });\n\t\tkeypressLegacy(cal(), 'Enter'); // Select value\n\t\tawait expectLog({ text: '11/19/2022' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t});\n});\n\ndescribe('DateRangePicker', () => {\n\tconst user = userEvent.setup();\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: {enter} or {arrowDown} on mask to open picker, autofocus on start, tab to end date, tab to navigation over calendar', async () => {\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<DateRangePickerWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Nov 7, 2022 - Nov 15, 2022' });\n\t\t// TBD, write test here, as keyboard is not yet supported\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'clear selection' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t});\n});\n\ndescribe('TimePicker', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: focus to open picker, {arrowDown} to navigate over picker, enter to select value', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<TimePickerWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: '08:00 AM' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: '08:00 AM' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: '08:30 AM' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: '09:00 AM' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({\n\t\t\ttext: '09:00 AM', // new value selected\n\t\t\tanvilComponent: 'TimePicker',\n\t\t});\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: '09:00 AM' });\n\t});\n\n\tit('keyboard access: typing \"123\" should inject \"01:23 AM\" option (between stepped options), tab should select it', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<TimePickerWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: '08:00 AM' });\n\t\tawait user.keyboard('123{Tab}'); // Selects \"01:23 AM\" option\n\t\tawait expectLog({ text: 'last focusable' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: '01:23 AM' }); // \"01:23 AM\" is selected\n\t});\n\tit('keyboard access: typing \"22\" should return no option as \"10:00 PM\" is restricted by max prop, tab should select nothing', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<TimePickerWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: '08:00 AM' });\n\t\tawait user.keyboard('22{Tab}'); // Should propose no option to select due to min-max restriction\n\t\tawait expectLog({ text: 'last focusable' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'HH:MM AM' }); // No value was selected\n\t});\n});\n\ndescribe('AnvilSelect', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: {arrowDown} to open picker, {arrowDown} to navigate over picker, enter to select value', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<SelectWithValue />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Select a technician' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Bob Ross' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({\n\t\t\ttext: 'Jackie Robinson',\n\t\t\tanvilComponent: 'Checkbox',\n\t\t});\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({\n\t\t\ttext: 'Jackie Robinson', // new value selected\n\t\t\tanvilComponent: 'AnvilSelect',\n\t\t});\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'clear selection' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t});\n});\n\ndescribe('ActionMenu', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: arrow keys moves focus, {Enter}, {ArrowRight} opens submenu, {ArrowLeft} closes, {Escape} closes all menus', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<ActionMenuTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Open' });\n\t\tawait user.keyboard('{Enter}'); // Render ActionMenu\n\t\tawait expectLog({ text: 'Item 1' }); // Focus is inside\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 2 (cascading)' }); // Focus is moving\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Item 21' }); // Submenu opened\n\t\tawait user.keyboard('{ArrowDown}{ArrowDown}{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 24' }); // Last item focused\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 21' }); // Looping\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Item 2 (cascading)' }); // Submenu closed\n\t\tawait user.keyboard('{ }'); // Submenu opened on Space keypress\n\t\tawait expectLog({ text: 'Item 21' });\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Item 2 (cascading)' }); // Submenu closed\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 3' }); // Focus is moving\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 4' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 1' }); // Looping\n\t\tawait user.keyboard('{Escape}');\n\t\tawait expectLog({ text: 'Open' }); // Menu closed\n\t\tawait user.keyboard('{Enter}{ArrowDown}{ArrowRight}{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 22 (cascading)' });\n\t\tawait user.keyboard('{Escape}');\n\t\tawait expectLog({ text: 'Open' }); // Escape to close all the menus\n\t\tawait user.keyboard('{Enter}');\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Open' }); // Focus not locked, shift+tab sends focus back to the trigger\n\t\tawait user.keyboard('{ }');\n\t\tawait expectLog({ text: 'Item 1' }); // Space to open the menu and focus first item\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 2 (cascading)' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 3' });\n\t});\n});\n\ndescribe('SideNav', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: {Enter}, {Space} should make selection', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<SideNavTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Item 21' }); // Focus on selected item\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 22' });\n\t\tawait user.keyboard('{Enter}'); // Makes selection\n\t\tawait expectLog({ text: 'Item 22' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 23' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Item 22' }); // Focus back on selected\n\t\tawait user.tab({ shift: true });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Item 22' }); // Focus back on selected\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait user.keyboard('{ }'); // {Space} make selection\n\t\tawait user.tab();\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Item 23' }); // Focus back on selected\n\t});\n\n\tit('keyboard nav: arrow keys should navigate over SideNav, {Enter}, {ArrowLeft}, {ArrowRight} should toggle submenu', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<SideNavTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Item 21' }); // Focus on selected item\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 22' });\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Item 2' }); // Left should move focus on collapsible parent\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Item 2' }); // Closes collapsible\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Item 2' }); // Should do nothing\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 3' }); // Collapsible is really closed\n\t\tawait user.keyboard('{ArrowUp}');\n\t\tawait user.keyboard('{Enter}'); // Opens collapsible\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 21' }); // Nested\n\t\tawait user.keyboard('{ArrowDown}{ArrowDown}{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 3' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 4' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 4' }); // Looping is disabled\n\t\tawait user.keyboard('{Home}');\n\t\tawait expectLog({ text: 'Item 1' }); // Home works\n\t\tawait user.keyboard('{End}');\n\t\tawait expectLog({ text: 'Item 4' }); // End works\n\t\tawait user.keyboard('{Home}');\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait user.keyboard('{Enter}'); // Closes collapsible\n\t\tawait user.keyboard('{ArrowRight}'); // Opens collapsible\n\t\tawait expectLog({ text: 'Item 2' }); // Collapsible is opened\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Item 21' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 22' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t});\n});\n\ndescribe('Tab', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: arrow keys should move focus, {Enter} or {Space} should activate Tab', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<TabTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Tab 2' }); // Focus on selected item\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Tab 3' });\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Tab 1' }); // Looping works\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Tab 3' });\n\t\tawait user.keyboard('{ArrowRight}{ArrowRight}');\n\t\tawait expectLog({ text: 'Tab 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Action' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Action' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Tab 2' }); // Focus back on selected\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Tab 3' });\n\t\tawait user.keyboard('{ }'); // {Space} make selection\n\t\tawait expectLog({ text: 'Tab 3' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Tab 3' }); // Focus back\n\t\tawait user.keyboard('{ArrowUp}');\n\t\tawait expectLog({ text: 'Tab 3' }); // Do nothing\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Tab 3' }); // Do nothing\n\t});\n});\n\ndescribe('ButtonToggle', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('keyboard nav: arrow left and right keys should move selection', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<ButtonToggleTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Item 2' }); // Focus on selected item\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Item 3' });\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Item 1' }); // Loop from 3 to 1, skipping disabled (4)\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Item 2' });\n\t\tawait user.keyboard('{ArrowLeft}');\n\t\tawait expectLog({ text: 'Item 1' });\n\t\tawait user.keyboard('{ArrowDown}');\n\t\tawait expectLog({ text: 'Item 1' }); // Nothing happens\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'last focusable' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Item 1' }); // Focus back\n\t\tawait user.keyboard('{ArrowRight}');\n\t\tawait expectLog({ text: 'Item 2' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Item 2' }); // Focus back\n\t});\n});\n\ndescribe('useFocusTrap', () => {\n\tbeforeEach(() => jest.spyOn(console, 'error'));\n\n\tit('useFocusTrap: on any sequence of {tab} or {shift}{tab} focus should stay inside', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<FocusTrapTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 3 (shard)' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' }); // Focus is trapped\n\n\t\t// Reversed tabbing\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Inside 3 (shard)' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Inside 3 (shard)' }); // Focus is trapped\n\t});\n\n\tit('Modal: focus trap, auto focus and restore focus should work inside Modal', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<ModalTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Open' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Modal' }); // Auto focus on Modal's container\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'close modal' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'close modal' }); // Focus is trapped\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Open' }); // Focus is restored\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t});\n\n\tit('Drawer: focus trap, auto focus and restore focus should work inside Drawer', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<DrawerTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Open' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Drawer' }); // Auto focus on Drawer's container\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'close drawer' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'close drawer' }); // Focus is trapped\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Open' }); // Focus is restored\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t});\n\n\tit('Dialog: focus trap, auto focus and restore focus: should work inside Dialog', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<DialogTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Open' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'DialogClose' }); // Auto focus on Dialog's container\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Close' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' }); // Focus is trapped\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Close' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Open' }); // Focus is restored\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t});\n\n\tit('Popover: focus trap, auto focus and restore focus should work inside Popover', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<PopoverTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Open' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Close' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' }); // Focus is trapped\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'Close' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Open' }); // Focus is restored\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t});\n\n\tit('Takeover: focus trap, auto focus and restore focus should work inside Takeover', async () => {\n\t\tconst user = userEvent.setup();\n\t\trender(\n\t\t\t<KeyboardTester>\n\t\t\t\t<TakeoverTest />\n\t\t\t</KeyboardTester>\n\t\t);\n\n\t\tawait expectLog({ text: 'first focusable' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Open' });\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Takeover' }); // Auto focus on Takeover's container\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'close takeover' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 1' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'Inside 2' });\n\t\tawait user.tab();\n\t\tawait expectLog({ text: 'close takeover' }); // Focus is trapped\n\t\tawait user.keyboard('{Enter}');\n\t\tawait expectLog({ text: 'Open' }); // Focus is restored\n\t\tawait user.tab({ shift: true });\n\t\tawait expectLog({ text: 'first focusable' });\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardTester.js","sourceRoot":"","sources":["../../../../src/utilities/KeyboardAccessTests/components/KeyboardTester.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAE,EAAE;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAEhF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACpB,MAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAS,0CAAE,KAAK,EAAE,CAAC,CAAC,YAAY;QAEvE,IAAI,KAAK,CAAC,UAAU,EAAE;YACrB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,GAAG,EAAE;gBACX,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC,CAAC;SACF;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvB,OAAO,CACN,6BAAK,SAAS,EAAC,qBAAqB;QACnC,2BAAG,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,sBAEjD;QACJ,iCAAM,KAAK,CAAC,QAAQ,CAAO;QAC3B,2BAAG,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,qBAEjD,CACC,CACN,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"KeyboardTester.js","sourceRoot":"","sources":["../../../../src/utilities/KeyboardAccessTests/components/KeyboardTester.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAE,EAAE;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;IAEhF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACpB,MAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAS,0CAAE,KAAK,EAAE,CAAC,CAAC,YAAY;QAEvE,IAAI,KAAK,CAAC,UAAU,EAAE;YACrB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,GAAG,EAAE;gBACX,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC,CAAC;SACF;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvB,OAAO,CACN,6BAAK,SAAS,EAAC,qBAAqB;QACnC,2BAAG,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,sBAEjD;QACJ,iCAAM,KAAK,CAAC,QAAQ,CAAO;QAC3B,2BAAG,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAC,aAAa,qBAEjD,CACC,CACN,CAAC;AACH,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { logActiveElement } from '../utils';\n\nexport const KeyboardTester = (props: any) => {\n\tconst log = (e: any) => setTimeout(() => logActiveElement(e)); // Delayed log fn\n\n\tReact.useEffect(() => {\n\t\t(document.querySelector('a.focusable-1') as any)?.focus(); // Autofocus\n\n\t\tif (props.logOnEvent) {\n\t\t\tdocument.addEventListener('click', log);\n\t\t\tdocument.addEventListener('keydown', log);\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener('click', log);\n\t\t\t\tdocument.removeEventListener('keydown', log);\n\t\t\t};\n\t\t}\n\t}, [props.logOnEvent]);\n\n\treturn (\n\t\t<div className=\"KeyboardTestWrapper\">\n\t\t\t<a role=\"button\" tabIndex={0} className=\"focusable-1\">\n\t\t\t\tfirst focusable\n\t\t\t</a>\n\t\t\t<div>{props.children}</div>\n\t\t\t<a role=\"button\" tabIndex={0} className=\"focusable-2\">\n\t\t\t\tlast focusable\n\t\t\t</a>\n\t\t</div>\n\t);\n};\n"]}
@@ -13,3 +13,4 @@ export declare const ActionMenuTest: () => JSX.Element;
13
13
  export declare const SideNavTest: () => JSX.Element;
14
14
  export declare const TabTest: () => JSX.Element;
15
15
  export declare const ButtonToggleTest: () => JSX.Element;
16
+ export declare const ColorPickerTest: () => JSX.Element;