@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
@@ -0,0 +1,46 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import * as Ariakit from '@ariakit/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { forwardRef, useContext } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import type { WordPressComponentProps } from '../context';
15
+ import type { MenuTriggerButtonProps } from './types';
16
+ import { MenuContext } from './context';
17
+
18
+ export const MenuTriggerButton = forwardRef<
19
+ HTMLDivElement,
20
+ WordPressComponentProps< MenuTriggerButtonProps, 'button', false >
21
+ >( function MenuTriggerButton( { children, disabled = false, ...props }, ref ) {
22
+ const menuContext = useContext( MenuContext );
23
+
24
+ if ( ! menuContext?.store ) {
25
+ throw new Error(
26
+ 'Menu.TriggerButton can only be rendered inside a Menu component'
27
+ );
28
+ }
29
+
30
+ if ( menuContext.store.parent ) {
31
+ throw new Error(
32
+ 'Menu.TriggerButton should not be rendered inside a nested Menu component. Use Menu.SubmenuTriggerItem instead.'
33
+ );
34
+ }
35
+
36
+ return (
37
+ <Ariakit.MenuButton
38
+ ref={ ref }
39
+ { ...props }
40
+ disabled={ disabled }
41
+ store={ menuContext.store }
42
+ >
43
+ { children }
44
+ </Ariakit.MenuButton>
45
+ );
46
+ } );
package/src/menu/types.ts CHANGED
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import type * as Ariakit from '@ariakit/react';
5
- import type { Placement } from '@floating-ui/react-dom';
6
5
 
