@wordpress/components 29.0.0 → 29.1.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 (469) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/LICENSE.md +1 -1
  3. package/build/badge/index.js +64 -0
  4. package/build/badge/index.js.map +1 -0
  5. package/build/badge/types.js +6 -0
  6. package/build/badge/types.js.map +1 -0
  7. package/build/box-control/index.js +5 -1
  8. package/build/box-control/index.js.map +1 -1
  9. package/build/box-control/input-control.js +90 -29
  10. package/build/box-control/input-control.js.map +1 -1
  11. package/build/box-control/types.js.map +1 -1
  12. package/build/box-control/utils.js +50 -0
  13. package/build/box-control/utils.js.map +1 -1
  14. package/build/button-group/index.js +10 -0
  15. package/build/button-group/index.js.map +1 -1
  16. package/build/button-group/types.js.map +1 -1
  17. package/build/custom-select-control/index.js +3 -5
  18. package/build/custom-select-control/index.js.map +1 -1
  19. package/build/custom-select-control-v2/custom-select.js +2 -3
  20. package/build/custom-select-control-v2/custom-select.js.map +1 -1
  21. package/build/date-time/date/index.js +1 -0
  22. package/build/date-time/date/index.js.map +1 -1
  23. package/build/dimension-control/index.js +1 -0
  24. package/build/dimension-control/index.js.map +1 -1
  25. package/build/font-size-picker/styles.js +9 -9
  26. package/build/font-size-picker/styles.js.map +1 -1
  27. package/build/heading/hook.js +1 -1
  28. package/build/heading/hook.js.map +1 -1
  29. package/build/input-control/index.js +9 -0
  30. package/build/input-control/index.js.map +1 -1
  31. package/build/input-control/types.js.map +1 -1
  32. package/build/menu/checkbox-item.js +2 -0
  33. package/build/menu/checkbox-item.js.map +1 -1
  34. package/build/menu/index.js +25 -94
  35. package/build/menu/index.js.map +1 -1
  36. package/build/menu/item.js +10 -1
  37. package/build/menu/item.js.map +1 -1
  38. package/build/menu/popover.js +89 -0
  39. package/build/menu/popover.js.map +1 -0
  40. package/build/menu/radio-item.js +2 -0
  41. package/build/menu/radio-item.js.map +1 -1
  42. package/build/menu/submenu-trigger-item.js +58 -0
  43. package/build/menu/submenu-trigger-item.js.map +1 -0
  44. package/build/menu/trigger-button.js +45 -0
  45. package/build/menu/trigger-button.js.map +1 -0
  46. package/build/menu/types.js.map +1 -1
  47. package/build/navigation/back-button/index.js +1 -0
  48. package/build/navigation/back-button/index.js.map +1 -1
  49. package/build/navigation/index.js +6 -0
  50. package/build/navigation/index.js.map +1 -1
  51. package/build/navigation/item/index.js +1 -0
  52. package/build/navigation/item/index.js.map +1 -1
  53. package/build/number-control/index.js +1 -0
  54. package/build/number-control/index.js.map +1 -1
  55. package/build/palette-edit/index.js +1 -0
  56. package/build/palette-edit/index.js.map +1 -1
  57. package/build/private-apis.js +3 -1
  58. package/build/private-apis.js.map +1 -1
  59. package/build/radio-group/index.js +6 -0
  60. package/build/radio-group/index.js.map +1 -1
  61. package/build/radio-group/radio.js +2 -3
  62. package/build/radio-group/radio.js.map +1 -1
  63. package/build/range-control/styles/range-control-styles.js +28 -28
  64. package/build/range-control/styles/range-control-styles.js.map +1 -1
  65. package/build/select-control/index.js +9 -0
  66. package/build/select-control/index.js.map +1 -1
  67. package/build/select-control/types.js.map +1 -1
  68. package/build/slot-fill/context.js +4 -3
  69. package/build/slot-fill/context.js.map +1 -1
  70. package/build/slot-fill/fill.js +10 -15
  71. package/build/slot-fill/fill.js.map +1 -1
  72. package/build/slot-fill/provider.js +41 -55
  73. package/build/slot-fill/provider.js.map +1 -1
  74. package/build/slot-fill/slot.js +31 -23
  75. package/build/slot-fill/slot.js.map +1 -1
  76. package/build/slot-fill/types.js.map +1 -1
  77. package/build/tab-panel/index.js +2 -3
  78. package/build/tab-panel/index.js.map +1 -1
  79. package/build/tabs/index.js +21 -4
  80. package/build/tabs/index.js.map +1 -1
  81. package/build/tabs/types.js.map +1 -1
  82. package/build/text/hook.js +6 -6
  83. package/build/text/hook.js.map +1 -1
  84. package/build/text/styles.js +7 -7
  85. package/build/text/styles.js.map +1 -1
  86. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +2 -3
  87. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  88. package/build/tooltip/index.js +2 -3
  89. package/build/tooltip/index.js.map +1 -1
  90. package/build/tree-select/index.js +10 -2
  91. package/build/tree-select/index.js.map +1 -1
  92. package/build/tree-select/types.js.map +1 -1
  93. package/build-module/badge/index.js +57 -0
  94. package/build-module/badge/index.js.map +1 -0
  95. package/build-module/badge/types.js +2 -0
  96. package/build-module/badge/types.js.map +1 -0
  97. package/build-module/box-control/index.js +5 -1
  98. package/build-module/box-control/index.js.map +1 -1
  99. package/build-module/box-control/input-control.js +92 -31
  100. package/build-module/box-control/input-control.js.map +1 -1
  101. package/build-module/box-control/types.js.map +1 -1
  102. package/build-module/box-control/utils.js +47 -0
  103. package/build-module/box-control/utils.js.map +1 -1
  104. package/build-module/button-group/index.js +10 -0
  105. package/build-module/button-group/index.js.map +1 -1
  106. package/build-module/button-group/types.js.map +1 -1
  107. package/build-module/custom-select-control/index.js +3 -5
  108. package/build-module/custom-select-control/index.js.map +1 -1
  109. package/build-module/custom-select-control-v2/custom-select.js +1 -2
  110. package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
  111. package/build-module/date-time/date/index.js +1 -0
  112. package/build-module/date-time/date/index.js.map +1 -1
  113. package/build-module/dimension-control/index.js +1 -0
  114. package/build-module/dimension-control/index.js.map +1 -1
  115. package/build-module/font-size-picker/styles.js +9 -9
  116. package/build-module/font-size-picker/styles.js.map +1 -1
  117. package/build-module/heading/hook.js +1 -1
  118. package/build-module/heading/hook.js.map +1 -1
  119. package/build-module/input-control/index.js +9 -0
  120. package/build-module/input-control/index.js.map +1 -1
  121. package/build-module/input-control/types.js.map +1 -1
  122. package/build-module/menu/checkbox-item.js +2 -0
  123. package/build-module/menu/checkbox-item.js.map +1 -1
  124. package/build-module/menu/index.js +28 -97
  125. package/build-module/menu/index.js.map +1 -1
  126. package/build-module/menu/item.js +10 -1
  127. package/build-module/menu/item.js.map +1 -1
  128. package/build-module/menu/popover.js +81 -0
  129. package/build-module/menu/popover.js.map +1 -0
  130. package/build-module/menu/radio-item.js +2 -0
  131. package/build-module/menu/radio-item.js.map +1 -1
  132. package/build-module/menu/submenu-trigger-item.js +50 -0
  133. package/build-module/menu/submenu-trigger-item.js.map +1 -0
  134. package/build-module/menu/trigger-button.js +37 -0
  135. package/build-module/menu/trigger-button.js.map +1 -0
  136. package/build-module/menu/types.js.map +1 -1
  137. package/build-module/navigation/back-button/index.js +1 -0
  138. package/build-module/navigation/back-button/index.js.map +1 -1
  139. package/build-module/navigation/index.js +6 -0
  140. package/build-module/navigation/index.js.map +1 -1
  141. package/build-module/navigation/item/index.js +1 -0
  142. package/build-module/navigation/item/index.js.map +1 -1
  143. package/build-module/number-control/index.js +1 -0
  144. package/build-module/number-control/index.js.map +1 -1
  145. package/build-module/palette-edit/index.js +1 -0
  146. package/build-module/palette-edit/index.js.map +1 -1
  147. package/build-module/private-apis.js +3 -1
  148. package/build-module/private-apis.js.map +1 -1
  149. package/build-module/radio-group/index.js +6 -0
  150. package/build-module/radio-group/index.js.map +1 -1
  151. package/build-module/radio-group/radio.js +1 -2
  152. package/build-module/radio-group/radio.js.map +1 -1
  153. package/build-module/range-control/styles/range-control-styles.js +28 -28
  154. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  155. package/build-module/select-control/index.js +9 -0
  156. package/build-module/select-control/index.js.map +1 -1
  157. package/build-module/select-control/types.js.map +1 -1
  158. package/build-module/slot-fill/context.js +5 -3
  159. package/build-module/slot-fill/context.js.map +1 -1
  160. package/build-module/slot-fill/fill.js +10 -15
  161. package/build-module/slot-fill/fill.js.map +1 -1
  162. package/build-module/slot-fill/provider.js +41 -55
  163. package/build-module/slot-fill/provider.js.map +1 -1
  164. package/build-module/slot-fill/slot.js +32 -24
  165. package/build-module/slot-fill/slot.js.map +1 -1
  166. package/build-module/slot-fill/types.js.map +1 -1
  167. package/build-module/tab-panel/index.js +1 -2
  168. package/build-module/tab-panel/index.js.map +1 -1
  169. package/build-module/tabs/index.js +21 -4
  170. package/build-module/tabs/index.js.map +1 -1
  171. package/build-module/tabs/types.js.map +1 -1
  172. package/build-module/text/hook.js +6 -6
  173. package/build-module/text/hook.js.map +1 -1
  174. package/build-module/text/styles.js +7 -7
  175. package/build-module/text/styles.js.map +1 -1
  176. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +1 -2
  177. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  178. package/build-module/tooltip/index.js +1 -2
  179. package/build-module/tooltip/index.js.map +1 -1
  180. package/build-module/tree-select/index.js +10 -2
  181. package/build-module/tree-select/index.js.map +1 -1
  182. package/build-module/tree-select/types.js.map +1 -1
  183. package/build-style/style-rtl.css +60 -13
  184. package/build-style/style.css +60 -13
  185. package/build-types/alignment-matrix-control/stories/index.story.d.ts +1 -1
  186. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  187. package/build-types/angle-picker-control/stories/index.story.d.ts +1 -1
  188. package/build-types/animate/stories/index.story.d.ts +7 -7
  189. package/build-types/animate/stories/index.story.d.ts.map +1 -1
  190. package/build-types/badge/index.d.ts +8 -0
  191. package/build-types/badge/index.d.ts.map +1 -0
  192. package/build-types/badge/stories/index.story.d.ts +17 -0
  193. package/build-types/badge/stories/index.story.d.ts.map +1 -0
  194. package/build-types/badge/test/index.d.ts +2 -0
  195. package/build-types/badge/test/index.d.ts.map +1 -0
  196. package/build-types/badge/types.d.ts +13 -0
  197. package/build-types/badge/types.d.ts.map +1 -0
  198. package/build-types/base-control/stories/index.story.d.ts +1 -1
  199. package/build-types/border-box-control/stories/index.story.d.ts +1 -1
  200. package/build-types/border-control/stories/index.story.d.ts +5 -5
  201. package/build-types/box-control/index.d.ts +1 -1
  202. package/build-types/box-control/index.d.ts.map +1 -1
  203. package/build-types/box-control/input-control.d.ts +1 -1
  204. package/build-types/box-control/input-control.d.ts.map +1 -1
  205. package/build-types/box-control/stories/index.story.d.ts +356 -11
  206. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  207. package/build-types/box-control/styles/box-control-styles.d.ts +2 -2
  208. package/build-types/box-control/types.d.ts +17 -0
  209. package/build-types/box-control/types.d.ts.map +1 -1
  210. package/build-types/box-control/utils.d.ts +27 -1
  211. package/build-types/box-control/utils.d.ts.map +1 -1
  212. package/build-types/button/stories/e2e/index.story.d.ts +1 -1
  213. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  214. package/build-types/button/stories/index.story.d.ts +7 -7
  215. package/build-types/button/stories/index.story.d.ts.map +1 -1
  216. package/build-types/button-group/index.d.ts +3 -1
  217. package/build-types/button-group/index.d.ts.map +1 -1
  218. package/build-types/button-group/stories/index.story.d.ts +6 -0
  219. package/build-types/button-group/stories/index.story.d.ts.map +1 -1
  220. package/build-types/button-group/types.d.ts +7 -0
  221. package/build-types/button-group/types.d.ts.map +1 -1
  222. package/build-types/circular-option-picker/stories/index.story.d.ts +5 -5
  223. package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
  224. package/build-types/color-palette/stories/index.story.d.ts +3 -3
  225. package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
  226. package/build-types/color-picker/styles.d.ts +2 -2
  227. package/build-types/color-picker/styles.d.ts.map +1 -1
  228. package/build-types/combobox-control/stories/index.story.d.ts +4 -4
  229. package/build-types/confirm-dialog/stories/index.story.d.ts +2 -2
  230. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
  231. package/build-types/custom-gradient-picker/stories/index.story.d.ts +1 -1
  232. package/build-types/custom-gradient-picker/stories/index.story.d.ts.map +1 -1
  233. package/build-types/custom-select-control/stories/index.story.d.ts +3 -3
  234. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
  235. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  236. package/build-types/custom-select-control-v2/stories/index.story.d.ts +3 -3
  237. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  238. package/build-types/date-time/date/index.d.ts.map +1 -1
  239. package/build-types/date-time/stories/time.story.d.ts +1 -1
  240. package/build-types/date-time/stories/time.story.d.ts.map +1 -1
  241. package/build-types/date-time/time/styles.d.ts +4 -4
  242. package/build-types/dimension-control/index.d.ts.map +1 -1
  243. package/build-types/dimension-control/stories/index.story.d.ts +1 -1
  244. package/build-types/disabled/stories/index.story.d.ts.map +1 -1
  245. package/build-types/drop-zone/stories/index.story.d.ts +1 -1
  246. package/build-types/drop-zone/stories/index.story.d.ts.map +1 -1
  247. package/build-types/duotone-picker/stories/duotone-picker.story.d.ts +1 -1
  248. package/build-types/duotone-picker/stories/duotone-picker.story.d.ts.map +1 -1
  249. package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts +3 -3
  250. package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts.map +1 -1
  251. package/build-types/focal-point-picker/stories/index.story.d.ts +4 -4
  252. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  253. package/build-types/font-size-picker/styles.d.ts.map +1 -1
  254. package/build-types/form-file-upload/stories/index.story.d.ts +5 -5
  255. package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
  256. package/build-types/gradient-picker/stories/index.story.d.ts +3 -3
  257. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  258. package/build-types/guide/stories/index.story.d.ts +1 -1
  259. package/build-types/guide/stories/index.story.d.ts.map +1 -1
  260. package/build-types/icon/stories/index.story.d.ts +4 -4
  261. package/build-types/icon/stories/index.story.d.ts.map +1 -1
  262. package/build-types/input-control/index.d.ts +1 -0
  263. package/build-types/input-control/index.d.ts.map +1 -1
  264. package/build-types/input-control/stories/index.story.d.ts +7 -7
  265. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  266. package/build-types/input-control/types.d.ts +11 -2
  267. package/build-types/input-control/types.d.ts.map +1 -1
  268. package/build-types/keyboard-shortcuts/stories/index.story.d.ts +1 -1
  269. package/build-types/keyboard-shortcuts/stories/index.story.d.ts.map +1 -1
  270. package/build-types/menu/checkbox-item.d.ts.map +1 -1
  271. package/build-types/menu/index.d.ts +10 -1
  272. package/build-types/menu/index.d.ts.map +1 -1
  273. package/build-types/menu/item.d.ts.map +1 -1
  274. package/build-types/menu/popover.d.ts +3 -0
  275. package/build-types/menu/popover.d.ts.map +1 -0
  276. package/build-types/menu/radio-item.d.ts.map +1 -1
  277. package/build-types/menu/stories/index.story.d.ts +9 -9
  278. package/build-types/menu/stories/index.story.d.ts.map +1 -1
  279. package/build-types/menu/submenu-trigger-item.d.ts +3 -0
  280. package/build-types/menu/submenu-trigger-item.d.ts.map +1 -0
  281. package/build-types/menu/trigger-button.d.ts +3 -0
  282. package/build-types/menu/trigger-button.d.ts.map +1 -0
  283. package/build-types/menu/types.d.ts +208 -57
  284. package/build-types/menu/types.d.ts.map +1 -1
  285. package/build-types/menu-group/stories/index.story.d.ts +1 -1
  286. package/build-types/menu-group/stories/index.story.d.ts.map +1 -1
  287. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  288. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  289. package/build-types/navigation/back-button/index.d.ts.map +1 -1
  290. package/build-types/navigation/index.d.ts.map +1 -1
  291. package/build-types/navigation/item/index.d.ts.map +1 -1
  292. package/build-types/navigation/stories/index.story.d.ts +6 -6
  293. package/build-types/navigation/stories/index.story.d.ts.map +1 -1
  294. package/build-types/notice/stories/index.story.d.ts +4 -4
  295. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  296. package/build-types/number-control/index.d.ts +1 -1
  297. package/build-types/number-control/index.d.ts.map +1 -1
  298. package/build-types/number-control/stories/index.story.d.ts +2 -2
  299. package/build-types/palette-edit/index.d.ts.map +1 -1
  300. package/build-types/palette-edit/stories/index.story.d.ts +2 -2
  301. package/build-types/palette-edit/stories/index.story.d.ts.map +1 -1
  302. package/build-types/private-apis.d.ts.map +1 -1
  303. package/build-types/progress-bar/stories/index.story.d.ts +1 -1
  304. package/build-types/progress-bar/stories/index.story.d.ts.map +1 -1
  305. package/build-types/query-controls/stories/index.story.d.ts +1 -1
  306. package/build-types/query-controls/stories/index.story.d.ts.map +1 -1
  307. package/build-types/radio-group/index.d.ts.map +1 -1
  308. package/build-types/radio-group/radio.d.ts.map +1 -1
  309. package/build-types/range-control/index.d.ts +1 -1
  310. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  311. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  312. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  313. package/build-types/responsive-wrapper/stories/index.story.d.ts +1 -1
  314. package/build-types/responsive-wrapper/stories/index.story.d.ts.map +1 -1
  315. package/build-types/sandbox/stories/index.story.d.ts +1 -1
  316. package/build-types/sandbox/stories/index.story.d.ts.map +1 -1
  317. package/build-types/search-control/stories/index.story.d.ts +1 -1
  318. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  319. package/build-types/select-control/index.d.ts +1 -0
  320. package/build-types/select-control/index.d.ts.map +1 -1
  321. package/build-types/select-control/stories/index.story.d.ts +5 -5
  322. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  323. package/build-types/select-control/types.d.ts +1 -1
  324. package/build-types/select-control/types.d.ts.map +1 -1
  325. package/build-types/shortcut/stories/index.story.d.ts +1 -1
  326. package/build-types/shortcut/stories/index.story.d.ts.map +1 -1
  327. package/build-types/slot-fill/context.d.ts.map +1 -1
  328. package/build-types/slot-fill/fill.d.ts.map +1 -1
  329. package/build-types/slot-fill/provider.d.ts.map +1 -1
  330. package/build-types/slot-fill/slot.d.ts.map +1 -1
  331. package/build-types/slot-fill/types.d.ts +13 -11
  332. package/build-types/slot-fill/types.d.ts.map +1 -1
  333. package/build-types/tab-panel/index.d.ts.map +1 -1
  334. package/build-types/tab-panel/stories/index.story.d.ts +4 -4
  335. package/build-types/tab-panel/stories/index.story.d.ts.map +1 -1
  336. package/build-types/tabs/index.d.ts +21 -4
  337. package/build-types/tabs/index.d.ts.map +1 -1
  338. package/build-types/tabs/stories/index.story.d.ts +10 -10
  339. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  340. package/build-types/tabs/types.d.ts +13 -13
  341. package/build-types/tabs/types.d.ts.map +1 -1
  342. package/build-types/text/stories/index.story.d.ts +3 -3
  343. package/build-types/theme/stories/index.story.d.ts +1 -1
  344. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  345. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  346. package/build-types/toolbar/stories/index.story.d.ts +3 -3
  347. package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
  348. package/build-types/tooltip/index.d.ts.map +1 -1
  349. package/build-types/tooltip/stories/index.story.d.ts +1 -1
  350. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  351. package/build-types/tree-grid/stories/index.story.d.ts +1 -1
  352. package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
  353. package/build-types/tree-select/index.d.ts +3 -2
  354. package/build-types/tree-select/index.d.ts.map +1 -1
  355. package/build-types/tree-select/stories/index.story.d.ts +1 -1
  356. package/build-types/tree-select/stories/index.story.d.ts.map +1 -1
  357. package/build-types/tree-select/types.d.ts +5 -1
  358. package/build-types/tree-select/types.d.ts.map +1 -1
  359. package/build-types/unit-control/index.d.ts +1 -1
  360. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  361. package/build-types/v-stack/stories/index.story.d.ts +1 -1
  362. package/package.json +19 -19
  363. package/src/alignment-matrix-control/README.md +16 -15
  364. package/src/angle-picker-control/README.md +10 -9
  365. package/src/badge/README.md +24 -0
  366. package/src/badge/docs-manifest.json +5 -0
  367. package/src/badge/index.tsx +67 -0
  368. package/src/badge/stories/index.story.tsx +54 -0
  369. package/src/badge/styles.scss +49 -0
  370. package/src/badge/test/index.tsx +45 -0
  371. package/src/badge/types.ts +12 -0
  372. package/src/base-control/README.md +22 -21
  373. package/src/box-control/README.md +41 -24
  374. package/src/box-control/index.tsx +4 -0
  375. package/src/box-control/input-control.tsx +142 -40
  376. package/src/box-control/stories/index.story.tsx +12 -0
  377. package/src/box-control/types.ts +18 -0
  378. package/src/box-control/utils.ts +60 -0
  379. package/src/button/README.md +51 -50
  380. package/src/button/style.scss +9 -10
  381. package/src/button/test/index.tsx +9 -2
  382. package/src/button-group/README.md +4 -0
  383. package/src/button-group/index.tsx +11 -1
  384. package/src/button-group/stories/index.story.tsx +8 -1
  385. package/src/button-group/types.ts +7 -0
  386. package/src/custom-select-control/index.tsx +3 -3
  387. package/src/custom-select-control-v2/custom-select.tsx +1 -2
  388. package/src/custom-select-control-v2/stories/index.story.tsx +4 -0
  389. package/src/date-time/date/index.tsx +1 -0
  390. package/src/dimension-control/index.tsx +1 -0
  391. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  392. package/src/disabled/stories/index.story.tsx +1 -0
  393. package/src/drop-zone/stories/index.story.tsx +7 -1
  394. package/src/font-size-picker/styles.ts +1 -0
  395. package/src/form-file-upload/README.md +22 -21
  396. package/src/gradient-picker/README.md +36 -35
  397. package/src/heading/hook.ts +1 -1
  398. package/src/heading/test/__snapshots__/index.tsx.snap +4 -4
  399. package/src/icon/README.md +9 -8
  400. package/src/input-control/README.md +1 -0
  401. package/src/input-control/index.tsx +10 -0
  402. package/src/input-control/stories/index.story.tsx +6 -1
  403. package/src/input-control/test/index.js +9 -3
  404. package/src/input-control/types.ts +11 -2
  405. package/src/menu/checkbox-item.tsx +2 -1
  406. package/src/menu/index.tsx +61 -165
  407. package/src/menu/item.tsx +17 -2
  408. package/src/menu/popover.tsx +103 -0
  409. package/src/menu/radio-item.tsx +2 -1
  410. package/src/menu/stories/index.story.tsx +533 -381
  411. package/src/menu/submenu-trigger-item.tsx +61 -0
  412. package/src/menu/test/index.tsx +266 -182
  413. package/src/menu/trigger-button.tsx +46 -0
  414. package/src/menu/types.ts +210 -63
  415. package/src/modal/stories/index.story.tsx +4 -1
  416. package/src/navigation/back-button/index.tsx +1 -0
  417. package/src/navigation/index.tsx +7 -0
  418. package/src/navigation/item/index.tsx +2 -0
  419. package/src/navigation/test/index.tsx +4 -0
  420. package/src/navigator/test/index.tsx +4 -0
  421. package/src/number-control/index.tsx +1 -0
  422. package/src/palette-edit/index.tsx +1 -0
  423. package/src/panel/stories/index.story.tsx +3 -3
  424. package/src/private-apis.ts +2 -0
  425. package/src/radio-group/index.tsx +12 -1
  426. package/src/radio-group/radio.tsx +1 -2
  427. package/src/range-control/styles/range-control-styles.ts +8 -4
  428. package/src/select-control/README.md +3 -0
  429. package/src/select-control/index.tsx +10 -0
  430. package/src/select-control/stories/index.story.tsx +2 -0
  431. package/src/select-control/test/select-control.tsx +7 -1
  432. package/src/select-control/types.ts +1 -0
  433. package/src/slot-fill/context.ts +5 -3
  434. package/src/slot-fill/fill.ts +10 -15
  435. package/src/slot-fill/provider.tsx +63 -64
  436. package/src/slot-fill/slot.tsx +40 -27
  437. package/src/slot-fill/types.ts +23 -11
  438. package/src/style.scss +1 -0
  439. package/src/tab-panel/index.tsx +1 -2
  440. package/src/tab-panel/stories/index.story.tsx +4 -0
  441. package/src/tabs/README.md +151 -187
  442. package/src/tabs/docs-manifest.json +22 -0
  443. package/src/tabs/index.tsx +21 -4
  444. package/src/tabs/stories/best-practices.mdx +99 -0
  445. package/src/tabs/stories/index.story.tsx +5 -0
  446. package/src/tabs/types.ts +13 -14
  447. package/src/text/hook.ts +2 -2
  448. package/src/text/styles.ts +1 -1
  449. package/src/text/test/__snapshots__/index.tsx.snap +3 -3
  450. package/src/text/test/index.tsx +1 -1
  451. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +2 -2
  452. package/src/toggle-group-control/test/index.tsx +7 -1
  453. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +1 -2
  454. package/src/tooltip/index.tsx +1 -2
  455. package/src/tree-grid/stories/index.story.tsx +2 -0
  456. package/src/tree-select/README.md +144 -28
  457. package/src/tree-select/docs-manifest.json +5 -0
  458. package/src/tree-select/index.tsx +11 -2
  459. package/src/tree-select/stories/index.story.tsx +1 -0
  460. package/src/tree-select/types.ts +8 -1
  461. package/tsconfig.json +0 -3
  462. package/tsconfig.tsbuildinfo +1 -1
  463. package/build/slot-fill/use-slot.js +0 -32
  464. package/build/slot-fill/use-slot.js.map +0 -1
  465. package/build-module/slot-fill/use-slot.js +0 -24
  466. package/build-module/slot-fill/use-slot.js.map +0 -1
  467. package/build-types/slot-fill/use-slot.d.ts +0 -10
  468. package/build-types/slot-fill/use-slot.d.ts.map +0 -1
  469. package/src/slot-fill/use-slot.ts +0 -27
