@workday/canvas-kit-react 7.0.0-alpha.103-next.28 → 7.0.0-alpha.129-next.3

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 (643) hide show
  1. package/action-bar/lib/ActionBarItem.tsx +1 -6
  2. package/action-bar/lib/ActionBarList.tsx +5 -12
  3. package/action-bar/lib/useActionBarModel.tsx +2 -1
  4. package/action-bar/package.json +2 -1
  5. package/avatar/index.ts +0 -4
  6. package/avatar/lib/Avatar.tsx +5 -3
  7. package/avatar/package.json +2 -1
  8. package/badge/index.ts +1 -1
  9. package/badge/lib/CountBadge.tsx +1 -3
  10. package/badge/package.json +2 -1
  11. package/banner/package.json +2 -1
  12. package/button/lib/TertiaryButton.tsx +1 -0
  13. package/button/lib/deprecated_Button.tsx +1 -1
  14. package/button/package.json +2 -1
  15. package/card/package.json +2 -1
  16. package/checkbox/index.ts +0 -3
  17. package/checkbox/lib/Checkbox.tsx +108 -57
  18. package/checkbox/package.json +2 -1
  19. package/collection/index.ts +2 -0
  20. package/collection/lib/ListBox.tsx +1 -1
  21. package/collection/lib/useBaseListModel.tsx +1 -1
  22. package/collection/lib/useCursorListModel.tsx +88 -20
  23. package/collection/lib/useGridModel.ts +34 -0
  24. package/collection/lib/useListItemRovingFocus.tsx +6 -4
  25. package/collection/lib/useListRenderItem.tsx +24 -14
  26. package/collection/lib/useOverflowListModel.tsx +11 -2
  27. package/collection/package.json +2 -1
  28. package/color-picker/index.ts +0 -3
  29. package/color-picker/lib/ColorInput.tsx +0 -2
  30. package/color-picker/lib/ColorPreview.tsx +1 -3
  31. package/color-picker/package.json +2 -1
  32. package/common/lib/InputProvider.tsx +1 -1
  33. package/common/lib/parts/_brand-assets.ts +1 -1
  34. package/common/lib/styles/focusRing.ts +1 -1
  35. package/common/lib/utils/StaticStates.tsx +2 -2
  36. package/common/lib/utils/components.ts +3 -3
  37. package/common/lib/utils/elements.ts +5 -1
  38. package/common/lib/utils/index.ts +1 -0
  39. package/common/lib/utils/useModalityType.ts +65 -0
  40. package/common/package.json +2 -1
  41. package/dialog/package.json +2 -1
  42. package/disclosure/package.json +2 -1
  43. package/dist/commonjs/action-bar/lib/ActionBar.d.ts +4 -6
  44. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  45. package/dist/commonjs/action-bar/lib/ActionBarItem.d.ts +1 -4
  46. package/dist/commonjs/action-bar/lib/ActionBarItem.d.ts.map +1 -1
  47. package/dist/commonjs/action-bar/lib/ActionBarItem.js +0 -5
  48. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts +3 -61
  49. package/dist/commonjs/action-bar/lib/ActionBarList.d.ts.map +1 -1
  50. package/dist/commonjs/action-bar/lib/ActionBarList.js +2 -3
  51. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts +2 -0
  52. package/dist/commonjs/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  53. package/dist/commonjs/action-bar/lib/useActionBarModel.js +1 -1
  54. package/dist/commonjs/avatar/index.d.ts +0 -3
  55. package/dist/commonjs/avatar/index.d.ts.map +1 -1
  56. package/dist/commonjs/avatar/index.js +0 -7
  57. package/dist/commonjs/avatar/lib/Avatar.d.ts +2 -2
  58. package/dist/commonjs/avatar/lib/Avatar.d.ts.map +1 -1
  59. package/dist/commonjs/avatar/lib/Avatar.js +7 -5
  60. package/dist/commonjs/badge/index.d.ts +1 -1
  61. package/dist/commonjs/badge/index.d.ts.map +1 -1
  62. package/dist/commonjs/badge/index.js +1 -4
  63. package/dist/commonjs/badge/lib/CountBadge.d.ts +1 -2
  64. package/dist/commonjs/badge/lib/CountBadge.d.ts.map +1 -1
  65. package/dist/commonjs/badge/lib/CountBadge.js +2 -1
  66. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  67. package/dist/commonjs/button/lib/TertiaryButton.js +1 -0
  68. package/dist/commonjs/button/lib/deprecated_Button.js +7 -7
  69. package/dist/commonjs/checkbox/index.d.ts +0 -3
  70. package/dist/commonjs/checkbox/index.d.ts.map +1 -1
  71. package/dist/commonjs/checkbox/index.js +0 -7
  72. package/dist/commonjs/checkbox/lib/Checkbox.d.ts +4 -1
  73. package/dist/commonjs/checkbox/lib/Checkbox.d.ts.map +1 -1
  74. package/dist/commonjs/checkbox/lib/Checkbox.js +67 -37
  75. package/dist/commonjs/collection/index.d.ts +2 -0
  76. package/dist/commonjs/collection/index.d.ts.map +1 -1
  77. package/dist/commonjs/collection/index.js +5 -1
  78. package/dist/commonjs/collection/lib/ListBox.d.ts +1 -1
  79. package/dist/commonjs/collection/lib/ListBox.d.ts.map +1 -1
  80. package/dist/commonjs/collection/lib/useBaseListModel.js +1 -1
  81. package/dist/commonjs/collection/lib/useCursorListModel.d.ts +64 -101
  82. package/dist/commonjs/collection/lib/useCursorListModel.d.ts.map +1 -1
  83. package/dist/commonjs/collection/lib/useCursorListModel.js +64 -23
  84. package/dist/commonjs/collection/lib/useGridModel.d.ts +955 -0
  85. package/dist/commonjs/collection/lib/useGridModel.d.ts.map +1 -0
  86. package/dist/commonjs/collection/lib/useGridModel.js +52 -0
  87. package/dist/commonjs/collection/lib/useListItemRovingFocus.d.ts.map +1 -1
  88. package/dist/commonjs/collection/lib/useListItemRovingFocus.js +6 -4
  89. package/dist/commonjs/collection/lib/useListRenderItem.d.ts +1 -1
  90. package/dist/commonjs/collection/lib/useListRenderItem.d.ts.map +1 -1
  91. package/dist/commonjs/collection/lib/useListRenderItem.js +21 -11
  92. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts +10 -0
  93. package/dist/commonjs/collection/lib/useOverflowListModel.d.ts.map +1 -1
  94. package/dist/commonjs/collection/lib/useOverflowListModel.js +10 -4
  95. package/dist/commonjs/color-picker/index.d.ts +0 -3
  96. package/dist/commonjs/color-picker/index.d.ts.map +1 -1
  97. package/dist/commonjs/color-picker/index.js +0 -8
  98. package/dist/commonjs/color-picker/lib/ColorInput.d.ts +0 -1
  99. package/dist/commonjs/color-picker/lib/ColorInput.d.ts.map +1 -1
  100. package/dist/commonjs/color-picker/lib/ColorInput.js +0 -1
  101. package/dist/commonjs/color-picker/lib/ColorPreview.d.ts +0 -1
  102. package/dist/commonjs/color-picker/lib/ColorPreview.d.ts.map +1 -1
  103. package/dist/commonjs/color-picker/lib/ColorPreview.js +2 -3
  104. package/dist/commonjs/common/lib/InputProvider.d.ts +2 -2
  105. package/dist/commonjs/common/lib/InputProvider.d.ts.map +1 -1
  106. package/dist/commonjs/common/lib/parts/_brand-assets.js +1 -1
  107. package/dist/commonjs/common/lib/styles/focusRing.js +2 -2
  108. package/dist/commonjs/common/lib/utils/StaticStates.d.ts +2 -2
  109. package/dist/commonjs/common/lib/utils/StaticStates.d.ts.map +1 -1
  110. package/dist/commonjs/common/lib/utils/components.d.ts +3 -3
  111. package/dist/commonjs/common/lib/utils/components.d.ts.map +1 -1
  112. package/dist/commonjs/common/lib/utils/elements.d.ts +2 -2
  113. package/dist/commonjs/common/lib/utils/elements.d.ts.map +1 -1
  114. package/dist/commonjs/common/lib/utils/elements.js +4 -1
  115. package/dist/commonjs/common/lib/utils/index.d.ts +1 -0
  116. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  117. package/dist/commonjs/common/lib/utils/index.js +1 -0
  118. package/dist/commonjs/common/lib/utils/useModalityType.d.ts +17 -0
  119. package/dist/commonjs/common/lib/utils/useModalityType.d.ts.map +1 -0
  120. package/dist/commonjs/common/lib/utils/useModalityType.js +63 -0
  121. package/dist/commonjs/form-field/index.d.ts +0 -5
  122. package/dist/commonjs/form-field/index.d.ts.map +1 -1
  123. package/dist/commonjs/form-field/index.js +0 -11
  124. package/dist/commonjs/form-field/lib/FormField.d.ts +2 -2
  125. package/dist/commonjs/form-field/lib/FormField.d.ts.map +1 -1
  126. package/dist/commonjs/form-field/lib/FormField.js +6 -8
  127. package/dist/commonjs/form-field/lib/Hint.d.ts +1 -1
  128. package/dist/commonjs/form-field/lib/Hint.d.ts.map +1 -1
  129. package/dist/commonjs/form-field/lib/Hint.js +2 -1
  130. package/dist/commonjs/form-field/lib/Label.d.ts +2 -2
  131. package/dist/commonjs/form-field/lib/Label.d.ts.map +1 -1
  132. package/dist/commonjs/form-field/lib/Label.js +5 -8
  133. package/dist/commonjs/icon/index.d.ts +0 -7
  134. package/dist/commonjs/icon/index.d.ts.map +1 -1
  135. package/dist/commonjs/icon/index.js +0 -16
  136. package/dist/commonjs/icon/lib/AccentIcon.d.ts +1 -2
  137. package/dist/commonjs/icon/lib/AccentIcon.d.ts.map +1 -1
  138. package/dist/commonjs/icon/lib/AccentIcon.js +4 -8
  139. package/dist/commonjs/icon/lib/AppletIcon.d.ts +0 -1
  140. package/dist/commonjs/icon/lib/AppletIcon.d.ts.map +1 -1
  141. package/dist/commonjs/icon/lib/AppletIcon.js +2 -6
  142. package/dist/commonjs/icon/lib/Graphic.d.ts +1 -2
  143. package/dist/commonjs/icon/lib/Graphic.d.ts.map +1 -1
  144. package/dist/commonjs/icon/lib/Graphic.js +4 -8
  145. package/dist/commonjs/icon/lib/Icon.d.ts +0 -1
  146. package/dist/commonjs/icon/lib/Icon.d.ts.map +1 -1
  147. package/dist/commonjs/icon/lib/Icon.js +2 -6
  148. package/dist/commonjs/icon/lib/Svg.d.ts +0 -1
  149. package/dist/commonjs/icon/lib/Svg.d.ts.map +1 -1
  150. package/dist/commonjs/icon/lib/Svg.js +0 -1
  151. package/dist/commonjs/icon/lib/SystemIcon.d.ts +1 -2
  152. package/dist/commonjs/icon/lib/SystemIcon.d.ts.map +1 -1
  153. package/dist/commonjs/icon/lib/SystemIcon.js +4 -8
  154. package/dist/commonjs/icon/lib/SystemIconCircle.d.ts +1 -2
  155. package/dist/commonjs/icon/lib/SystemIconCircle.d.ts.map +1 -1
  156. package/dist/commonjs/icon/lib/SystemIconCircle.js +4 -5
  157. package/dist/commonjs/layout/index.d.ts +2 -2
  158. package/dist/commonjs/layout/index.d.ts.map +1 -1
  159. package/dist/commonjs/layout/index.js +4 -7
  160. package/dist/commonjs/layout/lib/Column.d.ts +1 -1
  161. package/dist/commonjs/layout/lib/Column.d.ts.map +1 -1
  162. package/dist/commonjs/layout/lib/Column.js +2 -1
  163. package/dist/commonjs/layout/lib/Layout.d.ts +2 -3
  164. package/dist/commonjs/layout/lib/Layout.d.ts.map +1 -1
  165. package/dist/commonjs/layout/lib/Layout.js +8 -7
  166. package/dist/commonjs/layout/lib/utils/border.d.ts +8 -8
  167. package/dist/commonjs/layout/lib/utils/border.d.ts.map +1 -1
  168. package/dist/commonjs/layout/lib/utils/flex.d.ts +7 -7
  169. package/dist/commonjs/layout/lib/utils/flex.d.ts.map +1 -1
  170. package/dist/commonjs/layout/lib/utils/flexItem.d.ts +4 -4
  171. package/dist/commonjs/layout/lib/utils/flexItem.d.ts.map +1 -1
  172. package/dist/commonjs/layout/lib/utils/layout.d.ts +7 -7
  173. package/dist/commonjs/layout/lib/utils/layout.d.ts.map +1 -1
  174. package/dist/commonjs/layout/lib/utils/position.d.ts +3 -3
  175. package/dist/commonjs/layout/lib/utils/position.d.ts.map +1 -1
  176. package/dist/commonjs/loading-animation/index.d.ts +2 -4
  177. package/dist/commonjs/loading-animation/index.d.ts.map +1 -1
  178. package/dist/commonjs/loading-animation/index.js +3 -19
  179. package/dist/commonjs/loading-animation/lib/LoadingDots.d.ts +1 -1
  180. package/dist/commonjs/loading-animation/lib/LoadingDots.d.ts.map +1 -1
  181. package/dist/commonjs/loading-animation/lib/LoadingDots.js +7 -6
  182. package/dist/commonjs/menu/lib/Menu.d.ts +1 -1
  183. package/dist/commonjs/menu/lib/MenuList.d.ts +3 -3
  184. package/dist/commonjs/menu/lib/MenuList.d.ts.map +1 -1
  185. package/dist/commonjs/modal/lib/ModalOverlay.d.ts +0 -1
  186. package/dist/commonjs/modal/lib/ModalOverlay.d.ts.map +1 -1
  187. package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.d.ts +1 -1
  188. package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.d.ts.map +1 -1
  189. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +1 -1
  190. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  191. package/dist/commonjs/pagination/lib/Pagination/PageButton.d.ts.map +1 -1
  192. package/dist/commonjs/pagination/lib/Pagination/PageButton.js +8 -6
  193. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +1 -1
  194. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  195. package/dist/commonjs/pagination/lib/Pagination/common/useLiveRegion.d.ts +0 -1
  196. package/dist/commonjs/pagination/lib/Pagination/common/useLiveRegion.d.ts.map +1 -1
  197. package/dist/commonjs/pagination/lib/Pagination/common/useLiveRegion.js +1 -1
  198. package/dist/commonjs/popup/lib/hooks/useDisableBodyScroll.d.ts.map +1 -1
  199. package/dist/commonjs/popup/lib/hooks/useDisableBodyScroll.js +2 -0
  200. package/dist/commonjs/popup/lib/hooks/usePopupTarget.js +1 -1
  201. package/dist/commonjs/radio/index.d.ts +0 -4
  202. package/dist/commonjs/radio/index.d.ts.map +1 -1
  203. package/dist/commonjs/radio/index.js +0 -9
  204. package/dist/commonjs/radio/lib/Radio.d.ts +1 -1
  205. package/dist/commonjs/radio/lib/Radio.d.ts.map +1 -1
  206. package/dist/commonjs/radio/lib/Radio.js +76 -29
  207. package/dist/commonjs/radio/lib/RadioGroup.d.ts +1 -1
  208. package/dist/commonjs/radio/lib/RadioGroup.d.ts.map +1 -1
  209. package/dist/commonjs/radio/lib/RadioGroup.js +9 -7
  210. package/dist/commonjs/segmented-control/index.d.ts +0 -3
  211. package/dist/commonjs/segmented-control/index.d.ts.map +1 -1
  212. package/dist/commonjs/segmented-control/index.js +0 -7
  213. package/dist/commonjs/segmented-control/lib/SegmentedControl.d.ts +0 -1
  214. package/dist/commonjs/segmented-control/lib/SegmentedControl.d.ts.map +1 -1
  215. package/dist/commonjs/segmented-control/lib/SegmentedControl.js +0 -1
  216. package/dist/commonjs/select/index.d.ts +0 -4
  217. package/dist/commonjs/select/index.d.ts.map +1 -1
  218. package/dist/commonjs/select/index.js +0 -9
  219. package/dist/commonjs/select/lib/Select.d.ts +1 -2
  220. package/dist/commonjs/select/lib/Select.d.ts.map +1 -1
  221. package/dist/commonjs/select/lib/Select.js +0 -1
  222. package/dist/commonjs/select/lib/SelectOption.d.ts +1 -1
  223. package/dist/commonjs/select/lib/SelectOption.d.ts.map +1 -1
  224. package/dist/commonjs/select/lib/SelectOption.js +2 -1
  225. package/dist/commonjs/side-panel/index.d.ts +0 -3
  226. package/dist/commonjs/side-panel/index.d.ts.map +1 -1
  227. package/dist/commonjs/side-panel/index.js +0 -7
  228. package/dist/commonjs/side-panel/lib/SidePanel.d.ts +1 -1
  229. package/dist/commonjs/side-panel/lib/SidePanel.d.ts.map +1 -1
  230. package/dist/commonjs/side-panel/lib/SidePanel.js +2 -2
  231. package/dist/commonjs/status-indicator/index.d.ts +0 -3
  232. package/dist/commonjs/status-indicator/index.d.ts.map +1 -1
  233. package/dist/commonjs/status-indicator/index.js +0 -7
  234. package/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts +1 -1
  235. package/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts.map +1 -1
  236. package/dist/commonjs/status-indicator/lib/StatusIndicator.js +2 -2
  237. package/dist/commonjs/switch/index.d.ts +0 -3
  238. package/dist/commonjs/switch/index.d.ts.map +1 -1
  239. package/dist/commonjs/switch/index.js +0 -7
  240. package/dist/commonjs/switch/lib/Switch.d.ts +0 -1
  241. package/dist/commonjs/switch/lib/Switch.d.ts.map +1 -1
  242. package/dist/commonjs/switch/lib/Switch.js +0 -1
  243. package/dist/commonjs/table/index.d.ts +0 -4
  244. package/dist/commonjs/table/index.d.ts.map +1 -1
  245. package/dist/commonjs/table/index.js +0 -9
  246. package/dist/commonjs/table/lib/Table.d.ts +1 -1
  247. package/dist/commonjs/table/lib/Table.d.ts.map +1 -1
  248. package/dist/commonjs/table/lib/Table.js +2 -2
  249. package/dist/commonjs/table/lib/TableRow.d.ts +3 -4
  250. package/dist/commonjs/table/lib/TableRow.d.ts.map +1 -1
  251. package/dist/commonjs/table/lib/TableRow.js +13 -28
  252. package/dist/commonjs/tabs/lib/Tabs.d.ts +5 -4
  253. package/dist/commonjs/tabs/lib/Tabs.d.ts.map +1 -1
  254. package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  255. package/dist/commonjs/tabs/lib/TabsItem.d.ts.map +1 -1
  256. package/dist/commonjs/tabs/lib/TabsItem.js +4 -3
  257. package/dist/commonjs/tabs/lib/TabsList.d.ts +2 -2
  258. package/dist/commonjs/tabs/lib/TabsList.d.ts.map +1 -1
  259. package/dist/commonjs/tabs/lib/TabsList.js +17 -2
  260. package/dist/commonjs/tabs/lib/TabsPanel.d.ts +2 -2
  261. package/dist/commonjs/tabs/lib/TabsPanel.d.ts.map +1 -1
  262. package/dist/commonjs/tabs/lib/TabsPanels.d.ts +2 -2
  263. package/dist/commonjs/tabs/lib/TabsPanels.d.ts.map +1 -1
  264. package/dist/commonjs/tabs/lib/useTabsModel.d.ts +55 -159
  265. package/dist/commonjs/tabs/lib/useTabsModel.d.ts.map +1 -1
  266. package/dist/commonjs/tabs/lib/useTabsModel.js +2 -0
  267. package/dist/commonjs/text-area/index.d.ts +0 -3
  268. package/dist/commonjs/text-area/index.d.ts.map +1 -1
  269. package/dist/commonjs/text-area/index.js +0 -7
  270. package/dist/commonjs/text-area/lib/TextArea.d.ts +0 -1
  271. package/dist/commonjs/text-area/lib/TextArea.d.ts.map +1 -1
  272. package/dist/commonjs/text-area/lib/TextArea.js +0 -1
  273. package/dist/commonjs/text-input/index.d.ts +0 -4
  274. package/dist/commonjs/text-input/index.d.ts.map +1 -1
  275. package/dist/commonjs/text-input/index.js +0 -9
  276. package/dist/commonjs/text-input/lib/InputIconContainer.d.ts +1 -2
  277. package/dist/commonjs/text-input/lib/InputIconContainer.d.ts.map +1 -1
  278. package/dist/commonjs/text-input/lib/InputIconContainer.js +2 -1
  279. package/dist/commonjs/text-input/lib/TextInput.d.ts +0 -1
  280. package/dist/commonjs/text-input/lib/TextInput.d.ts.map +1 -1
  281. package/dist/commonjs/text-input/lib/TextInput.js +0 -1
  282. package/dist/commonjs/toast/index.d.ts +0 -3
  283. package/dist/commonjs/toast/index.d.ts.map +1 -1
  284. package/dist/commonjs/toast/index.js +0 -4
  285. package/dist/commonjs/tokens/index.d.ts +1 -2
  286. package/dist/commonjs/tokens/index.d.ts.map +1 -1
  287. package/dist/commonjs/tokens/index.js +2 -3
  288. package/dist/commonjs/tokens/lib/radius.d.ts +1 -1
  289. package/dist/commonjs/tokens/lib/radius.d.ts.map +1 -1
  290. package/dist/commonjs/tokens/lib/radius.js +0 -1
  291. package/dist/commonjs/tooltip/index.d.ts +0 -2
  292. package/dist/commonjs/tooltip/index.d.ts.map +1 -1
  293. package/dist/commonjs/tooltip/index.js +0 -2
  294. package/dist/es6/action-bar/lib/ActionBar.d.ts +5 -7
  295. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  296. package/dist/es6/action-bar/lib/ActionBarItem.d.ts +1 -4
  297. package/dist/es6/action-bar/lib/ActionBarItem.d.ts.map +1 -1
  298. package/dist/es6/action-bar/lib/ActionBarItem.js +1 -6
  299. package/dist/es6/action-bar/lib/ActionBarList.d.ts +3 -61
  300. package/dist/es6/action-bar/lib/ActionBarList.d.ts.map +1 -1
  301. package/dist/es6/action-bar/lib/ActionBarList.js +3 -4
  302. package/dist/es6/action-bar/lib/useActionBarModel.d.ts +2 -0
  303. package/dist/es6/action-bar/lib/useActionBarModel.d.ts.map +1 -1
  304. package/dist/es6/action-bar/lib/useActionBarModel.js +1 -1
  305. package/dist/es6/avatar/index.d.ts +0 -3
  306. package/dist/es6/avatar/index.d.ts.map +1 -1
  307. package/dist/es6/avatar/index.js +0 -3
  308. package/dist/es6/avatar/lib/Avatar.d.ts +2 -2
  309. package/dist/es6/avatar/lib/Avatar.d.ts.map +1 -1
  310. package/dist/es6/avatar/lib/Avatar.js +4 -2
  311. package/dist/es6/badge/index.d.ts +1 -1
  312. package/dist/es6/badge/index.d.ts.map +1 -1
  313. package/dist/es6/badge/index.js +1 -1
  314. package/dist/es6/badge/lib/CountBadge.d.ts +1 -2
  315. package/dist/es6/badge/lib/CountBadge.d.ts.map +1 -1
  316. package/dist/es6/badge/lib/CountBadge.js +1 -2
  317. package/dist/es6/button/lib/BaseButton.d.ts +1 -1
  318. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  319. package/dist/es6/button/lib/TertiaryButton.js +1 -0
  320. package/dist/es6/button/lib/deprecated_Button.js +1 -1
  321. package/dist/es6/checkbox/index.d.ts +0 -3
  322. package/dist/es6/checkbox/index.d.ts.map +1 -1
  323. package/dist/es6/checkbox/index.js +0 -3
  324. package/dist/es6/checkbox/lib/Checkbox.d.ts +4 -1
  325. package/dist/es6/checkbox/lib/Checkbox.d.ts.map +1 -1
  326. package/dist/es6/checkbox/lib/Checkbox.js +66 -36
  327. package/dist/es6/collection/index.d.ts +2 -0
  328. package/dist/es6/collection/index.d.ts.map +1 -1
  329. package/dist/es6/collection/index.js +2 -0
  330. package/dist/es6/collection/lib/ListBox.d.ts +1 -1
  331. package/dist/es6/collection/lib/ListBox.d.ts.map +1 -1
  332. package/dist/es6/collection/lib/useBaseListModel.js +1 -1
  333. package/dist/es6/collection/lib/useCursorListModel.d.ts +64 -101
  334. package/dist/es6/collection/lib/useCursorListModel.d.ts.map +1 -1
  335. package/dist/es6/collection/lib/useCursorListModel.js +64 -23
  336. package/dist/es6/collection/lib/useGridModel.d.ts +955 -0
  337. package/dist/es6/collection/lib/useGridModel.d.ts.map +1 -0
  338. package/dist/es6/collection/lib/useGridModel.js +49 -0
  339. package/dist/es6/collection/lib/useListItemRovingFocus.d.ts.map +1 -1
  340. package/dist/es6/collection/lib/useListItemRovingFocus.js +6 -4
  341. package/dist/es6/collection/lib/useListRenderItem.d.ts +1 -1
  342. package/dist/es6/collection/lib/useListRenderItem.d.ts.map +1 -1
  343. package/dist/es6/collection/lib/useListRenderItem.js +21 -11
  344. package/dist/es6/collection/lib/useOverflowListModel.d.ts +10 -0
  345. package/dist/es6/collection/lib/useOverflowListModel.d.ts.map +1 -1
  346. package/dist/es6/collection/lib/useOverflowListModel.js +10 -4
  347. package/dist/es6/color-picker/index.d.ts +0 -3
  348. package/dist/es6/color-picker/index.d.ts.map +1 -1
  349. package/dist/es6/color-picker/index.js +0 -3
  350. package/dist/es6/color-picker/lib/ColorInput.d.ts +0 -1
  351. package/dist/es6/color-picker/lib/ColorInput.d.ts.map +1 -1
  352. package/dist/es6/color-picker/lib/ColorInput.js +0 -1
  353. package/dist/es6/color-picker/lib/ColorPreview.d.ts +0 -1
  354. package/dist/es6/color-picker/lib/ColorPreview.d.ts.map +1 -1
  355. package/dist/es6/color-picker/lib/ColorPreview.js +1 -2
  356. package/dist/es6/common/lib/InputProvider.d.ts +2 -2
  357. package/dist/es6/common/lib/InputProvider.d.ts.map +1 -1
  358. package/dist/es6/common/lib/parts/_brand-assets.js +1 -1
  359. package/dist/es6/common/lib/styles/focusRing.js +1 -1
  360. package/dist/es6/common/lib/utils/StaticStates.d.ts +2 -2
  361. package/dist/es6/common/lib/utils/StaticStates.d.ts.map +1 -1
  362. package/dist/es6/common/lib/utils/components.d.ts +6 -6
  363. package/dist/es6/common/lib/utils/components.d.ts.map +1 -1
  364. package/dist/es6/common/lib/utils/elements.d.ts +2 -2
  365. package/dist/es6/common/lib/utils/elements.d.ts.map +1 -1
  366. package/dist/es6/common/lib/utils/elements.js +4 -1
  367. package/dist/es6/common/lib/utils/index.d.ts +1 -0
  368. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  369. package/dist/es6/common/lib/utils/index.js +1 -0
  370. package/dist/es6/common/lib/utils/useModalityType.d.ts +17 -0
  371. package/dist/es6/common/lib/utils/useModalityType.d.ts.map +1 -0
  372. package/dist/es6/common/lib/utils/useModalityType.js +56 -0
  373. package/dist/es6/form-field/index.d.ts +0 -5
  374. package/dist/es6/form-field/index.d.ts.map +1 -1
  375. package/dist/es6/form-field/index.js +0 -5
  376. package/dist/es6/form-field/lib/FormField.d.ts +2 -2
  377. package/dist/es6/form-field/lib/FormField.d.ts.map +1 -1
  378. package/dist/es6/form-field/lib/FormField.js +3 -3
  379. package/dist/es6/form-field/lib/Hint.d.ts +1 -1
  380. package/dist/es6/form-field/lib/Hint.d.ts.map +1 -1
  381. package/dist/es6/form-field/lib/Hint.js +1 -1
  382. package/dist/es6/form-field/lib/Label.d.ts +2 -2
  383. package/dist/es6/form-field/lib/Label.d.ts.map +1 -1
  384. package/dist/es6/form-field/lib/Label.js +2 -3
  385. package/dist/es6/icon/index.d.ts +0 -7
  386. package/dist/es6/icon/index.d.ts.map +1 -1
  387. package/dist/es6/icon/index.js +0 -7
  388. package/dist/es6/icon/lib/AccentIcon.d.ts +1 -2
  389. package/dist/es6/icon/lib/AccentIcon.d.ts.map +1 -1
  390. package/dist/es6/icon/lib/AccentIcon.js +2 -3
  391. package/dist/es6/icon/lib/AppletIcon.d.ts +0 -1
  392. package/dist/es6/icon/lib/AppletIcon.d.ts.map +1 -1
  393. package/dist/es6/icon/lib/AppletIcon.js +1 -2
  394. package/dist/es6/icon/lib/Graphic.d.ts +1 -2
  395. package/dist/es6/icon/lib/Graphic.d.ts.map +1 -1
  396. package/dist/es6/icon/lib/Graphic.js +2 -3
  397. package/dist/es6/icon/lib/Icon.d.ts +0 -1
  398. package/dist/es6/icon/lib/Icon.d.ts.map +1 -1
  399. package/dist/es6/icon/lib/Icon.js +1 -2
  400. package/dist/es6/icon/lib/Svg.d.ts +0 -1
  401. package/dist/es6/icon/lib/Svg.d.ts.map +1 -1
  402. package/dist/es6/icon/lib/Svg.js +0 -1
  403. package/dist/es6/icon/lib/SystemIcon.d.ts +1 -2
  404. package/dist/es6/icon/lib/SystemIcon.d.ts.map +1 -1
  405. package/dist/es6/icon/lib/SystemIcon.js +2 -3
  406. package/dist/es6/icon/lib/SystemIconCircle.d.ts +1 -2
  407. package/dist/es6/icon/lib/SystemIconCircle.d.ts.map +1 -1
  408. package/dist/es6/icon/lib/SystemIconCircle.js +2 -3
  409. package/dist/es6/layout/index.d.ts +2 -2
  410. package/dist/es6/layout/index.d.ts.map +1 -1
  411. package/dist/es6/layout/index.js +2 -2
  412. package/dist/es6/layout/lib/Column.d.ts +1 -1
  413. package/dist/es6/layout/lib/Column.d.ts.map +1 -1
  414. package/dist/es6/layout/lib/Column.js +1 -1
  415. package/dist/es6/layout/lib/Layout.d.ts +2 -3
  416. package/dist/es6/layout/lib/Layout.d.ts.map +1 -1
  417. package/dist/es6/layout/lib/Layout.js +3 -3
  418. package/dist/es6/layout/lib/utils/border.d.ts +8 -8
  419. package/dist/es6/layout/lib/utils/border.d.ts.map +1 -1
  420. package/dist/es6/layout/lib/utils/flex.d.ts +7 -7
  421. package/dist/es6/layout/lib/utils/flex.d.ts.map +1 -1
  422. package/dist/es6/layout/lib/utils/flexItem.d.ts +4 -4
  423. package/dist/es6/layout/lib/utils/flexItem.d.ts.map +1 -1
  424. package/dist/es6/layout/lib/utils/layout.d.ts +7 -7
  425. package/dist/es6/layout/lib/utils/layout.d.ts.map +1 -1
  426. package/dist/es6/layout/lib/utils/position.d.ts +3 -3
  427. package/dist/es6/layout/lib/utils/position.d.ts.map +1 -1
  428. package/dist/es6/loading-animation/index.d.ts +2 -4
  429. package/dist/es6/loading-animation/index.d.ts.map +1 -1
  430. package/dist/es6/loading-animation/index.js +2 -4
  431. package/dist/es6/loading-animation/lib/LoadingDots.d.ts +1 -1
  432. package/dist/es6/loading-animation/lib/LoadingDots.d.ts.map +1 -1
  433. package/dist/es6/loading-animation/lib/LoadingDots.js +2 -2
  434. package/dist/es6/menu/lib/Menu.d.ts +2 -2
  435. package/dist/es6/menu/lib/MenuItem.d.ts +1 -1
  436. package/dist/es6/menu/lib/MenuList.d.ts +3 -3
  437. package/dist/es6/menu/lib/MenuList.d.ts.map +1 -1
  438. package/dist/es6/modal/lib/ModalOverlay.d.ts +0 -1
  439. package/dist/es6/modal/lib/ModalOverlay.d.ts.map +1 -1
  440. package/dist/es6/pagination/lib/Pagination/AdditionalDetails.d.ts +1 -1
  441. package/dist/es6/pagination/lib/Pagination/AdditionalDetails.d.ts.map +1 -1
  442. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +1 -1
  443. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  444. package/dist/es6/pagination/lib/Pagination/PageButton.d.ts.map +1 -1
  445. package/dist/es6/pagination/lib/Pagination/PageButton.js +9 -7
  446. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +1 -1
  447. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  448. package/dist/es6/pagination/lib/Pagination/common/useLiveRegion.d.ts +0 -1
  449. package/dist/es6/pagination/lib/Pagination/common/useLiveRegion.d.ts.map +1 -1
  450. package/dist/es6/pagination/lib/Pagination/common/useLiveRegion.js +1 -1
  451. package/dist/es6/popup/lib/hooks/useDisableBodyScroll.d.ts.map +1 -1
  452. package/dist/es6/popup/lib/hooks/useDisableBodyScroll.js +2 -0
  453. package/dist/es6/popup/lib/hooks/usePopupTarget.js +1 -1
  454. package/dist/es6/radio/index.d.ts +0 -4
  455. package/dist/es6/radio/index.d.ts.map +1 -1
  456. package/dist/es6/radio/index.js +0 -4
  457. package/dist/es6/radio/lib/Radio.d.ts +1 -1
  458. package/dist/es6/radio/lib/Radio.d.ts.map +1 -1
  459. package/dist/es6/radio/lib/Radio.js +75 -28
  460. package/dist/es6/radio/lib/RadioGroup.d.ts +1 -1
  461. package/dist/es6/radio/lib/RadioGroup.d.ts.map +1 -1
  462. package/dist/es6/radio/lib/RadioGroup.js +7 -3
  463. package/dist/es6/segmented-control/index.d.ts +0 -3
  464. package/dist/es6/segmented-control/index.d.ts.map +1 -1
  465. package/dist/es6/segmented-control/index.js +0 -3
  466. package/dist/es6/segmented-control/lib/SegmentedControl.d.ts +0 -1
  467. package/dist/es6/segmented-control/lib/SegmentedControl.d.ts.map +1 -1
  468. package/dist/es6/segmented-control/lib/SegmentedControl.js +0 -1
  469. package/dist/es6/select/index.d.ts +0 -4
  470. package/dist/es6/select/index.d.ts.map +1 -1
  471. package/dist/es6/select/index.js +0 -4
  472. package/dist/es6/select/lib/Select.d.ts +1 -2
  473. package/dist/es6/select/lib/Select.d.ts.map +1 -1
  474. package/dist/es6/select/lib/Select.js +0 -1
  475. package/dist/es6/select/lib/SelectOption.d.ts +1 -1
  476. package/dist/es6/select/lib/SelectOption.d.ts.map +1 -1
  477. package/dist/es6/select/lib/SelectOption.js +1 -1
  478. package/dist/es6/side-panel/index.d.ts +0 -3
  479. package/dist/es6/side-panel/index.d.ts.map +1 -1
  480. package/dist/es6/side-panel/index.js +0 -3
  481. package/dist/es6/side-panel/lib/SidePanel.d.ts +1 -1
  482. package/dist/es6/side-panel/lib/SidePanel.d.ts.map +1 -1
  483. package/dist/es6/side-panel/lib/SidePanel.js +1 -1
  484. package/dist/es6/status-indicator/index.d.ts +0 -3
  485. package/dist/es6/status-indicator/index.d.ts.map +1 -1
  486. package/dist/es6/status-indicator/index.js +0 -3
  487. package/dist/es6/status-indicator/lib/StatusIndicator.d.ts +1 -1
  488. package/dist/es6/status-indicator/lib/StatusIndicator.d.ts.map +1 -1
  489. package/dist/es6/status-indicator/lib/StatusIndicator.js +1 -1
  490. package/dist/es6/switch/index.d.ts +0 -3
  491. package/dist/es6/switch/index.d.ts.map +1 -1
  492. package/dist/es6/switch/index.js +0 -3
  493. package/dist/es6/switch/lib/Switch.d.ts +0 -1
  494. package/dist/es6/switch/lib/Switch.d.ts.map +1 -1
  495. package/dist/es6/switch/lib/Switch.js +0 -1
  496. package/dist/es6/table/index.d.ts +0 -4
  497. package/dist/es6/table/index.d.ts.map +1 -1
  498. package/dist/es6/table/index.js +0 -4
  499. package/dist/es6/table/lib/Table.d.ts +1 -1
  500. package/dist/es6/table/lib/Table.d.ts.map +1 -1
  501. package/dist/es6/table/lib/Table.js +1 -1
  502. package/dist/es6/table/lib/TableRow.d.ts +3 -4
  503. package/dist/es6/table/lib/TableRow.d.ts.map +1 -1
  504. package/dist/es6/table/lib/TableRow.js +12 -27
  505. package/dist/es6/tabs/lib/Tabs.d.ts +6 -5
  506. package/dist/es6/tabs/lib/Tabs.d.ts.map +1 -1
  507. package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  508. package/dist/es6/tabs/lib/TabsItem.d.ts.map +1 -1
  509. package/dist/es6/tabs/lib/TabsItem.js +5 -4
  510. package/dist/es6/tabs/lib/TabsList.d.ts +2 -2
  511. package/dist/es6/tabs/lib/TabsList.d.ts.map +1 -1
  512. package/dist/es6/tabs/lib/TabsList.js +18 -3
  513. package/dist/es6/tabs/lib/TabsPanel.d.ts +2 -2
  514. package/dist/es6/tabs/lib/TabsPanel.d.ts.map +1 -1
  515. package/dist/es6/tabs/lib/TabsPanels.d.ts +2 -2
  516. package/dist/es6/tabs/lib/TabsPanels.d.ts.map +1 -1
  517. package/dist/es6/tabs/lib/useTabsModel.d.ts +55 -159
  518. package/dist/es6/tabs/lib/useTabsModel.d.ts.map +1 -1
  519. package/dist/es6/tabs/lib/useTabsModel.js +3 -1
  520. package/dist/es6/text-area/index.d.ts +0 -3
  521. package/dist/es6/text-area/index.d.ts.map +1 -1
  522. package/dist/es6/text-area/index.js +0 -3
  523. package/dist/es6/text-area/lib/TextArea.d.ts +0 -1
  524. package/dist/es6/text-area/lib/TextArea.d.ts.map +1 -1
  525. package/dist/es6/text-area/lib/TextArea.js +0 -1
  526. package/dist/es6/text-input/index.d.ts +0 -4
  527. package/dist/es6/text-input/index.d.ts.map +1 -1
  528. package/dist/es6/text-input/index.js +0 -4
  529. package/dist/es6/text-input/lib/InputIconContainer.d.ts +1 -2
  530. package/dist/es6/text-input/lib/InputIconContainer.d.ts.map +1 -1
  531. package/dist/es6/text-input/lib/InputIconContainer.js +1 -2
  532. package/dist/es6/text-input/lib/TextInput.d.ts +0 -1
  533. package/dist/es6/text-input/lib/TextInput.d.ts.map +1 -1
  534. package/dist/es6/text-input/lib/TextInput.js +0 -1
  535. package/dist/es6/toast/index.d.ts +0 -3
  536. package/dist/es6/toast/index.d.ts.map +1 -1
  537. package/dist/es6/toast/index.js +0 -3
  538. package/dist/es6/tokens/index.d.ts +1 -2
  539. package/dist/es6/tokens/index.d.ts.map +1 -1
  540. package/dist/es6/tokens/index.js +1 -2
  541. package/dist/es6/tokens/lib/radius.d.ts +1 -1
  542. package/dist/es6/tokens/lib/radius.d.ts.map +1 -1
  543. package/dist/es6/tokens/lib/radius.js +0 -1
  544. package/dist/es6/tooltip/index.d.ts +0 -2
  545. package/dist/es6/tooltip/index.d.ts.map +1 -1
  546. package/dist/es6/tooltip/index.js +0 -2
  547. package/dist/es6/tooltip/lib/TooltipContainer.d.ts +1 -1
  548. package/form-field/index.ts +0 -5
  549. package/form-field/lib/FormField.tsx +4 -4
  550. package/form-field/lib/Hint.tsx +1 -1
  551. package/form-field/lib/Label.tsx +3 -4
  552. package/form-field/package.json +2 -1
  553. package/icon/index.ts +0 -9
  554. package/icon/lib/AccentIcon.tsx +2 -4
  555. package/icon/lib/AppletIcon.tsx +1 -3
  556. package/icon/lib/Graphic.tsx +2 -4
  557. package/icon/lib/Icon.tsx +1 -3
  558. package/icon/lib/Svg.tsx +0 -2
  559. package/icon/lib/SystemIcon.tsx +2 -4
  560. package/icon/lib/SystemIconCircle.tsx +2 -4
  561. package/icon/package.json +2 -1
  562. package/layout/index.ts +2 -2
  563. package/layout/lib/Column.tsx +1 -1
  564. package/layout/lib/Layout.tsx +3 -5
  565. package/layout/lib/utils/border.ts +8 -8
  566. package/layout/lib/utils/flex.ts +7 -14
  567. package/layout/lib/utils/flexItem.ts +4 -4
  568. package/layout/lib/utils/layout.ts +7 -14
  569. package/layout/lib/utils/position.ts +3 -3
  570. package/layout/package.json +2 -1
  571. package/loading-animation/index.ts +2 -4
  572. package/loading-animation/lib/LoadingDots.tsx +2 -2
  573. package/loading-animation/package.json +2 -1
  574. package/menu/lib/MenuList.tsx +3 -2
  575. package/menu/package.json +2 -1
  576. package/modal/lib/ModalOverlay.tsx +2 -4
  577. package/modal/package.json +2 -1
  578. package/package.json +10 -9
  579. package/pagination/lib/Pagination/AdditionalDetails.tsx +1 -1
  580. package/pagination/lib/Pagination/GoTo/Label.tsx +2 -1
  581. package/pagination/lib/Pagination/PageButton.tsx +13 -7
  582. package/pagination/lib/Pagination/PageList.tsx +1 -1
  583. package/pagination/lib/Pagination/common/useLiveRegion.tsx +0 -2
  584. package/pagination/package.json +2 -1
  585. package/popup/lib/hooks/useCloseOnFullscreenExit.ts +1 -1
  586. package/popup/lib/hooks/useDisableBodyScroll.ts +2 -0
  587. package/popup/lib/hooks/usePopupTarget.ts +1 -1
  588. package/popup/lib/hooks/useTransferOnFullscreenEnter.ts +1 -1
  589. package/popup/lib/hooks/useTransferOnFullscreenExit.ts +1 -1
  590. package/popup/package.json +2 -1
  591. package/radio/index.ts +0 -5
  592. package/radio/lib/Radio.tsx +100 -32
  593. package/radio/lib/RadioGroup.tsx +7 -3
  594. package/radio/package.json +2 -1
  595. package/segmented-control/index.ts +0 -4
  596. package/segmented-control/lib/SegmentedControl.tsx +0 -2
  597. package/segmented-control/package.json +2 -1
  598. package/select/index.ts +0 -5
  599. package/select/lib/Select.tsx +1 -3
  600. package/select/lib/SelectOption.tsx +1 -1
  601. package/select/package.json +2 -1
  602. package/side-panel/README.md +1 -1
  603. package/side-panel/index.ts +0 -4
  604. package/side-panel/lib/SidePanel.tsx +1 -1
  605. package/side-panel/package.json +2 -1
  606. package/skeleton/package.json +2 -1
  607. package/status-indicator/index.ts +0 -4
  608. package/status-indicator/lib/StatusIndicator.tsx +1 -1
  609. package/status-indicator/package.json +2 -1
  610. package/switch/index.ts +0 -4
  611. package/switch/lib/Switch.tsx +0 -2
  612. package/switch/package.json +2 -1
  613. package/table/index.ts +0 -5
  614. package/table/lib/Table.tsx +1 -1
  615. package/table/lib/TableRow.tsx +16 -11
  616. package/table/package.json +2 -1
  617. package/tabs/lib/TabsItem.tsx +4 -3
  618. package/tabs/lib/TabsList.tsx +25 -5
  619. package/tabs/lib/TabsPanel.tsx +1 -1
  620. package/tabs/lib/TabsPanels.tsx +1 -1
  621. package/tabs/lib/useTabsModel.tsx +3 -1
  622. package/tabs/package.json +2 -1
  623. package/text-area/index.ts +0 -4
  624. package/text-area/lib/TextArea.tsx +0 -2
  625. package/text-area/package.json +2 -1
  626. package/text-input/index.ts +0 -4
  627. package/text-input/lib/InputIconContainer.tsx +3 -7
  628. package/text-input/lib/TextInput.tsx +0 -2
  629. package/text-input/package.json +2 -1
  630. package/toast/index.ts +0 -4
  631. package/toast/package.json +2 -1
  632. package/tokens/index.ts +1 -2
  633. package/tokens/lib/radius.ts +0 -2
  634. package/tokens/package.json +2 -1
  635. package/tooltip/index.ts +0 -3
  636. package/tooltip/package.json +2 -1
  637. package/dist/commonjs/layout/lib/utils/types.d.ts +0 -20
  638. package/dist/commonjs/layout/lib/utils/types.d.ts.map +0 -1
  639. package/dist/commonjs/layout/lib/utils/types.js +0 -2
  640. package/dist/es6/layout/lib/utils/types.d.ts +0 -20
  641. package/dist/es6/layout/lib/utils/types.d.ts.map +0 -1
  642. package/dist/es6/layout/lib/utils/types.js +0 -1
  643. package/layout/lib/utils/types.ts +0 -148
