@wordpress/components 28.6.0 → 28.7.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 (588) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/CONTRIBUTING.md +42 -19
  3. package/build/alignment-matrix-control/cell.js +4 -7
  4. package/build/alignment-matrix-control/cell.js.map +1 -1
  5. package/build/alignment-matrix-control/icon.js +31 -19
  6. package/build/alignment-matrix-control/icon.js.map +1 -1
  7. package/build/alignment-matrix-control/index.js +55 -51
  8. package/build/alignment-matrix-control/index.js.map +1 -1
  9. package/build/alignment-matrix-control/styles.js +73 -0
  10. package/build/alignment-matrix-control/styles.js.map +1 -0
  11. package/build/alignment-matrix-control/types.js.map +1 -1
  12. package/build/angle-picker-control/angle-circle.js +9 -9
  13. package/build/angle-picker-control/angle-circle.js.map +1 -1
  14. package/build/border-control/border-control/component.js +18 -13
  15. package/build/border-control/border-control/component.js.map +1 -1
  16. package/build/circular-option-picker/circular-option-picker-option.js +15 -9
  17. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  18. package/build/circular-option-picker/circular-option-picker.js +15 -12
  19. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  20. package/build/circular-option-picker/types.js.map +1 -1
  21. package/build/clipboard-button/index.js +6 -6
  22. package/build/clipboard-button/index.js.map +1 -1
  23. package/build/color-palette/utils.js +1 -2
  24. package/build/color-palette/utils.js.map +1 -1
  25. package/build/color-picker/color-copy-button.js +8 -8
  26. package/build/color-picker/color-copy-button.js.map +1 -1
  27. package/build/color-picker/hex-input.js +8 -8
  28. package/build/color-picker/hex-input.js.map +1 -1
  29. package/build/color-picker/input-with-slider.js +8 -8
  30. package/build/color-picker/input-with-slider.js.map +1 -1
  31. package/build/color-picker/styles.js +8 -8
  32. package/build/color-picker/styles.js.map +1 -1
  33. package/build/combobox-control/types.js.map +1 -1
  34. package/build/composite/group-label.js +33 -0
  35. package/build/composite/group-label.js.map +1 -0
  36. package/build/composite/group.js +33 -0
  37. package/build/composite/group.js.map +1 -0
  38. package/build/composite/hover.js +33 -0
  39. package/build/composite/hover.js.map +1 -0
  40. package/build/composite/index.js +50 -96
  41. package/build/composite/index.js.map +1 -1
  42. package/build/composite/item.js +33 -0
  43. package/build/composite/item.js.map +1 -0
  44. package/build/composite/legacy/index.js +2 -1
  45. package/build/composite/legacy/index.js.map +1 -1
  46. package/build/composite/row.js +33 -0
  47. package/build/composite/row.js.map +1 -0
  48. package/build/composite/store.js +54 -0
  49. package/build/composite/store.js.map +1 -0
  50. package/build/composite/typeahead.js +33 -0
  51. package/build/composite/typeahead.js.map +1 -0
  52. package/build/composite/types.js.map +1 -1
  53. package/build/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  54. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  55. package/build/custom-select-control-v2/styles.js +12 -14
  56. package/build/custom-select-control-v2/styles.js.map +1 -1
  57. package/build/date-time/date/styles.js +8 -8
  58. package/build/date-time/date/styles.js.map +1 -1
  59. package/build/date-time/time/time-input/index.js +17 -19
  60. package/build/date-time/time/time-input/index.js.map +1 -1
  61. package/build/dimension-control/index.js +6 -1
  62. package/build/dimension-control/index.js.map +1 -1
  63. package/build/draggable/index.js +4 -4
  64. package/build/draggable/index.js.map +1 -1
  65. package/build/dropdown-menu-v2/checkbox-item.js +69 -0
  66. package/build/dropdown-menu-v2/checkbox-item.js.map +1 -0
  67. package/build/dropdown-menu-v2/context.js +17 -0
  68. package/build/dropdown-menu-v2/context.js.map +1 -0
  69. package/build/dropdown-menu-v2/group-label.js +40 -0
  70. package/build/dropdown-menu-v2/group-label.js.map +1 -0
  71. package/build/dropdown-menu-v2/group.js +29 -0
  72. package/build/dropdown-menu-v2/group.js.map +1 -0
  73. package/build/dropdown-menu-v2/index.js +58 -146
  74. package/build/dropdown-menu-v2/index.js.map +1 -1
  75. package/build/dropdown-menu-v2/item-help-text.js +27 -0
  76. package/build/dropdown-menu-v2/item-help-text.js.map +1 -0
  77. package/build/dropdown-menu-v2/item-label.js +27 -0
  78. package/build/dropdown-menu-v2/item-label.js.map +1 -0
  79. package/build/dropdown-menu-v2/item.js +53 -0
  80. package/build/dropdown-menu-v2/item.js.map +1 -0
  81. package/build/dropdown-menu-v2/radio-item.js +79 -0
  82. package/build/dropdown-menu-v2/radio-item.js.map +1 -0
  83. package/build/dropdown-menu-v2/separator.js +30 -0
  84. package/build/dropdown-menu-v2/separator.js.map +1 -0
  85. package/build/dropdown-menu-v2/styles.js +54 -78
  86. package/build/dropdown-menu-v2/styles.js.map +1 -1
  87. package/build/dropdown-menu-v2/types.js.map +1 -1
  88. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js +27 -0
  89. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  90. package/build/focal-point-picker/styles/focal-point-style.js +7 -2
  91. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  92. package/build/form-token-field/types.js.map +1 -1
  93. package/build/index.js +6 -0
  94. package/build/index.js.map +1 -1
  95. package/build/input-control/index.js +2 -2
  96. package/build/input-control/index.js.map +1 -1
  97. package/build/input-control/input-base.js +5 -10
  98. package/build/input-control/input-base.js.map +1 -1
  99. package/build/input-control/input-prefix-wrapper.js +3 -3
  100. package/build/input-control/input-prefix-wrapper.js.map +1 -1
  101. package/build/input-control/input-suffix-wrapper.js +2 -3
  102. package/build/input-control/input-suffix-wrapper.js.map +1 -1
  103. package/build/input-control/reducer/reducer.js +8 -8
  104. package/build/input-control/reducer/reducer.js.map +1 -1
  105. package/build/input-control/styles/input-control-styles.js +75 -45
  106. package/build/input-control/styles/input-control-styles.js.map +1 -1
  107. package/build/input-control/types.js.map +1 -1
  108. package/build/input-control/utils.js +3 -3
  109. package/build/input-control/utils.js.map +1 -1
  110. package/build/item-group/styles.js +10 -10
  111. package/build/item-group/styles.js.map +1 -1
  112. package/build/modal/index.js +5 -5
  113. package/build/modal/index.js.map +1 -1
  114. package/build/navigation/index.js +4 -4
  115. package/build/navigation/index.js.map +1 -1
  116. package/build/navigation/styles/navigation-styles.js +13 -13
  117. package/build/navigation/styles/navigation-styles.js.map +1 -1
  118. package/build/navigator/index.js +12 -13
  119. package/build/navigator/index.js.map +1 -1
  120. package/build/navigator/navigator-back-button/hook.js +2 -2
  121. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  122. package/build/navigator/navigator-button/hook.js +2 -2
  123. package/build/navigator/navigator-button/hook.js.map +1 -1
  124. package/build/navigator/navigator-provider/component.js +99 -67
  125. package/build/navigator/navigator-provider/component.js.map +1 -1
  126. package/build/navigator/navigator-to-parent-button/component.js +2 -2
  127. package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
  128. package/build/navigator/types.js.map +1 -1
  129. package/build/navigator/use-navigator.js +1 -2
  130. package/build/navigator/use-navigator.js.map +1 -1
  131. package/build/palette-edit/index.js +2 -2
  132. package/build/palette-edit/index.js.map +1 -1
  133. package/build/private-apis.js +5 -9
  134. package/build/private-apis.js.map +1 -1
  135. package/build/range-control/styles/range-control-styles.js +30 -30
  136. package/build/range-control/styles/range-control-styles.js.map +1 -1
  137. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  138. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  139. package/build/select-control/styles/select-control-styles.js +12 -12
  140. package/build/select-control/styles/select-control-styles.js.map +1 -1
  141. package/build/slot-fill/bubbles-virtually/fill.js +4 -4
  142. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  143. package/build/snackbar/index.js +4 -4
  144. package/build/snackbar/index.js.map +1 -1
  145. package/build/tabs/index.js +4 -4
  146. package/build/tabs/index.js.map +1 -1
  147. package/build/tabs/styles.js +3 -3
  148. package/build/tabs/styles.js.map +1 -1
  149. package/build/toggle-group-control/toggle-group-control/utils.js +6 -6
  150. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  151. package/build/tools-panel/tools-panel/hook.js +6 -6
  152. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  153. package/build/unit-control/styles/unit-control-styles.js +7 -7
  154. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  155. package/build/utils/config-values.js +6 -4
  156. package/build/utils/config-values.js.map +1 -1
  157. package/build/utils/hooks/use-update-effect.js +4 -4
  158. package/build/utils/hooks/use-update-effect.js.map +1 -1
  159. package/build-module/alignment-matrix-control/cell.js +2 -5
  160. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  161. package/build-module/alignment-matrix-control/icon.js +31 -19
  162. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  163. package/build-module/alignment-matrix-control/index.js +55 -50
  164. package/build-module/alignment-matrix-control/index.js.map +1 -1
  165. package/build-module/alignment-matrix-control/styles.js +70 -0
  166. package/build-module/alignment-matrix-control/styles.js.map +1 -0
  167. package/build-module/alignment-matrix-control/types.js.map +1 -1
  168. package/build-module/angle-picker-control/angle-circle.js +9 -9
  169. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  170. package/build-module/border-control/border-control/component.js +18 -13
  171. package/build-module/border-control/border-control/component.js.map +1 -1
  172. package/build-module/circular-option-picker/circular-option-picker-option.js +16 -10
  173. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  174. package/build-module/circular-option-picker/circular-option-picker.js +16 -13
  175. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  176. package/build-module/circular-option-picker/types.js.map +1 -1
  177. package/build-module/clipboard-button/index.js +6 -6
  178. package/build-module/clipboard-button/index.js.map +1 -1
  179. package/build-module/color-palette/utils.js +1 -2
  180. package/build-module/color-palette/utils.js.map +1 -1
  181. package/build-module/color-picker/color-copy-button.js +8 -8
  182. package/build-module/color-picker/color-copy-button.js.map +1 -1
  183. package/build-module/color-picker/hex-input.js +7 -8
  184. package/build-module/color-picker/hex-input.js.map +1 -1
  185. package/build-module/color-picker/input-with-slider.js +7 -8
  186. package/build-module/color-picker/input-with-slider.js.map +1 -1
  187. package/build-module/color-picker/styles.js +8 -8
  188. package/build-module/color-picker/styles.js.map +1 -1
  189. package/build-module/combobox-control/types.js.map +1 -1
  190. package/build-module/composite/group-label.js +25 -0
  191. package/build-module/composite/group-label.js.map +1 -0
  192. package/build-module/composite/group.js +25 -0
  193. package/build-module/composite/group.js.map +1 -0
  194. package/build-module/composite/hover.js +25 -0
  195. package/build-module/composite/hover.js.map +1 -0
  196. package/build-module/composite/index.js +51 -96
  197. package/build-module/composite/index.js.map +1 -1
  198. package/build-module/composite/item.js +25 -0
  199. package/build-module/composite/item.js.map +1 -0
  200. package/build-module/composite/legacy/index.js +2 -1
  201. package/build-module/composite/legacy/index.js.map +1 -1
  202. package/build-module/composite/row.js +25 -0
  203. package/build-module/composite/row.js.map +1 -0
  204. package/build-module/composite/store.js +46 -0
  205. package/build-module/composite/store.js.map +1 -0
  206. package/build-module/composite/typeahead.js +25 -0
  207. package/build-module/composite/typeahead.js.map +1 -0
  208. package/build-module/composite/types.js.map +1 -1
  209. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  210. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  211. package/build-module/custom-select-control-v2/styles.js +12 -14
  212. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  213. package/build-module/date-time/date/styles.js +8 -8
  214. package/build-module/date-time/date/styles.js.map +1 -1
  215. package/build-module/date-time/time/time-input/index.js +17 -19
  216. package/build-module/date-time/time/time-input/index.js.map +1 -1
  217. package/build-module/dimension-control/index.js +6 -1
  218. package/build-module/dimension-control/index.js.map +1 -1
  219. package/build-module/draggable/index.js +4 -4
  220. package/build-module/draggable/index.js.map +1 -1
  221. package/build-module/dropdown-menu-v2/checkbox-item.js +62 -0
  222. package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -0
  223. package/build-module/dropdown-menu-v2/context.js +11 -0
  224. package/build-module/dropdown-menu-v2/context.js.map +1 -0
  225. package/build-module/dropdown-menu-v2/group-label.js +32 -0
  226. package/build-module/dropdown-menu-v2/group-label.js.map +1 -0
  227. package/build-module/dropdown-menu-v2/group.js +21 -0
  228. package/build-module/dropdown-menu-v2/group.js.map +1 -0
  229. package/build-module/dropdown-menu-v2/index.js +57 -144
  230. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  231. package/build-module/dropdown-menu-v2/item-help-text.js +19 -0
  232. package/build-module/dropdown-menu-v2/item-help-text.js.map +1 -0
  233. package/build-module/dropdown-menu-v2/item-label.js +19 -0
  234. package/build-module/dropdown-menu-v2/item-label.js.map +1 -0
  235. package/build-module/dropdown-menu-v2/item.js +46 -0
  236. package/build-module/dropdown-menu-v2/item.js.map +1 -0
  237. package/build-module/dropdown-menu-v2/radio-item.js +72 -0
  238. package/build-module/dropdown-menu-v2/radio-item.js.map +1 -0
  239. package/build-module/dropdown-menu-v2/separator.js +22 -0
  240. package/build-module/dropdown-menu-v2/separator.js.map +1 -0
  241. package/build-module/dropdown-menu-v2/styles.js +54 -78
  242. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  243. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  244. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js +20 -0
  245. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  246. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -2
  247. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  248. package/build-module/form-token-field/types.js.map +1 -1
  249. package/build-module/index.js +2 -1
  250. package/build-module/index.js.map +1 -1
  251. package/build-module/input-control/index.js +2 -2
  252. package/build-module/input-control/index.js.map +1 -1
  253. package/build-module/input-control/input-base.js +6 -11
  254. package/build-module/input-control/input-base.js.map +1 -1
  255. package/build-module/input-control/input-prefix-wrapper.js +4 -3
  256. package/build-module/input-control/input-prefix-wrapper.js.map +1 -1
  257. package/build-module/input-control/input-suffix-wrapper.js +3 -3
  258. package/build-module/input-control/input-suffix-wrapper.js.map +1 -1
  259. package/build-module/input-control/reducer/reducer.js +8 -8
  260. package/build-module/input-control/reducer/reducer.js.map +1 -1
  261. package/build-module/input-control/styles/input-control-styles.js +74 -44
  262. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  263. package/build-module/input-control/types.js.map +1 -1
  264. package/build-module/input-control/utils.js +3 -3
  265. package/build-module/input-control/utils.js.map +1 -1
  266. package/build-module/item-group/styles.js +10 -10
  267. package/build-module/item-group/styles.js.map +1 -1
  268. package/build-module/modal/index.js +5 -5
  269. package/build-module/modal/index.js.map +1 -1
  270. package/build-module/navigation/index.js +4 -4
  271. package/build-module/navigation/index.js.map +1 -1
  272. package/build-module/navigation/styles/navigation-styles.js +14 -14
  273. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  274. package/build-module/navigator/index.js +6 -6
  275. package/build-module/navigator/index.js.map +1 -1
  276. package/build-module/navigator/navigator-back-button/hook.js +1 -1
  277. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  278. package/build-module/navigator/navigator-button/hook.js +1 -1
  279. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  280. package/build-module/navigator/navigator-provider/component.js +99 -67
  281. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  282. package/build-module/navigator/navigator-to-parent-button/component.js +1 -1
  283. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
  284. package/build-module/navigator/types.js.map +1 -1
  285. package/build-module/navigator/use-navigator.js +1 -2
  286. package/build-module/navigator/use-navigator.js.map +1 -1
  287. package/build-module/palette-edit/index.js +2 -2
  288. package/build-module/palette-edit/index.js.map +1 -1
  289. package/build-module/private-apis.js +5 -9
  290. package/build-module/private-apis.js.map +1 -1
  291. package/build-module/range-control/styles/range-control-styles.js +31 -31
  292. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  293. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
  294. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  295. package/build-module/select-control/styles/select-control-styles.js +13 -13
  296. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  297. package/build-module/slot-fill/bubbles-virtually/fill.js +4 -4
  298. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  299. package/build-module/snackbar/index.js +4 -4
  300. package/build-module/snackbar/index.js.map +1 -1
  301. package/build-module/tabs/index.js +4 -4
  302. package/build-module/tabs/index.js.map +1 -1
  303. package/build-module/tabs/styles.js +4 -4
  304. package/build-module/tabs/styles.js.map +1 -1
  305. package/build-module/toggle-group-control/toggle-group-control/utils.js +6 -6
  306. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  307. package/build-module/tools-panel/tools-panel/hook.js +6 -6
  308. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  309. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  310. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  311. package/build-module/utils/config-values.js +6 -4
  312. package/build-module/utils/config-values.js.map +1 -1
  313. package/build-module/utils/hooks/use-update-effect.js +4 -4
  314. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  315. package/build-style/style-rtl.css +11 -23
  316. package/build-style/style.css +11 -23
  317. package/build-types/alignment-matrix-control/cell.d.ts +1 -1
  318. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  319. package/build-types/alignment-matrix-control/icon.d.ts +1 -1
  320. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
  321. package/build-types/alignment-matrix-control/index.d.ts +16 -6
  322. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  323. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  324. package/build-types/alignment-matrix-control/{styles/alignment-matrix-control-styles.d.ts → styles.d.ts} +9 -10
  325. package/build-types/alignment-matrix-control/styles.d.ts.map +1 -0
  326. package/build-types/alignment-matrix-control/types.d.ts +12 -1
  327. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  328. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  329. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  330. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  331. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  332. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  333. package/build-types/circular-option-picker/types.d.ts +2 -2
  334. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  335. package/build-types/color-palette/utils.d.ts.map +1 -1
  336. package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
  337. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  338. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  339. package/build-types/color-picker/styles.d.ts.map +1 -1
  340. package/build-types/combobox-control/types.d.ts +1 -0
  341. package/build-types/combobox-control/types.d.ts.map +1 -1
  342. package/build-types/composite/group-label.d.ts +3 -0
  343. package/build-types/composite/group-label.d.ts.map +1 -0
  344. package/build-types/composite/group.d.ts +3 -0
  345. package/build-types/composite/group.d.ts.map +1 -0
  346. package/build-types/composite/hover.d.ts +3 -0
  347. package/build-types/composite/hover.d.ts.map +1 -0
  348. package/build-types/composite/index.d.ts +30 -26
  349. package/build-types/composite/index.d.ts.map +1 -1
  350. package/build-types/composite/item.d.ts +3 -0
  351. package/build-types/composite/item.d.ts.map +1 -0
  352. package/build-types/composite/legacy/index.d.ts +1 -4
  353. package/build-types/composite/legacy/index.d.ts.map +1 -1
  354. package/build-types/composite/row.d.ts +3 -0
  355. package/build-types/composite/row.d.ts.map +1 -0
  356. package/build-types/composite/store.d.ts +25 -0
  357. package/build-types/composite/store.d.ts.map +1 -0
  358. package/build-types/composite/stories/index.story.d.ts +1 -0
  359. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  360. package/build-types/composite/typeahead.d.ts +3 -0
  361. package/build-types/composite/typeahead.d.ts.map +1 -0
  362. package/build-types/composite/types.d.ts +2 -2
  363. package/build-types/composite/types.d.ts.map +1 -1
  364. package/build-types/date-time/time/time-input/index.d.ts.map +1 -1
  365. package/build-types/dimension-control/index.d.ts +1 -1
  366. package/build-types/dimension-control/index.d.ts.map +1 -1
  367. package/build-types/dimension-control/stories/index.story.d.ts +5 -0
  368. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  369. package/build-types/dropdown-menu-v2/checkbox-item.d.ts +3 -0
  370. package/build-types/dropdown-menu-v2/checkbox-item.d.ts.map +1 -0
  371. package/build-types/dropdown-menu-v2/context.d.ts +6 -0
  372. package/build-types/dropdown-menu-v2/context.d.ts.map +1 -0
  373. package/build-types/dropdown-menu-v2/group-label.d.ts +3 -0
  374. package/build-types/dropdown-menu-v2/group-label.d.ts.map +1 -0
  375. package/build-types/dropdown-menu-v2/group.d.ts +3 -0
  376. package/build-types/dropdown-menu-v2/group.d.ts.map +1 -0
  377. package/build-types/dropdown-menu-v2/index.d.ts +39 -18
  378. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  379. package/build-types/dropdown-menu-v2/item-help-text.d.ts +6 -0
  380. package/build-types/dropdown-menu-v2/item-help-text.d.ts.map +1 -0
  381. package/build-types/dropdown-menu-v2/item-label.d.ts +6 -0
  382. package/build-types/dropdown-menu-v2/item-label.d.ts.map +1 -0
  383. package/build-types/dropdown-menu-v2/item.d.ts +3 -0
  384. package/build-types/dropdown-menu-v2/item.d.ts.map +1 -0
  385. package/build-types/dropdown-menu-v2/radio-item.d.ts +3 -0
  386. package/build-types/dropdown-menu-v2/radio-item.d.ts.map +1 -0
  387. package/build-types/dropdown-menu-v2/separator.d.ts +3 -0
  388. package/build-types/dropdown-menu-v2/separator.d.ts.map +1 -0
  389. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +10 -10
  390. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  391. package/build-types/dropdown-menu-v2/styles.d.ts +14 -6
  392. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  393. package/build-types/dropdown-menu-v2/types.d.ts +6 -0
  394. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  395. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts +8 -0
  396. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts.map +1 -0
  397. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  398. package/build-types/form-token-field/types.d.ts +1 -0
  399. package/build-types/form-token-field/types.d.ts.map +1 -1
  400. package/build-types/index.d.ts +3 -1
  401. package/build-types/index.d.ts.map +1 -1
  402. package/build-types/input-control/input-base.d.ts.map +1 -1
  403. package/build-types/input-control/input-prefix-wrapper.d.ts +2 -2
  404. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  405. package/build-types/input-control/input-suffix-wrapper.d.ts +2 -2
  406. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  407. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  408. package/build-types/input-control/stories/index.story.d.ts +9 -0
  409. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  410. package/build-types/input-control/styles/input-control-styles.d.ts +15 -9
  411. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  412. package/build-types/input-control/types.d.ts +23 -6
  413. package/build-types/input-control/types.d.ts.map +1 -1
  414. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  415. package/build-types/navigator/index.d.ts +6 -6
  416. package/build-types/navigator/index.d.ts.map +1 -1
  417. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  418. package/build-types/navigator/stories/index.story.d.ts +1 -1
  419. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  420. package/build-types/navigator/types.d.ts +3 -1
  421. package/build-types/navigator/types.d.ts.map +1 -1
  422. package/build-types/navigator/use-navigator.d.ts +1 -2
  423. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  424. package/build-types/private-apis.d.ts.map +1 -1
  425. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  426. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  427. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  428. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  429. package/build-types/tabs/index.d.ts.map +1 -1
  430. package/build-types/tabs/styles.d.ts.map +1 -1
  431. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  432. package/build-types/utils/config-values.d.ts +3 -3
  433. package/package.json +19 -19
  434. package/src/alignment-matrix-control/README.md +1 -5
  435. package/src/alignment-matrix-control/cell.tsx +3 -9
  436. package/src/alignment-matrix-control/icon.tsx +48 -30
  437. package/src/alignment-matrix-control/index.tsx +60 -50
  438. package/src/alignment-matrix-control/stories/index.story.tsx +3 -12
  439. package/src/alignment-matrix-control/styles.ts +113 -0
  440. package/src/alignment-matrix-control/types.ts +12 -1
  441. package/src/angle-picker-control/angle-circle.tsx +11 -9
  442. package/src/border-control/border-control/component.tsx +23 -16
  443. package/src/circular-option-picker/circular-option-picker-option.tsx +16 -19
  444. package/src/circular-option-picker/circular-option-picker.tsx +26 -12
  445. package/src/circular-option-picker/types.ts +2 -2
  446. package/src/clipboard-button/index.tsx +6 -6
  447. package/src/color-palette/test/utils.ts +21 -2
  448. package/src/color-palette/utils.ts +1 -3
  449. package/src/color-picker/color-copy-button.tsx +10 -8
  450. package/src/color-picker/hex-input.tsx +6 -10
  451. package/src/color-picker/input-with-slider.tsx +6 -10
  452. package/src/color-picker/styles.ts +1 -1
  453. package/src/combobox-control/types.ts +1 -0
  454. package/src/composite/group-label.tsx +30 -0
  455. package/src/composite/group.tsx +30 -0
  456. package/src/composite/hover.tsx +30 -0
  457. package/src/composite/index.tsx +61 -145
  458. package/src/composite/item.tsx +30 -0
  459. package/src/composite/legacy/index.tsx +2 -1
  460. package/src/composite/row.tsx +30 -0
  461. package/src/composite/store.ts +46 -0
  462. package/src/composite/stories/index.story.tsx +138 -265
  463. package/src/composite/typeahead.tsx +30 -0
  464. package/src/composite/types.ts +2 -2
  465. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +10 -10
  466. package/src/custom-gradient-picker/style.scss +2 -21
  467. package/src/custom-select-control-v2/styles.ts +4 -4
  468. package/src/date-time/date/styles.ts +2 -2
  469. package/src/date-time/time/test/index.tsx +3 -6
  470. package/src/date-time/time/time-input/index.tsx +25 -25
  471. package/src/date-time/time/time-input/test/index.tsx +6 -7
  472. package/src/dimension-control/README.md +4 -0
  473. package/src/dimension-control/index.tsx +7 -1
  474. package/src/dimension-control/stories/index.story.tsx +7 -2
  475. package/src/dimension-control/test/__snapshots__/index.test.js.snap +16 -16
  476. package/src/dimension-control/test/index.test.js +1 -0
  477. package/src/draggable/index.tsx +4 -4
  478. package/src/dropdown-menu-v2/README.md +73 -60
  479. package/src/dropdown-menu-v2/checkbox-item.tsx +63 -0
  480. package/src/dropdown-menu-v2/context.tsx +13 -0
  481. package/src/dropdown-menu-v2/group-label.tsx +37 -0
  482. package/src/dropdown-menu-v2/group.tsx +26 -0
  483. package/src/dropdown-menu-v2/index.tsx +57 -197
  484. package/src/dropdown-menu-v2/item-help-text.tsx +23 -0
  485. package/src/dropdown-menu-v2/item-label.tsx +23 -0
  486. package/src/dropdown-menu-v2/item.tsx +50 -0
  487. package/src/dropdown-menu-v2/radio-item.tsx +70 -0
  488. package/src/dropdown-menu-v2/separator.tsx +27 -0
  489. package/src/dropdown-menu-v2/stories/index.story.tsx +295 -262
  490. package/src/dropdown-menu-v2/styles.ts +102 -66
  491. package/src/dropdown-menu-v2/test/index.tsx +159 -132
  492. package/src/dropdown-menu-v2/types.ts +7 -0
  493. package/src/dropdown-menu-v2/use-temporary-focus-visible-fix.ts +22 -0
  494. package/src/focal-point-picker/styles/focal-point-style.ts +6 -1
  495. package/src/form-toggle/style.scss +1 -1
  496. package/src/form-token-field/style.scss +2 -3
  497. package/src/form-token-field/types.ts +1 -0
  498. package/src/index.ts +5 -1
  499. package/src/input-control/index.tsx +2 -2
  500. package/src/input-control/input-base.tsx +4 -14
  501. package/src/input-control/input-prefix-wrapper.tsx +8 -4
  502. package/src/input-control/input-suffix-wrapper.tsx +4 -6
  503. package/src/input-control/reducer/reducer.ts +13 -10
  504. package/src/input-control/stories/index.story.tsx +31 -12
  505. package/src/input-control/styles/input-control-styles.tsx +42 -11
  506. package/src/input-control/types.ts +23 -7
  507. package/src/input-control/utils.ts +3 -3
  508. package/src/item-group/styles.ts +3 -3
  509. package/src/item-group/test/__snapshots__/index.js.snap +3 -3
  510. package/src/modal/index.tsx +5 -5
  511. package/src/modal/style.scss +5 -4
  512. package/src/navigation/index.tsx +4 -4
  513. package/src/navigation/styles/navigation-styles.tsx +3 -3
  514. package/src/navigator/index.ts +6 -6
  515. package/src/navigator/navigator-back-button/hook.ts +1 -1
  516. package/src/navigator/navigator-button/hook.ts +1 -1
  517. package/src/navigator/navigator-provider/README.md +2 -3
  518. package/src/navigator/navigator-provider/component.tsx +97 -82
  519. package/src/navigator/navigator-to-parent-button/component.tsx +1 -1
  520. package/src/navigator/stories/index.story.tsx +82 -253
  521. package/src/navigator/types.ts +3 -1
  522. package/src/navigator/use-navigator.ts +1 -3
  523. package/src/palette-edit/index.tsx +2 -2
  524. package/src/private-apis.ts +5 -18
  525. package/src/range-control/styles/range-control-styles.ts +7 -7
  526. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -2
  527. package/src/resizable-box/style.scss +2 -2
  528. package/src/select-control/styles/select-control-styles.ts +5 -5
  529. package/src/slot-fill/bubbles-virtually/fill.tsx +4 -4
  530. package/src/snackbar/index.tsx +4 -4
  531. package/src/tab-panel/style.scss +0 -1
  532. package/src/tabs/index.tsx +8 -4
  533. package/src/tabs/styles.ts +2 -3
  534. package/src/text-control/style.scss +3 -2
  535. package/src/toggle-group-control/toggle-group-control/utils.ts +7 -7
  536. package/src/tools-panel/tools-panel/hook.ts +6 -6
  537. package/src/unit-control/styles/unit-control-styles.ts +2 -1
  538. package/src/utils/config-values.js +6 -4
  539. package/src/utils/hooks/use-update-effect.js +4 -4
  540. package/tsconfig.tsbuildinfo +1 -1
  541. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -66
  542. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  543. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -77
  544. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  545. package/build/navigator/navigator-back-button/index.js +0 -14
  546. package/build/navigator/navigator-back-button/index.js.map +0 -1
  547. package/build/navigator/navigator-button/index.js +0 -14
  548. package/build/navigator/navigator-button/index.js.map +0 -1
  549. package/build/navigator/navigator-provider/index.js +0 -14
  550. package/build/navigator/navigator-provider/index.js.map +0 -1
  551. package/build/navigator/navigator-screen/index.js +0 -14
  552. package/build/navigator/navigator-screen/index.js.map +0 -1
  553. package/build/navigator/navigator-to-parent-button/index.js +0 -14
  554. package/build/navigator/navigator-to-parent-button/index.js.map +0 -1
  555. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -63
  556. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  557. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -72
  558. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  559. package/build-module/navigator/navigator-back-button/index.js +0 -2
  560. package/build-module/navigator/navigator-back-button/index.js.map +0 -1
  561. package/build-module/navigator/navigator-button/index.js +0 -2
  562. package/build-module/navigator/navigator-button/index.js.map +0 -1
  563. package/build-module/navigator/navigator-provider/index.js +0 -2
  564. package/build-module/navigator/navigator-provider/index.js.map +0 -1
  565. package/build-module/navigator/navigator-screen/index.js +0 -2
  566. package/build-module/navigator/navigator-screen/index.js.map +0 -1
  567. package/build-module/navigator/navigator-to-parent-button/index.js +0 -2
  568. package/build-module/navigator/navigator-to-parent-button/index.js.map +0 -1
  569. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +0 -18
  570. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +0 -1
  571. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +0 -1
  572. package/build-types/navigator/navigator-back-button/index.d.ts +0 -2
  573. package/build-types/navigator/navigator-back-button/index.d.ts.map +0 -1
  574. package/build-types/navigator/navigator-button/index.d.ts +0 -2
  575. package/build-types/navigator/navigator-button/index.d.ts.map +0 -1
  576. package/build-types/navigator/navigator-provider/index.d.ts +0 -2
  577. package/build-types/navigator/navigator-provider/index.d.ts.map +0 -1
  578. package/build-types/navigator/navigator-screen/index.d.ts +0 -2
  579. package/build-types/navigator/navigator-screen/index.d.ts.map +0 -1
  580. package/build-types/navigator/navigator-to-parent-button/index.d.ts +0 -2
  581. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +0 -1
  582. package/src/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.ts +0 -77
  583. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +0 -102
  584. package/src/navigator/navigator-back-button/index.ts +0 -1
  585. package/src/navigator/navigator-button/index.ts +0 -1
  586. package/src/navigator/navigator-provider/index.ts +0 -1
  587. package/src/navigator/navigator-screen/index.ts +0 -1
  588. package/src/navigator/navigator-to-parent-button/index.ts +0 -1