@@ -21,47 +21,48 @@ const Example = () => {
21
21
  );
22
22
  };
23
23
  ```
24
+
24
25
  ## Props
25
26
 
26
27
  ### `defaultValue`
27
28
 
28
- If provided, sets the default alignment value.
29
-
30
29
  - Type: `"center" | "top left" | "top center" | "top right" | "center left" | "center center" | "center right" | "bottom left" | "bottom center" | "bottom right"`
31
30
  - Required: No
32
31
  - Default: `'center center'`
33
32
 
34
- ### `label`
33
+ If provided, sets the default alignment value.
35
34
 
36
- Accessible label. If provided, sets the `aria-label` attribute of the
37
- underlying `grid` widget.
35
+ ### `label`
38
36
 
39
37
  - Type: `string`
40
38
  - Required: No
41
39
  - Default: `'Alignment Matrix Control'`
42
40
 
43
- ### `onChange`
41
+ Accessible label. If provided, sets the `aria-label` attribute of the
42
+ underlying `grid` widget.
44
43
 
45
- A function that receives the updated alignment value.
44
+ ### `onChange`
46
45
 
47
46
  - Type: `(newValue: AlignmentMatrixControlValue) => void`
48
47
  - Required: No
49
48
 
50
- ### `value`
49
+ A function that receives the updated alignment value.
51
50
 
52
- The current alignment value.
51
+ ### `value`
53
52
 
54
53
  - Type: `"center" | "top left" | "top center" | "top right" | "center left" | "center center" | "center right" | "bottom left" | "bottom center" | "bottom right"`
55
54
  - Required: No
56
55
 
57
- ### `width`
56
+ The current alignment value.
58
57
 
59
- If provided, sets the width of the control.
58
+ ### `width`
60
59
 
61
60
  - Type: `number`
62
61
  - Required: No
63
62
  - Default: `92`
64
63
 
64
+ If provided, sets the width of the control.
65
+
65
66
  ## Subcomponents
66
67
 
67
68
  ### AlignmentMatrixControl.Icon
@@ -70,16 +71,16 @@ If provided, sets the width of the control.
70
71
 
71
72
  ##### `disablePointerEvents`
72
73
 
73
- If `true`, disables pointer events on the icon.
74
-
75
74
  - Type: `boolean`
76
75
  - Required: No
77
76
  - Default: `true`
78
77
 
79
- ##### `value`
78
+ If `true`, disables pointer events on the icon.
80
79
 
81
- The current alignment value.
80
+ ##### `value`
82
81
 
83
82
  - Type: `"center" | "top left" | "top center" | "top right" | "center left" | "center center" | "center right" | "bottom left" | "bottom center" | "bottom right"`
84
83
  - Required: No
85
84
  - Default: `center`
85
+
86
+ The current alignment value.
@@ -23,34 +23,35 @@ function Example() {
23
23
  );
24
24
  }
25
25
  ```
