@wordpress/components 23.3.2 → 23.4.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 (710) hide show
  1. package/CHANGELOG.md +20 -5
  2. package/build/alignment-matrix-control/utils.js +4 -4
  3. package/build/alignment-matrix-control/utils.js.map +1 -1
  4. package/build/angle-picker-control/angle-circle.js +37 -29
  5. package/build/angle-picker-control/angle-circle.js.map +1 -1
  6. package/build/angle-picker-control/index.js +44 -9
  7. package/build/angle-picker-control/index.js.map +1 -1
  8. package/build/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
  9. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  10. package/build/{base-field → angle-picker-control}/types.js +0 -0
  11. package/build/angle-picker-control/types.js.map +1 -0
  12. package/build/autocomplete/autocompleter-ui.native.js +1 -0
  13. package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
  14. package/build/base-control/hooks.js +1 -1
  15. package/build/base-control/hooks.js.map +1 -1
  16. package/build/border-box-control/utils.js +1 -1
  17. package/build/border-box-control/utils.js.map +1 -1
  18. package/build/box-control/all-input-control.js +2 -2
  19. package/build/box-control/all-input-control.js.map +1 -1
  20. package/build/box-control/axial-input-controls.js +1 -1
  21. package/build/box-control/axial-input-controls.js.map +1 -1
  22. package/build/box-control/icon.js.map +1 -1
  23. package/build/box-control/index.js +32 -3
  24. package/build/box-control/index.js.map +1 -1
  25. package/build/box-control/input-controls.js +5 -5
  26. package/build/box-control/input-controls.js.map +1 -1
  27. package/build/box-control/linked-button.js.map +1 -1
  28. package/build/box-control/styles/box-control-icon-styles.js +28 -28
  29. package/build/box-control/styles/box-control-icon-styles.js.map +1 -1
  30. package/build/box-control/styles/box-control-styles.js +23 -23
  31. package/build/box-control/styles/box-control-styles.js.map +1 -1
  32. package/build/box-control/styles/box-control-visualizer-styles.js +19 -19
  33. package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  34. package/build/box-control/types.js +6 -0
  35. package/build/box-control/types.js.map +1 -0
  36. package/build/box-control/unit-control.js.map +1 -1
  37. package/build/box-control/utils.js +23 -23
  38. package/build/box-control/utils.js.map +1 -1
  39. package/build/color-palette/index.js +8 -3
  40. package/build/color-palette/index.js.map +1 -1
  41. package/build/combobox-control/index.js +68 -12
  42. package/build/combobox-control/index.js.map +1 -1
  43. package/build/combobox-control/styles.js +2 -2
  44. package/build/combobox-control/styles.js.map +1 -1
  45. package/build/combobox-control/types.js +6 -0
  46. package/build/combobox-control/types.js.map +1 -0
  47. package/build/custom-gradient-picker/index.js +0 -1
  48. package/build/custom-gradient-picker/index.js.map +1 -1
  49. package/build/date-time/time/index.js +1 -1
  50. package/build/date-time/time/index.js.map +1 -1
  51. package/build/date-time/utils.js +1 -1
  52. package/build/date-time/utils.js.map +1 -1
  53. package/build/draggable/index.js +2 -2
  54. package/build/draggable/index.js.map +1 -1
  55. package/build/focal-point-picker/utils.js +3 -3
  56. package/build/focal-point-picker/utils.js.map +1 -1
  57. package/build/font-size-picker/utils.js +2 -2
  58. package/build/font-size-picker/utils.js.map +1 -1
  59. package/build/gradient-picker/index.js +9 -4
  60. package/build/gradient-picker/index.js.map +1 -1
  61. package/build/input-control/reducer/reducer.js +5 -5
  62. package/build/input-control/reducer/reducer.js.map +1 -1
  63. package/build/input-control/utils.js +1 -1
  64. package/build/input-control/utils.js.map +1 -1
  65. package/build/menu-items-choice/index.js +40 -3
  66. package/build/menu-items-choice/index.js.map +1 -1
  67. package/build/menu-items-choice/types.js +6 -0
  68. package/build/menu-items-choice/types.js.map +1 -0
  69. package/build/modal/index.js +41 -3
  70. package/build/modal/index.js.map +1 -1
  71. package/build/palette-edit/index.js +4 -1
  72. package/build/palette-edit/index.js.map +1 -1
  73. package/build/panel/header.js +9 -0
  74. package/build/panel/header.js.map +1 -1
  75. package/build/panel/index.js +21 -3
  76. package/build/panel/index.js.map +1 -1
  77. package/build/panel/row.js +10 -4
  78. package/build/panel/row.js.map +1 -1
  79. package/build/panel/types.js +6 -0
  80. package/build/panel/types.js.map +1 -0
  81. package/build/popover/index.js +15 -3
  82. package/build/popover/index.js.map +1 -1
  83. package/build/popover/overlay-middlewares.js +46 -0
  84. package/build/popover/overlay-middlewares.js.map +1 -0
  85. package/build/popover/utils.js +45 -6
  86. package/build/popover/utils.js.map +1 -1
  87. package/build/query-controls/terms.js +1 -1
  88. package/build/query-controls/terms.js.map +1 -1
  89. package/build/range-control/utils.js +4 -4
  90. package/build/range-control/utils.js.map +1 -1
  91. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
  92. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  93. package/build/resizable-box/resize-tooltip/utils.js +14 -14
  94. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  95. package/build/snackbar/index.js +2 -2
  96. package/build/snackbar/index.js.map +1 -1
  97. package/build/toolbar/toolbar/index.js +25 -14
  98. package/build/toolbar/toolbar/index.js.map +1 -1
  99. package/build/toolbar/toolbar/toolbar-container.js +5 -4
  100. package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
  101. package/build/toolbar/toolbar/types.js +6 -0
  102. package/build/toolbar/toolbar/types.js.map +1 -0
  103. package/build/toolbar/toolbar-button/index.js +2 -0
  104. package/build/toolbar/toolbar-button/index.js.map +1 -1
  105. package/build/toolbar/toolbar-button/toolbar-button-container.js +1 -0
  106. package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  107. package/build/toolbar/toolbar-context/index.js +2 -0
  108. package/build/toolbar/toolbar-context/index.js.map +1 -1
  109. package/build/toolbar/toolbar-dropdown-menu/index.js +2 -0
  110. package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  111. package/build/toolbar/toolbar-group/index.js +2 -0
  112. package/build/toolbar/toolbar-group/index.js.map +1 -1
  113. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
  114. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  115. package/build/toolbar/toolbar-group/toolbar-group-container.js +1 -0
  116. package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  117. package/build/toolbar/toolbar-item/index.js +2 -0
  118. package/build/toolbar/toolbar-item/index.js.map +1 -1
  119. package/build/tools-panel/tools-panel/component.js +61 -5
  120. package/build/tools-panel/tools-panel/component.js.map +1 -1
  121. package/build/tools-panel/tools-panel/hook.js +4 -2
  122. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  123. package/build/tools-panel/tools-panel-header/component.js +2 -1
  124. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  125. package/build/tools-panel/tools-panel-header/hook.js +2 -0
  126. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  127. package/build/tools-panel/tools-panel-item/component.js +5 -4
  128. package/build/tools-panel/tools-panel-item/component.js.map +1 -1
  129. package/build/tools-panel/tools-panel-item/hook.js +4 -2
  130. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  131. package/build/tree-grid/cell.js +15 -4
  132. package/build/tree-grid/cell.js.map +1 -1
  133. package/build/tree-grid/index.js +81 -19
  134. package/build/tree-grid/index.js.map +1 -1
  135. package/build/tree-grid/item.js +14 -3
  136. package/build/tree-grid/item.js.map +1 -1
  137. package/build/tree-grid/roving-tab-index-context.js +1 -1
  138. package/build/tree-grid/roving-tab-index-context.js.map +1 -1
  139. package/build/tree-grid/roving-tab-index-item.js +13 -6
  140. package/build/tree-grid/roving-tab-index-item.js.map +1 -1
  141. package/build/tree-grid/roving-tab-index.js +0 -3
  142. package/build/tree-grid/roving-tab-index.js.map +1 -1
  143. package/build/tree-grid/row.js +20 -18
  144. package/build/tree-grid/row.js.map +1 -1
  145. package/build/tree-grid/types.js +6 -0
  146. package/build/tree-grid/types.js.map +1 -0
  147. package/build/ui/context/context-connect.js +7 -7
  148. package/build/ui/context/context-connect.js.map +1 -1
  149. package/build/ui/context/get-styled-class-name-from-key.js +1 -1
  150. package/build/ui/context/get-styled-class-name-from-key.js.map +1 -1
  151. package/build/ui/utils/get-valid-children.js +1 -1
  152. package/build/ui/utils/get-valid-children.js.map +1 -1
  153. package/build/ui/utils/space.js +1 -1
  154. package/build/ui/utils/space.js.map +1 -1
  155. package/build/unit-control/index.js +2 -2
  156. package/build/unit-control/index.js.map +1 -1
  157. package/build/unit-control/utils.js +20 -20
  158. package/build/unit-control/utils.js.map +1 -1
  159. package/build/utils/events.js +4 -4
  160. package/build/utils/events.js.map +1 -1
  161. package/build/utils/hooks/use-controlled-state.js +2 -2
  162. package/build/utils/hooks/use-controlled-state.js.map +1 -1
  163. package/build/utils/hooks/use-controlled-value.js +4 -4
  164. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  165. package/build/utils/hooks/use-latest-ref.js +1 -1
  166. package/build/utils/hooks/use-latest-ref.js.map +1 -1
  167. package/build/utils/unit-values.js +3 -3
  168. package/build/utils/unit-values.js.map +1 -1
  169. package/build-module/alignment-matrix-control/utils.js +4 -4
  170. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  171. package/build-module/angle-picker-control/angle-circle.js +37 -29
  172. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  173. package/build-module/angle-picker-control/index.js +42 -8
  174. package/build-module/angle-picker-control/index.js.map +1 -1
  175. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
  176. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  177. package/build-module/{base-field → angle-picker-control}/types.js +0 -0
  178. package/build-module/{base-field → angle-picker-control}/types.js.map +0 -0
  179. package/build-module/autocomplete/autocompleter-ui.native.js +1 -0
  180. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  181. package/build-module/base-control/hooks.js +1 -1
  182. package/build-module/base-control/hooks.js.map +1 -1
  183. package/build-module/border-box-control/utils.js +1 -1
  184. package/build-module/border-box-control/utils.js.map +1 -1
  185. package/build-module/box-control/all-input-control.js +2 -2
  186. package/build-module/box-control/all-input-control.js.map +1 -1
  187. package/build-module/box-control/axial-input-controls.js +1 -1
  188. package/build-module/box-control/axial-input-controls.js.map +1 -1
  189. package/build-module/box-control/icon.js.map +1 -1
  190. package/build-module/box-control/index.js +31 -3
  191. package/build-module/box-control/index.js.map +1 -1
  192. package/build-module/box-control/input-controls.js +5 -5
  193. package/build-module/box-control/input-controls.js.map +1 -1
  194. package/build-module/box-control/linked-button.js.map +1 -1
  195. package/build-module/box-control/styles/box-control-icon-styles.js +28 -28
  196. package/build-module/box-control/styles/box-control-icon-styles.js.map +1 -1
  197. package/build-module/box-control/styles/box-control-styles.js +23 -23
  198. package/build-module/box-control/styles/box-control-styles.js.map +1 -1
  199. package/build-module/box-control/styles/box-control-visualizer-styles.js +19 -19
  200. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  201. package/build-module/box-control/types.js +2 -0
  202. package/{build/base-field → build-module/box-control}/types.js.map +0 -0
  203. package/build-module/box-control/unit-control.js.map +1 -1
  204. package/build-module/box-control/utils.js +23 -23
  205. package/build-module/box-control/utils.js.map +1 -1
  206. package/build-module/color-palette/index.js +8 -3
  207. package/build-module/color-palette/index.js.map +1 -1
  208. package/build-module/combobox-control/index.js +68 -12
  209. package/build-module/combobox-control/index.js.map +1 -1
  210. package/build-module/combobox-control/styles.js +2 -2
  211. package/build-module/combobox-control/styles.js.map +1 -1
  212. package/build-module/combobox-control/types.js +2 -0
  213. package/build-module/{resizable-box/styles/resizable-box.styles.js.map → combobox-control/types.js.map} +0 -0
  214. package/build-module/custom-gradient-picker/index.js +0 -1
  215. package/build-module/custom-gradient-picker/index.js.map +1 -1
  216. package/build-module/date-time/time/index.js +1 -1
  217. package/build-module/date-time/time/index.js.map +1 -1
  218. package/build-module/date-time/utils.js +1 -1
  219. package/build-module/date-time/utils.js.map +1 -1
  220. package/build-module/draggable/index.js +2 -2
  221. package/build-module/draggable/index.js.map +1 -1
  222. package/build-module/focal-point-picker/utils.js +3 -3
  223. package/build-module/focal-point-picker/utils.js.map +1 -1
  224. package/build-module/font-size-picker/utils.js +2 -2
  225. package/build-module/font-size-picker/utils.js.map +1 -1
  226. package/build-module/gradient-picker/index.js +9 -4
  227. package/build-module/gradient-picker/index.js.map +1 -1
  228. package/build-module/input-control/reducer/reducer.js +5 -5
  229. package/build-module/input-control/reducer/reducer.js.map +1 -1
  230. package/build-module/input-control/utils.js +1 -1
  231. package/build-module/input-control/utils.js.map +1 -1
  232. package/build-module/menu-items-choice/index.js +40 -4
  233. package/build-module/menu-items-choice/index.js.map +1 -1
  234. package/build-module/menu-items-choice/types.js +2 -0
  235. package/{build/resizable-box/styles/resizable-box.styles.js.map → build-module/menu-items-choice/types.js.map} +0 -0
  236. package/build-module/modal/index.js +41 -4
  237. package/build-module/modal/index.js.map +1 -1
  238. package/build-module/palette-edit/index.js +4 -1
  239. package/build-module/palette-edit/index.js.map +1 -1
  240. package/build-module/panel/header.js +9 -0
  241. package/build-module/panel/header.js.map +1 -1
  242. package/build-module/panel/index.js +20 -2
  243. package/build-module/panel/index.js.map +1 -1
  244. package/build-module/panel/row.js +9 -3
  245. package/build-module/panel/row.js.map +1 -1
  246. package/build-module/panel/types.js +2 -0
  247. package/build-module/panel/types.js.map +1 -0
  248. package/build-module/popover/index.js +14 -4
  249. package/build-module/popover/index.js.map +1 -1
  250. package/build-module/popover/overlay-middlewares.js +38 -0
  251. package/build-module/popover/overlay-middlewares.js.map +1 -0
  252. package/build-module/popover/utils.js +41 -5
  253. package/build-module/popover/utils.js.map +1 -1
  254. package/build-module/query-controls/terms.js +1 -1
  255. package/build-module/query-controls/terms.js.map +1 -1
  256. package/build-module/range-control/utils.js +4 -4
  257. package/build-module/range-control/utils.js.map +1 -1
  258. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
  259. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  260. package/build-module/resizable-box/resize-tooltip/utils.js +14 -14
  261. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  262. package/build-module/snackbar/index.js +2 -2
  263. package/build-module/snackbar/index.js.map +1 -1
  264. package/build-module/toolbar/toolbar/index.js +25 -13
  265. package/build-module/toolbar/toolbar/index.js.map +1 -1
  266. package/build-module/toolbar/toolbar/toolbar-container.js +4 -3
  267. package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
  268. package/build-module/toolbar/toolbar/types.js +2 -0
  269. package/build-module/toolbar/toolbar/types.js.map +1 -0
  270. package/build-module/toolbar/toolbar-button/index.js +1 -0
  271. package/build-module/toolbar/toolbar-button/index.js.map +1 -1
  272. package/build-module/toolbar/toolbar-button/toolbar-button-container.js +1 -0
  273. package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  274. package/build-module/toolbar/toolbar-context/index.js +2 -0
  275. package/build-module/toolbar/toolbar-context/index.js.map +1 -1
  276. package/build-module/toolbar/toolbar-dropdown-menu/index.js +1 -0
  277. package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  278. package/build-module/toolbar/toolbar-group/index.js +1 -0
  279. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  280. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +1 -0
  281. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  282. package/build-module/toolbar/toolbar-group/toolbar-group-container.js +1 -0
  283. package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  284. package/build-module/toolbar/toolbar-item/index.js +1 -0
  285. package/build-module/toolbar/toolbar-item/index.js.map +1 -1
  286. package/build-module/tools-panel/tools-panel/component.js +59 -4
  287. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  288. package/build-module/tools-panel/tools-panel/hook.js +4 -2
  289. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  290. package/build-module/tools-panel/tools-panel-header/component.js +2 -1
  291. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  292. package/build-module/tools-panel/tools-panel-header/hook.js +2 -0
  293. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  294. package/build-module/tools-panel/tools-panel-item/component.js +3 -3
  295. package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
  296. package/build-module/tools-panel/tools-panel-item/hook.js +5 -2
  297. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  298. package/build-module/tree-grid/cell.js +16 -4
  299. package/build-module/tree-grid/cell.js.map +1 -1
  300. package/build-module/tree-grid/index.js +81 -21
  301. package/build-module/tree-grid/index.js.map +1 -1
  302. package/build-module/tree-grid/item.js +14 -2
  303. package/build-module/tree-grid/item.js.map +1 -1
  304. package/build-module/tree-grid/roving-tab-index-context.js +1 -1
  305. package/build-module/tree-grid/roving-tab-index-context.js.map +1 -1
  306. package/build-module/tree-grid/roving-tab-index-item.js +11 -4
  307. package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
  308. package/build-module/tree-grid/roving-tab-index.js +0 -3
  309. package/build-module/tree-grid/roving-tab-index.js.map +1 -1
  310. package/build-module/tree-grid/row.js +22 -17
  311. package/build-module/tree-grid/row.js.map +1 -1
  312. package/build-module/tree-grid/types.js +2 -0
  313. package/build-module/tree-grid/types.js.map +1 -0
  314. package/build-module/ui/context/context-connect.js +7 -7
  315. package/build-module/ui/context/context-connect.js.map +1 -1
  316. package/build-module/ui/context/get-styled-class-name-from-key.js +1 -1
  317. package/build-module/ui/context/get-styled-class-name-from-key.js.map +1 -1
  318. package/build-module/ui/utils/get-valid-children.js +1 -1
  319. package/build-module/ui/utils/get-valid-children.js.map +1 -1
  320. package/build-module/ui/utils/space.js +1 -1
  321. package/build-module/ui/utils/space.js.map +1 -1
  322. package/build-module/unit-control/index.js +2 -2
  323. package/build-module/unit-control/index.js.map +1 -1
  324. package/build-module/unit-control/utils.js +20 -20
  325. package/build-module/unit-control/utils.js.map +1 -1
  326. package/build-module/utils/events.js +4 -4
  327. package/build-module/utils/events.js.map +1 -1
  328. package/build-module/utils/hooks/use-controlled-state.js +2 -2
  329. package/build-module/utils/hooks/use-controlled-state.js.map +1 -1
  330. package/build-module/utils/hooks/use-controlled-value.js +4 -4
  331. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  332. package/build-module/utils/hooks/use-latest-ref.js +1 -1
  333. package/build-module/utils/hooks/use-latest-ref.js.map +1 -1
  334. package/build-module/utils/unit-values.js +3 -3
  335. package/build-module/utils/unit-values.js.map +1 -1
  336. package/build-style/style-rtl.css +5 -0
  337. package/build-style/style.css +5 -0
  338. package/build-types/alignment-matrix-control/utils.d.ts +4 -4
  339. package/build-types/angle-picker-control/angle-circle.d.ts +6 -0
  340. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -0
  341. package/build-types/angle-picker-control/index.d.ts +29 -0
  342. package/build-types/angle-picker-control/index.d.ts.map +1 -0
  343. package/build-types/angle-picker-control/stories/index.d.ts +15 -0
  344. package/build-types/angle-picker-control/stories/index.d.ts.map +1 -0
  345. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +20 -0
  346. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -0
  347. package/build-types/angle-picker-control/types.d.ts +26 -0
  348. package/build-types/angle-picker-control/types.d.ts.map +1 -0
  349. package/build-types/base-control/hooks.d.ts +1 -1
  350. package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
  351. package/build-types/border-box-control/border-box-control/hook.d.ts +1 -1
  352. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
  353. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -1
  354. package/build-types/border-box-control/stories/index.d.ts +1 -1
  355. package/build-types/{base-field → border-box-control}/test/index.d.ts +0 -0
  356. package/build-types/border-box-control/test/index.d.ts.map +1 -0
  357. package/build-types/border-box-control/test/utils.d.ts +2 -0
  358. package/build-types/border-box-control/test/utils.d.ts.map +1 -0
  359. package/build-types/box-control/all-input-control.d.ts +4 -0
  360. package/build-types/box-control/all-input-control.d.ts.map +1 -0
  361. package/build-types/box-control/axial-input-controls.d.ts +4 -0
  362. package/build-types/box-control/axial-input-controls.d.ts.map +1 -0
  363. package/build-types/box-control/icon.d.ts +8 -0
  364. package/build-types/box-control/icon.d.ts.map +1 -0
  365. package/build-types/box-control/index.d.ts +31 -0
  366. package/build-types/box-control/index.d.ts.map +1 -0
  367. package/build-types/box-control/input-controls.d.ts +4 -0
  368. package/build-types/box-control/input-controls.d.ts.map +1 -0
  369. package/build-types/box-control/linked-button.d.ts +9 -0
  370. package/build-types/box-control/linked-button.d.ts.map +1 -0
  371. package/build-types/box-control/styles/box-control-icon-styles.d.ts +42 -0
  372. package/build-types/box-control/styles/box-control-icon-styles.d.ts.map +1 -0
  373. package/build-types/box-control/styles/box-control-styles.d.ts +42 -0
  374. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -0
  375. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +46 -0
  376. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +1 -0
  377. package/build-types/box-control/test/index.d.ts +2 -0
  378. package/build-types/box-control/test/index.d.ts.map +1 -0
  379. package/build-types/box-control/types.d.ts +99 -0
  380. package/build-types/box-control/types.d.ts.map +1 -0
  381. package/build-types/box-control/unit-control.d.ts +4 -0
  382. package/build-types/box-control/unit-control.d.ts.map +1 -0
  383. package/build-types/box-control/utils.d.ts +84 -0
  384. package/build-types/box-control/utils.d.ts.map +1 -0
  385. package/build-types/color-palette/index.d.ts +3 -1
  386. package/build-types/color-palette/index.d.ts.map +1 -1
  387. package/build-types/color-palette/stories/index.d.ts +6 -2
  388. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  389. package/build-types/color-palette/types.d.ts +8 -0
  390. package/build-types/color-palette/types.d.ts.map +1 -1
  391. package/build-types/combobox-control/index.d.ts +51 -0
  392. package/build-types/combobox-control/index.d.ts.map +1 -0
  393. package/build-types/combobox-control/stories/index.d.ts +18 -0
  394. package/build-types/combobox-control/stories/index.d.ts.map +1 -0
  395. package/build-types/combobox-control/styles.d.ts +8 -0
  396. package/build-types/combobox-control/styles.d.ts.map +1 -0
  397. package/build-types/combobox-control/test/index.d.ts +2 -0
  398. package/build-types/combobox-control/test/index.d.ts.map +1 -0
  399. package/build-types/combobox-control/types.d.ts +62 -0
  400. package/build-types/combobox-control/types.d.ts.map +1 -0
  401. package/build-types/date-time/utils.d.ts +1 -1
  402. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  403. package/build-types/focal-point-picker/utils.d.ts +3 -3
  404. package/build-types/font-size-picker/utils.d.ts +2 -2
  405. package/build-types/input-control/reducer/reducer.d.ts +3 -3
  406. package/build-types/input-control/utils.d.ts +1 -1
  407. package/build-types/menu-items-choice/index.d.ts +38 -0
  408. package/build-types/menu-items-choice/index.d.ts.map +1 -0
  409. package/build-types/menu-items-choice/stories/index.d.ts +12 -0
  410. package/build-types/menu-items-choice/stories/index.d.ts.map +1 -0
  411. package/build-types/menu-items-choice/types.d.ts +53 -0
  412. package/build-types/menu-items-choice/types.d.ts.map +1 -0
  413. package/build-types/modal/index.d.ts.map +1 -1
  414. package/build-types/modal/types.d.ts +2 -0
  415. package/build-types/modal/types.d.ts.map +1 -1
  416. package/build-types/panel/header.d.ts +13 -0
  417. package/build-types/panel/header.d.ts.map +1 -0
  418. package/build-types/panel/index.d.ts +21 -0
  419. package/build-types/panel/index.d.ts.map +1 -0
  420. package/build-types/panel/row.d.ts +12 -0
  421. package/build-types/panel/row.d.ts.map +1 -0
  422. package/build-types/panel/test/header.d.ts +2 -0
  423. package/build-types/panel/test/header.d.ts.map +1 -0
  424. package/build-types/panel/test/index.d.ts +2 -0
  425. package/build-types/{base-field → panel}/test/index.d.ts.map +1 -1
  426. package/build-types/panel/test/row.d.ts +2 -0
  427. package/build-types/panel/test/row.d.ts.map +1 -0
  428. package/build-types/panel/types.d.ts +38 -0
  429. package/build-types/panel/types.d.ts.map +1 -0
  430. package/build-types/popover/index.d.ts.map +1 -1
  431. package/build-types/popover/overlay-middlewares.d.ts +9 -0
  432. package/build-types/popover/overlay-middlewares.d.ts.map +1 -0
  433. package/build-types/popover/stories/index.d.ts.map +1 -1
  434. package/build-types/popover/types.d.ts +3 -2
  435. package/build-types/popover/types.d.ts.map +1 -1
  436. package/build-types/popover/utils.d.ts +12 -4
  437. package/build-types/popover/utils.d.ts.map +1 -1
  438. package/build-types/query-controls/terms.d.ts +1 -1
  439. package/build-types/range-control/utils.d.ts +4 -4
  440. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +5 -4
  441. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  442. package/build-types/resizable-box/resize-tooltip/utils.d.ts +6 -6
  443. package/build-types/toolbar/index.d.ts +7 -0
  444. package/build-types/toolbar/index.d.ts.map +1 -0
  445. package/build-types/toolbar/stories/index.d.ts +14 -0
  446. package/build-types/toolbar/stories/index.d.ts.map +1 -0
  447. package/build-types/toolbar/test/index.d.ts +2 -0
  448. package/build-types/toolbar/test/index.d.ts.map +1 -0
  449. package/build-types/toolbar/test/toolbar-group.d.ts +2 -0
  450. package/build-types/toolbar/test/toolbar-group.d.ts.map +1 -0
  451. package/build-types/toolbar/toolbar/index.d.ts +25 -0
  452. package/build-types/toolbar/toolbar/index.d.ts.map +1 -0
  453. package/build-types/toolbar/toolbar/toolbar-container.d.ts +5 -0
  454. package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -0
  455. package/build-types/toolbar/toolbar/types.d.ts +15 -0
  456. package/build-types/toolbar/toolbar/types.d.ts.map +1 -0
  457. package/build-types/toolbar/toolbar-button/index.d.ts +12 -0
  458. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -0
  459. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts +3 -0
  460. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -0
  461. package/build-types/toolbar/toolbar-context/index.d.ts +3 -0
  462. package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -0
  463. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -0
  464. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -0
  465. package/build-types/toolbar/toolbar-group/index.d.ts +39 -0
  466. package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -0
  467. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +7 -0
  468. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -0
  469. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -0
  470. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -0
  471. package/build-types/toolbar/toolbar-item/index.d.ts +7 -0
  472. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -0
  473. package/build-types/tools-panel/stories/index.d.ts +17 -0
  474. package/build-types/tools-panel/stories/index.d.ts.map +1 -0
  475. package/build-types/tools-panel/tools-panel/component.d.ts +54 -2
  476. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  477. package/build-types/tools-panel/tools-panel/hook.d.ts +2 -1
  478. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  479. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  480. package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -1
  481. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  482. package/build-types/tools-panel/tools-panel-item/component.d.ts +2 -2
  483. package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
  484. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  485. package/build-types/tools-panel/types.d.ts +42 -15
  486. package/build-types/tools-panel/types.d.ts.map +1 -1
  487. package/build-types/tree-grid/cell.d.ts +13 -0
  488. package/build-types/tree-grid/cell.d.ts.map +1 -0
  489. package/build-types/tree-grid/index.d.ts +70 -0
  490. package/build-types/tree-grid/index.d.ts.map +1 -0
  491. package/build-types/tree-grid/item.d.ts +12 -0
  492. package/build-types/tree-grid/item.d.ts.map +1 -0
  493. package/build-types/tree-grid/roving-tab-index-context.d.ts +10 -0
  494. package/build-types/tree-grid/roving-tab-index-context.d.ts.map +1 -0
  495. package/build-types/tree-grid/roving-tab-index-item.d.ts +5 -0
  496. package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -0
  497. package/build-types/tree-grid/roving-tab-index.d.ts +10 -0
  498. package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -0
  499. package/build-types/tree-grid/row.d.ts +12 -0
  500. package/build-types/tree-grid/row.d.ts.map +1 -0
  501. package/build-types/tree-grid/stories/index.d.ts +13 -0
  502. package/build-types/tree-grid/stories/index.d.ts.map +1 -0
  503. package/build-types/tree-grid/test/cell.d.ts +2 -0
  504. package/build-types/tree-grid/test/cell.d.ts.map +1 -0
  505. package/build-types/tree-grid/test/index.d.ts +2 -0
  506. package/build-types/tree-grid/test/index.d.ts.map +1 -0
  507. package/build-types/tree-grid/test/roving-tab-index-item.d.ts +2 -0
  508. package/build-types/tree-grid/test/roving-tab-index-item.d.ts.map +1 -0
  509. package/build-types/tree-grid/test/roving-tab-index.d.ts +2 -0
  510. package/build-types/tree-grid/test/roving-tab-index.d.ts.map +1 -0
  511. package/build-types/tree-grid/test/row.d.ts +2 -0
  512. package/build-types/tree-grid/test/row.d.ts.map +1 -0
  513. package/build-types/tree-grid/types.d.ts +109 -0
  514. package/build-types/tree-grid/types.d.ts.map +1 -0
  515. package/build-types/ui/context/context-connect.d.ts +7 -7
  516. package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -1
  517. package/build-types/ui/utils/get-valid-children.d.ts +1 -1
  518. package/build-types/ui/utils/space.d.ts +1 -1
  519. package/build-types/unit-control/index.d.ts +1 -1
  520. package/build-types/unit-control/utils.d.ts +20 -20
  521. package/build-types/utils/events.d.ts +2 -2
  522. package/build-types/utils/hooks/use-controlled-state.d.ts +1 -1
  523. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  524. package/build-types/utils/hooks/use-controlled-value.d.ts +4 -4
  525. package/build-types/utils/hooks/use-latest-ref.d.ts +1 -1
  526. package/build-types/utils/unit-values.d.ts +3 -3
  527. package/package.json +19 -19
  528. package/src/alignment-matrix-control/utils.tsx +4 -4
  529. package/src/angle-picker-control/README.md +17 -14
  530. package/src/angle-picker-control/{angle-circle.js → angle-circle.tsx} +44 -12
  531. package/src/angle-picker-control/{index.js → index.tsx} +54 -10
  532. package/src/angle-picker-control/stories/index.tsx +57 -0
  533. package/src/angle-picker-control/styles/{angle-picker-control-styles.js → angle-picker-control-styles.tsx} +5 -1
  534. package/src/angle-picker-control/types.ts +29 -0
  535. package/src/autocomplete/autocompleter-ui.native.js +1 -0
  536. package/src/base-control/hooks.ts +1 -1
  537. package/src/border-box-control/test/{index.js → index.tsx} +76 -102
  538. package/src/border-box-control/test/{utils.js → utils.ts} +20 -0
  539. package/src/border-box-control/utils.ts +1 -1
  540. package/src/box-control/README.md +17 -26
  541. package/src/box-control/{all-input-control.js → all-input-control.tsx} +10 -6
  542. package/src/box-control/{axial-input-controls.js → axial-input-controls.tsx} +29 -24
  543. package/src/box-control/{icon.js → icon.tsx} +9 -4
  544. package/src/box-control/{index.js → index.tsx} +43 -8
  545. package/src/box-control/{input-controls.js → input-controls.tsx} +26 -16
  546. package/src/box-control/{linked-button.js → linked-button.tsx} +4 -1
  547. package/src/box-control/styles/{box-control-icon-styles.js → box-control-icon-styles.ts} +1 -1
  548. package/src/box-control/styles/{box-control-styles.js → box-control-styles.ts} +10 -2
  549. package/src/box-control/styles/{box-control-visualizer-styles.js → box-control-visualizer-styles.ts} +6 -2
  550. package/src/box-control/test/{index.js → index.tsx} +12 -9
  551. package/src/box-control/types.ts +121 -0
  552. package/src/box-control/{unit-control.js → unit-control.tsx} +9 -2
  553. package/src/box-control/{utils.js → utils.ts} +47 -38
  554. package/src/button/test/index.tsx +38 -30
  555. package/src/color-palette/README.md +7 -0
  556. package/src/color-palette/index.tsx +6 -1
  557. package/src/color-palette/types.ts +8 -0
  558. package/src/combobox-control/README.md +8 -15
  559. package/src/combobox-control/{index.js → index.tsx} +91 -19
  560. package/src/combobox-control/stories/index.tsx +114 -0
  561. package/src/combobox-control/styles.ts +4 -1
  562. package/src/combobox-control/test/{index.js → index.tsx} +9 -7
  563. package/src/combobox-control/types.ts +69 -0
  564. package/src/custom-gradient-picker/index.js +0 -1
  565. package/src/custom-select-control/stories/index.js +1 -1
  566. package/src/date-time/time/index.tsx +1 -1
  567. package/src/date-time/utils.ts +1 -1
  568. package/src/draggable/index.tsx +2 -2
  569. package/src/dropdown-menu/test/index.js +3 -11
  570. package/src/focal-point-picker/utils.ts +3 -3
  571. package/src/font-size-picker/utils.ts +2 -2
  572. package/src/gradient-picker/README.md +8 -0
  573. package/src/gradient-picker/index.js +6 -1
  574. package/src/input-control/reducer/reducer.ts +5 -5
  575. package/src/input-control/utils.ts +1 -1
  576. package/src/menu-items-choice/index.tsx +83 -0
  577. package/src/menu-items-choice/stories/index.tsx +79 -0
  578. package/src/menu-items-choice/types.ts +54 -0
  579. package/src/modal/index.tsx +45 -1
  580. package/src/modal/style.scss +8 -0
  581. package/src/modal/types.ts +2 -0
  582. package/src/palette-edit/index.js +4 -1
  583. package/src/panel/README.md +2 -2
  584. package/src/panel/header.tsx +20 -0
  585. package/src/panel/index.tsx +48 -0
  586. package/src/panel/row.tsx +37 -0
  587. package/src/panel/stories/index.js +22 -0
  588. package/src/panel/test/__snapshots__/{header.js.snap → header.tsx.snap} +0 -0
  589. package/src/panel/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  590. package/src/panel/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
  591. package/src/panel/test/{header.js → header.tsx} +1 -1
  592. package/src/panel/test/{index.js → index.tsx} +6 -4
  593. package/src/panel/test/{row.js → row.tsx} +4 -2
  594. package/src/panel/types.ts +38 -0
  595. package/src/popover/README.md +4 -1
  596. package/src/popover/index.tsx +17 -1
  597. package/src/popover/overlay-middlewares.tsx +29 -0
  598. package/src/popover/stories/index.tsx +7 -1
  599. package/src/popover/test/index.tsx +29 -21
  600. package/src/popover/types.ts +4 -2
  601. package/src/popover/utils.ts +39 -3
  602. package/src/query-controls/terms.ts +1 -1
  603. package/src/range-control/utils.ts +4 -4
  604. package/src/resizable-box/resize-tooltip/styles/{resize-tooltip.styles.js → resize-tooltip.styles.ts} +0 -0
  605. package/src/resizable-box/resize-tooltip/utils.ts +14 -14
  606. package/src/snackbar/index.tsx +2 -2
  607. package/src/toolbar/stories/{index.js → index.tsx} +39 -26
  608. package/src/toolbar/test/{index.js → index.tsx} +0 -0
  609. package/src/toolbar/test/{toolbar-group.js → toolbar-group.tsx} +2 -2
  610. package/src/toolbar/toolbar/README.md +7 -2
  611. package/src/toolbar/toolbar/{index.js → index.tsx} +33 -12
  612. package/src/toolbar/toolbar/{toolbar-container.js → toolbar-container.tsx} +9 -2
  613. package/src/toolbar/toolbar/types.ts +15 -0
  614. package/src/toolbar/toolbar-button/index.js +2 -0
  615. package/src/toolbar/toolbar-button/toolbar-button-container.js +2 -0
  616. package/src/toolbar/toolbar-context/index.js +2 -0
  617. package/src/toolbar/toolbar-dropdown-menu/index.js +2 -0
  618. package/src/toolbar/toolbar-group/index.js +2 -0
  619. package/src/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
  620. package/src/toolbar/toolbar-group/toolbar-group-container.js +2 -0
  621. package/src/toolbar/toolbar-item/index.js +2 -0
  622. package/src/tools-panel/stories/{index.js → index.tsx} +196 -95
  623. package/src/tools-panel/test/index.js +6 -6
  624. package/src/tools-panel/tools-panel/README.md +12 -4
  625. package/src/tools-panel/tools-panel/component.tsx +57 -3
  626. package/src/tools-panel/tools-panel/hook.ts +4 -2
  627. package/src/tools-panel/tools-panel-header/README.md +7 -0
  628. package/src/tools-panel/tools-panel-header/component.tsx +2 -1
  629. package/src/tools-panel/tools-panel-header/hook.ts +6 -4
  630. package/src/tools-panel/tools-panel-item/README.md +6 -4
  631. package/src/tools-panel/tools-panel-item/component.tsx +4 -4
  632. package/src/tools-panel/tools-panel-item/hook.ts +4 -2
  633. package/src/tools-panel/types.ts +43 -15
  634. package/src/tree-grid/README.md +18 -58
  635. package/src/tree-grid/cell.tsx +41 -0
  636. package/src/tree-grid/{index.js → index.tsx} +111 -35
  637. package/src/tree-grid/item.tsx +32 -0
  638. package/src/tree-grid/{roving-tab-index-context.js → roving-tab-index-context.ts} +9 -1
  639. package/src/tree-grid/roving-tab-index-item.tsx +50 -0
  640. package/src/tree-grid/{roving-tab-index.js → roving-tab-index.tsx} +7 -5
  641. package/src/tree-grid/row.tsx +47 -0
  642. package/src/tree-grid/stories/index.tsx +144 -0
  643. package/src/tree-grid/test/__snapshots__/{cell.js.snap → cell.tsx.snap} +0 -0
  644. package/src/tree-grid/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  645. package/src/tree-grid/test/__snapshots__/{roving-tab-index-item.js.snap → roving-tab-index-item.tsx.snap} +0 -0
  646. package/src/tree-grid/test/__snapshots__/{roving-tab-index.js.snap → roving-tab-index.tsx.snap} +0 -0
  647. package/src/tree-grid/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
  648. package/src/tree-grid/test/{cell.js → cell.tsx} +7 -4
  649. package/src/tree-grid/test/{index.js → index.tsx} +13 -5
  650. package/src/tree-grid/test/{roving-tab-index-item.js → roving-tab-index-item.tsx} +7 -4
  651. package/src/tree-grid/test/{roving-tab-index.js → roving-tab-index.tsx} +0 -0
  652. package/src/tree-grid/test/{row.js → row.tsx} +4 -4
  653. package/src/tree-grid/types.ts +116 -0
  654. package/src/ui/context/context-connect.ts +7 -7
  655. package/src/ui/context/get-styled-class-name-from-key.ts +1 -1
  656. package/src/ui/utils/get-valid-children.ts +1 -1
  657. package/src/ui/utils/space.ts +1 -1
  658. package/src/unit-control/index.tsx +2 -2
  659. package/src/unit-control/utils.ts +20 -20
  660. package/src/utils/events.ts +4 -4
  661. package/src/utils/hooks/use-controlled-state.js +2 -2
  662. package/src/utils/hooks/use-controlled-value.ts +4 -4
  663. package/src/utils/hooks/use-latest-ref.ts +1 -1
  664. package/src/utils/unit-values.ts +3 -3
  665. package/tsconfig.json +1 -7
  666. package/tsconfig.tsbuildinfo +1 -1
  667. package/build/base-field/hook.js +0 -54
  668. package/build/base-field/hook.js.map +0 -1
  669. package/build/base-field/index.js +0 -14
  670. package/build/base-field/index.js.map +0 -1
  671. package/build/base-field/styles.js +0 -33
  672. package/build/base-field/styles.js.map +0 -1
  673. package/build/resizable-box/styles/resizable-box.styles.js +0 -2
  674. package/build-module/base-field/hook.js +0 -37
  675. package/build-module/base-field/hook.js.map +0 -1
  676. package/build-module/base-field/index.js +0 -2
  677. package/build-module/base-field/index.js.map +0 -1
  678. package/build-module/base-field/styles.js +0 -18
  679. package/build-module/base-field/styles.js.map +0 -1
  680. package/build-module/resizable-box/styles/resizable-box.styles.js +0 -2
  681. package/build-types/base-field/hook.d.ts +0 -270
  682. package/build-types/base-field/hook.d.ts.map +0 -1
  683. package/build-types/base-field/index.d.ts +0 -2
  684. package/build-types/base-field/index.d.ts.map +0 -1
  685. package/build-types/base-field/styles.d.ts +0 -6
  686. package/build-types/base-field/styles.d.ts.map +0 -1
  687. package/build-types/base-field/types.d.ts +0 -29
  688. package/build-types/base-field/types.d.ts.map +0 -1
  689. package/build-types/resizable-box/styles/resizable-box.styles.d.ts +0 -1
  690. package/build-types/resizable-box/styles/resizable-box.styles.d.ts.map +0 -1
  691. package/src/angle-picker-control/stories/index.js +0 -29
  692. package/src/base-field/README.md +0 -66
  693. package/src/base-field/hook.ts +0 -51
  694. package/src/base-field/index.ts +0 -1
  695. package/src/base-field/styles.ts +0 -86
  696. package/src/base-field/test/__snapshots__/index.tsx.snap +0 -141
  697. package/src/base-field/test/index.tsx +0 -84
  698. package/src/base-field/types.ts +0 -29
  699. package/src/combobox-control/stories/index.js +0 -339
  700. package/src/menu-items-choice/index.js +0 -43
  701. package/src/panel/header.js +0 -10
  702. package/src/panel/index.js +0 -26
  703. package/src/panel/row.js +0 -20
  704. package/src/resizable-box/styles/resizable-box.styles.js +0 -0
  705. package/src/tools-panel/stories/utils/tools-panel-with-item-group-slot.js +0 -246
  706. package/src/tree-grid/cell.js +0 -24
  707. package/src/tree-grid/item.js +0 -20
  708. package/src/tree-grid/roving-tab-index-item.js +0 -33
  709. package/src/tree-grid/row.js +0 -31
  710. package/src/tree-grid/stories/index.js +0 -106
