@wordpress/components 23.3.1 → 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 (896) hide show
  1. package/CHANGELOG.md +35 -0
  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 +15 -7
  40. package/build/color-palette/index.js.map +1 -1
  41. package/build/color-palette/utils.js +12 -4
  42. package/build/color-palette/utils.js.map +1 -1
  43. package/build/combobox-control/index.js +68 -12
  44. package/build/combobox-control/index.js.map +1 -1
  45. package/build/combobox-control/styles.js +2 -2
  46. package/build/combobox-control/styles.js.map +1 -1
  47. package/build/combobox-control/types.js +6 -0
  48. package/build/combobox-control/types.js.map +1 -0
  49. package/build/custom-gradient-picker/index.js +0 -1
  50. package/build/custom-gradient-picker/index.js.map +1 -1
  51. package/build/custom-select-control/index.js +7 -0
  52. package/build/custom-select-control/index.js.map +1 -1
  53. package/build/date-time/time/index.js +1 -1
  54. package/build/date-time/time/index.js.map +1 -1
  55. package/build/date-time/utils.js +1 -1
  56. package/build/date-time/utils.js.map +1 -1
  57. package/build/draggable/index.js +2 -2
  58. package/build/draggable/index.js.map +1 -1
  59. package/build/focal-point-picker/utils.js +3 -3
  60. package/build/focal-point-picker/utils.js.map +1 -1
  61. package/build/font-size-picker/utils.js +2 -2
  62. package/build/font-size-picker/utils.js.map +1 -1
  63. package/build/gradient-picker/index.js +9 -4
  64. package/build/gradient-picker/index.js.map +1 -1
  65. package/build/index.js +16 -10
  66. package/build/index.js.map +1 -1
  67. package/build/input-control/reducer/reducer.js +5 -5
  68. package/build/input-control/reducer/reducer.js.map +1 -1
  69. package/build/input-control/utils.js +1 -1
  70. package/build/input-control/utils.js.map +1 -1
  71. package/build/menu-items-choice/index.js +40 -3
  72. package/build/menu-items-choice/index.js.map +1 -1
  73. package/build/menu-items-choice/types.js +6 -0
  74. package/build/menu-items-choice/types.js.map +1 -0
  75. package/build/modal/index.js +41 -3
  76. package/build/modal/index.js.map +1 -1
  77. package/build/navigator/context.js +5 -1
  78. package/build/navigator/context.js.map +1 -1
  79. package/build/navigator/index.js +8 -0
  80. package/build/navigator/index.js.map +1 -1
  81. package/build/navigator/navigator-back-button/hook.js +11 -3
  82. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  83. package/build/navigator/navigator-provider/component.js +119 -11
  84. package/build/navigator/navigator-provider/component.js.map +1 -1
  85. package/build/navigator/navigator-screen/component.js +18 -7
  86. package/build/navigator/navigator-screen/component.js.map +1 -1
  87. package/build/navigator/navigator-to-parent-button/component.js +75 -0
  88. package/build/navigator/navigator-to-parent-button/component.js.map +1 -0
  89. package/build/navigator/navigator-to-parent-button/index.js +16 -0
  90. package/build/navigator/navigator-to-parent-button/index.js.map +1 -0
  91. package/build/navigator/use-navigator.js +6 -2
  92. package/build/navigator/use-navigator.js.map +1 -1
  93. package/build/navigator/utils/router.js +57 -0
  94. package/build/navigator/utils/router.js.map +1 -0
  95. package/build/palette-edit/index.js +4 -1
  96. package/build/palette-edit/index.js.map +1 -1
  97. package/build/panel/header.js +9 -0
  98. package/build/panel/header.js.map +1 -1
  99. package/build/panel/index.js +21 -3
  100. package/build/panel/index.js.map +1 -1
  101. package/build/panel/row.js +10 -4
  102. package/build/panel/row.js.map +1 -1
  103. package/build/panel/types.js +6 -0
  104. package/build/panel/types.js.map +1 -0
  105. package/build/popover/index.js +15 -3
  106. package/build/popover/index.js.map +1 -1
  107. package/build/popover/overlay-middlewares.js +46 -0
  108. package/build/popover/overlay-middlewares.js.map +1 -0
  109. package/build/popover/utils.js +45 -6
  110. package/build/popover/utils.js.map +1 -1
  111. package/build/private-apis.js +35 -0
  112. package/build/private-apis.js.map +1 -0
  113. package/build/query-controls/terms.js +1 -1
  114. package/build/query-controls/terms.js.map +1 -1
  115. package/build/range-control/utils.js +4 -4
  116. package/build/range-control/utils.js.map +1 -1
  117. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
  118. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  119. package/build/resizable-box/resize-tooltip/utils.js +14 -14
  120. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  121. package/build/select-control/index.js +1 -1
  122. package/build/select-control/index.js.map +1 -1
  123. package/build/select-control/styles/select-control-styles.js +38 -25
  124. package/build/select-control/styles/select-control-styles.js.map +1 -1
  125. package/build/snackbar/index.js +2 -2
  126. package/build/snackbar/index.js.map +1 -1
  127. package/build/toolbar/toolbar/index.js +25 -14
  128. package/build/toolbar/toolbar/index.js.map +1 -1
  129. package/build/toolbar/toolbar/toolbar-container.js +5 -4
  130. package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
  131. package/build/toolbar/toolbar/types.js +6 -0
  132. package/build/toolbar/toolbar/types.js.map +1 -0
  133. package/build/toolbar/toolbar-button/index.js +2 -0
  134. package/build/toolbar/toolbar-button/index.js.map +1 -1
  135. package/build/toolbar/toolbar-button/toolbar-button-container.js +1 -0
  136. package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  137. package/build/toolbar/toolbar-context/index.js +2 -0
  138. package/build/toolbar/toolbar-context/index.js.map +1 -1
  139. package/build/toolbar/toolbar-dropdown-menu/index.js +2 -0
  140. package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  141. package/build/toolbar/toolbar-group/index.js +2 -0
  142. package/build/toolbar/toolbar-group/index.js.map +1 -1
  143. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
  144. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  145. package/build/toolbar/toolbar-group/toolbar-group-container.js +1 -0
  146. package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  147. package/build/toolbar/toolbar-item/index.js +2 -0
  148. package/build/toolbar/toolbar-item/index.js.map +1 -1
  149. package/build/tools-panel/tools-panel/component.js +61 -5
  150. package/build/tools-panel/tools-panel/component.js.map +1 -1
  151. package/build/tools-panel/tools-panel/hook.js +8 -6
  152. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  153. package/build/tools-panel/tools-panel-header/component.js +2 -1
  154. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  155. package/build/tools-panel/tools-panel-header/hook.js +2 -0
  156. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  157. package/build/tools-panel/tools-panel-item/component.js +5 -4
  158. package/build/tools-panel/tools-panel-item/component.js.map +1 -1
  159. package/build/tools-panel/tools-panel-item/hook.js +24 -13
  160. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  161. package/build/tree-grid/cell.js +15 -4
  162. package/build/tree-grid/cell.js.map +1 -1
  163. package/build/tree-grid/index.js +81 -19
  164. package/build/tree-grid/index.js.map +1 -1
  165. package/build/tree-grid/item.js +14 -3
  166. package/build/tree-grid/item.js.map +1 -1
  167. package/build/tree-grid/roving-tab-index-context.js +1 -1
  168. package/build/tree-grid/roving-tab-index-context.js.map +1 -1
  169. package/build/tree-grid/roving-tab-index-item.js +13 -6
  170. package/build/tree-grid/roving-tab-index-item.js.map +1 -1
  171. package/build/tree-grid/roving-tab-index.js +0 -3
  172. package/build/tree-grid/roving-tab-index.js.map +1 -1
  173. package/build/tree-grid/row.js +20 -18
  174. package/build/tree-grid/row.js.map +1 -1
  175. package/build/tree-grid/types.js +6 -0
  176. package/build/tree-grid/types.js.map +1 -0
  177. package/build/ui/context/context-connect.js +7 -7
  178. package/build/ui/context/context-connect.js.map +1 -1
  179. package/build/ui/context/get-styled-class-name-from-key.js +1 -1
  180. package/build/ui/context/get-styled-class-name-from-key.js.map +1 -1
  181. package/build/ui/utils/get-valid-children.js +1 -1
  182. package/build/ui/utils/get-valid-children.js.map +1 -1
  183. package/build/ui/utils/space.js +1 -1
  184. package/build/ui/utils/space.js.map +1 -1
  185. package/build/unit-control/index.js +2 -2
  186. package/build/unit-control/index.js.map +1 -1
  187. package/build/unit-control/utils.js +20 -20
  188. package/build/unit-control/utils.js.map +1 -1
  189. package/build/utils/events.js +4 -4
  190. package/build/utils/events.js.map +1 -1
  191. package/build/utils/hooks/use-controlled-state.js +2 -2
  192. package/build/utils/hooks/use-controlled-state.js.map +1 -1
  193. package/build/utils/hooks/use-controlled-value.js +4 -4
  194. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  195. package/build/utils/hooks/use-latest-ref.js +1 -1
  196. package/build/utils/hooks/use-latest-ref.js.map +1 -1
  197. package/build/utils/unit-values.js +3 -3
  198. package/build/utils/unit-values.js.map +1 -1
  199. package/build-module/alignment-matrix-control/utils.js +4 -4
  200. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  201. package/build-module/angle-picker-control/angle-circle.js +37 -29
  202. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  203. package/build-module/angle-picker-control/index.js +42 -8
  204. package/build-module/angle-picker-control/index.js.map +1 -1
  205. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -13
  206. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  207. package/build-module/{base-field → angle-picker-control}/types.js +0 -0
  208. package/build-module/{base-field → angle-picker-control}/types.js.map +0 -0
  209. package/build-module/autocomplete/autocompleter-ui.native.js +1 -0
  210. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  211. package/build-module/base-control/hooks.js +1 -1
  212. package/build-module/base-control/hooks.js.map +1 -1
  213. package/build-module/border-box-control/utils.js +1 -1
  214. package/build-module/border-box-control/utils.js.map +1 -1
  215. package/build-module/box-control/all-input-control.js +2 -2
  216. package/build-module/box-control/all-input-control.js.map +1 -1
  217. package/build-module/box-control/axial-input-controls.js +1 -1
  218. package/build-module/box-control/axial-input-controls.js.map +1 -1
  219. package/build-module/box-control/icon.js.map +1 -1
  220. package/build-module/box-control/index.js +31 -3
  221. package/build-module/box-control/index.js.map +1 -1
  222. package/build-module/box-control/input-controls.js +5 -5
  223. package/build-module/box-control/input-controls.js.map +1 -1
  224. package/build-module/box-control/linked-button.js.map +1 -1
  225. package/build-module/box-control/styles/box-control-icon-styles.js +28 -28
  226. package/build-module/box-control/styles/box-control-icon-styles.js.map +1 -1
  227. package/build-module/box-control/styles/box-control-styles.js +23 -23
  228. package/build-module/box-control/styles/box-control-styles.js.map +1 -1
  229. package/build-module/box-control/styles/box-control-visualizer-styles.js +19 -19
  230. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  231. package/build-module/box-control/types.js +2 -0
  232. package/{build/base-field → build-module/box-control}/types.js.map +0 -0
  233. package/build-module/box-control/unit-control.js.map +1 -1
  234. package/build-module/box-control/utils.js +23 -23
  235. package/build-module/box-control/utils.js.map +1 -1
  236. package/build-module/color-palette/index.js +16 -8
  237. package/build-module/color-palette/index.js.map +1 -1
  238. package/build-module/color-palette/utils.js +12 -4
  239. package/build-module/color-palette/utils.js.map +1 -1
  240. package/build-module/combobox-control/index.js +68 -12
  241. package/build-module/combobox-control/index.js.map +1 -1
  242. package/build-module/combobox-control/styles.js +2 -2
  243. package/build-module/combobox-control/styles.js.map +1 -1
  244. package/build-module/combobox-control/types.js +2 -0
  245. package/build-module/{resizable-box/styles/resizable-box.styles.js.map → combobox-control/types.js.map} +0 -0
  246. package/build-module/custom-gradient-picker/index.js +0 -1
  247. package/build-module/custom-gradient-picker/index.js.map +1 -1
  248. package/build-module/custom-select-control/index.js +5 -0
  249. package/build-module/custom-select-control/index.js.map +1 -1
  250. package/build-module/date-time/time/index.js +1 -1
  251. package/build-module/date-time/time/index.js.map +1 -1
  252. package/build-module/date-time/utils.js +1 -1
  253. package/build-module/date-time/utils.js.map +1 -1
  254. package/build-module/draggable/index.js +2 -2
  255. package/build-module/draggable/index.js.map +1 -1
  256. package/build-module/focal-point-picker/utils.js +3 -3
  257. package/build-module/focal-point-picker/utils.js.map +1 -1
  258. package/build-module/font-size-picker/utils.js +2 -2
  259. package/build-module/font-size-picker/utils.js.map +1 -1
  260. package/build-module/gradient-picker/index.js +9 -4
  261. package/build-module/gradient-picker/index.js.map +1 -1
  262. package/build-module/index.js +5 -4
  263. package/build-module/index.js.map +1 -1
  264. package/build-module/input-control/reducer/reducer.js +5 -5
  265. package/build-module/input-control/reducer/reducer.js.map +1 -1
  266. package/build-module/input-control/utils.js +1 -1
  267. package/build-module/input-control/utils.js.map +1 -1
  268. package/build-module/menu-items-choice/index.js +40 -4
  269. package/build-module/menu-items-choice/index.js.map +1 -1
  270. package/build-module/menu-items-choice/types.js +2 -0
  271. package/{build/resizable-box/styles/resizable-box.styles.js.map → build-module/menu-items-choice/types.js.map} +0 -0
  272. package/build-module/modal/index.js +41 -4
  273. package/build-module/modal/index.js.map +1 -1
  274. package/build-module/navigator/context.js +5 -1
  275. package/build-module/navigator/context.js.map +1 -1
  276. package/build-module/navigator/index.js +1 -0
  277. package/build-module/navigator/index.js.map +1 -1
  278. package/build-module/navigator/navigator-back-button/hook.js +11 -3
  279. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  280. package/build-module/navigator/navigator-provider/component.js +117 -12
  281. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  282. package/build-module/navigator/navigator-screen/component.js +20 -9
  283. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  284. package/build-module/navigator/navigator-to-parent-button/component.js +61 -0
  285. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -0
  286. package/build-module/navigator/navigator-to-parent-button/index.js +2 -0
  287. package/build-module/navigator/navigator-to-parent-button/index.js.map +1 -0
  288. package/build-module/navigator/use-navigator.js +6 -2
  289. package/build-module/navigator/use-navigator.js.map +1 -1
  290. package/build-module/navigator/utils/router.js +51 -0
  291. package/build-module/navigator/utils/router.js.map +1 -0
  292. package/build-module/palette-edit/index.js +4 -1
  293. package/build-module/palette-edit/index.js.map +1 -1
  294. package/build-module/panel/header.js +9 -0
  295. package/build-module/panel/header.js.map +1 -1
  296. package/build-module/panel/index.js +20 -2
  297. package/build-module/panel/index.js.map +1 -1
  298. package/build-module/panel/row.js +9 -3
  299. package/build-module/panel/row.js.map +1 -1
  300. package/build-module/panel/types.js +2 -0
  301. package/build-module/panel/types.js.map +1 -0
  302. package/build-module/popover/index.js +14 -4
  303. package/build-module/popover/index.js.map +1 -1
  304. package/build-module/popover/overlay-middlewares.js +38 -0
  305. package/build-module/popover/overlay-middlewares.js.map +1 -0
  306. package/build-module/popover/utils.js +41 -5
  307. package/build-module/popover/utils.js.map +1 -1
  308. package/build-module/private-apis.js +20 -0
  309. package/build-module/private-apis.js.map +1 -0
  310. package/build-module/query-controls/terms.js +1 -1
  311. package/build-module/query-controls/terms.js.map +1 -1
  312. package/build-module/range-control/utils.js +4 -4
  313. package/build-module/range-control/utils.js.map +1 -1
  314. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +12 -12
  315. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  316. package/build-module/resizable-box/resize-tooltip/utils.js +14 -14
  317. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  318. package/build-module/select-control/index.js +1 -1
  319. package/build-module/select-control/index.js.map +1 -1
  320. package/build-module/select-control/styles/select-control-styles.js +38 -25
  321. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  322. package/build-module/snackbar/index.js +2 -2
  323. package/build-module/snackbar/index.js.map +1 -1
  324. package/build-module/toolbar/toolbar/index.js +25 -13
  325. package/build-module/toolbar/toolbar/index.js.map +1 -1
  326. package/build-module/toolbar/toolbar/toolbar-container.js +4 -3
  327. package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
  328. package/build-module/toolbar/toolbar/types.js +2 -0
  329. package/build-module/toolbar/toolbar/types.js.map +1 -0
  330. package/build-module/toolbar/toolbar-button/index.js +1 -0
  331. package/build-module/toolbar/toolbar-button/index.js.map +1 -1
  332. package/build-module/toolbar/toolbar-button/toolbar-button-container.js +1 -0
  333. package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  334. package/build-module/toolbar/toolbar-context/index.js +2 -0
  335. package/build-module/toolbar/toolbar-context/index.js.map +1 -1
  336. package/build-module/toolbar/toolbar-dropdown-menu/index.js +1 -0
  337. package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  338. package/build-module/toolbar/toolbar-group/index.js +1 -0
  339. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  340. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +1 -0
  341. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  342. package/build-module/toolbar/toolbar-group/toolbar-group-container.js +1 -0
  343. package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  344. package/build-module/toolbar/toolbar-item/index.js +1 -0
  345. package/build-module/toolbar/toolbar-item/index.js.map +1 -1
  346. package/build-module/tools-panel/tools-panel/component.js +59 -4
  347. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  348. package/build-module/tools-panel/tools-panel/hook.js +8 -6
  349. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  350. package/build-module/tools-panel/tools-panel-header/component.js +2 -1
  351. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  352. package/build-module/tools-panel/tools-panel-header/hook.js +2 -0
  353. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  354. package/build-module/tools-panel/tools-panel-item/component.js +3 -3
  355. package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
  356. package/build-module/tools-panel/tools-panel-item/hook.js +25 -13
  357. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  358. package/build-module/tree-grid/cell.js +16 -4
  359. package/build-module/tree-grid/cell.js.map +1 -1
  360. package/build-module/tree-grid/index.js +81 -21
  361. package/build-module/tree-grid/index.js.map +1 -1
  362. package/build-module/tree-grid/item.js +14 -2
  363. package/build-module/tree-grid/item.js.map +1 -1
  364. package/build-module/tree-grid/roving-tab-index-context.js +1 -1
  365. package/build-module/tree-grid/roving-tab-index-context.js.map +1 -1
  366. package/build-module/tree-grid/roving-tab-index-item.js +11 -4
  367. package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
  368. package/build-module/tree-grid/roving-tab-index.js +0 -3
  369. package/build-module/tree-grid/roving-tab-index.js.map +1 -1
  370. package/build-module/tree-grid/row.js +22 -17
  371. package/build-module/tree-grid/row.js.map +1 -1
  372. package/build-module/tree-grid/types.js +2 -0
  373. package/build-module/tree-grid/types.js.map +1 -0
  374. package/build-module/ui/context/context-connect.js +7 -7
  375. package/build-module/ui/context/context-connect.js.map +1 -1
  376. package/build-module/ui/context/get-styled-class-name-from-key.js +1 -1
  377. package/build-module/ui/context/get-styled-class-name-from-key.js.map +1 -1
  378. package/build-module/ui/utils/get-valid-children.js +1 -1
  379. package/build-module/ui/utils/get-valid-children.js.map +1 -1
  380. package/build-module/ui/utils/space.js +1 -1
  381. package/build-module/ui/utils/space.js.map +1 -1
  382. package/build-module/unit-control/index.js +2 -2
  383. package/build-module/unit-control/index.js.map +1 -1
  384. package/build-module/unit-control/utils.js +20 -20
  385. package/build-module/unit-control/utils.js.map +1 -1
  386. package/build-module/utils/events.js +4 -4
  387. package/build-module/utils/events.js.map +1 -1
  388. package/build-module/utils/hooks/use-controlled-state.js +2 -2
  389. package/build-module/utils/hooks/use-controlled-state.js.map +1 -1
  390. package/build-module/utils/hooks/use-controlled-value.js +4 -4
  391. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  392. package/build-module/utils/hooks/use-latest-ref.js +1 -1
  393. package/build-module/utils/hooks/use-latest-ref.js.map +1 -1
  394. package/build-module/utils/unit-values.js +3 -3
  395. package/build-module/utils/unit-values.js.map +1 -1
  396. package/build-style/style-rtl.css +5 -11
  397. package/build-style/style.css +5 -11
  398. package/build-types/alignment-matrix-control/utils.d.ts +4 -4
  399. package/build-types/angle-picker-control/angle-circle.d.ts +6 -0
  400. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -0
  401. package/build-types/angle-picker-control/index.d.ts +29 -0
  402. package/build-types/angle-picker-control/index.d.ts.map +1 -0
  403. package/build-types/angle-picker-control/stories/index.d.ts +15 -0
  404. package/build-types/angle-picker-control/stories/index.d.ts.map +1 -0
  405. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts +20 -0
  406. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -0
  407. package/build-types/angle-picker-control/types.d.ts +26 -0
  408. package/build-types/angle-picker-control/types.d.ts.map +1 -0
  409. package/build-types/base-control/hooks.d.ts +2 -2
  410. package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
  411. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -3
  412. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
  413. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
  414. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -3
  415. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
  416. package/build-types/border-box-control/stories/index.d.ts +1 -1
  417. package/build-types/{base-field → border-box-control}/test/index.d.ts +0 -0
  418. package/build-types/border-box-control/test/index.d.ts.map +1 -0
  419. package/build-types/border-box-control/test/utils.d.ts +2 -0
  420. package/build-types/border-box-control/test/utils.d.ts.map +1 -0
  421. package/build-types/border-control/border-control/hook.d.ts +2 -2
  422. package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
  423. package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
  424. package/build-types/box-control/all-input-control.d.ts +4 -0
  425. package/build-types/box-control/all-input-control.d.ts.map +1 -0
  426. package/build-types/box-control/axial-input-controls.d.ts +4 -0
  427. package/build-types/box-control/axial-input-controls.d.ts.map +1 -0
  428. package/build-types/box-control/icon.d.ts +8 -0
  429. package/build-types/box-control/icon.d.ts.map +1 -0
  430. package/build-types/box-control/index.d.ts +31 -0
  431. package/build-types/box-control/index.d.ts.map +1 -0
  432. package/build-types/box-control/input-controls.d.ts +4 -0
  433. package/build-types/box-control/input-controls.d.ts.map +1 -0
  434. package/build-types/box-control/linked-button.d.ts +9 -0
  435. package/build-types/box-control/linked-button.d.ts.map +1 -0
  436. package/build-types/box-control/styles/box-control-icon-styles.d.ts +42 -0
  437. package/build-types/box-control/styles/box-control-icon-styles.d.ts.map +1 -0
  438. package/build-types/box-control/styles/box-control-styles.d.ts +42 -0
  439. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -0
  440. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +46 -0
  441. package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +1 -0
  442. package/build-types/box-control/test/index.d.ts +2 -0
  443. package/build-types/box-control/test/index.d.ts.map +1 -0
  444. package/build-types/box-control/types.d.ts +99 -0
  445. package/build-types/box-control/types.d.ts.map +1 -0
  446. package/build-types/box-control/unit-control.d.ts +4 -0
  447. package/build-types/box-control/unit-control.d.ts.map +1 -0
  448. package/build-types/box-control/utils.d.ts +84 -0
  449. package/build-types/box-control/utils.d.ts.map +1 -0
  450. package/build-types/button/deprecated.d.ts +2 -2
  451. package/build-types/button/types.d.ts +3 -1
  452. package/build-types/button/types.d.ts.map +1 -1
  453. package/build-types/card/card/hook.d.ts +2 -2
  454. package/build-types/card/card-body/hook.d.ts +2 -2
  455. package/build-types/card/card-divider/hook.d.ts +2 -2
  456. package/build-types/card/card-footer/hook.d.ts +2 -2
  457. package/build-types/card/card-header/hook.d.ts +2 -2
  458. package/build-types/card/card-media/hook.d.ts +2 -2
  459. package/build-types/color-palette/index.d.ts +3 -1
  460. package/build-types/color-palette/index.d.ts.map +1 -1
  461. package/build-types/color-palette/stories/index.d.ts +6 -2
  462. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  463. package/build-types/color-palette/styles.d.ts +1 -1
  464. package/build-types/color-palette/types.d.ts +8 -0
  465. package/build-types/color-palette/types.d.ts.map +1 -1
  466. package/build-types/color-palette/utils.d.ts +8 -5
  467. package/build-types/color-palette/utils.d.ts.map +1 -1
  468. package/build-types/color-picker/styles.d.ts +7 -7
  469. package/build-types/combobox-control/index.d.ts +51 -0
  470. package/build-types/combobox-control/index.d.ts.map +1 -0
  471. package/build-types/combobox-control/stories/index.d.ts +18 -0
  472. package/build-types/combobox-control/stories/index.d.ts.map +1 -0
  473. package/build-types/combobox-control/styles.d.ts +8 -0
  474. package/build-types/combobox-control/styles.d.ts.map +1 -0
  475. package/build-types/combobox-control/test/index.d.ts +2 -0
  476. package/build-types/combobox-control/test/index.d.ts.map +1 -0
  477. package/build-types/combobox-control/types.d.ts +62 -0
  478. package/build-types/combobox-control/types.d.ts.map +1 -0
  479. package/build-types/custom-select-control/index.d.ts +1 -0
  480. package/build-types/custom-select-control/index.d.ts.map +1 -1
  481. package/build-types/date-time/date/styles.d.ts +3 -3
  482. package/build-types/date-time/date-time/styles.d.ts +3 -3
  483. package/build-types/date-time/time/styles.d.ts +8 -8
  484. package/build-types/date-time/utils.d.ts +1 -1
  485. package/build-types/elevation/hook.d.ts +2 -2
  486. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  487. package/build-types/flex/flex/hook.d.ts +2 -2
  488. package/build-types/flex/flex-block/hook.d.ts +2 -2
  489. package/build-types/flex/flex-item/hook.d.ts +2 -2
  490. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -2
  491. package/build-types/focal-point-picker/utils.d.ts +3 -3
  492. package/build-types/font-size-picker/utils.d.ts +2 -2
  493. package/build-types/form-token-field/styles.d.ts +1 -1
  494. package/build-types/grid/hook.d.ts +2 -2
  495. package/build-types/h-stack/component.d.ts +1 -1
  496. package/build-types/h-stack/hook.d.ts +2 -2
  497. package/build-types/heading/hook.d.ts +2 -2
  498. package/build-types/input-control/reducer/reducer.d.ts +3 -3
  499. package/build-types/input-control/styles/input-control-styles.d.ts +2 -2
  500. package/build-types/input-control/utils.d.ts +1 -1
  501. package/build-types/item-group/item/hook.d.ts +2 -2
  502. package/build-types/item-group/item-group/hook.d.ts +2 -2
  503. package/build-types/menu-items-choice/index.d.ts +38 -0
  504. package/build-types/menu-items-choice/index.d.ts.map +1 -0
  505. package/build-types/menu-items-choice/stories/index.d.ts +12 -0
  506. package/build-types/menu-items-choice/stories/index.d.ts.map +1 -0
  507. package/build-types/menu-items-choice/types.d.ts +53 -0
  508. package/build-types/menu-items-choice/types.d.ts.map +1 -0
  509. package/build-types/modal/index.d.ts.map +1 -1
  510. package/build-types/modal/types.d.ts +2 -0
  511. package/build-types/modal/types.d.ts.map +1 -1
  512. package/build-types/navigator/context.d.ts.map +1 -1
  513. package/build-types/navigator/index.d.ts +1 -0
  514. package/build-types/navigator/index.d.ts.map +1 -1
  515. package/build-types/navigator/navigator-back-button/component.d.ts +22 -3
  516. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  517. package/build-types/navigator/navigator-back-button/hook.d.ts +24 -6
  518. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  519. package/build-types/navigator/navigator-button/component.d.ts +22 -3
  520. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  521. package/build-types/navigator/navigator-button/hook.d.ts +22 -4
  522. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  523. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  524. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  525. package/build-types/navigator/navigator-to-parent-button/component.d.ts +27 -0
  526. package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -0
  527. package/build-types/navigator/navigator-to-parent-button/index.d.ts +2 -0
  528. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +1 -0
  529. package/build-types/navigator/stories/index.d.ts +1 -0
  530. package/build-types/navigator/stories/index.d.ts.map +1 -1
  531. package/build-types/navigator/test/router.d.ts +2 -0
  532. package/build-types/navigator/test/router.d.ts.map +1 -0
  533. package/build-types/navigator/types.d.ts +25 -9
  534. package/build-types/navigator/types.d.ts.map +1 -1
  535. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  536. package/build-types/navigator/utils/router.d.ts +10 -0
  537. package/build-types/navigator/utils/router.d.ts.map +1 -0
  538. package/build-types/number-control/index.d.ts +2 -2
  539. package/build-types/number-control/stories/index.d.ts +2 -2
  540. package/build-types/panel/header.d.ts +13 -0
  541. package/build-types/panel/header.d.ts.map +1 -0
  542. package/build-types/panel/index.d.ts +21 -0
  543. package/build-types/panel/index.d.ts.map +1 -0
  544. package/build-types/panel/row.d.ts +12 -0
  545. package/build-types/panel/row.d.ts.map +1 -0
  546. package/build-types/panel/test/header.d.ts +2 -0
  547. package/build-types/panel/test/header.d.ts.map +1 -0
  548. package/build-types/panel/test/index.d.ts +2 -0
  549. package/build-types/{base-field → panel}/test/index.d.ts.map +1 -1
  550. package/build-types/panel/test/row.d.ts +2 -0
  551. package/build-types/panel/test/row.d.ts.map +1 -0
  552. package/build-types/panel/types.d.ts +38 -0
  553. package/build-types/panel/types.d.ts.map +1 -0
  554. package/build-types/popover/index.d.ts +1 -1
  555. package/build-types/popover/index.d.ts.map +1 -1
  556. package/build-types/popover/overlay-middlewares.d.ts +9 -0
  557. package/build-types/popover/overlay-middlewares.d.ts.map +1 -0
  558. package/build-types/popover/stories/e2e/index.d.ts +1 -1
  559. package/build-types/popover/stories/index.d.ts.map +1 -1
  560. package/build-types/popover/types.d.ts +3 -2
  561. package/build-types/popover/types.d.ts.map +1 -1
  562. package/build-types/popover/utils.d.ts +12 -4
  563. package/build-types/popover/utils.d.ts.map +1 -1
  564. package/build-types/private-apis.d.ts +4 -0
  565. package/build-types/private-apis.d.ts.map +1 -0
  566. package/build-types/query-controls/terms.d.ts +1 -1
  567. package/build-types/range-control/index.d.ts +2 -2
  568. package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
  569. package/build-types/range-control/utils.d.ts +4 -4
  570. package/build-types/resizable-box/index.d.ts +1 -1
  571. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  572. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +5 -4
  573. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  574. package/build-types/resizable-box/resize-tooltip/utils.d.ts +6 -6
  575. package/build-types/resizable-box/stories/index.d.ts +2 -2
  576. package/build-types/scrollable/hook.d.ts +2 -2
  577. package/build-types/search-control/index.d.ts +1 -1
  578. package/build-types/search-control/stories/index.d.ts +2 -2
  579. package/build-types/select-control/index.d.ts.map +1 -1
  580. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  581. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  582. package/build-types/select-control/types.d.ts +3 -1
  583. package/build-types/select-control/types.d.ts.map +1 -1
  584. package/build-types/spacer/hook.d.ts +2 -2
  585. package/build-types/spinner/index.d.ts +1 -1
  586. package/build-types/surface/hook.d.ts +2 -2
  587. package/build-types/text/hook.d.ts +2 -2
  588. package/build-types/text-control/index.d.ts +3 -3
  589. package/build-types/toolbar/index.d.ts +7 -0
  590. package/build-types/toolbar/index.d.ts.map +1 -0
  591. package/build-types/toolbar/stories/index.d.ts +14 -0
  592. package/build-types/toolbar/stories/index.d.ts.map +1 -0
  593. package/build-types/toolbar/test/index.d.ts +2 -0
  594. package/build-types/toolbar/test/index.d.ts.map +1 -0
  595. package/build-types/toolbar/test/toolbar-group.d.ts +2 -0
  596. package/build-types/toolbar/test/toolbar-group.d.ts.map +1 -0
  597. package/build-types/toolbar/toolbar/index.d.ts +25 -0
  598. package/build-types/toolbar/toolbar/index.d.ts.map +1 -0
  599. package/build-types/toolbar/toolbar/toolbar-container.d.ts +5 -0
  600. package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -0
  601. package/build-types/toolbar/toolbar/types.d.ts +15 -0
  602. package/build-types/toolbar/toolbar/types.d.ts.map +1 -0
  603. package/build-types/toolbar/toolbar-button/index.d.ts +12 -0
  604. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -0
  605. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts +3 -0
  606. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -0
  607. package/build-types/toolbar/toolbar-context/index.d.ts +3 -0
  608. package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -0
  609. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -0
  610. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -0
  611. package/build-types/toolbar/toolbar-group/index.d.ts +39 -0
  612. package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -0
  613. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +7 -0
  614. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -0
  615. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -0
  616. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -0
  617. package/build-types/toolbar/toolbar-item/index.d.ts +7 -0
  618. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -0
  619. package/build-types/tools-panel/stories/index.d.ts +17 -0
  620. package/build-types/tools-panel/stories/index.d.ts.map +1 -0
  621. package/build-types/tools-panel/tools-panel/component.d.ts +54 -2
  622. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  623. package/build-types/tools-panel/tools-panel/hook.d.ts +4 -3
  624. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  625. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  626. package/build-types/tools-panel/tools-panel-header/hook.d.ts +4 -3
  627. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  628. package/build-types/tools-panel/tools-panel-item/component.d.ts +2 -2
  629. package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
  630. package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
  631. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  632. package/build-types/tools-panel/types.d.ts +42 -15
  633. package/build-types/tools-panel/types.d.ts.map +1 -1
  634. package/build-types/tree-grid/cell.d.ts +13 -0
  635. package/build-types/tree-grid/cell.d.ts.map +1 -0
  636. package/build-types/tree-grid/index.d.ts +70 -0
  637. package/build-types/tree-grid/index.d.ts.map +1 -0
  638. package/build-types/tree-grid/item.d.ts +12 -0
  639. package/build-types/tree-grid/item.d.ts.map +1 -0
  640. package/build-types/tree-grid/roving-tab-index-context.d.ts +10 -0
  641. package/build-types/tree-grid/roving-tab-index-context.d.ts.map +1 -0
  642. package/build-types/tree-grid/roving-tab-index-item.d.ts +5 -0
  643. package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -0
  644. package/build-types/tree-grid/roving-tab-index.d.ts +10 -0
  645. package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -0
  646. package/build-types/tree-grid/row.d.ts +12 -0
  647. package/build-types/tree-grid/row.d.ts.map +1 -0
  648. package/build-types/tree-grid/stories/index.d.ts +13 -0
  649. package/build-types/tree-grid/stories/index.d.ts.map +1 -0
  650. package/build-types/tree-grid/test/cell.d.ts +2 -0
  651. package/build-types/tree-grid/test/cell.d.ts.map +1 -0
  652. package/build-types/tree-grid/test/index.d.ts +2 -0
  653. package/build-types/tree-grid/test/index.d.ts.map +1 -0
  654. package/build-types/tree-grid/test/roving-tab-index-item.d.ts +2 -0
  655. package/build-types/tree-grid/test/roving-tab-index-item.d.ts.map +1 -0
  656. package/build-types/tree-grid/test/roving-tab-index.d.ts +2 -0
  657. package/build-types/tree-grid/test/roving-tab-index.d.ts.map +1 -0
  658. package/build-types/tree-grid/test/row.d.ts +2 -0
  659. package/build-types/tree-grid/test/row.d.ts.map +1 -0
  660. package/build-types/tree-grid/types.d.ts +109 -0
  661. package/build-types/tree-grid/types.d.ts.map +1 -0
  662. package/build-types/truncate/hook.d.ts +2 -2
  663. package/build-types/ui/context/context-connect.d.ts +7 -7
  664. package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -1
  665. package/build-types/ui/control-group/hook.d.ts +2 -2
  666. package/build-types/ui/control-label/hook.d.ts +2 -2
  667. package/build-types/ui/form-group/form-group.d.ts +2 -2
  668. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  669. package/build-types/ui/utils/get-valid-children.d.ts +1 -1
  670. package/build-types/ui/utils/space.d.ts +1 -1
  671. package/build-types/unit-control/index.d.ts +1 -1
  672. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
  673. package/build-types/unit-control/utils.d.ts +20 -20
  674. package/build-types/utils/events.d.ts +2 -2
  675. package/build-types/utils/hooks/use-controlled-state.d.ts +1 -1
  676. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  677. package/build-types/utils/hooks/use-controlled-value.d.ts +4 -4
  678. package/build-types/utils/hooks/use-latest-ref.d.ts +1 -1
  679. package/build-types/utils/unit-values.d.ts +3 -3
  680. package/build-types/v-stack/component.d.ts +2 -2
  681. package/build-types/v-stack/hook.d.ts +2 -2
  682. package/build-types/v-stack/stories/index.d.ts +2 -2
  683. package/package.json +20 -18
  684. package/src/alignment-matrix-control/utils.tsx +4 -4
  685. package/src/angle-picker-control/README.md +17 -14
  686. package/src/angle-picker-control/{angle-circle.js → angle-circle.tsx} +44 -12
  687. package/src/angle-picker-control/{index.js → index.tsx} +54 -10
  688. package/src/angle-picker-control/stories/index.tsx +57 -0
  689. package/src/angle-picker-control/styles/{angle-picker-control-styles.js → angle-picker-control-styles.tsx} +5 -1
  690. package/src/angle-picker-control/types.ts +29 -0
  691. package/src/autocomplete/autocompleter-ui.native.js +1 -0
  692. package/src/base-control/hooks.ts +1 -1
  693. package/src/border-box-control/test/{index.js → index.tsx} +76 -102
  694. package/src/border-box-control/test/{utils.js → utils.ts} +20 -0
  695. package/src/border-box-control/utils.ts +1 -1
  696. package/src/box-control/README.md +17 -26
  697. package/src/box-control/{all-input-control.js → all-input-control.tsx} +10 -6
  698. package/src/box-control/{axial-input-controls.js → axial-input-controls.tsx} +29 -24
  699. package/src/box-control/{icon.js → icon.tsx} +9 -4
  700. package/src/box-control/{index.js → index.tsx} +43 -8
  701. package/src/box-control/{input-controls.js → input-controls.tsx} +26 -16
  702. package/src/box-control/{linked-button.js → linked-button.tsx} +4 -1
  703. package/src/box-control/styles/{box-control-icon-styles.js → box-control-icon-styles.ts} +1 -1
  704. package/src/box-control/styles/{box-control-styles.js → box-control-styles.ts} +10 -2
  705. package/src/box-control/styles/{box-control-visualizer-styles.js → box-control-visualizer-styles.ts} +6 -2
  706. package/src/box-control/test/{index.js → index.tsx} +12 -9
  707. package/src/box-control/types.ts +121 -0
  708. package/src/box-control/{unit-control.js → unit-control.tsx} +9 -2
  709. package/src/box-control/{utils.js → utils.ts} +47 -38
  710. package/src/button/test/index.tsx +38 -30
  711. package/src/button/types.ts +5 -2
  712. package/src/color-palette/README.md +7 -0
  713. package/src/color-palette/index.tsx +19 -6
  714. package/src/color-palette/test/utils.ts +17 -1
  715. package/src/color-palette/types.ts +8 -0
  716. package/src/color-palette/utils.ts +12 -7
  717. package/src/combobox-control/README.md +8 -15
  718. package/src/combobox-control/{index.js → index.tsx} +91 -19
  719. package/src/combobox-control/stories/index.tsx +114 -0
  720. package/src/combobox-control/styles.ts +4 -1
  721. package/src/combobox-control/test/{index.js → index.tsx} +9 -7
  722. package/src/combobox-control/types.ts +69 -0
  723. package/src/custom-gradient-picker/index.js +0 -1
  724. package/src/custom-select-control/index.js +9 -0
  725. package/src/custom-select-control/stories/index.js +2 -2
  726. package/src/custom-select-control/test/index.js +2 -2
  727. package/src/date-time/time/index.tsx +1 -1
  728. package/src/date-time/utils.ts +1 -1
  729. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  730. package/src/draggable/index.tsx +2 -2
  731. package/src/dropdown-menu/test/index.js +3 -11
  732. package/src/focal-point-picker/utils.ts +3 -3
  733. package/src/font-size-picker/utils.ts +2 -2
  734. package/src/gradient-picker/README.md +8 -0
  735. package/src/gradient-picker/index.js +6 -1
  736. package/src/index.js +5 -2
  737. package/src/input-control/reducer/reducer.ts +5 -5
  738. package/src/input-control/utils.ts +1 -1
  739. package/src/menu-items-choice/index.tsx +83 -0
  740. package/src/menu-items-choice/stories/index.tsx +79 -0
  741. package/src/menu-items-choice/types.ts +54 -0
  742. package/src/modal/index.tsx +45 -1
  743. package/src/modal/style.scss +8 -0
  744. package/src/modal/types.ts +2 -0
  745. package/src/navigator/context.ts +4 -0
  746. package/src/navigator/index.ts +1 -0
  747. package/src/navigator/navigator-back-button/README.md +1 -17
  748. package/src/navigator/navigator-back-button/hook.ts +10 -5
  749. package/src/navigator/navigator-button/README.md +1 -1
  750. package/src/navigator/navigator-provider/README.md +25 -4
  751. package/src/navigator/navigator-provider/component.tsx +170 -14
  752. package/src/navigator/navigator-screen/component.tsx +22 -11
  753. package/src/navigator/navigator-to-parent-button/README.md +15 -0
  754. package/src/navigator/navigator-to-parent-button/component.tsx +65 -0
  755. package/src/navigator/navigator-to-parent-button/index.ts +1 -0
  756. package/src/navigator/stories/index.tsx +93 -3
  757. package/src/navigator/test/index.tsx +267 -23
  758. package/src/navigator/test/router.ts +122 -0
  759. package/src/navigator/types.ts +31 -12
  760. package/src/navigator/use-navigator.ts +4 -1
  761. package/src/navigator/utils/router.ts +49 -0
  762. package/src/palette-edit/index.js +4 -1
  763. package/src/panel/README.md +2 -2
  764. package/src/panel/header.tsx +20 -0
  765. package/src/panel/index.tsx +48 -0
  766. package/src/panel/row.tsx +37 -0
  767. package/src/panel/stories/index.js +22 -0
  768. package/src/panel/test/__snapshots__/{header.js.snap → header.tsx.snap} +0 -0
  769. package/src/panel/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  770. package/src/panel/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
  771. package/src/panel/test/{header.js → header.tsx} +1 -1
  772. package/src/panel/test/{index.js → index.tsx} +6 -4
  773. package/src/panel/test/{row.js → row.tsx} +4 -2
  774. package/src/panel/types.ts +38 -0
  775. package/src/popover/README.md +4 -1
  776. package/src/popover/index.tsx +17 -1
  777. package/src/popover/overlay-middlewares.tsx +29 -0
  778. package/src/popover/stories/index.tsx +7 -1
  779. package/src/popover/test/index.tsx +29 -21
  780. package/src/popover/types.ts +4 -2
  781. package/src/popover/utils.ts +39 -3
  782. package/src/private-apis.js +22 -0
  783. package/src/query-controls/terms.ts +1 -1
  784. package/src/range-control/utils.ts +4 -4
  785. package/src/resizable-box/resize-tooltip/styles/{resize-tooltip.styles.js → resize-tooltip.styles.ts} +0 -0
  786. package/src/resizable-box/resize-tooltip/utils.ts +14 -14
  787. package/src/select-control/README.md +3 -1
  788. package/src/select-control/index.tsx +3 -1
  789. package/src/select-control/style.scss +0 -10
  790. package/src/select-control/styles/select-control-styles.ts +36 -22
  791. package/src/select-control/types.ts +3 -1
  792. package/src/snackbar/index.tsx +2 -2
  793. package/src/toolbar/stories/{index.js → index.tsx} +39 -26
  794. package/src/toolbar/test/{index.js → index.tsx} +0 -0
  795. package/src/toolbar/test/{toolbar-group.js → toolbar-group.tsx} +2 -2
  796. package/src/toolbar/toolbar/README.md +7 -2
  797. package/src/toolbar/toolbar/{index.js → index.tsx} +33 -12
  798. package/src/toolbar/toolbar/{toolbar-container.js → toolbar-container.tsx} +9 -2
  799. package/src/toolbar/toolbar/types.ts +15 -0
  800. package/src/toolbar/toolbar-button/index.js +2 -0
  801. package/src/toolbar/toolbar-button/toolbar-button-container.js +2 -0
  802. package/src/toolbar/toolbar-context/index.js +2 -0
  803. package/src/toolbar/toolbar-dropdown-menu/index.js +2 -0
  804. package/src/toolbar/toolbar-group/index.js +2 -0
  805. package/src/toolbar/toolbar-group/toolbar-group-collapsed.js +2 -0
  806. package/src/toolbar/toolbar-group/toolbar-group-container.js +2 -0
  807. package/src/toolbar/toolbar-item/index.js +2 -0
  808. package/src/tools-panel/stories/{index.js → index.tsx} +196 -95
  809. package/src/tools-panel/test/index.js +71 -6
  810. package/src/tools-panel/tools-panel/README.md +12 -4
  811. package/src/tools-panel/tools-panel/component.tsx +57 -3
  812. package/src/tools-panel/tools-panel/hook.ts +8 -7
  813. package/src/tools-panel/tools-panel-header/README.md +7 -0
  814. package/src/tools-panel/tools-panel-header/component.tsx +2 -1
  815. package/src/tools-panel/tools-panel-header/hook.ts +6 -4
  816. package/src/tools-panel/tools-panel-item/README.md +6 -4
  817. package/src/tools-panel/tools-panel-item/component.tsx +4 -4
  818. package/src/tools-panel/tools-panel-item/hook.ts +28 -16
  819. package/src/tools-panel/types.ts +43 -15
  820. package/src/tree-grid/README.md +18 -58
  821. package/src/tree-grid/cell.tsx +41 -0
  822. package/src/tree-grid/{index.js → index.tsx} +111 -35
  823. package/src/tree-grid/item.tsx +32 -0
  824. package/src/tree-grid/{roving-tab-index-context.js → roving-tab-index-context.ts} +9 -1
  825. package/src/tree-grid/roving-tab-index-item.tsx +50 -0
  826. package/src/tree-grid/{roving-tab-index.js → roving-tab-index.tsx} +7 -5
  827. package/src/tree-grid/row.tsx +47 -0
  828. package/src/tree-grid/stories/index.tsx +144 -0
  829. package/src/tree-grid/test/__snapshots__/{cell.js.snap → cell.tsx.snap} +0 -0
  830. package/src/tree-grid/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  831. package/src/tree-grid/test/__snapshots__/{roving-tab-index-item.js.snap → roving-tab-index-item.tsx.snap} +0 -0
  832. package/src/tree-grid/test/__snapshots__/{roving-tab-index.js.snap → roving-tab-index.tsx.snap} +0 -0
  833. package/src/tree-grid/test/__snapshots__/{row.js.snap → row.tsx.snap} +0 -0
  834. package/src/tree-grid/test/{cell.js → cell.tsx} +7 -4
  835. package/src/tree-grid/test/{index.js → index.tsx} +13 -5
  836. package/src/tree-grid/test/{roving-tab-index-item.js → roving-tab-index-item.tsx} +7 -4
  837. package/src/tree-grid/test/{roving-tab-index.js → roving-tab-index.tsx} +0 -0
  838. package/src/tree-grid/test/{row.js → row.tsx} +4 -4
  839. package/src/tree-grid/types.ts +116 -0
  840. package/src/ui/context/context-connect.ts +7 -7
  841. package/src/ui/context/get-styled-class-name-from-key.ts +1 -1
  842. package/src/ui/utils/get-valid-children.ts +1 -1
  843. package/src/ui/utils/space.ts +1 -1
  844. package/src/unit-control/index.tsx +2 -2
  845. package/src/unit-control/utils.ts +20 -20
  846. package/src/utils/events.ts +4 -4
  847. package/src/utils/hooks/use-controlled-state.js +2 -2
  848. package/src/utils/hooks/use-controlled-value.ts +4 -4
  849. package/src/utils/hooks/use-latest-ref.ts +1 -1
  850. package/src/utils/unit-values.ts +3 -3
  851. package/tsconfig.json +6 -8
  852. package/tsconfig.tsbuildinfo +1 -1
  853. package/build/base-field/hook.js +0 -54
  854. package/build/base-field/hook.js.map +0 -1
  855. package/build/base-field/index.js +0 -14
  856. package/build/base-field/index.js.map +0 -1
  857. package/build/base-field/styles.js +0 -33
  858. package/build/base-field/styles.js.map +0 -1
  859. package/build/resizable-box/styles/resizable-box.styles.js +0 -2
  860. package/build-module/base-field/hook.js +0 -37
  861. package/build-module/base-field/hook.js.map +0 -1
  862. package/build-module/base-field/index.js +0 -2
  863. package/build-module/base-field/index.js.map +0 -1
  864. package/build-module/base-field/styles.js +0 -18
  865. package/build-module/base-field/styles.js.map +0 -1
  866. package/build-module/resizable-box/styles/resizable-box.styles.js +0 -2
  867. package/build-types/base-field/hook.d.ts +0 -270
  868. package/build-types/base-field/hook.d.ts.map +0 -1
  869. package/build-types/base-field/index.d.ts +0 -2
  870. package/build-types/base-field/index.d.ts.map +0 -1
  871. package/build-types/base-field/styles.d.ts +0 -6
  872. package/build-types/base-field/styles.d.ts.map +0 -1
  873. package/build-types/base-field/types.d.ts +0 -29
  874. package/build-types/base-field/types.d.ts.map +0 -1
  875. package/build-types/resizable-box/styles/resizable-box.styles.d.ts +0 -1
  876. package/build-types/resizable-box/styles/resizable-box.styles.d.ts.map +0 -1
  877. package/src/angle-picker-control/stories/index.js +0 -29
  878. package/src/base-field/README.md +0 -66
  879. package/src/base-field/hook.ts +0 -51
  880. package/src/base-field/index.ts +0 -1
  881. package/src/base-field/styles.ts +0 -86
  882. package/src/base-field/test/__snapshots__/index.tsx.snap +0 -141
  883. package/src/base-field/test/index.tsx +0 -84
  884. package/src/base-field/types.ts +0 -29
  885. package/src/combobox-control/stories/index.js +0 -339
  886. package/src/menu-items-choice/index.js +0 -43
  887. package/src/panel/header.js +0 -10
  888. package/src/panel/index.js +0 -26
  889. package/src/panel/row.js +0 -20
  890. package/src/resizable-box/styles/resizable-box.styles.js +0 -0
  891. package/src/tools-panel/stories/utils/tools-panel-with-item-group-slot.js +0 -246
  892. package/src/tree-grid/cell.js +0 -24
  893. package/src/tree-grid/item.js +0 -20
  894. package/src/tree-grid/roving-tab-index-item.js +0 -33
  895. package/src/tree-grid/row.js +0 -31
  896. package/src/tree-grid/stories/index.js +0 -106