26
+
26
27
  ## Props
27
28
 
28
29
  ### `as`
29
30
 
30
- The HTML element or React component to render the component as.
31
-
32
31
  - Type: `"symbol" | "object" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | ...`
33
32
  - Required: No
34
33
 
35
- ### `label`
34
+ The HTML element or React component to render the component as.
36
35
 
37
- Label to use for the angle picker.
36
+ ### `label`
38
37
 
39
38
  - Type: `string`
40
39
  - Required: No
41
40
  - Default: `__( 'Angle' )`
42
41
 
43
- ### `onChange`
42
+ Label to use for the angle picker.
44
43
 
45
- A function that receives the new value of the input.
44
+ ### `onChange`
46
45
 
47
46
  - Type: `(value: number) => void`
48
47
  - Required: Yes
49
48
 
50
- ### `value`
49
+ A function that receives the new value of the input.
51
50
 
52
- The current value of the input. The value represents an angle in degrees
53
- and should be a value between 0 and 360.
51
+ ### `value`
54
52
 
55
53
  - Type: `string | number`
56
54
  - Required: Yes
55
+
56
+ The current value of the input. The value represents an angle in degrees
57
+ and should be a value between 0 and 360.
@@ -0,0 +1,24 @@
1
+ # Badge
2
+
3
+ <!-- This file is generated automatically and cannot be edited directly. Make edits via TypeScript types and TSDocs. -->
4
+
5
+ 🔒 This component is locked as a [private API](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-private-apis/). We do not yet recommend using this outside of the Gutenberg project.
6
+
7
+ <p class="callout callout-info">See the <a href="https://wordpress.github.io/gutenberg/?path=/docs/components-badge--docs">WordPress Storybook</a> for more detailed, interactive documentation.</p>
8
+
9
+ ## Props
10
+
11
+ ### `children`
12
+
13
+ - Type: `string`
14
+ - Required: Yes
15
+
16
+ Text to display inside the badge.
17
+
18
+ ### `intent`
19
+
20
+ - Type: `"default" | "info" | "success" | "warning" | "error"`
21
+ - Required: No
22
+ - Default: `default`
23
+
24
+ Badge variant.
@@ -0,0 +1,5 @@
1
+ {
2
+ "$schema": "../../schemas/docs-manifest.json",
3
+ "displayName": "Badge",
4
+ "filePath": "./index.tsx"
5
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { info, caution, error, published } from '@wordpress/icons';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import type { BadgeProps } from './types';
15
+ import type { WordPressComponentProps } from '../context';
16
+ import Icon from '../icon';
17
+
18
+ function Badge( {
19
+ className,
20
+ intent = 'default',
21
+ children,
22
+ ...props
23
+ }: WordPressComponentProps< BadgeProps, 'span', false > ) {
24
+ /**
25
+ * Returns an icon based on the badge context.
26
+ *
27
+ * @return The corresponding icon for the provided context.
28
+ */
29
+ function contextBasedIcon() {
30
+ switch ( intent ) {
31
+ case 'info':
32
+ return info;
33
+ case 'success':
34
+ return published;
35
+ case 'warning':
36
+ return caution;
37
+ case 'error':
38
+ return error;
39
+ default:
40
+ return null;
41
+ }
42
+ }
43
+
44
+ return (
45
+ <span
46
+ className={ clsx(
47
+ 'components-badge',
48
+ `is-${ intent }`,
49
+ intent !== 'default' && 'has-icon',
50
+ className
51
+ ) }
52
+ { ...props }
53
+ >
54
+ { intent !== 'default' && (
55
+ <Icon
56
+ icon={ contextBasedIcon() }
57
+ size={ 16 }
58
+ fill="currentColor"
59
+ className="components-badge__icon"
60
+ />
61
+ ) }
62
+ <span className="components-badge__content">{ children }</span>
63
+ </span>
64
+ );
65
+ }
66
+
67
+ export default Badge;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { Meta, StoryObj } from '@storybook/react';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import Badge from '..';
10
+
11
+ const meta: Meta< typeof Badge > = {
12
+ component: Badge,
13
+ title: 'Components/Containers/Badge',
14
+ id: 'components-badge',
15
+ tags: [ 'status-private' ],
16
+ };
17
+
18
+ export default meta;
19
+
20
+ type Story = StoryObj< typeof meta >;
21
+
22
+ export const Default: Story = {
23
+ args: {
24
+ children: 'Code is Poetry',
25
+ },
26
+ };
27
+
28
+ export const Info: Story = {
29
+ args: {
30
+ ...Default.args,
31
+ intent: 'info',
32
+ },
33
+ };
34
+
35
+ export const Success: Story = {
36
+ args: {
37
+ ...Default.args,
38
+ intent: 'success',
39
+ },
40
+ };
41
+
42
+ export const Warning: Story = {
43
+ args: {
44
+ ...Default.args,
45
+ intent: 'warning',
46
+ },
47
+ };
48
+
49
+ export const Error: Story = {
50
+ args: {
51
+ ...Default.args,
52
+ intent: 'error',
53
+ },
54
+ };
@@ -0,0 +1,49 @@
1
+ $badge-colors: (
2
+ "info": #3858e9,
3
+ "warning": $alert-yellow,
4
+ "error": $alert-red,
5
+ "success": $alert-green,
6
+ );
7
+
8
+ .components-badge {
9
+ @include reset;
10
+
11
+ background-color: color-mix(in srgb, $white 90%, var(--base-color));
12
+ color: color-mix(in srgb, $black 50%, var(--base-color));
13
+ padding: 0 $grid-unit-10;
14
+ min-height: $grid-unit-30;
15
+ max-width: 100%;
16
+ border-radius: $radius-small;
17
+ font-size: $font-size-small;
18
+ font-weight: 400;
19
+ line-height: $font-line-height-small;
20
+ display: inline-flex;
21
+ align-items: center;
22
+ gap: 2px;
23
+
24
+ &:where(.is-default) {
25
+ background-color: $gray-100;
26
+ color: $gray-800;
27
+ }
28
+
29
+ &.has-icon {
30
+ padding-inline-start: $grid-unit-05;
31
+ }
32
+
33
+ // Generate color variants
34
+ @each $type, $color in $badge-colors {
35
+ &.is-#{$type} {
36
+ --base-color: #{$color};
37
+ }
38
+ }
39
+ }
40
+
41
+ .components-badge__icon {
42
+ flex-shrink: 0;
43
+ }
44
+
45
+ .components-badge__content {
46
+ overflow: hidden;
47
+ white-space: nowrap;
48
+ text-overflow: ellipsis;
49
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import { render, screen } from '@testing-library/react';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import _Badge from '..';
10
+
11
+ const testid = 'my-badge';
12
+ const Badge = ( props: React.ComponentProps< typeof _Badge > ) => (
13
+ <_Badge data-testid={ testid } { ...props } />
14
+ );
15
+
16
+ describe( 'Badge', () => {
17
+ it( 'should render correctly with default props', () => {
18
+ render( <Badge>Code is Poetry</Badge> );
19
+ const badge = screen.getByTestId( testid );
20
+ expect( badge ).toBeInTheDocument();
21
+ expect( badge.tagName ).toBe( 'SPAN' );
22
+ expect( badge ).toHaveClass( 'components-badge' );
23
+ } );
24
+
25
+ it( 'should render as per its intent and contain an icon', () => {
26
+ render( <Badge intent="error">Code is Poetry</Badge> );
27
+ const badge = screen.getByTestId( testid );
28
+ expect( badge ).toHaveClass( 'components-badge', 'is-error' );
29
+ expect( badge ).toHaveClass( 'has-icon' );
30
+ } );
31
+
32
+ it( 'should combine custom className with default class', () => {
33
+ render( <Badge className="custom-class">Code is Poetry</Badge> );
34
+ const badge = screen.getByTestId( testid );
35
+ expect( badge ).toHaveClass( 'components-badge' );
36
+ expect( badge ).toHaveClass( 'custom-class' );
37
+ } );
38
+
39
+ it( 'should pass through additional props', () => {
40
+ render( <Badge data-testid="custom-badge">Code is Poetry</Badge> );
41
+ const badge = screen.getByTestId( 'custom-badge' );
42
+ expect( badge ).toHaveTextContent( 'Code is Poetry' );
43
+ expect( badge ).toHaveClass( 'components-badge' );
44
+ } );
45
+ } );
@@ -0,0 +1,12 @@
1
+ export type BadgeProps = {
2
+ /**
3
+ * Badge variant.
4
+ *
5
+ * @default 'default'
6
+ */
7
+ intent?: 'default' | 'info' | 'success' | 'warning' | 'error';
8
+ /**
9
+ * Text to display inside the badge.
10
+ */
11
+ children: string;
12
+ };
@@ -25,71 +25,71 @@ const MyCustomTextareaControl = ({ children, ...baseProps }) => (
25
25
  );
26
26
  );