7
6
  export interface MenuContext {
8
7
  /**
@@ -17,170 +16,318 @@ export interface MenuContext {
17
16
 
18
17
  export interface MenuProps {
19
18
  /**
20
- * The button triggering the menu popover.
19
+ * The elements, which should include one instance of the `Menu.TriggerButton`
20
+ * component and one instance of the `Menu.Popover` component.
21
21
  */
22
- trigger: React.ReactElement;
22
+ children?: Ariakit.MenuProviderProps[ 'children' ];
23
23
  /**
24
- * The contents of the menu (ie. one or more menu items).
24
+ * Whether the menu popover and its contents should be visible by default.
25
+ *
26
+ * Note: this prop will be overridden by the `open` prop if it is
27
+ * provided (meaning the component will be used in "controlled" mode).
28
+ *
29
+ * @default false
25
30
  */
26
- children?: React.ReactNode;
31
+ defaultOpen?: Ariakit.MenuProviderProps[ 'defaultOpen' ];
27
32
  /**
28
- * The open state of the menu popover when it is initially rendered. Use when
29
- * not wanting to control its open state.
33
+ * Whether the menu popover and its contents should be visible.
34
+ * Should be used in conjunction with `onOpenChange` in order to control
35
+ * the open state of the menu popover.
30
36
  *
31
- * @default false
37
+ * Note: this prop will set the component in "controlled" mode, and it will
38
+ * override the `defaultOpen` prop.
32
39
  */
33
- defaultOpen?: boolean;
40
+ open?: Ariakit.MenuProviderProps[ 'open' ];
34
41
  /**
35
- * The controlled open state of the menu popover. Must be used in conjunction
36
- * with `onOpenChange`.
42
+ * A callback that gets called when the `open` state changes.
37
43
  */
38
- open?: boolean;
44
+ onOpenChange?: Ariakit.MenuProviderProps[ 'setOpen' ];
39
45
  /**
40
- * Event handler called when the open state of the menu popover changes.
46
+ * The placement of the menu popover.
47
+ *
48
+ * @default 'bottom-start' for root-level menus, 'right-start' for submenus
41
49
  */
42
- onOpenChange?: ( open: boolean ) => void;
50
+ placement?: Ariakit.MenuProviderProps[ 'placement' ];
51
+ }
52
+
53
+ export interface MenuPopoverProps {
54
+ /**
55
+ * The contents of the menu popover, which should include instances of the
56
+ * `Menu.Item`, `Menu.CheckboxItem`, `Menu.RadioItem`, `Menu.Group`, and
57
+ * `Menu.Separator` components.
58
+ */
59
+ children?: Ariakit.MenuProps[ 'children' ];
43
60
  /**
44
61
  * The modality of the menu popover. When set to true, interaction with
45
62
  * outside elements will be disabled and only menu content will be visible to
46
63
  * screen readers.
47
64
  *
48
- * @default true
49
- */
50
- modal?: boolean;
51
- /**
52
- * The placement of the menu popover.
65
+ * Determines whether the menu popover is modal. Modal dialogs have distinct
66
+ * states and behaviors:
67
+ * - The `portal` and `preventBodyScroll` props are set to `true`. They can
68
+ * still be manually set to `false`.
69
+ * - When the dialog is open, element tree outside it will be inert.
53
70
  *
54
- * @default 'bottom-start' for root-level menus, 'right-start' for nested menus
71
+ * @default true
55
72
  */
56
- placement?: Placement;
73
+ modal?: Ariakit.MenuProps[ 'modal' ];
57
74
  /**
58
75
  * The distance between the popover and the anchor element.
59
76
  *
60
77
  * @default 8 for root-level menus, 16 for nested menus
61
78
  */
62
- gutter?: number;
79
+ gutter?: Ariakit.MenuProps[ 'gutter' ];
63
80
  /**
64
81
  * The skidding of the popover along the anchor element. Can be set to
65
82
  * negative values to make the popover shift to the opposite side.
66
83
  *
67
84
  * @default 0 for root-level menus, -8 for nested menus
68
85
  */
69
- shift?: number;
86
+ shift?: Ariakit.MenuProps[ 'shift' ];
70
87
  /**
71
- * Determines whether the menu popover will be hidden when the user presses
72
- * the Escape key.
88
+ * Determines if the menu popover will hide when the user presses the
89
+ * Escape key.
90
+ *
91
+ * This prop can be either a boolean or a function that accepts an event as an
92
+ * argument and returns a boolean. The event object represents the keydown
93
+ * event that initiated the hide action, which could be either a native
94
+ * keyboard event or a React synthetic event.
73
95
  *
74
96
  * @default `( event ) => { event.preventDefault(); return true; }`
75
97
  */
76
- hideOnEscape?:
77
- | boolean
78
- | ( (
79
- event: KeyboardEvent | React.KeyboardEvent< Element >
80
- ) => boolean );
98
+ hideOnEscape?: Ariakit.MenuProps[ 'hideOnEscape' ];
99
+ }
100
+
101
+ export interface MenuTriggerButtonProps {
102
+ /**
103
+ * The contents of the menu trigger button.
104
+ */
105
+ children?: Ariakit.MenuButtonProps[ 'children' ];
106
+ /**
107
+ * Allows the component to be rendered as a different HTML element or React
108
+ * component. The value can be a React element or a function that takes in the
109
+ * original component props and gives back a React element with the props
110
+ * merged.
111
+ */
112
+ render?: Ariakit.MenuButtonProps[ 'render' ];
113
+ /**
114
+ * Determines if the element is disabled. This sets the `aria-disabled`
115
+ * attribute accordingly, enabling support for all elements, including those
116
+ * that don't support the native `disabled` attribute.
117
+ *
118
+ * This feature can be combined with the `accessibleWhenDisabled` prop to
119
+ * make disabled elements still accessible via keyboard.
120
+ *
121
+ * @default false
122
+ */
123
+ disabled?: Ariakit.MenuButtonProps[ 'disabled' ];
124
+ /**
125
+ * Indicates whether the element should be focusable even when it is
126
+ * `disabled`.
127
+ *
128
+ * This is important when discoverability is a concern. For example:
129
+ *
130
+ * > A toolbar in an editor contains a set of special smart paste functions
131
+ * that are disabled when the clipboard is empty or when the function is not
132
+ * applicable to the current content of the clipboard. It could be helpful to
133
+ * keep the disabled buttons focusable if the ability to discover their
134
+ * functionality is primarily via their presence on the toolbar.
135
+ *
136
+ * Learn more on [Focusability of disabled
137
+ * controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols).
138
+ */
139
+ accessibleWhenDisabled?: Ariakit.MenuButtonProps[ 'accessibleWhenDisabled' ];
81
140
  }