@@ -9,24 +9,22 @@ import { UP, DOWN, LEFT, RIGHT, HOME, END } from '@wordpress/keycodes';
9
9
  * Internal dependencies
10
10
  */
11
11
  import RovingTabIndexContainer from './roving-tab-index';
12
+ import type { TreeGridProps } from './types';
13
+ import type { WordPressComponentProps } from '../ui/context';
12
14
 
13
15
  /**
14
16
  * Return focusables in a row element, excluding those from other branches
15
17
  * nested within the row.
16
18
  *
17
- * @param {Element} rowElement The DOM element representing the row.
19
+ * @param rowElement The DOM element representing the row.
18
20
  *
19
- * @return {Array | undefined} The array of focusables in the row.
21
+ * @return The array of focusables in the row.
20
22
  */
21
- function getRowFocusables( rowElement ) {
23
+ function getRowFocusables( rowElement: HTMLElement ) {
22
24
  const focusablesInRow = focus.focusable.find( rowElement, {
23
25
  sequential: true,
24
26
  } );
25
27
 
26
- if ( ! focusablesInRow || ! focusablesInRow.length ) {
27
- return;
28
- }
29
-
30
28
  return focusablesInRow.filter( ( focusable ) => {
31
29
  return focusable.closest( '[role="row"]' ) === rowElement;
32
30
  } );
@@ -35,16 +33,8 @@ function getRowFocusables( rowElement ) {
35
33
  /**
36
34
  * Renders both a table and tbody element, used to create a tree hierarchy.
37
35
  *
38
- * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md
39
- * @param {Object} props Component props.
40
- * @param {WPElement} props.children Children to be rendered.
41
- * @param {Function} props.onExpandRow Callback to fire when row is expanded.
42
- * @param {Function} props.onCollapseRow Callback to fire when row is collapsed.
43
- * @param {Function} props.onFocusRow Callback to fire when moving focus to a different row.
44
- * @param {string} props.applicationAriaLabel Label to use for the application role.
45
- * @param {Object} ref A ref to the underlying DOM table element.
46
36
  */
47
- function TreeGrid(
37
+ function UnforwardedTreeGrid(
48
38
  {
49
39
  children,
50
40
  onExpandRow = () => {},
@@ -52,11 +42,12 @@ function TreeGrid(
52
42
  onFocusRow = () => {},
53
43
  applicationAriaLabel,
54
44
  ...props
55
- },
56
- ref
45
+ }: WordPressComponentProps< TreeGridProps, 'table', false >,
46
+ /** A ref to the underlying DOM table element. */
47
+ ref: React.ForwardedRef< HTMLTableElement >
57
48
  ) {
58
49
  const onKeyDown = useCallback(
59
- ( event ) => {
50
+ ( event: React.KeyboardEvent< HTMLTableElement > ) => {
60
51
  const { keyCode, metaKey, ctrlKey, altKey } = event;
61
52
 
62
53
  // The shift key is intentionally absent from the following list,
@@ -65,7 +56,9 @@ function TreeGrid(
65
56
 
66
57
  if (
67
58
  hasModifierKeyPressed ||
68
- ! [ UP, DOWN, LEFT, RIGHT, HOME, END ].includes( keyCode )
59
+ ! ( [ UP, DOWN, LEFT, RIGHT, HOME, END ] as number[] ).includes(
60
+ keyCode
61
+ )
69
62
  ) {
70
63
  return;
71
64
  }
@@ -75,21 +68,33 @@ function TreeGrid(
75
68
 
76
69
  const { activeElement } = document;
77
70
  const { currentTarget: treeGridElement } = event;
78
- if ( ! treeGridElement.contains( activeElement ) ) {
71
+
72
+ if (
73
+ ! activeElement ||
74
+ ! treeGridElement.contains( activeElement )
75
+ ) {
79
76
  return;
80
77
  }
81
78
 
82
79
  // Calculate the columnIndex of the active element.
83
- const activeRow = activeElement.closest( '[role="row"]' );
80
+ const activeRow =
81
+ activeElement.closest< HTMLElement >( '[role="row"]' );
82
+
83
+ if ( ! activeRow ) {
84
+ return;
85
+ }
86
+
84
87
  const focusablesInRow = getRowFocusables( activeRow );
85
- const currentColumnIndex = focusablesInRow.indexOf( activeElement );
88
+ const currentColumnIndex = focusablesInRow.indexOf(
89
+ activeElement as HTMLElement
90
+ );
86
91
  const canExpandCollapse = 0 === currentColumnIndex;
87
92
  const cannotFocusNextColumn =
88
93
  canExpandCollapse &&
89
94
  activeRow.getAttribute( 'aria-expanded' ) === 'false' &&
90
95
  keyCode === RIGHT;
91
96
 
92
- if ( [ LEFT, RIGHT ].includes( keyCode ) ) {
97
+ if ( ( [ LEFT, RIGHT ] as number[] ).includes( keyCode ) ) {
93
98
  // Calculate to the next element.
94
99
  let nextIndex;
95
100
  if ( keyCode === LEFT ) {
@@ -116,22 +121,25 @@ function TreeGrid(
116
121
  // If a row is focused, and it is collapsed, moves to the parent row (if there is one).
117
122
  const level = Math.max(
118
123
  parseInt(
119
- activeRow?.getAttribute( 'aria-level' ) ?? 1,
124
+ activeRow?.getAttribute( 'aria-level' ) ?? '1',
120
125
  10
121
126
  ) - 1,
122
127
  1
123
128
  );
124
129
  const rows = Array.from(
125
- treeGridElement.querySelectorAll( '[role="row"]' )
130
+ treeGridElement.querySelectorAll< HTMLElement >(
131
+ '[role="row"]'
132
+ )
126
133
  );
127
134
  let parentRow = activeRow;
128
135
  const currentRowIndex = rows.indexOf( activeRow );
129
136
  for ( let i = currentRowIndex; i >= 0; i-- ) {
137
+ const ariaLevel =
138
+ rows[ i ].getAttribute( 'aria-level' );
139
+
130
140
  if (
131
- parseInt(
132
- rows[ i ].getAttribute( 'aria-level' ),
133
- 10
134
- ) === level
141
+ ariaLevel !== null &&
142
+ parseInt( ariaLevel, 10 ) === level
135
143
  ) {
136
144
  parentRow = rows[ i ];
137
145
  break;
@@ -172,10 +180,12 @@ function TreeGrid(
172
180
  // Prevent key use for anything else. This ensures Voiceover
173
181
  // doesn't try to handle key navigation.
174
182
  event.preventDefault();
175
- } else if ( [ UP, DOWN ].includes( keyCode ) ) {
183
+ } else if ( ( [ UP, DOWN ] as number[] ).includes( keyCode ) ) {
176
184
  // Calculate the rowIndex of the next row.
177
185
  const rows = Array.from(
178
- treeGridElement.querySelectorAll( '[role="row"]' )
186
+ treeGridElement.querySelectorAll< HTMLElement >(
187
+ '[role="row"]'
188
+ )
179
189
  );
180
190
  const currentRowIndex = rows.indexOf( activeRow );
181
191
  let nextRowIndex;
@@ -226,10 +236,12 @@ function TreeGrid(
226
236
  // Prevent key use for anything else. This ensures Voiceover
227
237
  // doesn't try to handle key navigation.
228
238
  event.preventDefault();
229
- } else if ( [ HOME, END ].includes( keyCode ) ) {
239
+ } else if ( ( [ HOME, END ] as number[] ).includes( keyCode ) ) {
230
240
  // Calculate the rowIndex of the next row.
231
241
  const rows = Array.from(
232
- treeGridElement.querySelectorAll( '[role="row"]' )
242
+ treeGridElement.querySelectorAll< HTMLElement >(
243
+ '[role="row"]'
244
+ )
233
245
  );
234
246
  const currentRowIndex = rows.indexOf( activeRow );
235
247
  let nextRowIndex;
@@ -306,7 +318,71 @@ function TreeGrid(
306
318
  /* eslint-enable jsx-a11y/no-noninteractive-element-to-interactive-role */
307
319
  }
308
320
 
309
- export default forwardRef( TreeGrid );
321
+ /**
322
+ * `TreeGrid` is used to create a tree hierarchy.
323
+ * It is not a visually styled component, but instead helps with adding
324
+ * keyboard navigation and roving tab index behaviors to tree grid structures.
325
+ *
326
+ * A tree grid is a hierarchical 2 dimensional UI component, for example it could be
327
+ * used to implement a file system browser.
328
+ *
329
+ * A tree grid allows the user to navigate using arrow keys.
330
+ * Up/down to navigate vertically across rows, and left/right to navigate horizontally
331
+ * between focusables in a row.
332
+ *
333
+ * The `TreeGrid` renders both a `table` and `tbody` element, and is intended to be used
334
+ * with `TreeGridRow` (`tr`) and `TreeGridCell` (`td`) to build out a grid.
335
+ *
336
+ * ```jsx
337
+ * function TreeMenu() {
338
+ * return (
339
+ * <TreeGrid>
340
+ * <TreeGridRow level={ 1 } positionInSet={ 1 } setSize={ 2 }>
341
+ * <TreeGridCell>
342
+ * { ( props ) => (
343
+ * <Button onClick={ onSelect } { ...props }>Select</Button>
344
+ * ) }
345
+ * </TreeGridCell>
346
+ * <TreeGridCell>
347
+ * { ( props ) => (
348
+ * <Button onClick={ onMove } { ...props }>Move</Button>
349
+ * ) }
350
+ * </TreeGridCell>
351
+ * </TreeGridRow>
352
+ * <TreeGridRow level={ 1 } positionInSet={ 2 } setSize={ 2 }>
353
+ * <TreeGridCell>
354
+ * { ( props ) => (
355
+ * <Button onClick={ onSelect } { ...props }>Select</Button>
356
+ * ) }
357
+ * </TreeGridCell>
358
+ * <TreeGridCell>
359
+ * { ( props ) => (
360
+ * <Button onClick={ onMove } { ...props }>Move</Button>
361
+ * ) }
362
+ * </TreeGridCell>
363
+ * </TreeGridRow>
364
+ * <TreeGridRow level={ 2 } positionInSet={ 1 } setSize={ 1 }>
365
+ * <TreeGridCell>
366
+ * { ( props ) => (
367
+ * <Button onClick={ onSelect } { ...props }>Select</Button>
368
+ * ) }
369
+ * </TreeGridCell>
370
+ * <TreeGridCell>
371
+ * { ( props ) => (
372
+ * <Button onClick={ onMove } { ...props }>Move</Button>
373
+ * ) }
374
+ * </TreeGridCell>
375
+ * </TreeGridRow>
376
+ * </TreeGrid>
377
+ * );
378
+ * }
379
+ * ```
380
+ *
381
+ * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}
382
+ */
383
+ export const TreeGrid = forwardRef( UnforwardedTreeGrid );
384
+
385
+ export default TreeGrid;
310
386
  export { default as TreeGridRow } from './row';
311
387
  export { default as TreeGridCell } from './cell';
312
388
  export { default as TreeGridItem } from './item';
@@ -0,0 +1,32 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { forwardRef } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import RovingTabIndexItem from './roving-tab-index-item';
10
+ import type { RovingTabIndexItemProps } from './types';
11
+
12
+ function UnforwardedTreeGridItem(
13
+ { children, ...props }: RovingTabIndexItemProps,
14
+ ref: React.ForwardedRef< any >
15
+ ) {
16
+ return (
17
+ <RovingTabIndexItem ref={ ref } { ...props }>
18
+ { children }
19
+ </RovingTabIndexItem>
20
+ );
21
+ }
22
+
23
+ /**
24
+ * `TreeGridItem` is used to create a tree hierarchy.
25
+ * It is not a visually styled component, but instead helps with adding
26
+ * keyboard navigation and roving tab index behaviors to tree grid structures.
27
+ *
28
+ * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}
29
+ */
30
+ export const TreeGridItem = forwardRef( UnforwardedTreeGridItem );
31
+
32
+ export default TreeGridItem;
@@ -3,7 +3,15 @@
3
3
  */
4
4
  import { createContext, useContext } from '@wordpress/element';
5
5
 
6
- const RovingTabIndexContext = createContext();
6
+ const RovingTabIndexContext = createContext<
7
+ | {
8
+ lastFocusedElement: HTMLElement | undefined;
9
+ setLastFocusedElement: React.Dispatch<
10
+ React.SetStateAction< HTMLElement | undefined >
11
+ >;
12
+ }
13
+ | undefined
14
+ >( undefined );
7
15
  export const useRovingTabIndexContext = () =>
8
16
  useContext( RovingTabIndexContext );
9
17
  export const RovingTabIndexProvider = RovingTabIndexContext.Provider;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useRef, forwardRef } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { useRovingTabIndexContext } from './roving-tab-index-context';
10
+ import type { RovingTabIndexItemProps } from './types';
11
+
12
+ export const RovingTabIndexItem = forwardRef(
13
+ function UnforwardedRovingTabIndexItem(
14
+ { children, as: Component, ...props }: RovingTabIndexItemProps,
15
+ forwardedRef: React.ForwardedRef< any >
16
+ ) {
17
+ const localRef = useRef< any >();
18
+ const ref = forwardedRef || localRef;
19
+ // @ts-expect-error - We actually want to throw an error if this is undefined.
20
+ const { lastFocusedElement, setLastFocusedElement } =
21
+ useRovingTabIndexContext();
22
+ let tabIndex;
23
+
24
+ if ( lastFocusedElement ) {
25
+ tabIndex =
26
+ lastFocusedElement ===
27
+ // TODO: The original implementation simply used `ref.current` here, assuming
28
+ // that a forwarded ref would always be an object, which is not necessarily true.
29
+ // This workaround maintains the original runtime behavior in a type-safe way,
30
+ // but should be revisited.
31
+ ( 'current' in ref ? ref.current : undefined )
32
+ ? 0
33
+ : -1;
34
+ }
35
+
36
+ const onFocus: React.FocusEventHandler< HTMLElement > = ( event ) =>
37
+ setLastFocusedElement?.( event.target );
38
+ const allProps = { ref, tabIndex, onFocus, ...props };
39
+
40
+ if ( typeof children === 'function' ) {
41
+ return children( allProps );
42
+ }
43
+
44
+ if ( ! Component ) return null;
45
+
46
+ return <Component { ...allProps }>{ children }</Component>;
47
+ }
48
+ );
49
+
50
+ export default RovingTabIndexItem;
@@ -12,12 +12,14 @@ import { RovingTabIndexProvider } from './roving-tab-index-context';
12
12
  * Provider for adding roving tab index behaviors to tree grid structures.
13
13
  *
14
14
  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/components/src/tree-grid/README.md
15
- *
16
- * @param {Object} props Component props.
17
- * @param {WPElement} props.children Children to be rendered
18
15
  */
19
- export default function RovingTabIndex( { children } ) {
20
- const [ lastFocusedElement, setLastFocusedElement ] = useState();
16
+ export default function RovingTabIndex( {
17
+ children,
18
+ }: {
19
+ children: React.ReactNode;
20
+ } ) {
21
+ const [ lastFocusedElement, setLastFocusedElement ] =
22
+ useState< HTMLElement >();
21
23
 
22
24
  // Use `useMemo` to avoid creation of a new object for the providerValue
23
25
  // on every render. Only create a new object when the `lastFocusedElement`
@@ -0,0 +1,47 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { forwardRef } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { WordPressComponentProps } from '../ui/context';
10
+ import type { TreeGridRowProps } from './types';
11
+
12
+ function UnforwardedTreeGridRow(
13
+ {
14
+ children,
15
+ level,
16
+ positionInSet,
17
+ setSize,
18
+ isExpanded,
19
+ ...props
20
+ }: WordPressComponentProps< TreeGridRowProps, 'tr', false >,
21
+ ref: React.ForwardedRef< HTMLTableRowElement >
22
+ ) {
23
+ return (
24
+ <tr
25
+ { ...props }
26
+ ref={ ref }
27
+ role="row"
28
+ aria-level={ level }
29
+ aria-posinset={ positionInSet }
30
+ aria-setsize={ setSize }
31
+ aria-expanded={ isExpanded }
32
+ >
33
+ { children }
34
+ </tr>
35
+ );
36
+ }
37
+
38
+ /**
39
+ * `TreeGridRow` is used to create a tree hierarchy.
40
+ * It is not a visually styled component, but instead helps with adding
41
+ * keyboard navigation and roving tab index behaviors to tree grid structures.
42
+ *
43
+ * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}
44
+ */
45
+ export const TreeGridRow = forwardRef( UnforwardedTreeGridRow );
46
+
47
+ export default TreeGridRow;
@@ -0,0 +1,144 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { Fragment } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import TreeGrid, { TreeGridRow, TreeGridCell } from '..';
15
+ import { Button } from '../../button';
16
+ import InputControl from '../../input-control';
17
+
18
+ const meta: ComponentMeta< typeof TreeGrid > = {
19
+ title: 'Components (Experimental)/TreeGrid',
20
+ component: TreeGrid,
21
+ subcomponents: { TreeGridRow, TreeGridCell },
22
+ argTypes: {
23
+ children: { control: { type: null } },
24
+ },
25
+ parameters: {
26
+ actions: { argTypesRegex: '^on.*' },
27
+ controls: { expanded: true },
28
+ },
29
+ };
30
+ export default meta;
31
+
32
+ const groceries = [
33
+ {
34
+ name: 'Fruit',
35
+ types: [
36
+ {
37
+ name: 'Apple',
38
+ },
39
+ {
40
+ name: 'Orange',
41
+ },
42
+ {
43
+ name: 'Pear',
44
+ },
45
+ ],
46
+ },
47
+ {
48
+ name: 'Vegetable',
49
+ types: [
50
+ {
51
+ name: 'Cucumber',
52
+ },
53
+ {
54
+ name: 'Parsnip',
55
+ },
56
+ {
57
+ name: 'Pumpkin',
58
+ },
59
+ ],
60
+ },
61
+ ];
62
+
63
+ const Descender = ( { level }: { level: number } ) => {
64
+ if ( level === 1 ) {
65
+ return null;
66
+ }
67
+ const indentation = '\u00A0'.repeat( ( level - 1 ) * 4 );
68
+
69
+ return <span aria-hidden="true">{ indentation + '├ ' }</span>;
70
+ };
71
+
72
+ type Item = {
73
+ name: string;
74
+ types?: Item[];
75
+ };
76
+
77
+ const Rows = ( {
78
+ items = [],
79
+ level = 1,
80
+ }: {
81
+ items?: Item[];
82
+ level?: number;
83
+ } ) => {
84
+ return (
85
+ <>
86
+ { items.map( ( item, index ) => {
87
+ const hasChildren = !! item.types && !! item.types.length;
88
+ return (
89
+ <Fragment key={ item.name }>
90
+ <TreeGridRow
91
+ positionInSet={ index + 1 }
92
+ setSize={ items.length }
93
+ level={ level }
94
+ isExpanded
95
+ >
96
+ <TreeGridCell>
97
+ { ( props ) => (
98
+ <>
99
+ <Descender level={ level } />
100
+ <Button variant="primary" { ...props }>
101
+ { item.name }
102
+ </Button>
103
+ </>
104
+ ) }
105
+ </TreeGridCell>
106
+ <TreeGridCell>
107
+ { ( props ) => (
108
+ <InputControl
109
+ label="Description"
110
+ hideLabelFromVision
111
+ placeholder="Description"
112
+ { ...props }
113
+ />
114
+ ) }
115
+ </TreeGridCell>
116
+ <TreeGridCell>
117
+ { ( props ) => (
118
+ <InputControl
119
+ label="Notes"
120
+ hideLabelFromVision
121
+ placeholder="Notes"
122
+ { ...props }
123
+ />
124
+ ) }
125
+ </TreeGridCell>
126
+ </TreeGridRow>
127
+ { hasChildren && (
128
+ <Rows items={ item.types } level={ level + 1 } />
129
+ ) }
130
+ </Fragment>
131
+ );
132
+ } ) }
133
+ </>
134
+ );
135
+ };
136
+
137
+ const Template: ComponentStory< typeof TreeGrid > = ( args ) => (
138
+ <TreeGrid { ...args } />
139
+ );
140
+
141
+ export const Default = Template.bind( {} );
142
+ Default.args = {
143
+ children: <Rows items={ groceries } />,
144
+ };
@@ -11,12 +11,15 @@ import { forwardRef } from '@wordpress/element';
11
11
  /**
12
12
  * Internal dependencies
13
13
  */
14
- import TreeGrid from '../';
14
+ import TreeGrid from '..';
15
15
  import TreeGridCell from '../cell';
16
16
 
17
- const TestButton = forwardRef( ( { ...props }, ref ) => (
18
- <button { ...props } ref={ ref }></button>
19
- ) );
17
+ const TestButton = forwardRef(
18
+ (
19
+ { ...props }: React.ComponentPropsWithoutRef< 'button' >,
20
+ ref: React.ForwardedRef< HTMLButtonElement >
21
+ ) => <button { ...props } ref={ ref }></button>
22
+ );
20
23
 
21
24
  describe( 'TreeGridCell', () => {
22
25
  it( 'requires TreeGrid to be declared as a parent component somewhere in the component hierarchy', () => {
@@ -12,13 +12,16 @@ import { forwardRef } from '@wordpress/element';
12
12
  /**
13
13
  * Internal dependencies
14
14
  */
15
- import TreeGrid from '../';
15
+ import TreeGrid from '..';
16
16
  import TreeGridRow from '../row';
17
17
  import TreeGridCell from '../cell';
18
18
 
19
- const TestButton = forwardRef( ( { ...props }, ref ) => (
20
- <button { ...props } ref={ ref }></button>
21
- ) );
19
+ const TestButton = forwardRef(
20
+ (
21
+ { ...props }: React.ComponentPropsWithoutRef< 'button' >,
22
+ ref: React.ForwardedRef< HTMLButtonElement >
23
+ ) => <button { ...props } ref={ ref }></button>
24
+ );
22
25
 
23
26
  describe( 'TreeGrid', () => {
24
27
  const originalGetClientRects = window.Element.prototype.getClientRects;
@@ -35,6 +38,7 @@ describe( 'TreeGrid', () => {
35
38
  ] );
36
39
 
37
40
  beforeAll( () => {
41
+ // @ts-expect-error - This is just a mock
38
42
  window.Element.prototype.getClientRects =
39
43
  jest.fn( mockedGetClientRects );
40
44
  } );
@@ -162,7 +166,11 @@ describe( 'TreeGrid', () => {
162
166
  } );
163
167
 
164
168
  describe( 'onFocusRow', () => {
165
- const TestTree = ( { onFocusRow } ) => (
169
+ const TestTree = ( {
170
+ onFocusRow,
171
+ }: {
172
+ onFocusRow: React.ComponentProps< typeof TreeGrid >[ 'onFocusRow' ];
173
+ } ) => (
166
174
  <TreeGrid onFocusRow={ onFocusRow }>
167
175
  <TreeGridRow level={ 1 } positionInSet={ 1 } setSize={ 3 }>
168
176
  <TreeGridCell withoutGridItem>
@@ -14,9 +14,12 @@ import { forwardRef } from '@wordpress/element';
14
14
  import RovingTabIndex from '../roving-tab-index';
15
15
  import RovingTabIndexItem from '../roving-tab-index-item';
16
16
 
17
- const TestButton = forwardRef( ( { ...props }, ref ) => (
18
- <button { ...props } ref={ ref }></button>
19
- ) );
17
+ const TestButton = forwardRef(
18
+ (
19
+ { ...props }: React.ComponentPropsWithoutRef< 'button' >,
20
+ ref: React.ForwardedRef< HTMLButtonElement >
21
+ ) => <button { ...props } ref={ ref }></button>
22
+ );
20
23
 
21
24
  describe( 'RovingTabIndexItem', () => {
22
25
  it( 'requires RovingTabIndex to be declared as a parent component somewhere in the component hierarchy', () => {
@@ -52,7 +55,7 @@ describe( 'RovingTabIndexItem', () => {
52
55
  const { container } = render(
53
56
  <RovingTabIndex>
54
57
  <RovingTabIndexItem>
55
- { ( props ) => (
58
+ { ( props: React.ComponentProps< typeof TestButton > ) => (
56
59
  <TestButton className="my-button" { ...props }>
57
60
  Click Me!
58
61
  </TestButton>
@@ -13,7 +13,7 @@ describe( 'TreeGridRow', () => {
13
13
  const { container } = render(
14
14
  <table>
15
15
  <tbody>
16
- <TreeGridRow level="1" positionInSet="1" setSize="1">
16
+ <TreeGridRow level={ 1 } positionInSet={ 1 } setSize={ 1 }>
17
17
  <td>Test</td>
18
18
  </TreeGridRow>
19
19
  </tbody>
@@ -29,9 +29,9 @@ describe( 'TreeGridRow', () => {
29
29
  <tbody>
30
30
  <TreeGridRow
31
31
  className="my-row"
32
- level="1"
33
- positionInSet="1"
34
- setSize="1"
32
+ level={ 1 }
33
+ positionInSet={ 1 }
34
+ setSize={ 1 }
35
35
  >
36
36
  <td>Test</td>
37
37
  </TreeGridRow>