27
27
  ```
28
+
28
29
  ## Props
29
30
 
30
31
  ### `__nextHasNoMarginBottom`
31
32
 
32
- Start opting into the new margin-free styles that will become the default in a future version.
33
-
34
33
  - Type: `boolean`
35
34
  - Required: No
36
35
  - Default: `false`
37
36
 
38
- ### `as`
37
+ Start opting into the new margin-free styles that will become the default in a future version.
39
38
 
40
- The HTML element or React component to render the component as.
39
+ ### `as`
41
40
 
42
41
  - Type: `"symbol" | "object" | "label" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | "b" | "base" | "bdi" | "bdo" | "big" | "blockquote" | "body" | "br" | "button" | ... 516 more ... | ("view" & FunctionComponent<...>)`
43
42
  - Required: No
44
43
 
45
- ### `className`
44
+ The HTML element or React component to render the component as.
46
45
 
46
+ ### `className`
47
47
 
48
48
  - Type: `string`
49
49
  - Required: No
50
50
 
51
51
  ### `children`
52
52
 
53
- The content to be displayed within the `BaseControl`.
54
-
55
53
  - Type: `ReactNode`
56
54
  - Required: Yes
57
55
 
56
+ The content to be displayed within the `BaseControl`.
57
+
58
58
  ### `help`
59
59
 
60
+ - Type: `ReactNode`
61
+ - Required: No
62
+
60
63
  Additional description for the control.
61
64
 
62
65
  Only use for meaningful description or instructions for the control. An element containing the description will be programmatically associated to the BaseControl by the means of an `aria-describedby` attribute.
63
66
 
64
- - Type: `ReactNode`
65
- - Required: No
66
-
67
67
  ### `hideLabelFromVision`
68
68
 
69
- If true, the label will only be visible to screen readers.
70
-
71
69
  - Type: `boolean`
72
70
  - Required: No
73
71
  - Default: `false`
74
72
 
73
+ If true, the label will only be visible to screen readers.
74
+
75
75
  ### `id`
76
76
 
77
+ - Type: `string`
78
+ - Required: No
79
+
77
80
  The HTML `id` of the control element (passed in as a child to `BaseControl`) to which labels and help text are being generated.
78
81
  This is necessary to accessibly associate the label with that element.
79
82
 
80
83
  The recommended way is to use the `useBaseControlProps` hook, which takes care of generating a unique `id` for you.
81
84
  Otherwise, if you choose to pass an explicit `id` to this prop, you are responsible for ensuring the uniqueness of the `id`.
82
85
 
83
- - Type: `string`
84
- - Required: No
85
-
86
86
  ### `label`
87
87
 
88
- If this property is added, a label will be generated using label property as the content.
89
-
90
88
  - Type: `ReactNode`
91
89
  - Required: No
92
90
 
91
+ If this property is added, a label will be generated using label property as the content.
92
+
93
93
  ## Subcomponents
94
94
 
95
95
  ### BaseControl.VisualLabel
@@ -113,18 +113,19 @@ const MyBaseControl = () => (
113
113
  </BaseControl>
114
114
  );
115
115
  ```