82
141
 
83
142
  export interface MenuGroupProps {
84
143
  /**
85
- * The contents of the menu group (ie. an optional menu group label and one
86
- * or more menu items).
144
+ * The contents of the menu group, which should include one instance of the
145
+ * `Menu.GroupLabel` component and one or more instances of `Menu.Item`,
146
+ * `Menu.CheckboxItem`, and `Menu.RadioItem`.
87
147
  */
88
- children: React.ReactNode;
148
+ children: Ariakit.MenuGroupProps[ 'children' ];
89
149
  }
90
150
 
91
151
  export interface MenuGroupLabelProps {
92
152
  /**
93
- * The contents of the menu group label.
153
+ * The contents of the menu group label, which should provide an accessible
154
+ * label for the menu group.
94
155
  */
95
- children: React.ReactNode;
156
+ children: Ariakit.MenuGroupLabelProps[ 'children' ];
96
157
  }
97
158
 
98
159
  export interface MenuItemProps {
99
160
  /**
100
- * The contents of the menu item.
161
+ * The contents of the menu item, which could include one instance of the
162
+ * `Menu.ItemLabel` component and/or one instance of the `Menu.ItemHelpText`
163
+ * component.
101
164
  */
102
- children: React.ReactNode;
165
+ children: Ariakit.MenuItemProps[ 'children' ];
103
166
  /**
104
- * The contents of the menu item's prefix.
167
+ * The contents of the menu item's prefix, such as an icon.
105
168
  */
106
169
  prefix?: React.ReactNode;
107
170
  /**
108
- * The contents of the menu item's suffix.
171
+ * The contents of the menu item's suffix, such as a keyboard shortcut.
109
172
  */
110
173
  suffix?: React.ReactNode;
111
174
  /**
112
- * Whether to hide the menu popover when the menu item is clicked.
175
+ * Determines if the menu should hide when this item is clicked.
176
+ *
177
+ * **Note**: This behavior isn't triggered if this menu item is rendered as a
178
+ * link and modifier keys are used to either open the link in a new tab or
179
+ * download it.
113
180
  *
114
181
  * @default true
115
182
  */
116
- hideOnClick?: boolean;
183
+ hideOnClick?: Ariakit.MenuItemProps[ 'hideOnClick' ];
117
184
  /**
118
- * Determines if the element is disabled.
185
+ * Determines if the element is disabled. This sets the `aria-disabled`
186
+ * attribute accordingly, enabling support for all elements, including those
187
+ * that don't support the native `disabled` attribute.
188
+ *
189
+ * @default false
190
+ */
191
+ disabled?: Ariakit.MenuItemProps[ 'disabled' ];
192
+ /**
193
+ * Allows the component to be rendered as a different HTML element or React
194
+ * component. The value can be a React element or a function that takes in the
195
+ * original component props and gives back a React element with the props
196
+ * merged.
197
+ */
198
+ render?: Ariakit.MenuItemProps[ 'render' ];
199
+ /**
200
+ * The ariakit menu store. This prop is only meant for internal use.
201
+ * @ignore
119
202
  */
120
- disabled?: boolean;
203
+ store?: Ariakit.MenuItemProps[ 'store' ];
121
204
  }
122
205
 