@@ -100,8 +100,8 @@ export function UnforwardedInputControl(
100
100
  isPressEnterToChange={ isPressEnterToChange }
101
101
  onKeyDown={ onKeyDown }
102
102
  onValidate={ onValidate }
103
- paddingInlineStart={ prefix ? space( 2 ) : undefined }
104
- paddingInlineEnd={ suffix ? space( 2 ) : undefined }
103
+ paddingInlineStart={ prefix ? space( 1 ) : undefined }
104
+ paddingInlineEnd={ suffix ? space( 1 ) : undefined }
105
105
  ref={ ref }
106
106
  size={ size }
107
107
  stateReducer={ stateReducer }
@@ -14,13 +14,7 @@ import { useMemo } from '@wordpress/element';
14
14
  */
15
15
  import Backdrop from './backdrop';
16
16
  import Label from './label';
17
- import {
18
- Container,
19
- Root,
20
- Prefix,
21
- Suffix,
22
- getSizeConfig,
23
- } from './styles/input-control-styles';
17
+ import { Container, Root, Prefix, Suffix } from './styles/input-control-styles';
24
18
  import type { InputBaseProps, LabelPosition } from './types';
25
19
  import type { WordPressComponentProps } from '../context';
26
20
  import {
@@ -90,16 +84,12 @@ function InputBase(
90
84
  const id = useUniqueId( idProp );
91
85
  const hideLabel = hideLabelFromVision || ! label;
92
86
 
93
- const { paddingLeft, paddingRight } = getSizeConfig( {
94
- inputSize: size,
95
- __next40pxDefaultSize,
96
- } );
97
87
  const prefixSuffixContextValue = useMemo( () => {
98
88
  return {
99
- InputControlPrefixWrapper: { paddingLeft },
100
- InputControlSuffixWrapper: { paddingRight },
89
+ InputControlPrefixWrapper: { __next40pxDefaultSize, size },
90
+ InputControlSuffixWrapper: { __next40pxDefaultSize, size },
101
91
  };
102
- }, [ paddingLeft, paddingRight ] );
92
+ }, [ __next40pxDefaultSize, size ] );
103
93
 
104
94
  return (
105
95
  // @ts-expect-error The `direction` prop from Flex (FlexDirection) conflicts with legacy SVGAttributes `direction` (string) that come from React intrinsic prop definitions.
@@ -6,19 +6,23 @@ import type { ForwardedRef } from 'react';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import { Spacer } from '../spacer';
10
9
  import type { WordPressComponentProps } from '../context';
11
10
  import { contextConnect, useContextSystem } from '../context';
12
- import type { InputControlPrefixWrapperProps } from './types';
11
+ import type { PrefixSuffixWrapperProps } from './types';
12
+ import { PrefixSuffixWrapper } from './styles/input-control-styles';
13
13
 
14
14
  function UnconnectedInputControlPrefixWrapper(
15
- props: WordPressComponentProps< InputControlPrefixWrapperProps, 'div' >,
15
+ props: WordPressComponentProps< PrefixSuffixWrapperProps, 'div' >,
16
16
  forwardedRef: ForwardedRef< any >
17
17
  ) {
18
18
  const derivedProps = useContextSystem( props, 'InputControlPrefixWrapper' );
19
19
 
20
20
  return (
21
- <Spacer marginBottom={ 0 } { ...derivedProps } ref={ forwardedRef } />
21
+ <PrefixSuffixWrapper
22
+ { ...derivedProps }
23
+ isPrefix
24
+ ref={ forwardedRef }
25
+ />
22
26
  );
23
27
  }
24
28
 
@@ -6,20 +6,18 @@ import type { ForwardedRef } from 'react';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import { Spacer } from '../spacer';
10
9
  import type { WordPressComponentProps } from '../context';
11
10
  import { contextConnect, useContextSystem } from '../context';
12
- import type { InputControlSuffixWrapperProps } from './types';
11
+ import type { PrefixSuffixWrapperProps } from './types';
12
+ import { PrefixSuffixWrapper } from './styles/input-control-styles';
13
13
 
14
14
  function UnconnectedInputControlSuffixWrapper(
15
- props: WordPressComponentProps< InputControlSuffixWrapperProps, 'div' >,
15
+ props: WordPressComponentProps< PrefixSuffixWrapperProps, 'div' >,
16
16
  forwardedRef: ForwardedRef< any >
17
17
  ) {
18
18
  const derivedProps = useContextSystem( props, 'InputControlSuffixWrapper' );
19
19
 
20
- return (
21
- <Spacer marginBottom={ 0 } { ...derivedProps } ref={ forwardedRef } />
22
- );
20
+ return <PrefixSuffixWrapper { ...derivedProps } ref={ forwardedRef } />;
23
21
  }
24
22
 
25
23
  /**
@@ -192,25 +192,28 @@ export function useInputControlStateReducer(
192
192
  const pressDown = createKeyEvent( actions.PRESS_DOWN );
193
193
  const pressEnter = createKeyEvent( actions.PRESS_ENTER );
194
194
 
195
- const currentState = useRef( state );
196
- const refProps = useRef( { value: initialState.value, onChangeHandler } );
195
+ const currentStateRef = useRef( state );
196
+ const refPropsRef = useRef( {
197
+ value: initialState.value,
198
+ onChangeHandler,
199
+ } );
197
200
 
198
201
  // Freshens refs to props and state so that subsequent effects have access
199
202
  // to their latest values without their changes causing effect runs.
200
203
  useLayoutEffect( () => {
201
- currentState.current = state;
202
- refProps.current = { value: initialState.value, onChangeHandler };
204
+ currentStateRef.current = state;
205
+ refPropsRef.current = { value: initialState.value, onChangeHandler };
203
206
  } );
204
207
 
205
208
  // Propagates the latest state through onChange.
206
209
  useLayoutEffect( () => {
207
210
  if (
208
- currentState.current._event !== undefined &&
209
- state.value !== refProps.current.value &&
211
+ currentStateRef.current._event !== undefined &&
212
+ state.value !== refPropsRef.current.value &&
210
213
  ! state.isDirty
211
214
  ) {
212
- refProps.current.onChangeHandler( state.value ?? '', {
213
- event: currentState.current._event as
215
+ refPropsRef.current.onChangeHandler( state.value ?? '', {
216
+ event: currentStateRef.current._event as
214
217
  | ChangeEvent< HTMLInputElement >
215
218
  | PointerEvent< HTMLInputElement >,
216
219
  } );
@@ -220,8 +223,8 @@ export function useInputControlStateReducer(
220
223
  // Updates the state from props.
221
224
  useLayoutEffect( () => {
222
225
  if (
223
- initialState.value !== currentState.current.value &&
224
- ! currentState.current.isDirty
226
+ initialState.value !== currentStateRef.current.value &&
227
+ ! currentStateRef.current.isDirty
225
228
  ) {
226
229
  dispatch( {
227
230
  type: actions.CONTROL,
@@ -5,7 +5,7 @@ import type { Meta, StoryFn } from '@storybook/react';
5
5
  /**
6
6
  * WordPress dependencies
7
7
  */
8
- import { seen, unseen } from '@wordpress/icons';
8
+ import { closeSmall, Icon, link, seen, unseen } from '@wordpress/icons';
9
9
  import { useState } from '@wordpress/element';
10
10
  /**
11
11
  * Internal dependencies
@@ -75,6 +75,29 @@ WithSuffix.args = {
75
75
  suffix: <InputControlSuffixWrapper>%</InputControlSuffixWrapper>,
76
76
  };
77
77
 
78
+ /**
79
+ * `<InputControlPrefixWrapper>` and `<InputControlSuffixWrapper>` have a `variant` prop that can be used to
80
+ * adjust the wrapper based on the prefix or suffix content.
81
+ *
82
+ * - `'default'`: Standard padding for text content.
83
+ * - `'icon'`: For icons.
84
+ * - `'control'`: For controls, like buttons or selects.
85
+ */
86
+ export const WithIconOrControl = Template.bind( {} );
87
+ WithIconOrControl.args = {
88
+ ...Default.args,
89
+ prefix: (
90
+ <InputControlPrefixWrapper variant="icon">
91
+ <Icon icon={ link } />
92
+ </InputControlPrefixWrapper>
93
+ ),
94
+ suffix: (
95
+ <InputControlSuffixWrapper variant="control">
96
+ <Button icon={ closeSmall } size="small" label="Clear" />
97
+ </InputControlSuffixWrapper>
98
+ ),
99
+ };
100
+
78
101
  export const WithSideLabel = Template.bind( {} );
79
102
  WithSideLabel.args = {
80
103
  ...Default.args,
@@ -95,17 +118,13 @@ export const ShowPassword: StoryFn< typeof InputControl > = ( args ) => {
95
118
  type={ visible ? 'text' : 'password' }
96
119
  label="Password"
97
120
  suffix={
98
- <InputControlSuffixWrapper>
99
- <div style={ { display: 'flex' } }>
100
- <Button
101
- size="small"
102
- icon={ visible ? unseen : seen }
103
- onClick={ () => setVisible( ( value ) => ! value ) }
104
- label={
105
- visible ? 'Hide password' : 'Show password'
106
- }
107
- />
108
- </div>
121
+ <InputControlSuffixWrapper variant="control">
122
+ <Button
123
+ size="small"
124
+ icon={ visible ? unseen : seen }
125
+ onClick={ () => setVisible( ( value ) => ! value ) }
126
+ label={ visible ? 'Hide password' : 'Show password' }
127
+ />
109
128
  </InputControlSuffixWrapper>
110
129
  }
111
130
  { ...args }
@@ -13,8 +13,7 @@ import type { WordPressComponentProps } from '../../context';
13
13
  import { Flex, FlexItem } from '../../flex';
14
14
  import { Text } from '../../text';
15
15
  import { baseLabelTypography, COLORS, CONFIG, rtl } from '../../utils';
16
- import type { LabelPosition, Size } from '../types';
17
- import { space } from '../../utils/space';
16
+ import type { LabelPosition, Size, PrefixSuffixWrapperProps } from '../types';
18
17
 
19
18
  type ContainerProps = {
20
19
  disabled?: boolean;
@@ -78,7 +77,7 @@ export const BackdropUI = styled.div< BackdropProps >`
78
77
  export const Root = styled( Flex )`
79
78
  box-sizing: border-box;
80
79
  position: relative;
81
- border-radius: 2px;
80
+ border-radius: ${ CONFIG.radiusSmall };
82
81
  padding-top: 0;
83
82
 
84
83
  // Focus within, excluding cases where auxiliary controls in prefix or suffix have focus.
@@ -188,29 +187,29 @@ export const getSizeConfig = ( {
188
187
  height: 40,
189
188
  lineHeight: 1,
190
189
  minHeight: 40,
191
- paddingLeft: space( 4 ),
192
- paddingRight: space( 4 ),
190
+ paddingLeft: CONFIG.controlPaddingX,
191
+ paddingRight: CONFIG.controlPaddingX,
193
192
  },
194
193
  small: {
195
194
  height: 24,
196
195
  lineHeight: 1,
197
196
  minHeight: 24,
198
- paddingLeft: space( 2 ),
199
- paddingRight: space( 2 ),
197
+ paddingLeft: CONFIG.controlPaddingXSmall,
198
+ paddingRight: CONFIG.controlPaddingXSmall,
200
199
  },
201
200
  compact: {
202
201
  height: 32,
203
202
  lineHeight: 1,
204
203
  minHeight: 32,
205
- paddingLeft: space( 2 ),
206
- paddingRight: space( 2 ),
204
+ paddingLeft: CONFIG.controlPaddingXSmall,
205
+ paddingRight: CONFIG.controlPaddingXSmall,
207
206
  },
208
207
  '__unstable-large': {
209
208
  height: 40,
210
209
  lineHeight: 1,
211
210
  minHeight: 40,
212
- paddingLeft: space( 4 ),
213
- paddingRight: space( 4 ),
211
+ paddingLeft: CONFIG.controlPaddingX,
212
+ paddingRight: CONFIG.controlPaddingX,
214
213
  },
215
214
  };
216
215
 
@@ -319,3 +318,35 @@ export const Label = (
319
318
  export const LabelWrapper = styled( FlexItem )`
320
319
  max-width: calc( 100% - 10px );
321
320
  `;
321
+
322
+ const prefixSuffixWrapperStyles = ( {
323
+ variant = 'default',
324
+ size,
325
+ __next40pxDefaultSize,
326
+ isPrefix,
327
+ }: PrefixSuffixWrapperProps & { isPrefix?: boolean } ) => {
328
+ const { paddingLeft: padding } = getSizeConfig( {
329
+ inputSize: size,
330
+ __next40pxDefaultSize,
331
+ } );
332
+
333
+ const paddingProperty = isPrefix
334
+ ? 'paddingInlineStart'
335
+ : 'paddingInlineEnd';
336
+
337
+ if ( variant === 'default' ) {
338
+ return css( {
339
+ [ paddingProperty ]: padding,
340
+ } );
341
+ }
342
+
343
+ // If variant is 'icon' or 'control'
344
+ return css( {
345
+ display: 'flex',
346
+ [ paddingProperty ]: padding - 4,
347
+ } );
348
+ };
349
+
350
+ export const PrefixSuffixWrapper = styled.div`
351
+ ${ prefixSuffixWrapperStyles }
352
+ `;
@@ -31,6 +31,7 @@ interface BaseProps {
31
31
  *
32
32
  * @default false
33
33
  * @deprecated
34
+ * @ignore
34
35
  */
35
36
  __next36pxDefaultSize?: boolean;
36
37
  /**
@@ -208,16 +209,31 @@ export interface InputControlLabelProps {
208
209
  size?: BaseProps[ 'size' ];
209
210
  }
210
211
 
211
- export type InputControlPrefixWrapperProps = {
212
+ export type PrefixSuffixWrapperProps = {
212
213
  /**
213
- * The prefix to be inserted.
214
+ * The content to be inserted.
214
215
  */
215
216
  children: ReactNode;
216
- };
217
-
218
- export type InputControlSuffixWrapperProps = {
219
217
  /**
220
- * The suffix to be inserted.
218
+ * Internal prop used to control the padding size of the wrapper.
219
+ *
220
+ * @ignore
221
221
  */
222
- children: ReactNode;
222
+ size?: BaseProps[ 'size' ];
223
+ /**
224
+ * Internal prop used to control the padding size of the wrapper.
225
+ *
226
+ * @ignore
227
+ */
228
+ __next40pxDefaultSize?: BaseProps[ '__next40pxDefaultSize' ];
229
+ /**
230
+ * Adjust the wrapper based on the prefix or suffix content.
231
+ *
232
+ * - `'default'`: Standard padding for text content.
233
+ * - `'icon'`: For icons.
234
+ * - `'control'`: For controls, like buttons or selects.
235
+ *
236
+ * @default 'default'
237
+ */
238
+ variant?: 'default' | 'icon' | 'control';
223
239
  };
@@ -73,7 +73,7 @@ export function useDraft( props: {
73
73
  onBlur?: FocusEventHandler;
74
74
  onChange: InputChangeCallback;
75
75
  } ) {
76
- const refPreviousValue = useRef( props.value );
76
+ const previousValueRef = useRef( props.value );
77
77
  const [ draft, setDraft ] = useState< {
78
78
  value?: string;
79
79
  isStale?: boolean;
@@ -84,8 +84,8 @@ export function useDraft( props: {
84
84
  // To do so, it tracks the previous value and marks the draft value as stale
85
85
  // after each render.
86
86
  useLayoutEffect( () => {
87
- const { current: previousValue } = refPreviousValue;
88
- refPreviousValue.current = props.value;
87
+ const { current: previousValue } = previousValueRef;
88
+ previousValueRef.current = props.value;
89
89
  if ( draft.value !== undefined && ! draft.isStale ) {
90
90
  setDraft( { ...draft, isStale: true } );
91
91
  } else if ( draft.isStale && props.value !== previousValue ) {
@@ -105,12 +105,12 @@ const paddingYLarge = `calc((${ CONFIG.controlHeightLarge } - ${ baseFontHeight
105
105
 
106
106
  export const itemSizes = {
107
107
  small: css`
108
- padding: ${ paddingYSmall } ${ CONFIG.controlPaddingXSmall };
108
+ padding: ${ paddingYSmall } ${ CONFIG.controlPaddingXSmall }px;
109
109
  `,
110
110
  medium: css`
111
- padding: ${ paddingY } ${ CONFIG.controlPaddingX };
111
+ padding: ${ paddingY } ${ CONFIG.controlPaddingX }px;
112
112
  `,
113
113
  large: css`
114
- padding: ${ paddingYLarge } ${ CONFIG.controlPaddingXLarge };
114
+ padding: ${ paddingYLarge } ${ CONFIG.controlPaddingXLarge }px;
115
115
  `,
116
116
  };
@@ -12,7 +12,7 @@ Snapshot Diff:
12
12
  >
13
13
  <div
14
14
  - class="components-item css-au4yox-PolymorphicDiv-medium-item-spacedAround e19lxcc00"
15
- + class="components-item css-1h3jinl-PolymorphicDiv-large-item-spacedAround e19lxcc00"
15
+ + class="components-item css-1ycukrf-PolymorphicDiv-large-item-spacedAround e19lxcc00"
16
16
  data-wp-c16t="true"
17
17
  data-wp-component="Item"
18
18
  >
@@ -25,7 +25,7 @@ Snapshot Diff:
25
25
  >
26
26
  <div
27
27
  - class="components-item css-au4yox-PolymorphicDiv-medium-item-spacedAround e19lxcc00"
28
- + class="components-item css-1h3jinl-PolymorphicDiv-large-item-spacedAround e19lxcc00"
28
+ + class="components-item css-1ycukrf-PolymorphicDiv-large-item-spacedAround e19lxcc00"
29
29
  data-wp-c16t="true"
30
30
  data-wp-component="Item"
31
31
  >
@@ -45,7 +45,7 @@ Snapshot Diff:
45
45
  >
46
46
  <div
47
47
  - class="components-item css-tpom78-PolymorphicDiv-medium-item e19lxcc00"
48
- + class="components-item css-vss65r-PolymorphicDiv-large-item e19lxcc00"
48
+ + class="components-item css-sbyvbg-PolymorphicDiv-large-item e19lxcc00"
49
49
  data-wp-c16t="true"
50
50
  data-wp-component="Item"
51
51
  >
@@ -134,9 +134,9 @@ function UnforwardedModal(
134
134
  }, [] );
135
135
 
136
136
  // Keeps a fresh ref for the subsequent effect.
137
- const refOnRequestClose = useRef< ModalProps[ 'onRequestClose' ] >();
137
+ const onRequestCloseRef = useRef< ModalProps[ 'onRequestClose' ] >();
138
138
  useEffect( () => {
139
- refOnRequestClose.current = onRequestClose;
139
+ onRequestCloseRef.current = onRequestClose;
140
140
  }, [ onRequestClose ] );
141
141
 
142
142
  // The list of `onRequestClose` callbacks of open (non-nested) Modals. Only
@@ -149,10 +149,10 @@ function UnforwardedModal(
149
149
  // onRequestClose for any prior and/or nested modals as applicable.
150
150
  useEffect( () => {
151
151
  // add this modal instance to the dismissers set
152
- dismissers.add( refOnRequestClose );
152
+ dismissers.add( onRequestCloseRef );
153
153
  // request that all the other modals close themselves
154
154
  for ( const dismisser of dismissers ) {
155
- if ( dismisser !== refOnRequestClose ) {
155
+ if ( dismisser !== onRequestCloseRef ) {
156
156
  dismisser.current?.();
157
157
  }
158
158
  }
@@ -162,7 +162,7 @@ function UnforwardedModal(
162
162
  dismisser.current?.();
163
163
  }
164
164
  // remove this modal instance from the dismissers set
165
- dismissers.delete( refOnRequestClose );
165
+ dismissers.delete( onRequestCloseRef );
166
166
  };
167
167
  }, [ dismissers, nestedDismissers ] );
168
168
 
@@ -8,7 +8,6 @@
8
8
  background-color: rgba($black, 0.35);
9
9
  z-index: z-index(".components-modal__screen-overlay");
10
10
  display: flex;
11
- // backdrop-filter: blur($grid-unit);
12
11
  // This animates the appearance of the white background.
13
12
  @include edit-post__fade-in-animation();
14
13
  }
@@ -26,7 +25,7 @@
26
25
  // Have the content element fill the vertical space yet not overflow.
27
26
  display: flex;
28
27
  // Animate the modal frame/contents appearing on the page.
29
- animation: components-modal__appear-animation 0.1s ease-out;
28
+ animation: components-modal__appear-animation 0.26s cubic-bezier(0.29, 0, 0, 1);
30
29
  animation-fill-mode: forwards;
31
30
  @include reduce-motion("animation");
32
31
 
@@ -80,10 +79,12 @@
80
79
 
81
80
  @keyframes components-modal__appear-animation {
82
81
  from {
83
- transform: translateY($grid-unit-40);
82
+ opacity: 0;
83
+ transform: scale(0.9);
84
84
  }
85
85
  to {
86
- transform: translateY(0);
86
+ opacity: 1;
87
+ transform: scale(1);
87
88
  }
88
89
  }
89
90
 
@@ -93,10 +93,10 @@ export function Navigation( {
93
93
  };
94
94
 
95
95
  // Used to prevent the sliding animation on mount
96
- const isMounted = useRef( false );
96
+ const isMountedRef = useRef( false );
97
97
  useEffect( () => {
98
- if ( ! isMounted.current ) {
99
- isMounted.current = true;
98
+ if ( ! isMountedRef.current ) {
99
+ isMountedRef.current = true;
100
100
  }
101
101
  }, [] );
102
102
 
@@ -130,7 +130,7 @@ export function Navigation( {
130
130
  animateClassName
131
131
  ? clsx( {
132
132
  [ animateClassName ]:
133
- isMounted.current && slideOrigin,
133
+ isMountedRef.current && slideOrigin,
134
134
  } )
135
135
  : undefined
136
136
  }
@@ -15,7 +15,7 @@ import { COLORS } from '../../utils/colors-values';
15
15
  import Button from '../../button';
16
16
  import { Text } from '../../text';
17
17
  import { Heading } from '../../heading';
18
- import { rtl } from '../../utils';
18
+ import { rtl, CONFIG } from '../../utils';
19
19
  import { space } from '../../utils/space';
20
20
 
21
21
  export const NavigationUI = styled.div`
@@ -111,7 +111,7 @@ export const GroupTitleUI = styled( Heading )`
111
111
  `;
112
112
 
113
113
  export const ItemBaseUI = styled.li`
114
- border-radius: 2px;
114
+ border-radius: ${ CONFIG.radiusSmall };
115
115
  color: inherit;
116
116
  margin-bottom: 0;
117
117
 
@@ -172,7 +172,7 @@ export const ItemBadgeUI = styled.span`
172
172
  margin-right: ${ () => ( isRTL() ? space( 2 ) : '0' ) };
173
173
  display: inline-flex;
174
174
  padding: ${ space( 1 ) } ${ space( 3 ) };
175
- border-radius: 2px;
175
+ border-radius: ${ CONFIG.radiusSmall };
176
176
 
177
177
  @keyframes fade-in {
178
178
  from {
@@ -1,6 +1,6 @@
1
- export { NavigatorProvider } from './navigator-provider';
2
- export { NavigatorScreen } from './navigator-screen';
3
- export { NavigatorButton } from './navigator-button';
4
- export { NavigatorBackButton } from './navigator-back-button';
5
- export { NavigatorToParentButton } from './navigator-to-parent-button';
6
- export { default as useNavigator } from './use-navigator';
1
+ export { NavigatorProvider } from './navigator-provider/component';
2
+ export { NavigatorScreen } from './navigator-screen/component';
3
+ export { NavigatorButton } from './navigator-button/component';
4
+ export { NavigatorBackButton } from './navigator-back-button/component';
5
+ export { NavigatorToParentButton } from './navigator-to-parent-button/component';
6
+ export { useNavigator } from './use-navigator';
@@ -9,7 +9,7 @@ import { useCallback } from '@wordpress/element';
9
9
  import type { WordPressComponentProps } from '../../context';
10
10
  import { useContextSystem } from '../../context';
11
11
  import Button from '../../button';
12
- import useNavigator from '../use-navigator';
12
+ import { useNavigator } from '../use-navigator';
13
13
  import type { NavigatorBackButtonProps } from '../types';
14
14
 
15
15
  export function useNavigatorBackButton(
@@ -10,7 +10,7 @@ import { escapeAttribute } from '@wordpress/escape-html';
10
10
  import type { WordPressComponentProps } from '../../context';
11
11
  import { useContextSystem } from '../../context';
12
12
  import Button from '../../button';
13
- import useNavigator from '../use-navigator';
13
+ import { useNavigator } from '../use-navigator';
14
14
  import type { NavigatorButtonProps } from '../types';
15
15
 
16
16
  const cssSelectorForAttribute = ( attrName: string, attrValue: string ) =>
@@ -72,7 +72,6 @@ The available options are:
72
72
  - `focusTargetSelector`: `string`. An optional property used to specify the CSS selector used to restore focus on the matching element when navigating back;
73
73
  - `isBack`: `boolean`. An optional property used to specify whether the navigation should be considered as backwards (thus enabling focus restoration when possible, and causing the animation to be backwards too);
74
74
  - `skipFocus`: `boolean`. An optional property used to opt out of `Navigator`'s focus management, useful when the consumer of the component wants to manage focus themselves;
75
- - `replace`: `boolean`. An optional property used to cause the new location to replace the current location in the stack.
76
75
 
77
76
  ### `goBack`: `( path: string, options: NavigateOptions ) => void`
78
77
 
@@ -87,8 +86,8 @@ The available options are the same as for the `goTo` method, except for the `isB
87
86
  The `location` object represent the current location, and has a few properties:
88
87
 
89
88
  - `path`: `string`. The path associated to the location.
90
- - `isBack`: `boolean`. A flag that is `true` when the current location was reached by navigating backwards in the location history.
91
- - `isInitial`: `boolean`. A flag that is `true` only for the first (root) location in the location history.
89
+ - `isBack`: `boolean`. A flag that is `true` when the current location was reached by navigating backwards.
90
+ - `isInitial`: `boolean`. A flag that is `true` only for the initial location.
92
91
 
93
92
  ### `params`: `Record< string, string | string[] >`
94
93