116
+
116
117
  #### Props
117
118
 
118
119
  ##### `as`
119
120
 
120
- The HTML element or React component to render the component as.
121
-
122
121
  - Type: `"symbol" | "object" | "label" | "a" | "abbr" | "address" | "area" | "article" | "aside" | "audio" | ...`
123
122
  - Required: No
124
123
 
125
- ##### `children`
124
+ The HTML element or React component to render the component as.
126
125
 
127
- The content to be displayed within the `BaseControl.VisualLabel`.
126
+ ##### `children`
128
127
 
129
128
  - Type: `ReactNode`
130
129
  - Required: Yes
130
+
131
+ The content to be displayed within the `BaseControl.VisualLabel`.
@@ -28,34 +28,33 @@ function Example() {
28
28
  );
29
29
  };
30
30
  ```
31
+
31
32
  ## Props
32
33
 
33
34
  ### `__next40pxDefaultSize`
34
35
 
35
- Start opting into the larger default height that will become the default size in a future version.
36
-
37
36
  - Type: `boolean`
38
37
  - Required: No
39
38
  - Default: `false`
40
39
 
41
- ### `allowReset`
40
+ Start opting into the larger default height that will become the default size in a future version.
42
41
 
43
- If this property is true, a button to reset the box control is rendered.
42
+ ### `allowReset`
44
43
 
45
44
  - Type: `boolean`
46
45
  - Required: No
47
46
  - Default: `true`
48
47
 
49
- ### `id`
48
+ If this property is true, a button to reset the box control is rendered.
50
49
 
51
- The id to use as a base for the unique HTML id attribute of the control.
50
+ ### `id`
52
51
 
53
52
  - Type: `string`
54
53
  - Required: No
55
54
 
56
- ### `inputProps`
55
+ The id to use as a base for the unique HTML id attribute of the control.
57
56
 
58
- Props for the internal `UnitControl` components.
57
+ ### `inputProps`
59
58
 
60
59
  - Type: `UnitControlPassthroughProps`
61
60
  - Required: No
@@ -63,25 +62,41 @@ Props for the internal `UnitControl` components.
63
62
  min: 0,
64
63
  }`