@@ -6,17 +6,40 @@ import {useBaseListModel, Item, defaultGetId as getId} from './useBaseListModel'
6
6
  type NavigationInput = Pick<ReturnType<typeof useCursorListModel>, 'state'>;
7
7
 
8
8
  export interface NavigationManager {
9
+ /** Get the first item in a collection. This will be called when the `Home` key is pressed for
10
+ * Lists and `Ctrl+Home` for Grids. */
9
11
  getFirst: NavigationRequestor;
12
+ /** Get the last item in a collection. This will be called when the `End` key is pressed for Lists
13
+ * and `Ctrl+End` for Grids. */
10
14
  getLast: NavigationRequestor;
15
+ /** Get an item with the provided `id`. */
11
16
  getItem: NavigationRequestor;
17
+ /** Get the next item after the provided `id`. This will be called when the `Right` arrow key is
18
+ * pressed for RTL languages and when the `Left` arrow is pressed for LTR languages. */
12
19
  getNext: NavigationRequestor;
20
+ /** **For Grids:** Get the cell in the next row from the provided `id`. This will be called when
21
+ * the `Down` arrow is pressed. */
13
22
  getNextRow: NavigationRequestor;
23
+ /** Get the previous item before the provided `id`. This will be called when the `Left` arrow key
24
+ * is pressed for RTL languages and when the `Right` arrow is pressed for LTR languages. */
14
25
  getPrevious: NavigationRequestor;
26
+ /** **For Grids:** Get the cell in the previous row from the provided `id`. This will be called
27
+ * when the `Up` arrow is pressed. */
15
28
  getPreviousRow: NavigationRequestor;
29
+ /** **For Grids:** Get the first item in a row. This will be called when the `Home` key is
30
+ * pressed. */
16
31
  getFirstOfRow: NavigationRequestor;
32
+ /** **For Grids:** Get the last item in a row. This will be called when the `End` key is
33
+ * pressed. */
17
34
  getLastOfRow: NavigationRequestor;
18
- getPreviousPage: NavigationRequestor;
35
+ /** Get the next "page". A "page" is application specific and usually means next visible screen.
36
+ * If the viewport is scrollable, it would scroll so that the last item visible is now the first
37
+ * item visible. This is called when the `PageDown` key is pressed */
19
38
  getNextPage: NavigationRequestor;
39
+ /** Get the next "page". A "page" is application specific and usually means previous visible
40
+ * screen. If the viewport is scrollable, it would scroll so that the first item visible is now
41
+ * the last item visible. This is called when the `PageUp` key is pressed */
42
+ getPreviousPage: NavigationRequestor;
20
43
  }
