@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
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
+ import type { WordPressComponentProps } from '../ui/context';
4
5
  import {
5
6
  Root,
6
7
  Viewbox,
@@ -9,6 +10,7 @@ import {
9
10
  BottomStroke,
10
11
  LeftStroke,
11
12
  } from './styles/box-control-icon-styles';
13
+ import type { BoxControlIconProps, BoxControlProps } from './types';
12
14
 
13
15
  const BASE_ICON_SIZE = 24;
14
16
 
@@ -17,11 +19,14 @@ export default function BoxControlIcon( {
17
19
  side = 'all',
18
20
  sides,
19
21
  ...props
20
- } ) {
21
- const isSideDisabled = ( value ) =>
22
- sides?.length && ! sides.includes( value );
22
+ }: WordPressComponentProps< BoxControlIconProps, 'span' > ) {
23
+ const isSideDisabled = (
24
+ value: NonNullable< BoxControlProps[ 'sides' ] >[ number ]
25
+ ) => sides?.length && ! sides.includes( value );
23
26
 
24
- const hasSide = ( value ) => {
27
+ const hasSide = (
28
+ value: NonNullable< BoxControlProps[ 'sides' ] >[ number ]
29
+ ) => {
25
30
  if ( isSideDisabled( value ) ) {
26
31
  return false;
27
32
  }
@@ -29,6 +29,11 @@ import {
29
29
  isValuesDefined,
30
30
  } from './utils';
31
31
  import { useControlledState } from '../utils/hooks';
32
+ import type {
33
+ BoxControlIconProps,
34
+ BoxControlProps,
35
+ BoxControlValue,
36
+ } from './types';
32
37
 
33
38
  const defaultInputProps = {
34
39
  min: 0,
@@ -36,12 +41,38 @@ const defaultInputProps = {
36
41
 
37
42
  const noop = () => {};
38
43
 
39
- function useUniqueId( idProp ) {
44
+ function useUniqueId( idProp?: string ) {
40
45
  const instanceId = useInstanceId( BoxControl, 'inspector-box-control' );
41
46
 
42
47
  return idProp || instanceId;
43
48
  }
44
- export default function BoxControl( {
49
+
50
+ /**
51
+ * BoxControl components let users set values for Top, Right, Bottom, and Left.
52
+ * This can be used as an input control for values like `padding` or `margin`.
53
+ *
54
+ * ```jsx
55
+ * import { __experimentalBoxControl as BoxControl } from '@wordpress/components';
56
+ * import { useState } from '@wordpress/element';
57
+ *
58
+ * const Example = () => {
59
+ * const [ values, setValues ] = useState( {
60
+ * top: '50px',
61
+ * left: '10%',
62
+ * right: '10%',
63
+ * bottom: '50px',
64
+ * } );
65
+ *
66
+ * return (
67
+ * <BoxControl
68
+ * values={ values }
69
+ * onChange={ ( nextValues ) => setValues( nextValues ) }
70
+ * />
71
+ * );
72
+ * };
73
+ * ```
74
+ */
75
+ function BoxControl( {
45
76
  id: idProp,
46
77
  inputProps = defaultInputProps,
47
78
  onChange = noop,
@@ -54,7 +85,7 @@ export default function BoxControl( {
54
85
  resetValues = DEFAULT_VALUES,
55
86
  onMouseOver,
56
87
  onMouseOut,
57
- } ) {
88
+ }: BoxControlProps ) {
58
89
  const [ values, setValues ] = useControlledState( valuesProp, {
59
90
  fallback: DEFAULT_VALUES,
60
91
  } );
@@ -67,14 +98,14 @@ export default function BoxControl( {
67
98
  ! hasInitialValue || ! isValuesMixed( inputValues ) || hasOneSide
68
99
  );
69
100
 
70
- const [ side, setSide ] = useState(
101
+ const [ side, setSide ] = useState< BoxControlIconProps[ 'side' ] >(
71
102
  getInitialSide( isLinked, splitOnAxis )
72
103
  );
73
104
 
74
105
  // Tracking selected units via internal state allows filtering of CSS unit
75
106
  // only values from being saved while maintaining preexisting unit selection
76
107
  // behaviour. Filtering CSS only values prevents invalid style values.
77
- const [ selectedUnits, setSelectedUnits ] = useState( {
108
+ const [ selectedUnits, setSelectedUnits ] = useState< BoxControlValue >( {
78
109
  top: parseQuantityAndUnitFromRawValue( valuesProp?.top )[ 1 ],
79
110
  right: parseQuantityAndUnitFromRawValue( valuesProp?.right )[ 1 ],
80
111
  bottom: parseQuantityAndUnitFromRawValue( valuesProp?.bottom )[ 1 ],
@@ -89,11 +120,14 @@ export default function BoxControl( {
89
120
  setSide( getInitialSide( ! isLinked, splitOnAxis ) );
90
121
  };
91
122
 
92
- const handleOnFocus = ( event, { side: nextSide } ) => {
123
+ const handleOnFocus = (
124
+ _event: React.FocusEvent< HTMLInputElement >,
125
+ { side: nextSide }: { side: typeof side }
126
+ ) => {
93
127
  setSide( nextSide );
94
128
  };
95
129
 
96
- const handleOnChange = ( nextValues ) => {
130
+ const handleOnChange = ( nextValues: BoxControlValue ) => {
97
131
  onChange( nextValues );
98
132
  setValues( nextValues );
99
133
  setIsDirty( true );
@@ -132,7 +166,7 @@ export default function BoxControl( {
132
166
  <FlexItem>
133
167
  <Button
134
168
  className="component-box-control__reset-button"
135
- isSecondary
169
+ variant="secondary"
136
170
  isSmall
137
171
  onClick={ handleOnReset }
138
172
  disabled={ ! isDirty }
@@ -176,3 +210,4 @@ export default function BoxControl( {
176
210
  }
177
211
 
178
212
  export { applyValueToSides } from './utils';
213
+ export default BoxControl;
@@ -5,6 +5,8 @@ import UnitControl from './unit-control';
5
5
  import { parseQuantityAndUnitFromRawValue } from '../unit-control/utils';
6
6
  import { ALL_SIDES, LABELS } from './utils';
7
7
  import { LayoutContainer, Layout } from './styles/box-control-styles';
8
+ import type { BoxControlInputControlProps, BoxControlValue } from './types';
9
+ import type { UnitControlProps } from '../unit-control/types';
8
10
 
9
11
  const noop = () => {};
10
12
 
@@ -18,29 +20,33 @@ export default function BoxInputControls( {
18
20
  setSelectedUnits,
19
21
  sides,
20
22
  ...props
21
- } ) {
22
- const createHandleOnFocus = ( side ) => ( event ) => {
23
- onFocus( event, { side } );
24
- };
23
+ }: BoxControlInputControlProps ) {
24
+ const createHandleOnFocus =
25
+ ( side: keyof BoxControlValue ) =>
26
+ ( event: React.FocusEvent< HTMLInputElement > ) => {
27
+ onFocus( event, { side } );
28
+ };
25
29
 
26
- const createHandleOnHoverOn = ( side ) => () => {
30
+ const createHandleOnHoverOn = ( side: keyof BoxControlValue ) => () => {
27
31
  onHoverOn( { [ side ]: true } );
28
32
  };
29
33
 
30
- const createHandleOnHoverOff = ( side ) => () => {
34
+ const createHandleOnHoverOff = ( side: keyof BoxControlValue ) => () => {
31
35
  onHoverOff( { [ side ]: false } );
32
36
  };
33
37
 
34
- const handleOnChange = ( nextValues ) => {
38
+ const handleOnChange = ( nextValues: BoxControlValue ) => {
35
39
  onChange( nextValues );
36
40
  };
37
41
 
38
- const createHandleOnChange =
42
+ const createHandleOnChange: (
43
+ side: keyof BoxControlValue
44
+ ) => UnitControlProps[ 'onChange' ] =
39
45
  ( side ) =>
40
46
  ( next, { event } ) => {
41
- const { altKey } = event;
42
47
  const nextValues = { ...values };
43
- const isNumeric = ! isNaN( parseFloat( next ) );
48
+ const isNumeric =
49
+ next !== undefined && ! isNaN( parseFloat( next ) );
44
50
  const nextValue = isNumeric ? next : undefined;
45
51
 
46
52
  nextValues[ side ] = nextValue;
@@ -49,7 +55,10 @@ export default function BoxInputControls( {
49
55
  * Supports changing pair sides. For example, holding the ALT key
50
56
  * when changing the TOP will also update BOTTOM.
51
57
  */
52
- if ( altKey ) {
58
+ // @ts-expect-error - TODO: event.altKey is only present when the change event was
59
+ // triggered by a keyboard event. Should this feature be implemented differently so
60
+ // it also works with drag events?
61
+ if ( event.altKey ) {
53
62
  switch ( side ) {
54
63
  case 'top':
55
64
  nextValues.bottom = nextValue;
@@ -69,11 +78,12 @@ export default function BoxInputControls( {
69
78
  handleOnChange( nextValues );
70
79
  };
71
80
 
72
- const createHandleOnUnitChange = ( side ) => ( next ) => {
73
- const newUnits = { ...selectedUnits };
74
- newUnits[ side ] = next;
75
- setSelectedUnits( newUnits );
76
- };
81
+ const createHandleOnUnitChange =
82
+ ( side: keyof BoxControlValue ) => ( next?: string ) => {
83
+ const newUnits = { ...selectedUnits };
84
+ newUnits[ side ] = next;
85
+ setSelectedUnits( newUnits );
86
+ };
77
87
 
78
88
  // Filter sides if custom configuration provided, maintaining default order.
79
89
  const filteredSides = sides?.length
@@ -10,7 +10,10 @@ import { __ } from '@wordpress/i18n';
10
10
  import Button from '../button';
11
11
  import Tooltip from '../tooltip';
12
12
 
13
- export default function LinkedButton( { isLinked, ...props } ) {
13
+ export default function LinkedButton( {
14
+ isLinked,
15
+ ...props
16
+ }: { isLinked?: boolean } & React.ComponentProps< typeof Button > ) {
14
17
  const label = isLinked ? __( 'Unlink sides' ) : __( 'Link sides' );
15
18
 
16
19
  return (
@@ -21,7 +21,7 @@ export const Viewbox = styled.span`
21
21
  height: 100%;
22
22
  `;
23
23
 
24
- const strokeFocus = ( { isFocused } ) => {
24
+ const strokeFocus = ( { isFocused }: { isFocused: boolean } ) => {
25
25
  return css( {
26
26
  backgroundColor: 'currentColor',
27
27
  opacity: isFocused ? 1 : 0.3,
@@ -9,6 +9,7 @@ import styled from '@emotion/styled';
9
9
  import { Flex } from '../../flex';
10
10
  import BaseUnitControl from '../../unit-control';
11
11
  import { rtl } from '../../utils';
12
+ import type { BoxUnitControlProps } from '../types';
12
13
 
13
14
  export const Root = styled.div`
14
15
  box-sizing: border-box;
@@ -43,7 +44,11 @@ export const Layout = styled( Flex )`
43
44
  justify-content: flex-start;
44
45
  `;
45
46
 
46
- const unitControlBorderRadiusStyles = ( { isFirst, isLast, isOnly } ) => {
47
+ const unitControlBorderRadiusStyles = ( {
48
+ isFirst,
49
+ isLast,
50
+ isOnly,
51
+ }: Pick< BoxUnitControlProps, 'isFirst' | 'isLast' | 'isOnly' > ) => {
47
52
  if ( isFirst ) {
48
53
  return rtl( { borderTopRightRadius: 0, borderBottomRightRadius: 0 } )();
49
54
  }
@@ -59,7 +64,10 @@ const unitControlBorderRadiusStyles = ( { isFirst, isLast, isOnly } ) => {
59
64
  } );
60
65
  };
61
66
 
62
- const unitControlMarginStyles = ( { isFirst, isOnly } ) => {
67
+ const unitControlMarginStyles = ( {
68
+ isFirst,
69
+ isOnly,
70
+ }: Pick< BoxUnitControlProps, 'isFirst' | 'isOnly' > ) => {
63
71
  const marginLeft = isFirst || isOnly ? 0 : -1;
64
72
 
65
73
  return rtl( { marginLeft } )();
@@ -9,7 +9,11 @@ import styled from '@emotion/styled';
9
9
  */
10
10
  import { COLORS, rtl } from '../../utils';
11
11
 
12
- const containerPositionStyles = ( { isPositionAbsolute } ) => {
12
+ const containerPositionStyles = ( {
13
+ isPositionAbsolute,
14
+ }: {
15
+ isPositionAbsolute: boolean;
16
+ } ) => {
13
17
  if ( ! isPositionAbsolute ) return '';
14
18
 
15
19
  return css`
@@ -39,7 +43,7 @@ export const Side = styled.div`
39
43
  transition: opacity 120ms linear;
40
44
  z-index: 1;
41
45
 
42
- ${ ( { isActive } ) =>
46
+ ${ ( { isActive }: { isActive: boolean } ) =>
43
47
  isActive &&
44
48
  `
45
49
  opacity: 0.3;
@@ -12,10 +12,11 @@ import { useState } from '@wordpress/element';
12
12
  /**
13
13
  * Internal dependencies
14
14
  */
15
- import BoxControl from '../';
15
+ import BoxControl from '..';
16
+ import type { BoxControlProps, BoxControlValue } from '../types';
16
17
 
17
- const Example = ( extraProps ) => {
18
- const [ state, setState ] = useState();
18
+ const Example = ( extraProps: Omit< BoxControlProps, 'onChange' > ) => {
19
+ const [ state, setState ] = useState< BoxControlValue >();
19
20
 
20
21
  return (
21
22
  <BoxControl
@@ -29,7 +30,7 @@ const Example = ( extraProps ) => {
29
30
  describe( 'BoxControl', () => {
30
31
  describe( 'Basic rendering', () => {
31
32
  it( 'should render a box control input', () => {
32
- render( <BoxControl /> );
33
+ render( <BoxControl onChange={ () => {} } /> );
33
34
 
34
35
  expect(
35
36
  screen.getByRole( 'textbox', { name: 'Box Control' } )
@@ -39,7 +40,7 @@ describe( 'BoxControl', () => {
39
40
  it( 'should update values when interacting with input', async () => {
40
41
  const user = userEvent.setup();
41
42
 
42
- render( <BoxControl /> );
43
+ render( <BoxControl onChange={ () => {} } /> );
43
44
 
44
45
  const input = screen.getByRole( 'textbox', {
45
46
  name: 'Box Control',
@@ -61,7 +62,7 @@ describe( 'BoxControl', () => {
61
62
  it( 'should reset values when clicking Reset', async () => {
62
63
  const user = userEvent.setup();
63
64
 
64
- render( <BoxControl /> );
65
+ render( <BoxControl onChange={ () => {} } /> );
65
66
 
66
67
  const input = screen.getByRole( 'textbox', {
67
68
  name: 'Box Control',
@@ -238,7 +239,7 @@ describe( 'BoxControl', () => {
238
239
  const user = userEvent.setup();
239
240
 
240
241
  // Render control.
241
- render( <BoxControl /> );
242
+ render( <BoxControl onChange={ () => {} } /> );
242
243
 
243
244
  // Make unit selection on all input control.
244
245
  await user.selectOptions(
@@ -270,7 +271,7 @@ describe( 'BoxControl', () => {
270
271
  const user = userEvent.setup();
271
272
 
272
273
  // Render control.
273
- const { rerender } = render( <BoxControl /> );
274
+ const { rerender } = render( <BoxControl onChange={ () => {} } /> );
274
275
 
275
276
  // Make unit selection on all input control.
276
277
  await user.selectOptions(
@@ -298,7 +299,9 @@ describe( 'BoxControl', () => {
298
299
  } );
299
300
 
300
301
  // Rerender with individual side value & confirm unit is selected.
301
- rerender( <BoxControl values={ { top: '2.5em' } } /> );
302
+ rerender(
303
+ <BoxControl values={ { top: '2.5em' } } onChange={ () => {} } />
304
+ );
302
305
 
303
306
  const rerenderedControls = screen.getAllByRole( 'combobox', {
304
307
  name: 'Select unit',
@@ -0,0 +1,121 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { useHover } from '@use-gesture/react';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { UnitControlProps } from '../unit-control/types';
10
+ import type { LABELS } from './utils';
11
+
12
+ export type BoxControlValue = {
13
+ top?: string;
14
+ right?: string;
15
+ bottom?: string;
16
+ left?: string;
17
+ };
18
+
19
+ type UnitControlPassthroughProps = Omit<
20
+ UnitControlProps,
21
+ 'label' | 'onChange' | 'onFocus' | 'onMouseOver' | 'onMouseOut' | 'units'
22
+ >;
23
+
24
+ export type BoxControlProps = Pick<
25
+ UnitControlProps,
26
+ 'onMouseOver' | 'onMouseOut' | 'units'
27
+ > & {
28
+ /**
29
+ * If this property is true, a button to reset the box control is rendered.
30
+ *
31
+ * @default true
32
+ */
33
+ allowReset?: boolean;
34
+ /**
35
+ * The id to use as a base for the unique HTML id attribute of the control.
36
+ */
37
+ id?: string;
38
+ /**
39
+ * Props for the internal `UnitControl` components.
40
+ *
41
+ * @default `{ min: 0 }`
42
+ */
43
+ inputProps?: UnitControlPassthroughProps;
44
+ /**
45
+ * Heading label for the control.
46
+ *
47
+ * @default `__( 'Box Control' )`
48
+ */
49
+ label?: string;
50
+ /**
51
+ * A callback function when an input value changes.
52
+ */
53
+ onChange: ( next: BoxControlValue ) => void;
54
+ /**
55
+ * The `top`, `right`, `bottom`, and `left` box dimension values to use when the control is reset.
56
+ *
57
+ * @default `{ top: undefined, right: undefined, bottom: undefined, left: undefined }`
58
+ */
59
+ resetValues?: BoxControlValue;
60
+ /**
61
+ * Collection of sides to allow control of. If omitted or empty, all sides will be available.
62
+ */
63
+ sides?: readonly ( keyof BoxControlValue | 'horizontal' | 'vertical' )[];
64
+ /**
65
+ * If this property is true, when the box control is unlinked, vertical and horizontal controls
66
+ * can be used instead of updating individual sides.
67
+ *
68
+ * @default false
69
+ */
70
+ splitOnAxis?: boolean;
71
+ /**
72
+ * The current values of the control, expressed as an object of `top`, `right`, `bottom`, and `left` values.
73
+ */
74
+ values?: BoxControlValue;
75
+ };
76
+
77
+ export type BoxControlInputControlProps = UnitControlPassthroughProps & {
78
+ onChange?: ( nextValues: BoxControlValue ) => void;
79
+ onFocus?: (
80
+ _event: React.FocusEvent< HTMLInputElement >,
81
+ { side }: { side: keyof typeof LABELS }
82
+ ) => void;
83
+ onHoverOff?: (
84
+ sides: Partial< Record< keyof BoxControlValue, boolean > >
85
+ ) => void;
86
+ onHoverOn?: (
87
+ sides: Partial< Record< keyof BoxControlValue, boolean > >
88
+ ) => void;
89
+ selectedUnits: BoxControlValue;
90
+ setSelectedUnits: React.Dispatch< React.SetStateAction< BoxControlValue > >;
91
+ sides: BoxControlProps[ 'sides' ];
92
+ values: BoxControlValue;
93
+ };
94
+
95
+ export type BoxUnitControlProps = UnitControlPassthroughProps &
96
+ Pick< UnitControlProps, 'onChange' | 'onFocus' > & {
97
+ isFirst?: boolean;
98
+ isLast?: boolean;
99
+ isOnly?: boolean;
100
+ label?: string;
101
+ onHoverOff?: (
102
+ event: ReturnType< typeof useHover >[ 'event' ],
103
+ state: Omit< ReturnType< typeof useHover >, 'event' >
104
+ ) => void;
105
+ onHoverOn?: (
106
+ event: ReturnType< typeof useHover >[ 'event' ],
107
+ state: Omit< ReturnType< typeof useHover >, 'event' >
108
+ ) => void;
109
+ };
110
+
111
+ export type BoxControlIconProps = {
112
+ /**
113
+ * @default 24
114
+ */
115
+ size?: number;
116
+ /**
117
+ * @default 'all'
118
+ */
119
+ side?: keyof typeof LABELS;
120
+ sides?: BoxControlProps[ 'sides' ];
121
+ };
@@ -8,6 +8,7 @@ import { useHover } from '@use-gesture/react';
8
8
  */
9
9
  import BaseTooltip from '../tooltip';
10
10
  import { UnitControlWrapper, UnitControl } from './styles/box-control-styles';
11
+ import type { BoxUnitControlProps } from './types';
11
12
 
12
13
  const noop = () => {};
13
14
 
@@ -20,7 +21,7 @@ export default function BoxUnitControl( {
20
21
  label,
21
22
  value,
22
23
  ...props
23
- } ) {
24
+ }: BoxUnitControlProps ) {
24
25
  const bindHoverGesture = useHover( ( { event, ...state } ) => {
25
26
  if ( state.hovering ) {
26
27
  onHoverOn( event, state );
@@ -48,7 +49,13 @@ export default function BoxUnitControl( {
48
49
  );
49
50
  }
50
51
 
51
- function Tooltip( { children, text } ) {
52
+ function Tooltip( {
53
+ children,
54
+ text,
55
+ }: {
56
+ children: JSX.Element;
57
+ text?: string;
58
+ } ) {
52
59
  if ( ! text ) return children;
53
60
 
54
61
  /**