65
64
 
66
- ### `label`
65
+ Props for the internal `UnitControl` components.
67
66
 
68
- Heading label for the control.
67
+ ### `label`
69
68
 
70
69
  - Type: `string`
71
70
  - Required: No
72
71
  - Default: `__( 'Box Control' )`
73
72
 
74
- ### `onChange`
73
+ Heading label for the control.
75
74
 
76
- A callback function when an input value changes.
75
+ ### `onChange`
77
76
 
78
77
  - Type: `(next: BoxControlValue) => void`
79
78
  - Required: No
80
79
  - Default: `() => {}`
81
80
 
82
- ### `resetValues`
81
+ A callback function when an input value changes.
83
82
 
84
- The `top`, `right`, `bottom`, and `left` box dimension values to use when the control is reset.
83
+ ### `presets`
84
+
85
+ - Type: `Preset[]`
86
+ - Required: No
87
+
88
+ Available presets to pick from.
89
+
90
+ ### `presetKey`
91
+
92
+ - Type: `string`
93
+ - Required: No
94
+
95
+ The key of the preset to apply.
96
+ If you provide a list of presets, you must provide a preset key to use.
97
+ The format of preset selected values is going to be `var:preset|${ presetKey }|${ presetSlug }`
98
+
99
+ ### `resetValues`
85
100
 