21
44
 
22
45
  /**
@@ -56,7 +79,7 @@ export const getLast: NavigationRequestor = (_, {state}) => state.items[state.it
56
79
  export const getFirstOfRow: NavigationRequestor = (id, {state}) => {
57
80
  if (state.columnCount) {
58
81
  const item = getItem(id, {state});
59
- const currentIndex = state.items.findIndex(i => getId(item) === getId(i));
82
+ const currentIndex = item.index;
60
83
  const offset = currentIndex % state.columnCount;
61
84
  return state.items[currentIndex - offset];
62
85
  }
@@ -69,9 +92,13 @@ export const getFirstOfRow: NavigationRequestor = (id, {state}) => {
69
92
  export const getLastOfRow: NavigationRequestor = (id, {state}) => {
70
93
  if (state.columnCount) {
71
94
  const item = getItem(id, {state});
72
- const currentIndex = state.items.findIndex(i => getId(item) === getId(i));
95
+ const currentIndex = item.index;
73
96
  const offset = (currentIndex % state.columnCount) - state.columnCount + 1;
74
- return state.items[currentIndex - offset];
97
+ let nextIndex = currentIndex - offset;
98
+ if (nextIndex >= state.items.length) {
99
+ nextIndex = state.items.length - 1;
100
+ }
101
+ return state.items[nextIndex];
75
102
  }
76
103
  return getLast(id, {state});
77
104
  };
@@ -83,7 +110,7 @@ export const getLastOfRow: NavigationRequestor = (id, {state}) => {
83
110
  export const getPreviousPage: NavigationRequestor = (id, {state}) => {
84
111
  if (state.columnCount) {
85
112
  const item = getItem(id, {state});
86
- const currentIndex = state.items.findIndex(i => getId(item) === getId(i));
113
+ const currentIndex = item.index;
87
114
  return state.items[currentIndex % state.columnCount];
88
115
  }
89
116
  return getFirst(id, {state});
@@ -96,7 +123,7 @@ export const getPreviousPage: NavigationRequestor = (id, {state}) => {
96
123
  export const getNextPage: NavigationRequestor = (id, {state}) => {
97
124
  if (state.columnCount) {
98
125
  const item = getItem(id, {state});
99
- const currentIndex = state.items.findIndex(i => getId(item) === getId(i));
126
+ const currentIndex = item.index;
100
127
  const lastRowIndex = state.items.length - state.columnCount;
101
128
  return state.items[lastRowIndex + (currentIndex % state.columnCount)];
102
129
  }
@@ -117,12 +144,38 @@ export const getWrappingOffsetItem = (offset: number) => (
117
144
  const items = state.items;
118
145
  const item = getItem(id, {state});
119
146
 
120
- const currentIndex = items.findIndex(i => getId(item) === getId(i));
147
+ const currentIndex = item.index;
121
148
  let nextIndex = currentIndex + offset;
149
+
150
+ // calculate idealLength as in if the grid was a perfect rectangle
151
+ const rows = Math.ceil(items.length / state.columnCount);
152
+ const idealLength = rows * state.columnCount;
122
153
  if (nextIndex < 0) {
123
- nextIndex = items.length + nextIndex;
154
+ if (offset === -1) {
155
+ // if the offset is -1, we want to wrap to the end
156
+ nextIndex = items.length - 1;
157
+ } else {
158
+ // if the offset is smaller than -1, we want to wrap by column
159
+ if (idealLength + nextIndex >= items.length) {
160
+ // we'll overflow the grid because there isn't enough items. Move `nextIndex` up so we wrap in
161
+ // the right spot
162
+ nextIndex -= state.columnCount;
163
+ }
164
+ nextIndex = idealLength + nextIndex;
165
+ }
124
166
  } else if (nextIndex >= items.length) {
125
- nextIndex = nextIndex - items.length;
167
+ if (offset === 1) {
168
+ // if the offset is 1, we want to wrap to the beginning
169
+ nextIndex = 0;
170
+ } else {
171
+ // if the offset is larger than 1, we want to wrap by column
172
+ if (nextIndex - idealLength < 0) {
173
+ // we're going to overflow the grid because there isn't enough items. Move `nextIndex` down to
174
+ // the missing item in the next row. This way we'll end up wrapping in the right spot
175
+ nextIndex += state.columnCount;
176
+ }
177
+ nextIndex = nextIndex - idealLength;
178
+ }
126
179
  }
127
180
 
128
181
  if (state.nonInteractiveIds.includes(getId(items[nextIndex])) && tries > 0) {
@@ -142,8 +195,9 @@ export const getOffsetItem = (offset: number) => (
142
195
  const {items, columnCount} = state;
143
196
  const item = getItem(id, {state});
144
197
 
145
- const currentIndex = items.findIndex(i => getId(item) === getId(i));
198
+ const currentIndex = item.index;
146
199
  let nextIndex = currentIndex + offset;
200
+
147
201
  if (Math.abs(offset) < columnCount) {
148
202
  // if we're here, the columnCount is non-zero and the absolute value of offset is less than the
149
203
  // column count. We don't want to wrap, so we'll bound within the row
@@ -157,10 +211,19 @@ export const getOffsetItem = (offset: number) => (
157
211
  // if we're here, there's a column count, but the offset will move into another row. We need to
158
212
  // bound to row values
159
213
  const nextRow = Math.floor(nextIndex / columnCount);
214
+
160
215
  if (nextRow < 0 || nextRow >= columnCount) {
161
216
  nextIndex = currentIndex;
162
217
  }
163
- } else if (nextIndex < 0) {
218
+
219
+ // make sure we don't go out of bounds if the grid isn't a perfect rectangle
220
+ if (nextIndex > items.length - 1) {
221
+ nextIndex = currentIndex;
222
+ }
223
+ }
224
+
225
+ // make sure we're always in bounds
226
+ if (nextIndex < 0) {
164
227
  nextIndex = 0;
165
228
  } else if (nextIndex >= items.length) {
166
229
  nextIndex = items.length - 1;
@@ -176,30 +239,36 @@ export const getOffsetItem = (offset: number) => (
176
239
  };
177
240
 
178
241
  /**
179
- * The default navigation manager of lists
242
+ * The default navigation manager of lists. This navigation manager will wrap around when the edge
243
+ * is hit. For example, if the user is the the right-most item in a list or right-most item in a
244
+ * row, the cursor will wrap around to the beginning or the next row.
180
245
  */