@@ -35,12 +35,11 @@ const generateMenuItems = ( {
35
35
  panelItems.forEach( ( { hasValue, isShownByDefault, label } ) => {
36
36
  const group = isShownByDefault ? 'default' : 'optional';
37
37
 
38
- // If a menu item for this label already exists, do not overwrite its value.
39
- // This can cause default controls that have been flagged as customized to
40
- // lose their value.
38
+ // If a menu item for this label has already been flagged as customized
39
+ // (for default controls), or toggled on (for optional controls), do not
40
+ // overwrite its value as those controls would lose that state.
41
41
  const existingItemValue = currentMenuItems?.[ group ]?.[ label ];
42
- const value =
43
- existingItemValue !== undefined ? existingItemValue : hasValue();
42
+ const value = existingItemValue ? existingItemValue : hasValue();
44
43
 
45
44
  menuItems[ group ][ label ] = shouldReset ? false : value;
46
45
  } );
@@ -57,10 +56,11 @@ export function useToolsPanel(
57
56
  ) {
58
57
  const {
59
58
  className,
59
+ headingLevel = 2,
60
60
  resetAll,
61
61
  panelId,
62
- hasInnerWrapper,
63
- shouldRenderPlaceholderItems,
62
+ hasInnerWrapper = false,
63
+ shouldRenderPlaceholderItems = false,
64
64
  __experimentalFirstVisibleItemClass,
65
65
  __experimentalLastVisibleItemClass,
66
66
  ...otherProps
@@ -307,6 +307,7 @@ export function useToolsPanel(
307
307
 
308
308
  return {
309
309
  ...otherProps,
310
+ headingLevel,
310
311
  panelContext,
311
312
  resetAllItems,
312
313
  toggleItem,
@@ -18,6 +18,13 @@ This component is generated automatically by its parent
18
18
 
19
19
  ## Props
20
20
 
21
+ ### `headingLevel`: `1 | 2 | 3 | 4 | 5 | 6 | '1' | '2' | '3' | '4' | '5' | '6'`
22
+
23
+ The heading level of the panel's header.
24
+
25
+ - Required: No
26
+ - Default: `2`
27
+
21
28
  ### `label`: `string`
22
29
 
23
30
  Text to be displayed within the panel header. It is also passed along as the
@@ -156,6 +156,7 @@ const ToolsPanelHeader = (
156
156
  dropdownMenuClassName,
157
157
  hasMenuItems,
158
158
  headingClassName,
159
+ headingLevel = 2,
159
160
  label: labelText,
160
161
  menuItems,
161
162
  resetAll,
@@ -185,7 +186,7 @@ const ToolsPanelHeader = (
185
186
 
186
187
  return (
187
188
  <HStack { ...headerProps } ref={ forwardedRef }>
188
- <Heading level={ 2 } className={ headingClassName }>
189
+ <Heading level={ headingLevel } className={ headingClassName }>
189
190
  { labelText }
190
191
  </Heading>
191
192
  { hasMenuItems && (
@@ -15,10 +15,11 @@ import type { ToolsPanelHeaderProps } from '../types';
15
15
  export function useToolsPanelHeader(
16
16
  props: WordPressComponentProps< ToolsPanelHeaderProps, 'h2' >
17
17
  ) {
18
- const { className, ...otherProps } = useContextSystem(
19
- props,
20
- 'ToolsPanelHeader'
21
- );
18
+ const {
19
+ className,
20
+ headingLevel = 2,
21
+ ...otherProps
22
+ } = useContextSystem( props, 'ToolsPanelHeader' );
22
23
 
23
24
  const cx = useCx();
24
25
  const classes = useMemo( () => {
@@ -47,6 +48,7 @@ export function useToolsPanelHeader(
47
48
  dropdownMenuClassName,
48
49
  hasMenuItems,
49
50
  headingClassName,
51
+ headingLevel,
50
52
  menuItems,
51
53
  className: classes,
52
54
  };
@@ -31,7 +31,8 @@ This prop identifies the current item as being displayed by default. This means
31
31
  it will show regardless of whether it has a value set or is toggled on in the
32
32
  panel's menu.
33
33
 
34
- - Required: Yes
34
+ - Required: No
35
+ - Default: `false`
35
36
 
36
37
  ### `label`: `string`
37
38
 
@@ -58,18 +59,19 @@ A callback to take action when this item is selected in the `ToolsPanel` menu.
58
59
 
59
60
  - Required: No
60
61
 
61
- ### `panelId`: `string`
62
+ ### `panelId`: `string | null`
62
63
 
63
64
  Panel items will ensure they are only registering with their intended panel by
64
- comparing the `panelId` props set on both the item and the panel itself. This
65
+ comparing the `panelId` props set on both the item and the panel itself, or if the `panelId` is explicitly `null`. This
65
66
  allows items to be injected from a shared source.
66
67
 
67
68
  - Required: No
68
69
 
69
- ### `resetAllFilter`: `() => void`
70
+ ### `resetAllFilter`: `( attributes?: any ) => any`
70
71
 
71
72
  A `ToolsPanel` will collect each item's `resetAllFilter` and pass an array of
72
73
  these functions through to the panel's `resetAll` callback. They can then be
73
74
  iterated over to perform additional tasks.
74
75
 
75
76
  - Required: No
77
+ - Default: `() => {}`
@@ -13,7 +13,7 @@ import type { ToolsPanelItemProps } from '../types';
13
13
 
14
14
  // This wraps controls to be conditionally displayed within a tools panel. It
15
15
  // prevents props being applied to HTML elements that would make them invalid.
16
- const ToolsPanelItem = (
16
+ const UnconnectedToolsPanelItem = (
17
17
  props: WordPressComponentProps< ToolsPanelItemProps, 'div' >,
18
18
  forwardedRef: ForwardedRef< any >
19
19
  ) => {
@@ -37,9 +37,9 @@ const ToolsPanelItem = (
37
37
  );
38
38
  };
39
39
 
40
- const ConnectedToolsPanelItem = contextConnect(
41
- ToolsPanelItem,
40
+ export const ToolsPanelItem = contextConnect(
41
+ UnconnectedToolsPanelItem,
42
42
  'ToolsPanelItem'
43
43
  );
44
44
 
45
- export default ConnectedToolsPanelItem;
45
+ export default ToolsPanelItem;
@@ -13,16 +13,18 @@ import { useContextSystem, WordPressComponentProps } from '../../ui/context';
13
13
  import { useCx } from '../../utils/hooks/use-cx';
14
14
  import type { ToolsPanelItemProps } from '../types';
15
15
 
16
+ const noop = () => {};
17
+
16
18
  export function useToolsPanelItem(
17
19
  props: WordPressComponentProps< ToolsPanelItemProps, 'div' >
18
20
  ) {
19
21
  const {
20
22
  className,
21
23
  hasValue,
22
- isShownByDefault,
24
+ isShownByDefault = false,
23
25
  label,
24
26
  panelId,
25
- resetAllFilter,
27
+ resetAllFilter = noop,
26
28
  onDeselect,
27
29
  onSelect,
28
30
  ...otherProps
@@ -86,30 +88,40 @@ export function useToolsPanelItem(
86
88
  deregisterPanelItem,
87
89
  ] );
88
90
 
91
+ // Note: `label` is used as a key when building menu item state in
92
+ // `ToolsPanel`.
93
+ const menuGroup = isShownByDefault ? 'default' : 'optional';
94
+ const isMenuItemChecked = menuItems?.[ menuGroup ]?.[ label ];
95
+ const wasMenuItemChecked = usePrevious( isMenuItemChecked );
96
+ const isRegistered = menuItems?.[ menuGroup ]?.[ label ] !== undefined;
97
+
89
98
  const isValueSet = hasValue();
90
99
  const wasValueSet = usePrevious( isValueSet );
91
-
92
- // If this item represents a default control it will need to notify the
93
- // panel when a custom value has been set.
100
+ const newValueSet = isValueSet && ! wasValueSet;
101
+
102
+ // Notify the panel when an item's value has been set.
103
+ //
104
+ // 1. For default controls, this is so "reset" appears beside its menu item.
105
+ // 2. For optional controls, when the panel ID is `null`, it allows the
106
+ // panel to ensure the item is toggled on for display in the menu, given the
107
+ // value has been set external to the control.
94
108
  useEffect( () => {
95
- if ( isShownByDefault && isValueSet && ! wasValueSet ) {
96
- flagItemCustomization( label );
109
+ if ( ! newValueSet ) {
110
+ return;
111
+ }
112
+
113
+ if ( isShownByDefault || currentPanelId === null ) {
114
+ flagItemCustomization( label, menuGroup );
97
115
  }
98
116
  }, [
99
- isValueSet,
100
- wasValueSet,
117
+ currentPanelId,
118
+ newValueSet,
101
119
  isShownByDefault,
120
+ menuGroup,
102
121
  label,
103
122
  flagItemCustomization,
104
123
  ] );
105
124
 
106
- // Note: `label` is used as a key when building menu item state in
107
- // `ToolsPanel`.
108
- const menuGroup = isShownByDefault ? 'default' : 'optional';
109
- const isMenuItemChecked = menuItems?.[ menuGroup ]?.[ label ];
110
- const wasMenuItemChecked = usePrevious( isMenuItemChecked );
111
- const isRegistered = menuItems?.[ menuGroup ]?.[ label ] !== undefined;
112
-
113
125
  // Determine if the panel item's corresponding menu is being toggled and
114
126
  // trigger appropriate callback if it is.
115
127
  useEffect( () => {
@@ -3,7 +3,12 @@
3
3
  */
4
4
  import type { ReactNode } from 'react';
5
5
 
6
- type ResetAllFilter = () => void;
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { HeadingSize } from '../heading/types';
10
+
11
+ type ResetAllFilter = ( attributes?: any ) => any;
7
12
  type ResetAll = ( filters?: ResetAllFilter[] ) => void;
8
13
 
9
14
  export type ToolsPanelProps = {
@@ -14,8 +19,16 @@ export type ToolsPanelProps = {
14
19
  /**
15
20
  * Flags that the items in this ToolsPanel will be contained within an inner
16
21
  * wrapper element allowing the panel to lay them out accordingly.
22
+ *
23
+ * @default false
24
+ */
25
+ hasInnerWrapper?: boolean;
26
+ /**
27
+ * The heading level of the panel's header.
28
+ *
29
+ * @default 2
17
30
  */
18
- hasInnerWrapper: boolean;
31
+ headingLevel?: HeadingSize;
19
32
  /**
20
33
  * Text to be displayed within the panel's header and as the `aria-label`
21
34
  * for the panel's dropdown menu.
@@ -23,20 +36,24 @@ export type ToolsPanelProps = {
23
36
  label: string;
24
37
  /**
25
38
  * If a `panelId` is set, it is passed through the `ToolsPanelContext` and
26
- * used to restrict panel items. Only items with a matching `panelId` will
27
- * be able to register themselves with this panel.
39
+ * used to restrict panel items. When a `panelId` is set, items can only
40
+ * register themselves if the `panelId` is explicitly `null` or the item's
41
+ * `panelId` matches exactly.
28
42
  */
29
- panelId: string;
43
+ panelId?: string | null;
30
44
  /**
31
- * A function to call when the `Reset all` menu option is selected. This is
32
- * passed through to the panel's header component.
45
+ * A function to call when the `Reset all` menu option is selected. As an
46
+ * argument, it receives an array containing the `resetAllFilter` callbacks
47
+ * of all the valid registered `ToolsPanelItems`.
33
48
  */
34
49
  resetAll: ResetAll;
35
50
  /**
36
51
  * Advises the `ToolsPanel` that its child `ToolsPanelItem`s should render
37
52
  * placeholder content instead of null when they are toggled off and hidden.
53
+ *
54
+ * @default false
38
55
  */
39
- shouldRenderPlaceholderItems: boolean;
56
+ shouldRenderPlaceholderItems?: boolean;
40
57
  /**
41
58
  * Experimental prop allowing for a custom CSS class to be applied to the
42
59
  * first visible `ToolsPanelItem` within the `ToolsPanel`.
@@ -50,6 +67,12 @@ export type ToolsPanelProps = {
50
67
  };
51
68
 
52
69
  export type ToolsPanelHeaderProps = {
70
+ /**
71
+ * The heading level of the panel's header.
72
+ *
73
+ * @default 2
74
+ */
75
+ headingLevel?: HeadingSize;
53
76
  /**
54
77
  * Text to be displayed within the panel header. It is also passed along as
55
78
  * the `label` for the panel header's `DropdownMenu`.
@@ -79,8 +102,10 @@ export type ToolsPanelItem = {
79
102
  * This prop identifies the current item as being displayed by default. This
80
103
  * means it will show regardless of whether it has a value set or is toggled
81
104
  * on in the panel's menu.
105
+ *
106
+ * @default false
82
107
  */
83
- isShownByDefault: boolean;
108
+ isShownByDefault?: boolean;
84
109
  /**
85
110
  * The supplied label is dual purpose. It is used as:
86
111
  * 1. the human-readable label for the panel's dropdown menu
@@ -91,17 +116,20 @@ export type ToolsPanelItem = {
91
116
  */
92
117
  label: string;
93
118
  /**
94
- * Panel items will ensure they are only registering with their intended
95
- * panel by comparing the `panelId` props set on both the item and the panel
96
- * itself. This allows items to be injected from a shared source.
119
+ * Panel items will ensure they are only registering with their intended panel
120
+ * by comparing the `panelId` props set on both the item and the panel itself,
121
+ * or if the `panelId` is explicitly `null`. This allows items to be injected
122
+ * from a shared source.
97
123
  */
98
- panelId: string;
124
+ panelId?: string | null;
99
125
  /**
100
126
  * A `ToolsPanel` will collect each item's `resetAllFilter` and pass an
101
127
  * array of these functions through to the panel's `resetAll` callback. They
102
128
  * can then be iterated over to perform additional tasks.
129
+ *
130
+ * @default noop
103
131
  */
104
- resetAllFilter: ResetAllFilter;
132
+ resetAllFilter?: ResetAllFilter;
105
133
  };
106
134
 
107
135
  export type ToolsPanelItemProps = ToolsPanelItem & {
@@ -128,7 +156,7 @@ export type ToolsPanelMenuItems = {
128
156
  };
129
157
 
130
158
  export type ToolsPanelContext = {
131
- panelId?: string;
159
+ panelId?: string | null;
132
160
  menuItems: ToolsPanelMenuItems;
133
161
  hasMenuItems: boolean;
134
162
  registerPanelItem: ( item: ToolsPanelItem ) => void;
@@ -10,7 +10,7 @@ This feature is still experimental. “Experimental” means this is an early im
10
10
 
11
11
  ## Development guidelines
12
12
 
13
- `TreeGrid`, `TreeGridRow`, and `TreeGridCell` are components used to create a tree hierarchy. They're not visually styled components, but instead help with adding keyboard navigation and roving tab index behaviors to tree grid structures.
13
+ `TreeGrid`, `TreeGridRow`, and `TreeGridCell` are components used to create a tree hierarchy. They're not visually styled components, but instead help with adding keyboard navigation and roving tabindex behaviors to tree grid structures.
14
14
 
15
15
  A tree grid is a hierarchical 2 dimensional UI component, for example it could be used to implement a file system browser.
16
16
 
@@ -31,69 +31,36 @@ function TreeMenu() {
31
31
  <TreeGridRow level={ 1 } positionInSet={ 1 } setSize={ 2 }>
32
32
  <TreeGridCell>
33
33
  { ( props ) => (
34
- <Button onClick={ onSelect } { ...props }>
35
- Select
36
- </Button>
34
+ <Button onClick={ onSelect } { ...props }>Select</Button>
37
35
  ) }
38
36
  </TreeGridCell>
39
37
  <TreeGridCell>
40
38
  { ( props ) => (
41
- <Button onClick={ onMoveUp } { ...props }>
42
- Move Up
43
- </Button>
44
- ) }
45
- </TreeGridCell>
46
- <TreeGridCell>
47
- { ( props ) => (
48
- <Button onClick={ onMoveDown } { ...props }>
49
- Move Down
50
- </Button>
39
+ <Button onClick={ onMove } { ...props }>Move</Button>
51
40
  ) }
52
41
  </TreeGridCell>
53
42
  </TreeGridRow>
54
43
  <TreeGridRow level={ 1 } positionInSet={ 2 } setSize={ 2 }>
55
44
  <TreeGridCell>
56
45
  { ( props ) => (
57
- <Button onClick={ onSelect } { ...props }>
58
- Select
59
- </Button>
60
- ) }
61
- </TreeGridCell>
62
- <TreeGridCell>
63
- { ( props ) => (
64
- <Button onClick={ onMoveUp } { ...props }>
65
- Move Up
66
- </Button>
46
+ <Button onClick={ onSelect } { ...props }>Select</Button>
67
47
  ) }
68
48
  </TreeGridCell>
69
49
  <TreeGridCell>
70
50
  { ( props ) => (
71
- <Button onClick={ onMoveDown } { ...props }>
72
- Move Down
73
- </Button>
51
+ <Button onClick={ onMove } { ...props }>Move</Button>
74
52
  ) }
75
53
  </TreeGridCell>
76
54
  </TreeGridRow>
77
55
  <TreeGridRow level={ 2 } positionInSet={ 1 } setSize={ 1 }>
78
56
  <TreeGridCell>
79
57
  { ( props ) => (
80
- <Button onClick={ onSelect } { ...props }>
81
- Select
82
- </Button>
83
- ) }
84
- </TreeGridCell>
85
- <TreeGridCell>
86
- { ( props ) => (
87
- <Button onClick={ onMoveUp } { ...props }>
88
- Move Up
89
- </Button>
58
+ <Button onClick={ onSelect } { ...props }>Select</Button>
90
59
  ) }
91
60
  </TreeGridCell>
92
61
  <TreeGridCell>
93
62
  { ( props ) => (
94
- <Button onClick={ onMoveDown } { ...props }>
95
- Move Down
96
- </Button>
63
+ <Button onClick={ onMove } { ...props }>Move</Button>
97
64
  ) }
98
65
  </TreeGridCell>
99
66
  </TreeGridRow>
@@ -112,27 +79,24 @@ Aside from the documented callback functions, any props specified will be passed
112
79
 
113
80
  `TreeGrid` should always have children.
114
81
 
115
- ###### onFocusRow( event: Event, startRow: HTMLElement, destinationRow: HTMLElement )
82
+ ###### `onFocusRow`: `( event: KeyboardEvent, startRow: HTMLElement, destinationRow: HTMLElement ) => void`
116
83
 
117
84
  Callback that fires when focus is shifted from one row to another via the Up and Down keys. Callback is also fired on Home and End keys which move focus from the beginning row to the end row.
118
85
  The callback is passed the event, the start row element that the focus was on originally, and
119
86
  the destination row element after the focus has moved.
120
87
 
121
- - Type: `Function`
122
88
  - Required: No
123
89
 
124
- ###### onCollapseRow( row: HTMLElement )
90
+ ###### `onCollapseRow`: `( row: HTMLElement ) => void`
125
91
 
126
92
  A callback that passes in the row element to be collapsed.
127
93
 
128
- - Type: `Function`
129
94
  - Required: No
130
95
 
131
- ###### onExpandRow( row: HTMLElement )
96
+ ###### `onExpandRow`: `( row: HTMLElement ) => void`
132
97
 
133
98
  A callback that passes in the row element to be expanded.
134
99
 
135
- - Type: `Function`
136
100
  - Required: No
137
101
 
138
102
  #### TreeGridRow
@@ -141,32 +105,28 @@ A callback that passes in the row element to be expanded.
141
105
 
142
106
  Additional props other than those specified below will be passed to the `tr` element rendered by `TreeGridRow`, so for example, it is possible to also set a `className` on a row.
143
107
 
144
- ###### level
108
+ ###### `level`: `number`
145
109
 
146
110
  An integer value designating the level in the hierarchical tree structure. Counting starts at 1. A value of `1` indicates the root level of the structure.
147
111
 
148
- - Type: `Number`
149
112
  - Required: Yes
150
113
 
151
- ###### positionInSet
114
+ ###### `positionInSet`: `number`
152
115
 
153
116
  An integer value that represents the position in the set. A set is the count of elements at a specific level. Counting starts at 1.
154
117
 
155
- - Type: `Number`
156
118
  - Required: Yes
157
119
 
158
- ###### setSize
120
+ ###### `setSize`: `number`
159
121
 
160
- An integer value that represents the total number of items in the set ... that is the total number of items at this specific level of the hierarchy.
122
+ An integer value that represents the total number of items in the set, at this specific level of the hierarchy.
161
123
 
162
- - Type: `Number`
163
124
  - Required: Yes
164
125
 
165
- ###### isExpanded
126
+ ###### `isExpanded`: `boolean`
166
127
 
167
128
  An optional value that designates whether a row is expanded or collapsed. Currently this value only sets the correct aria-expanded property on a row, it has no other built-in behavior.
168
129
 
169
- - Type: `Boolean`
170
130
  - Required: No
171
131
 
172
132
  ### TreeGridCell
@@ -182,14 +142,14 @@ An optional value that designates whether a row is expanded or collapsed. Curren
182
142
  ```jsx
183
143
  <TreeGridCell>
184
144
  { ( props ) => (
185
- <Button onClick={ onMoveDown } { ...props }>
186
- Move Down
145
+ <Button onClick={ doSomething } { ...props }>
146
+ Do something
187
147
  </Button>
188
148
  ) }
189
149
  </TreeGridCell>
190
150
  ```
191
151
 
192
- Props passed as an argument to the render prop must be passed to the child focusable component/element within the cell. If a component is used, it must correctly handle the `onFocus`, `tabIndex`, and `ref` props, passing these to the element it renders. These props are used to handle the roving tab index functionality of the tree grid.
152
+ Props passed as an argument to the render prop must be passed to the child focusable component/element within the cell. If a component is used, it must correctly handle the `onFocus`, `tabIndex`, and `ref` props, passing these to the element it renders. These props are used to handle the roving tabindex functionality of the tree grid.
193
153
 
194
154
  ## Related components
195
155
 
@@ -0,0 +1,41 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { forwardRef } from '@wordpress/element';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import TreeGridItem from './item';
10
+ import type { WordPressComponentProps } from '../ui/context';
11
+ import type { TreeGridCellProps } from './types';
12
+
13
+ function UnforwardedTreeGridCell(
14
+ {
15
+ children,
16
+ withoutGridItem = false,
17
+ ...props
18
+ }: WordPressComponentProps< TreeGridCellProps, 'td', false >,
19
+ ref: React.ForwardedRef< any >
20
+ ) {
21
+ return (
22
+ <td { ...props } role="gridcell">
23
+ { withoutGridItem ? (
24
+ <>{ children }</>
25
+ ) : (
26
+ <TreeGridItem ref={ ref }>{ children }</TreeGridItem>
27
+ ) }
28
+ </td>
29
+ );
30
+ }
31
+
32
+ /**
33
+ * `TreeGridCell` is used to create a tree hierarchy.
34
+ * It is not a visually styled component, but instead helps with adding
35
+ * keyboard navigation and roving tab index behaviors to tree grid structures.
36
+ *
37
+ * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}
38
+ */
39
+ export const TreeGridCell = forwardRef( UnforwardedTreeGridCell );
40
+
41
+ export default TreeGridCell;