86
101
  - Type: `BoxControlValue`
87
102
  - Required: No
@@ -92,35 +107,37 @@ The `top`, `right`, `bottom`, and `left` box dimension values to use when the co
92
107
  left: undefined,
93
108
  }`
94
109
 
110
+ The `top`, `right`, `bottom`, and `left` box dimension values to use when the control is reset.
111
+
95
112
  ### `sides`
96
113
 
114
+ - Type: `readonly (keyof BoxControlValue | "horizontal" | "vertical")[]`
115
+ - Required: No
116
+
97
117
  Collection of sides to allow control of. If omitted or empty, all sides will be available.
98
118
 
99
119
  Allowed values are "top", "right", "bottom", "left", "vertical", and "horizontal".
100
120
 
101
- - Type: `readonly (keyof BoxControlValue | "horizontal" | "vertical")[]`
102
- - Required: No
103
-
104
121
  ### `splitOnAxis`
105
122
 
106
- If this property is true, when the box control is unlinked, vertical and horizontal controls
107
- can be used instead of updating individual sides.
108
-
109
123
  - Type: `boolean`
110
124
  - Required: No
111
125
  - Default: `false`
112
126
 
113
- ### `units`
127
+ If this property is true, when the box control is unlinked, vertical and horizontal controls
128
+ can be used instead of updating individual sides.
114
129
 
115
- Available units to select from.
130
+ ### `units`
116
131
 
117
132
  - Type: `WPUnitControlUnit[]`
118
133
  - Required: No
119
134
  - Default: `CSS_UNITS`
120
135
 
121
- ### `values`
136
+ Available units to select from.
122
137
 
123
- The current values of the control, expressed as an object of `top`, `right`, `bottom`, and `left` values.
138
+ ### `values`
124
139
 
125
140
  - Type: `BoxControlValue`
126
141
  - Required: No
142
+
143
+ The current values of the control, expressed as an object of `top`, `right`, `bottom`, and `left` values.
@@ -83,6 +83,8 @@ function BoxControl( {
83
83
  splitOnAxis = false,
84
84
  allowReset = true,
85
85
  resetValues = DEFAULT_VALUES,
86
+ presets,
87
+ presetKey,
86
88
  onMouseOver,
87
89
  onMouseOut,
88
90
  }: BoxControlProps ) {
@@ -153,6 +155,8 @@ function BoxControl( {
153
155
  sides,
154
156
  values: inputValues,
155
157
  __next40pxDefaultSize,
158
+ presets,
159
+ presetKey,
156
160
  };
157
161
 
158
162
  maybeWarnDeprecated36pxSize( {