123
- export interface MenuCheckboxItemProps
124
- extends Omit< MenuItemProps, 'prefix' | 'hideOnClick' > {
206
+ export interface MenuCheckboxItemProps {
125
207
  /**
126
- * Whether to hide the menu popover when the menu item is clicked.
208
+ * The contents of the menu item, which could include one instance of the
209
+ * `Menu.ItemLabel` component and/or one instance of the `Menu.ItemHelpText`
210
+ * component.
211
+ */
212
+ children: Ariakit.MenuItemCheckboxProps[ 'children' ];
213
+ /**
214
+ * The contents of the menu item's suffix, such as a keyboard shortcut.
215
+ */
216
+ suffix?: React.ReactNode;
217
+ /**
218
+ * Determines if the menu should hide when this item is clicked.
219
+ *
220
+ * **Note**: This behavior isn't triggered if this menu item is rendered as a
221
+ * link and modifier keys are used to either open the link in a new tab or
222
+ * download it.
223
+ *
224
+ * @default false
225
+ */
226
+ hideOnClick?: Ariakit.MenuItemCheckboxProps[ 'hideOnClick' ];
227
+ /**
228
+ * Determines if the element is disabled. This sets the `aria-disabled`
229
+ * attribute accordingly, enabling support for all elements, including those
230
+ * that don't support the native `disabled` attribute.
127
231
  *
128
232
  * @default false
129
233
  */
130
- hideOnClick?: boolean;
234
+ disabled?: Ariakit.MenuItemCheckboxProps[ 'disabled' ];
235
+ /**
236
+ * Allows the component to be rendered as a different HTML element or React
237
+ * component. The value can be a React element or a function that takes in the
238
+ * original component props and gives back a React element with the props
239
+ * merged.
240
+ */
241
+ render?: Ariakit.MenuItemCheckboxProps[ 'render' ];
131
242
  /**
132
243
  * The checkbox menu item's name.
133
244
  */
134
- name: string;
245
+ name: Ariakit.MenuItemCheckboxProps[ 'name' ];
135
246
  /**
136
247
  * The checkbox item's value, useful when using multiple checkbox menu items
137
248
  * associated to the same `name`.
138
249
  */
139
- value?: string;
250
+ value?: Ariakit.MenuItemCheckboxProps[ 'value' ];
140
251
  /**
141
252
  * The controlled checked state of the checkbox menu item.
253
+ *
254
+ * Note: this prop will override the `defaultChecked` prop.
142
255
  */
143
- checked?: boolean;
256
+ checked?: Ariakit.MenuItemCheckboxProps[ 'checked' ];
144
257
  /**
145
258
  * The checked state of the checkbox menu item when it is initially rendered.
146
259
  * Use when not wanting to control its checked state.
260
+ *
261
+ * Note: this prop will be overriden by the `checked` prop, if it is defined.
147
262
  */
148
- defaultChecked?: boolean;
263
+ defaultChecked?: Ariakit.MenuItemCheckboxProps[ 'defaultChecked' ];
149
264
  /**
150
- * Event handler called when the checked state of the checkbox menu item changes.
265
+ * A function that is called when the checkbox's checked state changes.
151
266
  */
152
- onChange?: ( event: React.ChangeEvent< HTMLInputElement > ) => void;
267
+ onChange?: Ariakit.MenuItemCheckboxProps[ 'onChange' ];
153
268
  }
154
269
 
155
- export interface MenuRadioItemProps
156
- extends Omit< MenuItemProps, 'prefix' | 'hideOnClick' > {
270
+ export interface MenuRadioItemProps {
271
+ /**
272
+ * The contents of the menu item, which could include one instance of the
273
+ * `Menu.ItemLabel` component and/or one instance of the `Menu.ItemHelpText`
274
+ * component.
275
+ */
276
+ children: Ariakit.MenuItemRadioProps[ 'children' ];
277
+ /**
278
+ * The contents of the menu item's suffix, such as a keyboard shortcut.
279
+ */
280
+ suffix?: React.ReactNode;
281
+ /**
282
+ * Determines if the menu should hide when this item is clicked.
283
+ *
284
+ * **Note**: This behavior isn't triggered if this menu item is rendered as a
285
+ * link and modifier keys are used to either open the link in a new tab or
286
+ * download it.
287
+ *
288
+ * @default false
289
+ */
290
+ hideOnClick?: Ariakit.MenuItemRadioProps[ 'hideOnClick' ];
157
291
  /**
158
- * Whether to hide the menu popover when the menu item is clicked.
292
+ * Determines if the element is disabled. This sets the `aria-disabled`
293
+ * attribute accordingly, enabling support for all elements, including those
294
+ * that don't support the native `disabled` attribute.
159
295
  *
160
296
  * @default false
161
297
  */
162
- hideOnClick?: boolean;
298
+ disabled?: Ariakit.MenuItemRadioProps[ 'disabled' ];
299
+ /**
300
+ * Allows the component to be rendered as a different HTML element or React
301
+ * component. The value can be a React element or a function that takes in the
302
+ * original component props and gives back a React element with the props
303
+ * merged.
304
+ */
305
+ render?: Ariakit.MenuItemRadioProps[ 'render' ];
163
306
  /**
164
307
  * The radio item's name.
165
308
  */
166
- name: string;
309
+ name: Ariakit.MenuItemRadioProps[ 'name' ];
167
310
  /**
168
311
  * The radio item's value.
169
312
  */
170
- value: string | number;
313
+ value: Ariakit.MenuItemRadioProps[ 'value' ];
171
314
  /**
172
315
  * The controlled checked state of the radio menu item.
316
+ *
317
+ * Note: this prop will override the `defaultChecked` prop.
173
318
  */
174
- checked?: boolean;
319
+ checked?: Ariakit.MenuItemRadioProps[ 'checked' ];
175
320
  /**
176
321
  * The checked state of the radio menu item when it is initially rendered.
177
322
  * Use when not wanting to control its checked state.
323
+ *
324
+ * Note: this prop will be overriden by the `checked` prop, if it is defined.
178
325
  */
179
- defaultChecked?: boolean;
326
+ defaultChecked?: Ariakit.MenuItemRadioProps[ 'defaultChecked' ];
180
327
  /**
181
- * Event handler called when the checked radio menu item changes.
328
+ * A function that is called when the checkbox's checked state changes.
182
329
  */
183
- onChange?: ( event: React.ChangeEvent< HTMLInputElement > ) => void;
330
+ onChange?: Ariakit.MenuItemRadioProps[ 'onChange' ];
184
331
  }
185
332
 
186
333
  export interface MenuSeparatorProps {}
@@ -75,7 +75,10 @@ const Template: StoryFn< typeof Modal > = ( { onRequestClose, ...args } ) => {
75
75
  anim id est laborum.
76
76
  </p>
77
77
 
78
- <InputControl style={ { marginBottom: '20px' } } />
78
+ <InputControl
79
+ __next40pxDefaultSize
80
+ style={ { marginBottom: '20px' } }
81
+ />
79
82
 
80
83
  <Button variant="secondary" onClick={ closeModal }>
81
84
  Close Modal
@@ -49,6 +49,7 @@ function UnforwardedNavigationBackButton(
49
49
  const icon = isRTL() ? chevronRight : chevronLeft;
50
50
  return (
51
51
  <MenuBackButtonUI
52
+ __next40pxDefaultSize
52
53
  className={ classes }
53
54
  href={ href }
54
55
  variant="tertiary"
@@ -6,6 +6,7 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
+ import deprecated from '@wordpress/deprecated';
9
10
  import { useEffect, useRef, useState } from '@wordpress/element';
10
11
  import { isRTL } from '@wordpress/i18n';
11
12
 
@@ -79,6 +80,12 @@ export function Navigation( {
79
80
  const navigationTree = useCreateNavigationTree();
80
81
  const defaultSlideOrigin = isRTL() ? 'right' : 'left';
81
82
 
83
+ deprecated( 'wp.components.Navigation (and all subcomponents)', {
84
+ since: '6.8',
85
+ version: '7.1',
86
+ alternative: 'wp.components.Navigator',
87
+ } );
88
+
82
89
  const setActiveMenu: NavigationContextType[ 'setActiveMenu' ] = (
83
90
  menuId,
84
91
  slideInOrigin = defaultSlideOrigin
@@ -79,6 +79,8 @@ export function NavigationItem( props: NavigationItemProps ) {
79
79
  ? restProps
80
80
  : {
81
81
  as: Button,
82
+ __next40pxDefaultSize:
83
+ 'as' in restProps ? restProps.as === undefined : true,
82
84
  href,
83
85
  onClick: onItemClick,
84
86
  'aria-current': isActive ? 'page' : undefined,
@@ -176,6 +176,10 @@ describe( 'Navigation', () => {
176
176
 
177
177
  const menuItems = screen.getAllByRole( 'listitem' );
178
178
 
179
+ expect( console ).toHaveWarnedWith(
180
+ 'wp.components.Navigation (and all subcomponents) is deprecated since version 6.8 and will be removed in version 7.1. Please use wp.components.Navigator instead.'
181
+ );
182
+
179
183
  expect( menuItems ).toHaveLength( 4 );
180
184
  expect( menuItems[ 0 ] ).toHaveTextContent( 'Item 1' );
181
185
  expect( menuItems[ 1 ] ).toHaveTextContent( 'Item 2' );
@@ -75,6 +75,7 @@ function CustomNavigatorButton( {
75
75
  } ) {
76
76
  return (
77
77
  <Navigator.Button
78
+ __next40pxDefaultSize
78
79
  onClick={ () => {
79
80
  // Used to spy on the values passed to `navigator.goTo`.
80
81
  onClick?.( { type: 'goTo', path } );
@@ -95,6 +96,7 @@ function CustomNavigatorGoToBackButton( {
95
96
  const { goTo } = useNavigator();
96
97
  return (
97
98
  <Button
99
+ __next40pxDefaultSize
98
100
  onClick={ () => {
99
101
  goTo( path, { isBack: true } );
100
102
  // Used to spy on the values passed to `navigator.goTo`.
@@ -115,6 +117,7 @@ function CustomNavigatorGoToSkipFocusButton( {
115
117
  const { goTo } = useNavigator();
116
118
  return (
117
119
  <Button
120
+ __next40pxDefaultSize
118
121
  onClick={ () => {
119
122
  goTo( path, { skipFocus: true } );
120
123
  // Used to spy on the values passed to `navigator.goTo`.
@@ -136,6 +139,7 @@ function CustomNavigatorBackButton( {
136
139
  } ) {
137
140
  return (
138
141
  <Navigator.BackButton
142
+ __next40pxDefaultSize
139
143
  onClick={ () => {
140
144
  // Used to spy on the values passed to `navigator.goBack`.
141
145
  onClick?.( { type: 'goBack' } );
@@ -242,6 +242,7 @@ function UnforwardedNumberControl(
242
242
  return stateReducerProp?.( baseState, action ) ?? baseState;
243
243
  } }
244
244
  size={ size }
245
+ __shouldNotWarnDeprecated36pxSize
245
246
  suffix={
246
247
  spinControls === 'custom' ? (
247
248
  <>
@@ -60,6 +60,7 @@ const DEFAULT_COLOR = '#000';
60
60
  function NameInput( { value, onChange, label }: NameInputProps ) {
61
61
  return (
62
62
  <NameInputControl
63
+ size="compact"
63
64
  label={ label }
64
65
  hideLabelFromVision
65
66
  value={ value }
@@ -74,12 +74,12 @@ _PanelRow.args = {
74
74
  children: (
75
75
  <PanelBody title="My Profile">
76
76
  <PanelRow>
77
- <InputControl label="First name" />
78
- <InputControl label="Last name" />
77
+ <InputControl label="First name" __next40pxDefaultSize />
78
+ <InputControl label="Last name" __next40pxDefaultSize />
79
79
  </PanelRow>
80
80
  <PanelRow>
81
81
  <div style={ { flex: 1 } }>
82
- <InputControl label="Email" />
82
+ <InputControl label="Email" __next40pxDefaultSize />
83
83
  </div>
84
84
  </PanelRow>
85
85
  </PanelBody>
@@ -8,6 +8,7 @@ import Theme from './theme';
8
8
  import { Tabs } from './tabs';
9
9
  import { kebabCase } from './utils/strings';
10
10
  import { lock } from './lock-unlock';
11
+ import Badge from './badge';
11
12
 
12
13
  export const privateApis = {};
13
14
  lock( privateApis, {
@@ -17,4 +18,5 @@ lock( privateApis, {
17
18
  Theme,
18
19
  Menu,
19
20
  kebabCase,
21
+ Badge,
20
22
  } );
@@ -6,6 +6,7 @@ import * as Ariakit from '@ariakit/react';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
+ import deprecated from '@wordpress/deprecated';
9
10
  import { useMemo, forwardRef } from '@wordpress/element';
10
11
  import { isRTL } from '@wordpress/i18n';
11
12
 
@@ -46,11 +47,21 @@ function UnforwardedRadioGroup(
46
47
  [ radioStore, disabled ]
47
48
  );
48
49
 
50
+ deprecated( 'wp.components.__experimentalRadioGroup', {
51
+ alternative:
52
+ 'wp.components.RadioControl or wp.components.__experimentalToggleGroupControl',
53
+ since: '6.8',
54
+ } );
55
+
49
56
  return (
50
57
  <RadioGroupContext.Provider value={ contextValue }>
51
58
  <Ariakit.RadioGroup
52
59
  store={ radioStore }
53
- render={ <ButtonGroup>{ children }</ButtonGroup> }
60
+ render={
61
+ <ButtonGroup __shouldNotWarnDeprecated>
62
+ { children }
63
+ </ButtonGroup>
64
+ }
54
65
  aria-label={ label }
55
66
  ref={ ref }
56
67
  { ...props }
@@ -7,7 +7,6 @@ import { forwardRef, useContext } from '@wordpress/element';
7
7
  * External dependencies
8
8
  */
9
9
  import * as Ariakit from '@ariakit/react';
10
- import { useStoreState } from '@ariakit/react';
11
10
 
12
11
  /**
13
12
  * Internal dependencies
@@ -28,7 +27,7 @@ function UnforwardedRadio(
28
27
  ) {
29
28
  const { store, disabled } = useContext( RadioGroupContext );
30
29
 
31
- const selectedValue = useStoreState( store, 'value' );
30
+ const selectedValue = Ariakit.useStoreState( store, 'value' );
32
31
  const isChecked = selectedValue !== undefined && selectedValue === value;
33
32
 
34
33
  maybeWarnDeprecated36pxSize( {
@@ -130,8 +130,10 @@ export const Track = styled.span`
130
130
  margin-top: ${ ( rangeHeightValue - railHeight ) / 2 }px;
131
131
  top: 0;
132
132
 
133
- @media not ( prefers-reduced-motion ) {
134
- transition: width ease 0.1s;
133
+ .is-marked & {
134
+ @media not ( prefers-reduced-motion ) {
135
+ transition: width ease 0.1s;
136
+ }
135
137
  }
136
138
 
137
139
  ${ trackBackgroundColor };
@@ -203,8 +205,10 @@ export const ThumbWrapper = styled.span`
203
205
  border-radius: ${ CONFIG.radiusRound };
204
206
  z-index: 3;
205
207
 
206
- @media not ( prefers-reduced-motion ) {
207
- transition: left ease 0.1s;
208
+ .is-marked & {
209
+ @media not ( prefers-reduced-motion ) {
210
+ transition: left ease 0.1s;
211
+ }
208
212
  }
209
213
 
210
214
  ${ thumbColor };