181
246
  export const wrappingNavigationManager = createNavigationManager({
182
247
  getFirst,
183
248
  getLast,
184
249
  getItem,
185
250
  getNext: getWrappingOffsetItem(1),
186
- getNextRow: (id, {state}) => getWrappingOffsetItem(-state.columnCount)(id, {state}),
251
+ getNextRow: (id, {state}) => getWrappingOffsetItem(state.columnCount)(id, {state}),
187
252
  getPrevious: getWrappingOffsetItem(-1),
188
- getPreviousRow: (id, {state}) => getWrappingOffsetItem(state.columnCount)(id, {state}),
253
+ getPreviousRow: (id, {state}) => getWrappingOffsetItem(-state.columnCount)(id, {state}),
189
254
  getPreviousPage,
190
255
  getNextPage,
191
256
  getFirstOfRow,
192
257
  getLastOfRow,
193
258
  });
194
259
 
260
+ /**
261
+ * The default navigation of grids. This navigation manager will not wrap, but will stop when an
262
+ * edge is detected. This could be the last item in a list or the last item of a row in a grid.
263
+ */
195
264
  export const navigationManager = createNavigationManager({
196
265
  getFirst,
197
266
  getLast,
198
267
  getItem,
199
268
  getNext: getOffsetItem(1),
200
- getNextRow: (id, {state}) => getOffsetItem(-state.columnCount)(id, {state}),
269
+ getNextRow: (id, {state}) => getOffsetItem(state.columnCount)(id, {state}),
201
270
  getPrevious: getOffsetItem(-1),
202
- getPreviousRow: (id, {state}) => getOffsetItem(state.columnCount)(id, {state}),
271
+ getPreviousRow: (id, {state}) => getOffsetItem(-state.columnCount)(id, {state}),
203
272
  getPreviousPage,
204
273
  getNextPage,
205
274
  getFirstOfRow,
@@ -229,9 +298,7 @@ export const useCursorListModel = createModelHook({
229
298
  * (left-to-right or right-to-left) and call the correct navigation method. In our example, a
230
299
  * left-to-right language would send a `getNext`. The navigation manager may return the next item
231
300
  * in the list. Different managers can be created for slightly different use cases. The default
232
- * navigation manager will accept `orientation` and directionality to determine mapping. If
233
- * `columnCount` is non-zero, it will use a grid mode where `orientation` is ignored and only
234
- * directionality matters.
301
+ * navigation manager will accept `orientation` and directionality to determine mapping.
235
302
  *
236
303
  * An example override might be a tab list with an overflow menu that is meant to be transparent
237
304
  * to screen reader users. This would require the overflow menu to accept both up/down keys as
@@ -247,6 +314,7 @@ export const useCursorListModel = createModelHook({
247
314
  const initialCurrentRef = React.useRef(
248
315
  config.initialCursorId || (config.items?.length ? getId(config.items![0]) : '')
249
316
  );
317
+ const navigation = config.navigation;
250
318
 
251
319
  const state = {
252
320
  ...list.state,
@@ -255,10 +323,10 @@ export const useCursorListModel = createModelHook({
255
323
  /**
256
324
  * Any positive non-zero value treats the list like a grid with rows and columns
257
325
  * @default 0
326
+ * @private Use useGridModel instead to make a grid instead of a list
258
327
  */
259
328
  columnCount,
260
329
  };
261
- const navigation = config.navigation || wrappingNavigationManager;
262
330
 
263
331
  const events = {
264
332
  ...list.events,
@@ -0,0 +1,34 @@
1
+ import {createModelHook} from '@workday/canvas-kit-react/common';
2
+ import {navigationManager} from './useCursorListModel';
3
+ import {useListModel} from './useListModel';
4
+
5
+ const {columnCount, orientation, ...defaultConfig} = useListModel.defaultConfig;
6
+
7
+ export const useGridModel = createModelHook({
8
+ defaultConfig: {
9
+ ...defaultConfig,
10
+ /**
11
+ * Controls the state changes when the user sends navigation events to the model. For example,
12
+ * when the user hits the "right" arrow, a behavior hook will determine directionality
13
+ * (left-to-right or right-to-left) and call the correct navigation method. In our example, a
14
+ * left-to-right language would send a `getNext`. The navigation manager may return the next
15
+ * item in the list. Different managers can be created for slightly different use cases. The
16
+ * default navigation manager will stop when the end of a row/column is detected. For example,
17
+ * `getNext` will return the same item the cursor was previously on if the cursor is on the last
18
+ * item of a row.
19
+ */
20
+ navigation: navigationManager,
21
+ },
22
+ requiredConfig: {
23
+ /**
24
+ * The number of columns represented in a grid
25
+ */
26
+ columnCount: 1,
27
+ ...useListModel.requiredConfig,
28
+ },
29
+ contextOverride: useListModel.Context,
30
+ })(config => {
31
+ const list = useListModel(config);
32
+
33
+ return list;
34
+ });
@@ -103,10 +103,12 @@ export const useListItemRovingFocus = createElemPropsHook(useCursorListModel)(
103
103
  if (event.ctrlKey) {
104
104
  for (const key in ctrlKeyMap) {
105
105
  if (hasOwnKey(ctrlKeyMap, key)) {
106
- keyDownRef.current = true;
107
- events[ctrlKeyMap[key]]?.();
108
- event.preventDefault();
109
- return;
106
+ if (event.key === key) {
107
+ keyDownRef.current = true;
108
+ events[ctrlKeyMap[key]]?.();
109
+ event.preventDefault();
110
+ return;
111
+ }
110
112
  }
111
113
  }
112
114
  }
@@ -7,26 +7,36 @@ import {useBaseListModel} from './useBaseListModel';
7
7
  export function useListRenderItems<T>(
8
8
  model: ReturnType<typeof useBaseListModel>,
9
9
  children: ((item: Generic, index: number) => React.ReactNode) | React.ReactNode
10
- ) {
10
+ ): React.ReactNode {
11
11
  const items =
12
12
  typeof children === 'function'
13
13
  ? model.state.isVirtualized
14
14
  ? model.state.UNSTABLE_virtual.virtualItems.map(virtual => {
15
15
  const item = model.state.items[virtual.index];
16
16
  const child = children(item.value, virtual.index);
17
- return React.cloneElement(child, {
18
- // We call this `virtual` instead of `virtualItem` to avoid a React render warning
19
- // about capital letters in attributes. React thinks this will be applied to the DOM
20
- // element even though we remove it later...
21
- virtual,
22
- key: item.id,
23
- item,
24
- });
17
+ if (React.isValidElement(child)) {
18
+ return React.cloneElement(child, {
19
+ // We call this `virtual` instead of `virtualItem` to avoid a React render warning
20
+ // about capital letters in attributes. React thinks this will be applied to the DOM
21
+ // element even though we remove it later...
22
+ virtual,
23
+ key: item.id,
24
+ item,
25
+ });
26
+ }
27
+ return child;
25
28
  })
26
- : model.state.items.map(item =>
27
- React.cloneElement(children(item.value, item.index), {key: item.id, item: item.value})
28
- )
29
- : null;
29
+ : model.state.items.map(item => {
30
+ const child = children(item.value, item.index);
31
+ if (React.isValidElement(child)) {
32
+ return React.cloneElement(child, {
33
+ key: item.id,
34
+ item: item.value,
35
+ });
36
+ }
37
+ return child;
38
+ })
39
+ : children;
30
40
 
31
- return items || children;
41
+ return items;
32
42
  }
@@ -55,10 +55,17 @@ export const useOverflowListModel = createModelHook({
55
55
  ...useSelectionListModel.defaultConfig,
56
56
  initialHiddenIds: [] as string[],
57
57
  containerWidth: 0,
58
+ /**
59
+ * Determines if overflow should actually occur. For example, touch devices are better at
60
+ * side-scrolling than mouse devices. In these cases, it makes sense to disable overflowing.
61
+ * @default true
62
+ */ shouldCalculateOverflow: true,
58
63
  },
59
64
  requiredConfig: useSelectionListModel.requiredConfig,
60
65
  contextOverride: useSelectionListModel.Context,
61
66
  })(config => {
67
+ const shouldCalculateOverflow =
68
+ config.shouldCalculateOverflow === undefined ? true : config.shouldCalculateOverflow;
62
69
  const [hiddenIds, setHiddenIds] = React.useState(config.initialHiddenIds);
63
70
  const [itemWidthCache, setItemWidthCache] = React.useState<Record<string, number>>({});
64
71
  const [containerWidth, setContainerWidth] = React.useState(0);
@@ -67,9 +74,11 @@ export const useOverflowListModel = createModelHook({
67
74
  const [overflowTargetWidth, setOverflowTargetWidth] = React.useState(0);
68
75
  const overflowTargetWidthRef = React.useRef(0);
69
76
 
77
+ const internalHiddenIds = shouldCalculateOverflow ? hiddenIds : [];
78
+
70
79
  // Cursors skip over disabled ids, but know nothing of hidden ids. We'll go ahead and disable
71
80
  // hidden ids as well
72
- const nonInteractiveIds = (config.nonInteractiveIds || []).concat(hiddenIds);
81
+ const nonInteractiveIds = (config.nonInteractiveIds || []).concat(internalHiddenIds);
73
82
 
74
83
  const model = useSelectionListModel({
75
84
  ...config,
@@ -78,7 +87,7 @@ export const useOverflowListModel = createModelHook({
78
87
 
79
88
  const state = {
80
89
  ...model.state,
81
- hiddenIds,
90
+ hiddenIds: internalHiddenIds,
82
91
  itemWidthCache,
83
92
  containerWidth,
84
93
  overflowTargetWidth,
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "main": "../dist/commonjs/collection",
3
3
  "module": "../dist/es6/collection",
4
- "sideEffects": false
4
+ "sideEffects": false,
5
+ "types": "../dist/es6/collection"
5
6
  }
@@ -1,7 +1,4 @@
1
- import ColorInput from './lib/ColorInput';
2
- import ColorPreview from './lib/ColorPreview';
3
1
 
4
- export {ColorInput, ColorPreview};
5
2
  export * from './lib/ColorInput';
6
3
  export * from './lib/ColorPreview';
7
4
  export * from './lib/parts/ColorSwatch';
@@ -184,5 +184,3 @@ export const ColorInput = createComponent('input')({
184
184
  );
185
185
  },
186
186
  });
187
-
188
- export default ColorInput;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import ColorInput from './ColorInput';
2
+ import {ColorInput} from './ColorInput';
3
3
  import {createComponent, StyledType} from '@workday/canvas-kit-react/common';
4
4
  import {TextInputProps} from '@workday/canvas-kit-react/text-input';
5
5
  import styled from '@emotion/styled';
@@ -36,5 +36,3 @@ export const ColorPreview = createComponent('input')({
36
36
  />
37
37
  ),
38
38
  });
39
-
40
- export default ColorPreview;
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "main": "../dist/commonjs/color-picker",
3
3
  "module": "../dist/es6/color-picker",
4
- "sideEffects": false
4
+ "sideEffects": false,
5
+ "types": "../dist/es6/color-picker"
5
6
  }
@@ -117,7 +117,7 @@ const supportsPassive = () => {
117
117
  /**
118
118
  * This component takes heavy inspiration from what-input (https://github.com/ten1seven/what-input)
119
119
  */
120
- export class InputProvider extends React.Component<InputProviderProps> {
120
+ export class InputProvider extends React.Component<React.PropsWithChildren<InputProviderProps>> {
121
121
  private eventTimer: number | undefined;
122
122
 
123
123
  private currentInput: InputType;
@@ -1,4 +1,4 @@
1
- const CDN_URI = '//design.workday.com/images/';
1
+ const CDN_URI = 'https://design.workday.com/images/';
2
2
 
3
3
  export const dubLogoBlue = `<img src="${CDN_URI}ck-dub-logo-blue.svg" alt="">`;
4
4
 
@@ -1,5 +1,5 @@
1
1
  import {keyframes, Theme, CSSObject} from '@emotion/react';
2
- import canvas from '@workday/canvas-kit-react/tokens';
2
+ import {canvas} from '@workday/canvas-kit-react/tokens';
3
3
  import {defaultCanvasTheme} from '../theming/index';
4
4
  import memoize from 'lodash/memoize';
5
5
 
@@ -29,8 +29,8 @@ export const convertToStaticStates = (obj?: CSSProperties): CSSProperties | unde
29
29
  }, {});
30
30
  };
31
31
 
32
- export const StaticStates: React.FC<{theme?: PartialEmotionCanvasTheme} & React.HTMLAttributes<
33
- HTMLElement
32
+ export const StaticStates: React.FC<React.PropsWithChildren<
33
+ {theme?: PartialEmotionCanvasTheme} & React.HTMLAttributes<HTMLElement>
34
34
  >> = ({children, theme, ...elemProps}) => {
35
35
  const localTheme: EmotionCanvasTheme & {_staticStates?: boolean} = useTheme(theme);
36
36
  localTheme._staticStates = true;
@@ -212,7 +212,7 @@ interface RefForwardingComponent<T, P = {}> {
212
212
  * `never`
213
213
  */
214
214
  Element: T extends undefined ? never : T
215
- ): React.ReactElement | null;
215
+ ): JSX.Element | null;
216
216
  }
217
217
 
218
218
  function defaultGetElemProps(input: any) {
@@ -256,7 +256,7 @@ export const createContainer = <
256
256
  props: Props & RemoveNull<ReturnType<TElemPropsHook>> & {ref: ExtractRef<E>},
257
257
  Element: E extends undefined ? never : E,
258
258
  model: TModelHook extends (config: infer TConfig) => infer TModel ? TModel : never
259
- ) => React.ReactElement | null
259
+ ) => JSX.Element | null
260
260
  ): (TModelHook extends (config: infer TConfig) => infer TModel
261
261
  ? E extends undefined
262
262
  ? ComponentM<Props & TConfig, TModel>
@@ -356,7 +356,7 @@ export const createSubcomponent = <
356
356
  }),
357
357
  Element: E extends undefined ? never : E,
358
358
  model: TModelHook extends (...args: any[]) => infer TModel ? TModel : never
359
- ) => React.ReactElement | null
359
+ ) => JSX.Element | null
360
360
  ): (TModelHook extends (...args: any[]) => infer TModel
361
361
  ? ElementComponentM<
362
362
  // E is not `undefined` here, but Typescript thinks it could be, so we add another `undefined`
@@ -1,8 +1,12 @@
1
1
  /**
2
2
  * Is an element focusable? This function performs various tests to see if the element in question
3
- * can receive focus.
3
+ * can receive focus. Should skip disabled elements as they are not focusable.
4
4
  */
5
5
  export const isFocusable = (element: HTMLElement) => {
6
+ if (element.hasAttribute('disabled')) {
7
+ return null;
8
+ }
9
+
6
10
  const nodeName = element.nodeName.toLowerCase();
7
11
  const validInput = nodeName === 'input' && element.getAttribute('type') !== 'hidden';
8
12
  const validAnchor = nodeName === 'a' && element.hasAttribute('href');
@@ -12,6 +12,7 @@ export * from './models';
12
12
  export * from './elements';
13
13
  export * from './useConstant';
14
14
  export * from './useIsFullscreen';
15
+ export * from './useModalityType';
15
16
  export * from './useWindowSize';
16
17
  export * from './useResizeObserver';
17
18
  export * from './StaticStates';
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+
3
+ type Modality = 'mouse' | 'touch' | 'pen';
4
+
5
+ // Use this shared global value to reduce calls to localStorage which is a synchronous API to a
6
+ // drive which could be slow (spinning disks could be hundreds of ms). We read only once this way.
7
+ // The following initialization is very difficult to test via automation. Don't mess with it unless
8
+ // you plan to manually test.
9
+ //
10
+ // 1. Initialize modality to localStorage
11
+ // a. if localStorage isn't primed, use clientWidth of the browsers
12
+ // b. if < 768, default to 'touch'
13
+ // c. else default to 'mouse'
14
+ const localStorageValue = 'mouse' as Modality; //((typeof localStorage !== 'undefined'
15
+ // ? localStorage.getItem('modality')
16
+ // : '') ||
17
+ // (typeof document !== 'undefined'
18
+ // ? document.documentElement.clientWidth < 768
19
+ // ? 'touch'
20
+ // : ''
21
+ // : '') ||
22
+ // 'mouse') as Modality;
23
+
24
+ // Update the `localStorageValue`, but conditionally update localStorage only if the value has
25
+ // changed. This prevents too many calls to `localStorage` which can be costly on spinning disk
26
+ // drives
27
+ const updateLocalStorage = (value: Modality) => {
28
+ // if (localStorageValue !== value) {
29
+ // localStorage.setItem('modality', value);
30
+ // }
31
+ // localStorageValue = value;
32
+ };
33
+
34
+ /**
35
+ * Uses heuristics to determine if the user is on a touch device, uses a pen, or a mouse. This hook
36
+ * is useful if you have styles or behaviors that depend on the user's interaction type. For
37
+ * example, touch users can scroll horizontally easier than mouse users, so horizontal overflow
38
+ * might be more desired than overflow menus on touch devices. For devices that support multiple
39
+ * input types, the last used input type is saved. For these devices, consider the possibility this
40
+ * value could change after your component is rendered, so make sure you component rerenders
41
+ * properly in this case.
42
+ *
43
+ * Uses `PointerEvent.pointerType` to determine last used input.
44
+ *
45
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType
46
+ */
47
+ export const useModalityType = (): Modality => {
48
+ const [modality, setModality] = React.useState(localStorageValue);
49
+
50
+ React.useEffect(() => {
51
+ const handlePointerDown = (event: PointerEvent) => {
52
+ const value = event.pointerType as Modality;
53
+ setModality(value);
54
+ updateLocalStorage(value);
55
+ };
56
+
57
+ document.addEventListener('pointerdown', handlePointerDown);
58
+
59
+ return () => {
60
+ document.removeEventListener('pointerdown', handlePointerDown);
61
+ };
62
+ }, []);
63
+
64
+ return modality;
65
+ };
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "main": "../dist/commonjs/common",
3
3
  "module": "../dist/es6/common",
4
- "sideEffects": false
4
+ "sideEffects": false,
5
+ "types": "../dist/es6/common"
5
6
  }
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "main": "../dist/commonjs/dialog",
3
3
  "module": "../dist/es6/dialog",
4
- "sideEffects": false
4
+ "sideEffects": false,
5
+ "types": "../dist/es6/dialog"
5
6
  }
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "main": "../dist/commonjs/disclosure",
3
3
  "module": "../dist/es6/disclosure",
4
- "sideEffects": false
4
+ "sideEffects": false,
5
+ "types": "../dist/es6/disclosure"
5
6
  }
@@ -30,6 +30,7 @@ export declare const ActionBar: import("../../common").ComponentM<ActionBarProps
30
30
  }>;
31
31
  initialHiddenIds: string[];
32
32
  containerWidth: number;
33
+ shouldCalculateOverflow: boolean;
33
34
  initialSelectedIds: import("../../collection/lib/useSelectionListModel").SelectedIds;
34
35
  initialUnselectedIds: string[];
35
36
  selection: import("../../collection/lib/useSelectionListModel").SelectionManager;
@@ -1389,7 +1390,7 @@ export declare const ActionBar: import("../../common").ComponentM<ActionBarProps
1389
1390
  navigation: import("../../collection/lib/useCursorListModel").NavigationManager;
1390
1391
  getId: (item: any) => string;
1391
1392
  }> & {
1392
- List: import("../../common").ElementComponentM<"div", import("./ActionBarList").ActionBarListProps<unknown>, {
1393
+ List: import("../../common").ElementComponentM<"div", import("./ActionBarList").ActionBarListProps<any>, {
1393
1394
  state: {
1394
1395
  hiddenIds: string[];
1395
1396
  nonInteractiveIds: string[];
@@ -1682,10 +1683,7 @@ export declare const ActionBar: import("../../common").ComponentM<ActionBarProps
1682
1683
  selection: import("../../collection/lib/useSelectionListModel").SelectionManager;
1683
1684
  navigation: import("../../collection/lib/useCursorListModel").NavigationManager;
1684
1685
  getId: (item: any) => string;
1685
- }> & {
1686
- Icon: import("../../common").ElementComponent<"span", import("../..").SystemIconProps>;
1687
- Text: import("../../common").ElementComponent<"span", {}>;
1688
- };
1686
+ }>;
1689
1687
  OverflowButton: import("../../common").ElementComponentM<"button", {}, {
1690
1688
  state: {
1691
1689
  hiddenIds: string[];
@@ -3148,7 +3146,7 @@ export declare const ActionBar: import("../../common").ComponentM<ActionBarProps
3148
3146
  navigation: import("../../collection/lib/useCursorListModel").NavigationManager;
3149
3147
  getId: (item: any) => string;
3150
3148
  }>;
3151
- List: import("../../common").ElementComponentM<"div", import("../../menu/lib/MenuList").MenuListProps, {
3149
+ List: import("../../common").ElementComponentM<"div", import("../../menu/lib/MenuList").MenuListProps<any>, {
3152
3150
  state: {
3153
3151
  stackRef: React.RefObject<HTMLDivElement>;
3154
3152
  targetRef: React.RefObject<HTMLButtonElement>;