@wordpress/components 28.6.0 → 28.8.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 (698) hide show
  1. package/CHANGELOG.md +122 -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/box-control/all-input-control.js +1 -2
  17. package/build/box-control/all-input-control.js.map +1 -1
  18. package/build/box-control/utils.js +1 -1
  19. package/build/box-control/utils.js.map +1 -1
  20. package/build/card/card/component.js +2 -2
  21. package/build/card/card/component.js.map +1 -1
  22. package/build/card/styles.js +18 -18
  23. package/build/card/styles.js.map +1 -1
  24. package/build/circular-option-picker/circular-option-picker-option.js +15 -9
  25. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  26. package/build/circular-option-picker/circular-option-picker.js +15 -12
  27. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  28. package/build/circular-option-picker/types.js.map +1 -1
  29. package/build/clipboard-button/index.js +6 -6
  30. package/build/clipboard-button/index.js.map +1 -1
  31. package/build/color-palette/utils.js +1 -2
  32. package/build/color-palette/utils.js.map +1 -1
  33. package/build/color-picker/color-copy-button.js +8 -8
  34. package/build/color-picker/color-copy-button.js.map +1 -1
  35. package/build/color-picker/hex-input.js +8 -8
  36. package/build/color-picker/hex-input.js.map +1 -1
  37. package/build/color-picker/input-with-slider.js +8 -8
  38. package/build/color-picker/input-with-slider.js.map +1 -1
  39. package/build/color-picker/styles.js +8 -8
  40. package/build/color-picker/styles.js.map +1 -1
  41. package/build/combobox-control/index.js +3 -1
  42. package/build/combobox-control/index.js.map +1 -1
  43. package/build/combobox-control/types.js.map +1 -1
  44. package/build/composite/context.js +1 -1
  45. package/build/composite/context.js.map +1 -1
  46. package/build/composite/group-label.js +33 -0
  47. package/build/composite/group-label.js.map +1 -0
  48. package/build/composite/group.js +33 -0
  49. package/build/composite/group.js.map +1 -0
  50. package/build/composite/hover.js +33 -0
  51. package/build/composite/hover.js.map +1 -0
  52. package/build/composite/index.js +63 -118
  53. package/build/composite/index.js.map +1 -1
  54. package/build/composite/item.js +33 -0
  55. package/build/composite/item.js.map +1 -0
  56. package/build/composite/legacy/index.js +59 -7
  57. package/build/composite/legacy/index.js.map +1 -1
  58. package/build/composite/row.js +33 -0
  59. package/build/composite/row.js.map +1 -0
  60. package/build/composite/typeahead.js +33 -0
  61. package/build/composite/typeahead.js.map +1 -0
  62. package/build/composite/types.js.map +1 -1
  63. package/build/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  64. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  65. package/build/custom-select-control-v2/styles.js +12 -14
  66. package/build/custom-select-control-v2/styles.js.map +1 -1
  67. package/build/date-time/date/index.js +1 -1
  68. package/build/date-time/date/index.js.map +1 -1
  69. package/build/date-time/date/styles.js +37 -26
  70. package/build/date-time/date/styles.js.map +1 -1
  71. package/build/date-time/date/use-lilius/index.js +163 -0
  72. package/build/date-time/date/use-lilius/index.js.map +1 -0
  73. package/build/date-time/time/time-input/index.js +17 -19
  74. package/build/date-time/time/time-input/index.js.map +1 -1
  75. package/build/dimension-control/index.js +6 -1
  76. package/build/dimension-control/index.js.map +1 -1
  77. package/build/draggable/index.js +4 -4
  78. package/build/draggable/index.js.map +1 -1
  79. package/build/dropdown-menu-v2/checkbox-item.js +69 -0
  80. package/build/dropdown-menu-v2/checkbox-item.js.map +1 -0
  81. package/build/dropdown-menu-v2/context.js +17 -0
  82. package/build/dropdown-menu-v2/context.js.map +1 -0
  83. package/build/dropdown-menu-v2/group-label.js +40 -0
  84. package/build/dropdown-menu-v2/group-label.js.map +1 -0
  85. package/build/dropdown-menu-v2/group.js +29 -0
  86. package/build/dropdown-menu-v2/group.js.map +1 -0
  87. package/build/dropdown-menu-v2/index.js +58 -146
  88. package/build/dropdown-menu-v2/index.js.map +1 -1
  89. package/build/dropdown-menu-v2/item-help-text.js +27 -0
  90. package/build/dropdown-menu-v2/item-help-text.js.map +1 -0
  91. package/build/dropdown-menu-v2/item-label.js +27 -0
  92. package/build/dropdown-menu-v2/item-label.js.map +1 -0
  93. package/build/dropdown-menu-v2/item.js +53 -0
  94. package/build/dropdown-menu-v2/item.js.map +1 -0
  95. package/build/dropdown-menu-v2/radio-item.js +79 -0
  96. package/build/dropdown-menu-v2/radio-item.js.map +1 -0
  97. package/build/dropdown-menu-v2/separator.js +30 -0
  98. package/build/dropdown-menu-v2/separator.js.map +1 -0
  99. package/build/dropdown-menu-v2/styles.js +55 -79
  100. package/build/dropdown-menu-v2/styles.js.map +1 -1
  101. package/build/dropdown-menu-v2/types.js.map +1 -1
  102. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js +27 -0
  103. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  104. package/build/focal-point-picker/styles/focal-point-style.js +7 -2
  105. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  106. package/build/form-token-field/types.js.map +1 -1
  107. package/build/index.js +13 -0
  108. package/build/index.js.map +1 -1
  109. package/build/input-control/index.js +2 -2
  110. package/build/input-control/index.js.map +1 -1
  111. package/build/input-control/input-base.js +5 -10
  112. package/build/input-control/input-base.js.map +1 -1
  113. package/build/input-control/input-prefix-wrapper.js +3 -3
  114. package/build/input-control/input-prefix-wrapper.js.map +1 -1
  115. package/build/input-control/input-suffix-wrapper.js +2 -3
  116. package/build/input-control/input-suffix-wrapper.js.map +1 -1
  117. package/build/input-control/reducer/reducer.js +8 -8
  118. package/build/input-control/reducer/reducer.js.map +1 -1
  119. package/build/input-control/styles/input-control-styles.js +75 -45
  120. package/build/input-control/styles/input-control-styles.js.map +1 -1
  121. package/build/input-control/types.js.map +1 -1
  122. package/build/input-control/utils.js +3 -3
  123. package/build/input-control/utils.js.map +1 -1
  124. package/build/item-group/styles.js +10 -10
  125. package/build/item-group/styles.js.map +1 -1
  126. package/build/modal/index.js +32 -17
  127. package/build/modal/index.js.map +1 -1
  128. package/build/modal/types.js.map +1 -1
  129. package/build/modal/use-modal-exit-animation.js +75 -0
  130. package/build/modal/use-modal-exit-animation.js.map +1 -0
  131. package/build/navigation/index.js +4 -4
  132. package/build/navigation/index.js.map +1 -1
  133. package/build/navigation/styles/navigation-styles.js +13 -13
  134. package/build/navigation/styles/navigation-styles.js.map +1 -1
  135. package/build/navigator/index.js +12 -13
  136. package/build/navigator/index.js.map +1 -1
  137. package/build/navigator/navigator-back-button/hook.js +2 -2
  138. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  139. package/build/navigator/navigator-button/hook.js +2 -2
  140. package/build/navigator/navigator-button/hook.js.map +1 -1
  141. package/build/navigator/navigator-provider/component.js +99 -67
  142. package/build/navigator/navigator-provider/component.js.map +1 -1
  143. package/build/navigator/navigator-screen/component.js +5 -0
  144. package/build/navigator/navigator-screen/component.js.map +1 -1
  145. package/build/navigator/navigator-to-parent-button/component.js +2 -2
  146. package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
  147. package/build/navigator/types.js.map +1 -1
  148. package/build/navigator/use-navigator.js +1 -2
  149. package/build/navigator/use-navigator.js.map +1 -1
  150. package/build/palette-edit/index.js +2 -2
  151. package/build/palette-edit/index.js.map +1 -1
  152. package/build/private-apis.js +1 -14
  153. package/build/private-apis.js.map +1 -1
  154. package/build/range-control/styles/range-control-styles.js +30 -30
  155. package/build/range-control/styles/range-control-styles.js.map +1 -1
  156. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  157. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  158. package/build/select-control/styles/select-control-styles.js +12 -12
  159. package/build/select-control/styles/select-control-styles.js.map +1 -1
  160. package/build/slot-fill/bubbles-virtually/fill.js +4 -4
  161. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  162. package/build/slot-fill/index.js +1 -0
  163. package/build/slot-fill/index.js.map +1 -1
  164. package/build/snackbar/index.js +4 -4
  165. package/build/snackbar/index.js.map +1 -1
  166. package/build/tabs/index.js +4 -4
  167. package/build/tabs/index.js.map +1 -1
  168. package/build/tabs/styles.js +3 -3
  169. package/build/tabs/styles.js.map +1 -1
  170. package/build/tabs/tablist.js +5 -4
  171. package/build/tabs/tablist.js.map +1 -1
  172. package/build/toggle-group-control/toggle-group-control/utils.js +6 -6
  173. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  174. package/build/tools-panel/tools-panel/hook.js +6 -6
  175. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  176. package/build/unit-control/styles/unit-control-styles.js +7 -7
  177. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  178. package/build/utils/config-values.js +10 -9
  179. package/build/utils/config-values.js.map +1 -1
  180. package/build/utils/element-rect.js +73 -105
  181. package/build/utils/element-rect.js.map +1 -1
  182. package/build/utils/hooks/use-update-effect.js +4 -4
  183. package/build/utils/hooks/use-update-effect.js.map +1 -1
  184. package/build-module/alignment-matrix-control/cell.js +2 -5
  185. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  186. package/build-module/alignment-matrix-control/icon.js +31 -19
  187. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  188. package/build-module/alignment-matrix-control/index.js +55 -50
  189. package/build-module/alignment-matrix-control/index.js.map +1 -1
  190. package/build-module/alignment-matrix-control/styles.js +70 -0
  191. package/build-module/alignment-matrix-control/styles.js.map +1 -0
  192. package/build-module/alignment-matrix-control/types.js.map +1 -1
  193. package/build-module/angle-picker-control/angle-circle.js +9 -9
  194. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  195. package/build-module/border-control/border-control/component.js +18 -13
  196. package/build-module/border-control/border-control/component.js.map +1 -1
  197. package/build-module/box-control/all-input-control.js +2 -2
  198. package/build-module/box-control/all-input-control.js.map +1 -1
  199. package/build-module/box-control/utils.js +1 -1
  200. package/build-module/box-control/utils.js.map +1 -1
  201. package/build-module/card/card/component.js +2 -2
  202. package/build-module/card/card/component.js.map +1 -1
  203. package/build-module/card/styles.js +18 -18
  204. package/build-module/card/styles.js.map +1 -1
  205. package/build-module/circular-option-picker/circular-option-picker-option.js +16 -10
  206. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  207. package/build-module/circular-option-picker/circular-option-picker.js +16 -13
  208. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  209. package/build-module/circular-option-picker/types.js.map +1 -1
  210. package/build-module/clipboard-button/index.js +6 -6
  211. package/build-module/clipboard-button/index.js.map +1 -1
  212. package/build-module/color-palette/utils.js +1 -2
  213. package/build-module/color-palette/utils.js.map +1 -1
  214. package/build-module/color-picker/color-copy-button.js +8 -8
  215. package/build-module/color-picker/color-copy-button.js.map +1 -1
  216. package/build-module/color-picker/hex-input.js +7 -8
  217. package/build-module/color-picker/hex-input.js.map +1 -1
  218. package/build-module/color-picker/input-with-slider.js +7 -8
  219. package/build-module/color-picker/input-with-slider.js.map +1 -1
  220. package/build-module/color-picker/styles.js +8 -8
  221. package/build-module/color-picker/styles.js.map +1 -1
  222. package/build-module/combobox-control/index.js +3 -1
  223. package/build-module/combobox-control/index.js.map +1 -1
  224. package/build-module/combobox-control/types.js.map +1 -1
  225. package/build-module/composite/context.js +1 -1
  226. package/build-module/composite/context.js.map +1 -1
  227. package/build-module/composite/group-label.js +25 -0
  228. package/build-module/composite/group-label.js.map +1 -0
  229. package/build-module/composite/group.js +25 -0
  230. package/build-module/composite/group.js.map +1 -0
  231. package/build-module/composite/hover.js +25 -0
  232. package/build-module/composite/hover.js.map +1 -0
  233. package/build-module/composite/index.js +64 -118
  234. package/build-module/composite/index.js.map +1 -1
  235. package/build-module/composite/item.js +25 -0
  236. package/build-module/composite/item.js.map +1 -0
  237. package/build-module/composite/legacy/index.js +57 -8
  238. package/build-module/composite/legacy/index.js.map +1 -1
  239. package/build-module/composite/row.js +25 -0
  240. package/build-module/composite/row.js.map +1 -0
  241. package/build-module/composite/typeahead.js +25 -0
  242. package/build-module/composite/typeahead.js.map +1 -0
  243. package/build-module/composite/types.js.map +1 -1
  244. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  245. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  246. package/build-module/custom-select-control-v2/styles.js +12 -14
  247. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  248. package/build-module/date-time/date/index.js +1 -2
  249. package/build-module/date-time/date/index.js.map +1 -1
  250. package/build-module/date-time/date/styles.js +33 -26
  251. package/build-module/date-time/date/styles.js.map +1 -1
  252. package/build-module/date-time/date/use-lilius/index.js +158 -0
  253. package/build-module/date-time/date/use-lilius/index.js.map +1 -0
  254. package/build-module/date-time/time/time-input/index.js +17 -19
  255. package/build-module/date-time/time/time-input/index.js.map +1 -1
  256. package/build-module/dimension-control/index.js +6 -1
  257. package/build-module/dimension-control/index.js.map +1 -1
  258. package/build-module/draggable/index.js +4 -4
  259. package/build-module/draggable/index.js.map +1 -1
  260. package/build-module/dropdown-menu-v2/checkbox-item.js +62 -0
  261. package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -0
  262. package/build-module/dropdown-menu-v2/context.js +11 -0
  263. package/build-module/dropdown-menu-v2/context.js.map +1 -0
  264. package/build-module/dropdown-menu-v2/group-label.js +32 -0
  265. package/build-module/dropdown-menu-v2/group-label.js.map +1 -0
  266. package/build-module/dropdown-menu-v2/group.js +21 -0
  267. package/build-module/dropdown-menu-v2/group.js.map +1 -0
  268. package/build-module/dropdown-menu-v2/index.js +57 -144
  269. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  270. package/build-module/dropdown-menu-v2/item-help-text.js +19 -0
  271. package/build-module/dropdown-menu-v2/item-help-text.js.map +1 -0
  272. package/build-module/dropdown-menu-v2/item-label.js +19 -0
  273. package/build-module/dropdown-menu-v2/item-label.js.map +1 -0
  274. package/build-module/dropdown-menu-v2/item.js +46 -0
  275. package/build-module/dropdown-menu-v2/item.js.map +1 -0
  276. package/build-module/dropdown-menu-v2/radio-item.js +72 -0
  277. package/build-module/dropdown-menu-v2/radio-item.js.map +1 -0
  278. package/build-module/dropdown-menu-v2/separator.js +22 -0
  279. package/build-module/dropdown-menu-v2/separator.js.map +1 -0
  280. package/build-module/dropdown-menu-v2/styles.js +55 -79
  281. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  282. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  283. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js +20 -0
  284. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  285. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -2
  286. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  287. package/build-module/form-token-field/types.js.map +1 -1
  288. package/build-module/index.js +3 -1
  289. package/build-module/index.js.map +1 -1
  290. package/build-module/input-control/index.js +2 -2
  291. package/build-module/input-control/index.js.map +1 -1
  292. package/build-module/input-control/input-base.js +6 -11
  293. package/build-module/input-control/input-base.js.map +1 -1
  294. package/build-module/input-control/input-prefix-wrapper.js +4 -3
  295. package/build-module/input-control/input-prefix-wrapper.js.map +1 -1
  296. package/build-module/input-control/input-suffix-wrapper.js +3 -3
  297. package/build-module/input-control/input-suffix-wrapper.js.map +1 -1
  298. package/build-module/input-control/reducer/reducer.js +8 -8
  299. package/build-module/input-control/reducer/reducer.js.map +1 -1
  300. package/build-module/input-control/styles/input-control-styles.js +74 -44
  301. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  302. package/build-module/input-control/types.js.map +1 -1
  303. package/build-module/input-control/utils.js +3 -3
  304. package/build-module/input-control/utils.js.map +1 -1
  305. package/build-module/item-group/styles.js +10 -10
  306. package/build-module/item-group/styles.js.map +1 -1
  307. package/build-module/modal/index.js +34 -17
  308. package/build-module/modal/index.js.map +1 -1
  309. package/build-module/modal/types.js.map +1 -1
  310. package/build-module/modal/use-modal-exit-animation.js +68 -0
  311. package/build-module/modal/use-modal-exit-animation.js.map +1 -0
  312. package/build-module/navigation/index.js +4 -4
  313. package/build-module/navigation/index.js.map +1 -1
  314. package/build-module/navigation/styles/navigation-styles.js +14 -14
  315. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  316. package/build-module/navigator/index.js +6 -6
  317. package/build-module/navigator/index.js.map +1 -1
  318. package/build-module/navigator/navigator-back-button/hook.js +1 -1
  319. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  320. package/build-module/navigator/navigator-button/hook.js +1 -1
  321. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  322. package/build-module/navigator/navigator-provider/component.js +99 -67
  323. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  324. package/build-module/navigator/navigator-screen/component.js +4 -0
  325. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  326. package/build-module/navigator/navigator-to-parent-button/component.js +1 -1
  327. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
  328. package/build-module/navigator/types.js.map +1 -1
  329. package/build-module/navigator/use-navigator.js +1 -2
  330. package/build-module/navigator/use-navigator.js.map +1 -1
  331. package/build-module/palette-edit/index.js +2 -2
  332. package/build-module/palette-edit/index.js.map +1 -1
  333. package/build-module/private-apis.js +1 -14
  334. package/build-module/private-apis.js.map +1 -1
  335. package/build-module/range-control/styles/range-control-styles.js +31 -31
  336. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  337. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
  338. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  339. package/build-module/select-control/styles/select-control-styles.js +13 -13
  340. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  341. package/build-module/slot-fill/bubbles-virtually/fill.js +4 -4
  342. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  343. package/build-module/slot-fill/index.js +1 -0
  344. package/build-module/slot-fill/index.js.map +1 -1
  345. package/build-module/snackbar/index.js +4 -4
  346. package/build-module/snackbar/index.js.map +1 -1
  347. package/build-module/tabs/index.js +4 -4
  348. package/build-module/tabs/index.js.map +1 -1
  349. package/build-module/tabs/styles.js +4 -4
  350. package/build-module/tabs/styles.js.map +1 -1
  351. package/build-module/tabs/tablist.js +5 -4
  352. package/build-module/tabs/tablist.js.map +1 -1
  353. package/build-module/toggle-group-control/toggle-group-control/utils.js +6 -6
  354. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  355. package/build-module/tools-panel/tools-panel/hook.js +6 -6
  356. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  357. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  358. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  359. package/build-module/utils/config-values.js +10 -9
  360. package/build-module/utils/config-values.js.map +1 -1
  361. package/build-module/utils/element-rect.js +74 -105
  362. package/build-module/utils/element-rect.js.map +1 -1
  363. package/build-module/utils/hooks/use-update-effect.js +4 -4
  364. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  365. package/build-style/style-rtl.css +60 -31
  366. package/build-style/style.css +60 -31
  367. package/build-types/alignment-matrix-control/cell.d.ts +1 -1
  368. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  369. package/build-types/alignment-matrix-control/icon.d.ts +1 -1
  370. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
  371. package/build-types/alignment-matrix-control/index.d.ts +16 -6
  372. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  373. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  374. package/build-types/alignment-matrix-control/{styles/alignment-matrix-control-styles.d.ts → styles.d.ts} +9 -10
  375. package/build-types/alignment-matrix-control/styles.d.ts.map +1 -0
  376. package/build-types/alignment-matrix-control/types.d.ts +12 -1
  377. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  378. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  379. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  380. package/build-types/box-control/all-input-control.d.ts.map +1 -1
  381. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  382. package/build-types/box-control/utils.d.ts +1 -1
  383. package/build-types/box-control/utils.d.ts.map +1 -1
  384. package/build-types/button-group/stories/index.story.d.ts +2 -2
  385. package/build-types/button-group/stories/index.story.d.ts.map +1 -1
  386. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  387. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  388. package/build-types/circular-option-picker/types.d.ts +2 -2
  389. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  390. package/build-types/color-palette/utils.d.ts.map +1 -1
  391. package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
  392. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  393. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  394. package/build-types/color-picker/styles.d.ts.map +1 -1
  395. package/build-types/combobox-control/index.d.ts.map +1 -1
  396. package/build-types/combobox-control/stories/index.story.d.ts +4 -0
  397. package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
  398. package/build-types/combobox-control/types.d.ts +5 -0
  399. package/build-types/combobox-control/types.d.ts.map +1 -1
  400. package/build-types/composite/context.d.ts.map +1 -1
  401. package/build-types/composite/group-label.d.ts +3 -0
  402. package/build-types/composite/group-label.d.ts.map +1 -0
  403. package/build-types/composite/group.d.ts +3 -0
  404. package/build-types/composite/group.d.ts.map +1 -0
  405. package/build-types/composite/hover.d.ts +3 -0
  406. package/build-types/composite/hover.d.ts.map +1 -0
  407. package/build-types/composite/index.d.ts +63 -47
  408. package/build-types/composite/index.d.ts.map +1 -1
  409. package/build-types/composite/item.d.ts +3 -0
  410. package/build-types/composite/item.d.ts.map +1 -0
  411. package/build-types/composite/legacy/index.d.ts +23 -3
  412. package/build-types/composite/legacy/index.d.ts.map +1 -1
  413. package/build-types/composite/legacy/stories/index.story.d.ts.map +1 -1
  414. package/build-types/composite/row.d.ts +3 -0
  415. package/build-types/composite/row.d.ts.map +1 -0
  416. package/build-types/composite/stories/index.story.d.ts +9 -8
  417. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  418. package/build-types/composite/typeahead.d.ts +3 -0
  419. package/build-types/composite/typeahead.d.ts.map +1 -0
  420. package/build-types/composite/types.d.ts +12 -11
  421. package/build-types/composite/types.d.ts.map +1 -1
  422. package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
  423. package/build-types/date-time/date/index.d.ts +0 -3
  424. package/build-types/date-time/date/index.d.ts.map +1 -1
  425. package/build-types/date-time/date/styles.d.ts.map +1 -1
  426. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  427. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  428. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  429. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  430. package/build-types/date-time/time/time-input/index.d.ts.map +1 -1
  431. package/build-types/dimension-control/index.d.ts +1 -1
  432. package/build-types/dimension-control/index.d.ts.map +1 -1
  433. package/build-types/dimension-control/stories/index.story.d.ts +5 -0
  434. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  435. package/build-types/dropdown-menu-v2/checkbox-item.d.ts +3 -0
  436. package/build-types/dropdown-menu-v2/checkbox-item.d.ts.map +1 -0
  437. package/build-types/dropdown-menu-v2/context.d.ts +6 -0
  438. package/build-types/dropdown-menu-v2/context.d.ts.map +1 -0
  439. package/build-types/dropdown-menu-v2/group-label.d.ts +3 -0
  440. package/build-types/dropdown-menu-v2/group-label.d.ts.map +1 -0
  441. package/build-types/dropdown-menu-v2/group.d.ts +3 -0
  442. package/build-types/dropdown-menu-v2/group.d.ts.map +1 -0
  443. package/build-types/dropdown-menu-v2/index.d.ts +39 -18
  444. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  445. package/build-types/dropdown-menu-v2/item-help-text.d.ts +6 -0
  446. package/build-types/dropdown-menu-v2/item-help-text.d.ts.map +1 -0
  447. package/build-types/dropdown-menu-v2/item-label.d.ts +6 -0
  448. package/build-types/dropdown-menu-v2/item-label.d.ts.map +1 -0
  449. package/build-types/dropdown-menu-v2/item.d.ts +3 -0
  450. package/build-types/dropdown-menu-v2/item.d.ts.map +1 -0
  451. package/build-types/dropdown-menu-v2/radio-item.d.ts +3 -0
  452. package/build-types/dropdown-menu-v2/radio-item.d.ts.map +1 -0
  453. package/build-types/dropdown-menu-v2/separator.d.ts +3 -0
  454. package/build-types/dropdown-menu-v2/separator.d.ts.map +1 -0
  455. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +10 -10
  456. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  457. package/build-types/dropdown-menu-v2/styles.d.ts +14 -6
  458. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  459. package/build-types/dropdown-menu-v2/types.d.ts +6 -0
  460. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  461. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts +8 -0
  462. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts.map +1 -0
  463. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  464. package/build-types/form-token-field/types.d.ts +1 -0
  465. package/build-types/form-token-field/types.d.ts.map +1 -1
  466. package/build-types/index.d.ts +4 -1
  467. package/build-types/index.d.ts.map +1 -1
  468. package/build-types/input-control/input-base.d.ts.map +1 -1
  469. package/build-types/input-control/input-prefix-wrapper.d.ts +2 -2
  470. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  471. package/build-types/input-control/input-suffix-wrapper.d.ts +2 -2
  472. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  473. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  474. package/build-types/input-control/stories/index.story.d.ts +9 -0
  475. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  476. package/build-types/input-control/styles/input-control-styles.d.ts +15 -9
  477. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  478. package/build-types/input-control/types.d.ts +23 -6
  479. package/build-types/input-control/types.d.ts.map +1 -1
  480. package/build-types/modal/index.d.ts.map +1 -1
  481. package/build-types/modal/stories/index.story.d.ts +3 -0
  482. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  483. package/build-types/modal/types.d.ts +6 -10
  484. package/build-types/modal/types.d.ts.map +1 -1
  485. package/build-types/modal/use-modal-exit-animation.d.ts +9 -0
  486. package/build-types/modal/use-modal-exit-animation.d.ts.map +1 -0
  487. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  488. package/build-types/navigator/index.d.ts +6 -6
  489. package/build-types/navigator/index.d.ts.map +1 -1
  490. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  491. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  492. package/build-types/navigator/stories/index.story.d.ts +1 -1
  493. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  494. package/build-types/navigator/types.d.ts +3 -1
  495. package/build-types/navigator/types.d.ts.map +1 -1
  496. package/build-types/navigator/use-navigator.d.ts +1 -2
  497. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  498. package/build-types/private-apis.d.ts.map +1 -1
  499. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  500. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  501. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  502. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  503. package/build-types/slot-fill/index.d.ts +3 -0
  504. package/build-types/slot-fill/index.d.ts.map +1 -1
  505. package/build-types/tabs/index.d.ts.map +1 -1
  506. package/build-types/tabs/styles.d.ts.map +1 -1
  507. package/build-types/tabs/tablist.d.ts.map +1 -1
  508. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  509. package/build-types/utils/config-values.d.ts +3 -4
  510. package/build-types/utils/element-rect.d.ts +32 -74
  511. package/build-types/utils/element-rect.d.ts.map +1 -1
  512. package/package.json +19 -20
  513. package/src/alignment-matrix-control/README.md +1 -5
  514. package/src/alignment-matrix-control/cell.tsx +3 -9
  515. package/src/alignment-matrix-control/icon.tsx +48 -30
  516. package/src/alignment-matrix-control/index.tsx +60 -50
  517. package/src/alignment-matrix-control/stories/index.story.tsx +3 -12
  518. package/src/alignment-matrix-control/styles.ts +113 -0
  519. package/src/alignment-matrix-control/types.ts +12 -1
  520. package/src/angle-picker-control/angle-circle.tsx +11 -9
  521. package/src/border-control/border-control/component.tsx +23 -16
  522. package/src/box-control/README.md +7 -0
  523. package/src/box-control/all-input-control.tsx +2 -3
  524. package/src/box-control/utils.ts +1 -1
  525. package/src/button-group/stories/index.story.tsx +10 -15
  526. package/src/card/card/component.tsx +1 -1
  527. package/src/card/styles.ts +1 -1
  528. package/src/card/test/__snapshots__/index.tsx.snap +54 -54
  529. package/src/circular-option-picker/circular-option-picker-option.tsx +16 -19
  530. package/src/circular-option-picker/circular-option-picker.tsx +26 -12
  531. package/src/circular-option-picker/types.ts +2 -2
  532. package/src/clipboard-button/index.tsx +6 -6
  533. package/src/color-palette/test/utils.ts +21 -2
  534. package/src/color-palette/utils.ts +1 -3
  535. package/src/color-picker/color-copy-button.tsx +10 -8
  536. package/src/color-picker/hex-input.tsx +6 -10
  537. package/src/color-picker/input-with-slider.tsx +6 -10
  538. package/src/color-picker/styles.ts +1 -1
  539. package/src/combobox-control/README.md +7 -0
  540. package/src/combobox-control/index.tsx +2 -0
  541. package/src/combobox-control/test/index.tsx +40 -0
  542. package/src/combobox-control/types.ts +5 -0
  543. package/src/composite/README.md +5 -24
  544. package/src/composite/{context.ts → context.tsx} +1 -2
  545. package/src/composite/group-label.tsx +30 -0
  546. package/src/composite/group.tsx +30 -0
  547. package/src/composite/hover.tsx +30 -0
  548. package/src/composite/index.tsx +71 -166
  549. package/src/composite/item.tsx +30 -0
  550. package/src/composite/legacy/index.tsx +73 -11
  551. package/src/composite/legacy/stories/index.story.tsx +2 -1
  552. package/src/composite/legacy/test/index.tsx +57 -1
  553. package/src/composite/row.tsx +30 -0
  554. package/src/composite/stories/index.story.tsx +254 -365
  555. package/src/composite/typeahead.tsx +30 -0
  556. package/src/composite/types.ts +14 -16
  557. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +10 -10
  558. package/src/custom-gradient-picker/style.scss +2 -21
  559. package/src/custom-select-control-v2/styles.ts +5 -4
  560. package/src/date-time/date/index.tsx +1 -1
  561. package/src/date-time/date/styles.ts +33 -13
  562. package/src/date-time/date/test/use-lilius.ts +417 -0
  563. package/src/date-time/date/use-lilius/index.ts +394 -0
  564. package/src/date-time/time/test/index.tsx +3 -6
  565. package/src/date-time/time/time-input/index.tsx +25 -25
  566. package/src/date-time/time/time-input/test/index.tsx +6 -7
  567. package/src/dimension-control/README.md +4 -0
  568. package/src/dimension-control/index.tsx +7 -1
  569. package/src/dimension-control/stories/index.story.tsx +7 -2
  570. package/src/dimension-control/test/__snapshots__/index.test.js.snap +16 -16
  571. package/src/dimension-control/test/index.test.js +1 -0
  572. package/src/draggable/index.tsx +4 -4
  573. package/src/dropdown-menu-v2/README.md +73 -60
  574. package/src/dropdown-menu-v2/checkbox-item.tsx +63 -0
  575. package/src/dropdown-menu-v2/context.tsx +13 -0
  576. package/src/dropdown-menu-v2/group-label.tsx +37 -0
  577. package/src/dropdown-menu-v2/group.tsx +26 -0
  578. package/src/dropdown-menu-v2/index.tsx +57 -197
  579. package/src/dropdown-menu-v2/item-help-text.tsx +23 -0
  580. package/src/dropdown-menu-v2/item-label.tsx +23 -0
  581. package/src/dropdown-menu-v2/item.tsx +50 -0
  582. package/src/dropdown-menu-v2/radio-item.tsx +70 -0
  583. package/src/dropdown-menu-v2/separator.tsx +27 -0
  584. package/src/dropdown-menu-v2/stories/index.story.tsx +295 -262
  585. package/src/dropdown-menu-v2/styles.ts +103 -67
  586. package/src/dropdown-menu-v2/test/index.tsx +159 -132
  587. package/src/dropdown-menu-v2/types.ts +7 -0
  588. package/src/dropdown-menu-v2/use-temporary-focus-visible-fix.ts +22 -0
  589. package/src/focal-point-picker/styles/focal-point-style.ts +6 -1
  590. package/src/form-toggle/style.scss +2 -1
  591. package/src/form-token-field/style.scss +2 -3
  592. package/src/form-token-field/types.ts +1 -0
  593. package/src/index.ts +6 -1
  594. package/src/input-control/index.tsx +2 -2
  595. package/src/input-control/input-base.tsx +4 -14
  596. package/src/input-control/input-prefix-wrapper.tsx +8 -4
  597. package/src/input-control/input-suffix-wrapper.tsx +4 -6
  598. package/src/input-control/reducer/reducer.ts +13 -10
  599. package/src/input-control/stories/index.story.tsx +31 -12
  600. package/src/input-control/styles/input-control-styles.tsx +42 -11
  601. package/src/input-control/types.ts +23 -7
  602. package/src/input-control/utils.ts +3 -3
  603. package/src/item-group/styles.ts +3 -3
  604. package/src/item-group/test/__snapshots__/index.js.snap +3 -3
  605. package/src/modal/index.tsx +47 -24
  606. package/src/modal/stories/index.story.tsx +8 -14
  607. package/src/modal/style.scss +34 -11
  608. package/src/modal/types.ts +6 -18
  609. package/src/modal/use-modal-exit-animation.ts +99 -0
  610. package/src/navigation/index.tsx +4 -4
  611. package/src/navigation/styles/navigation-styles.tsx +3 -3
  612. package/src/navigator/index.ts +6 -6
  613. package/src/navigator/navigator-back-button/hook.ts +1 -1
  614. package/src/navigator/navigator-button/hook.ts +1 -1
  615. package/src/navigator/navigator-provider/README.md +2 -3
  616. package/src/navigator/navigator-provider/component.tsx +97 -82
  617. package/src/navigator/navigator-screen/component.tsx +7 -0
  618. package/src/navigator/navigator-to-parent-button/component.tsx +1 -1
  619. package/src/navigator/stories/index.story.tsx +82 -253
  620. package/src/navigator/test/index.tsx +8 -0
  621. package/src/navigator/types.ts +3 -1
  622. package/src/navigator/use-navigator.ts +1 -3
  623. package/src/palette-edit/index.tsx +2 -2
  624. package/src/popover/style.scss +3 -2
  625. package/src/private-apis.ts +1 -23
  626. package/src/range-control/styles/range-control-styles.ts +8 -7
  627. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -2
  628. package/src/resizable-box/style.scss +3 -3
  629. package/src/select-control/README.md +2 -2
  630. package/src/select-control/styles/select-control-styles.ts +5 -5
  631. package/src/slot-fill/bubbles-virtually/fill.tsx +4 -4
  632. package/src/slot-fill/index.tsx +1 -0
  633. package/src/snackbar/index.tsx +4 -4
  634. package/src/snackbar/style.scss +1 -1
  635. package/src/tab-panel/style.scss +0 -1
  636. package/src/tabs/index.tsx +8 -4
  637. package/src/tabs/styles.ts +42 -14
  638. package/src/tabs/tablist.tsx +5 -4
  639. package/src/text-control/style.scss +3 -2
  640. package/src/toggle-group-control/toggle-group-control/utils.ts +7 -7
  641. package/src/tools-panel/tools-panel/hook.ts +6 -6
  642. package/src/tooltip/style.scss +1 -0
  643. package/src/unit-control/styles/unit-control-styles.ts +2 -1
  644. package/src/utils/config-values.js +10 -9
  645. package/src/utils/element-rect.ts +93 -130
  646. package/src/utils/hooks/use-update-effect.js +4 -4
  647. package/tsconfig.tsbuildinfo +1 -1
  648. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -66
  649. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  650. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -77
  651. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  652. package/build/navigator/navigator-back-button/index.js +0 -14
  653. package/build/navigator/navigator-back-button/index.js.map +0 -1
  654. package/build/navigator/navigator-button/index.js +0 -14
  655. package/build/navigator/navigator-button/index.js.map +0 -1
  656. package/build/navigator/navigator-provider/index.js +0 -14
  657. package/build/navigator/navigator-provider/index.js.map +0 -1
  658. package/build/navigator/navigator-screen/index.js +0 -14
  659. package/build/navigator/navigator-screen/index.js.map +0 -1
  660. package/build/navigator/navigator-to-parent-button/index.js +0 -14
  661. package/build/navigator/navigator-to-parent-button/index.js.map +0 -1
  662. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -63
  663. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  664. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -72
  665. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  666. package/build-module/navigator/navigator-back-button/index.js +0 -2
  667. package/build-module/navigator/navigator-back-button/index.js.map +0 -1
  668. package/build-module/navigator/navigator-button/index.js +0 -2
  669. package/build-module/navigator/navigator-button/index.js.map +0 -1
  670. package/build-module/navigator/navigator-provider/index.js +0 -2
  671. package/build-module/navigator/navigator-provider/index.js.map +0 -1
  672. package/build-module/navigator/navigator-screen/index.js +0 -2
  673. package/build-module/navigator/navigator-screen/index.js.map +0 -1
  674. package/build-module/navigator/navigator-to-parent-button/index.js +0 -2
  675. package/build-module/navigator/navigator-to-parent-button/index.js.map +0 -1
  676. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +0 -18
  677. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +0 -1
  678. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +0 -1
  679. package/build-types/composite/stories/utils.d.ts +0 -29
  680. package/build-types/composite/stories/utils.d.ts.map +0 -1
  681. package/build-types/navigator/navigator-back-button/index.d.ts +0 -2
  682. package/build-types/navigator/navigator-back-button/index.d.ts.map +0 -1
  683. package/build-types/navigator/navigator-button/index.d.ts +0 -2
  684. package/build-types/navigator/navigator-button/index.d.ts.map +0 -1
  685. package/build-types/navigator/navigator-provider/index.d.ts +0 -2
  686. package/build-types/navigator/navigator-provider/index.d.ts.map +0 -1
  687. package/build-types/navigator/navigator-screen/index.d.ts +0 -2
  688. package/build-types/navigator/navigator-screen/index.d.ts.map +0 -1
  689. package/build-types/navigator/navigator-to-parent-button/index.d.ts +0 -2
  690. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +0 -1
  691. package/src/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.ts +0 -77
  692. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +0 -102
  693. package/src/composite/stories/utils.tsx +0 -76
  694. package/src/navigator/navigator-back-button/index.ts +0 -1
  695. package/src/navigator/navigator-button/index.ts +0 -1
  696. package/src/navigator/navigator-provider/index.ts +0 -1
  697. package/src/navigator/navigator-screen/index.ts +0 -1
  698. package/src/navigator/navigator-to-parent-button/index.ts +0 -1
package/src/index.ts CHANGED
@@ -12,7 +12,11 @@ export {
12
12
  } from '@wordpress/primitives';
13
13
 
14
14
  // Components.
15
- export { default as __experimentalAlignmentMatrixControl } from './alignment-matrix-control';
15
+ export {
16
+ /** @deprecated Import `AlignmentMatrixControl` instead. */
17
+ default as __experimentalAlignmentMatrixControl,
18
+ default as AlignmentMatrixControl,
19
+ } from './alignment-matrix-control';
16
20
  export {
17
21
  default as Animate,
18
22
  getAnimateClassName as __unstableGetAnimateClassName,
@@ -62,6 +66,7 @@ export {
62
66
  CompositeItem as __unstableCompositeItem,
63
67
  useCompositeState as __unstableUseCompositeState,
64
68
  } from './composite/legacy';
69
+ export { Composite } from './composite';
65
70
  export { ConfirmDialog as __experimentalConfirmDialog } from './confirm-dialog';
66
71
  export { default as CustomSelectControl } from './custom-select-control';
67
72
  export { default as Dashicon } from './dashicon';
@@ -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
  >
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import clsx from 'clsx';
5
- import type { ForwardedRef, KeyboardEvent, RefObject, UIEvent } from 'react';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -37,10 +36,12 @@ import Button from '../button';
37
36
  import StyleProvider from '../style-provider';
38
37
  import type { ModalProps } from './types';
39
38
  import { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';
39
+ import { Spacer } from '../spacer';
40
+ import { useModalExitAnimation } from './use-modal-exit-animation';
40
41
 
41
42
  // Used to track and dismiss the prior modal when another opens unless nested.
42
43
  type Dismissers = Set<
43
- RefObject< ModalProps[ 'onRequestClose' ] | undefined >
44
+ React.RefObject< ModalProps[ 'onRequestClose' ] | undefined >
44
45
  >;
45
46
  const ModalContext = createContext< Dismissers >( new Set() );
46
47
 
@@ -49,7 +50,7 @@ const bodyOpenClasses = new Map< string, number >();
49
50
 
50
51
  function UnforwardedModal(
51
52
  props: ModalProps,
52
- forwardedRef: ForwardedRef< HTMLDivElement >
53
+ forwardedRef: React.ForwardedRef< HTMLDivElement >
53
54
  ) {
54
55
  const {
55
56
  bodyOpenClassName = 'modal-open',
@@ -69,7 +70,7 @@ function UnforwardedModal(
69
70
  closeButtonLabel,
70
71
  children,
71
72
  style,
72
- overlayClassName,
73
+ overlayClassName: overlayClassnameProp,
73
74
  className,
74
75
  contentLabel,
75
76
  onKeyDown,
@@ -134,9 +135,9 @@ function UnforwardedModal(
134
135
  }, [] );
135
136
 
136
137
  // Keeps a fresh ref for the subsequent effect.
137
- const refOnRequestClose = useRef< ModalProps[ 'onRequestClose' ] >();
138
+ const onRequestCloseRef = useRef< ModalProps[ 'onRequestClose' ] >();
138
139
  useEffect( () => {
139
- refOnRequestClose.current = onRequestClose;
140
+ onRequestCloseRef.current = onRequestClose;
140
141
  }, [ onRequestClose ] );
141
142
 
142
143
  // The list of `onRequestClose` callbacks of open (non-nested) Modals. Only
@@ -149,10 +150,10 @@ function UnforwardedModal(
149
150
  // onRequestClose for any prior and/or nested modals as applicable.
150
151
  useEffect( () => {
151
152
  // add this modal instance to the dismissers set
152
- dismissers.add( refOnRequestClose );
153
+ dismissers.add( onRequestCloseRef );
153
154
  // request that all the other modals close themselves
154
155
  for ( const dismisser of dismissers ) {
155
- if ( dismisser !== refOnRequestClose ) {
156
+ if ( dismisser !== onRequestCloseRef ) {
156
157
  dismisser.current?.();
157
158
  }
158
159
  }
@@ -162,7 +163,7 @@ function UnforwardedModal(
162
163
  dismisser.current?.();
163
164
  }
164
165
  // remove this modal instance from the dismissers set
165
- dismissers.delete( refOnRequestClose );
166
+ dismissers.delete( onRequestCloseRef );
166
167
  };
167
168
  }, [ dismissers, nestedDismissers ] );
168
169
 
@@ -183,6 +184,9 @@ function UnforwardedModal(
183
184
  };
184
185
  }, [ bodyOpenClassName ] );
185
186
 
187
+ const { closeModal, frameRef, frameStyle, overlayClassname } =
188
+ useModalExitAnimation();
189
+
186
190
  // Calls the isContentScrollable callback when the Modal children container resizes.
187
191
  useLayoutEffect( () => {
188
192
  if ( ! window.ResizeObserver || ! childrenContainerRef.current ) {
@@ -199,21 +203,21 @@ function UnforwardedModal(
199
203
  };
200
204
  }, [ isContentScrollable, childrenContainerRef ] );
201
205
 
202
- function handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {
206
+ function handleEscapeKeyDown(
207
+ event: React.KeyboardEvent< HTMLDivElement >
208
+ ) {
203
209
  if (
204
210
  shouldCloseOnEsc &&
205
211
  ( event.code === 'Escape' || event.key === 'Escape' ) &&
206
212
  ! event.defaultPrevented
207
213
  ) {
208
214
  event.preventDefault();
209
- if ( onRequestClose ) {
210
- onRequestClose( event );
211
- }
215
+ closeModal().then( () => onRequestClose( event ) );
212
216
  }
213
217
  }
214
218
 
215
219
  const onContentContainerScroll = useCallback(
216
- ( e: UIEvent< HTMLDivElement > ) => {
220
+ ( e: React.UIEvent< HTMLDivElement > ) => {
217
221
  const scrollY = e?.currentTarget?.scrollTop ?? -1;
218
222
 
219
223
  if ( ! hasScrolledContent && scrollY > 0 ) {
@@ -247,7 +251,7 @@ function UnforwardedModal(
247
251
  const isSameTarget = target === pressTarget;
248
252
  pressTarget = null;
249
253
  if ( button === 0 && isSameTarget ) {
250
- onRequestClose();
254
+ closeModal().then( () => onRequestClose() );
251
255
  }
252
256
  },
253
257
  };
@@ -258,7 +262,8 @@ function UnforwardedModal(
258
262
  ref={ useMergeRefs( [ ref, forwardedRef ] ) }
259
263
  className={ clsx(
260
264
  'components-modal__screen-overlay',
261
- overlayClassName
265
+ overlayClassname,
266
+ overlayClassnameProp
262
267
  ) }
263
268
  onKeyDown={ withIgnoreIMEEvents( handleEscapeKeyDown ) }
264
269
  { ...( shouldCloseOnClickOutside ? overlayPressHandlers : {} ) }
@@ -270,8 +275,12 @@ function UnforwardedModal(
270
275
  sizeClass,
271
276
  className
272
277
  ) }
273
- style={ style }
278
+ style={ {
279
+ ...frameStyle,
280
+ ...style,
281
+ } }
274
282
  ref={ useMergeRefs( [
283
+ frameRef,
275
284
  constrainedTabbingRef,
276
285
  focusReturnRef,
277
286
  focusOnMount !== 'firstContentElement'
@@ -323,13 +332,27 @@ function UnforwardedModal(
323
332
  </div>
324
333
  { headerActions }
325
334
  { isDismissible && (
326
- <Button
327
- onClick={ onRequestClose }
328
- icon={ close }
329
- label={
330
- closeButtonLabel || __( 'Close' )
331
- }
332
- />
335
+ <>
336
+ <Spacer
337
+ marginBottom={ 0 }
338
+ marginLeft={ 3 }
339
+ />
340
+ <Button
341
+ size="small"
342
+ onClick={ (
343
+ event: React.MouseEvent< HTMLButtonElement >
344
+ ) =>
345
+ closeModal().then( () =>
346
+ onRequestClose( event )
347
+ )
348
+ }
349
+ icon={ close }
350
+ label={
351
+ closeButtonLabel ||
352
+ __( 'Close' )
353
+ }
354
+ />
355
+ </>
333
356
  ) }
334
357
  </div>
335
358
  ) }
@@ -7,7 +7,7 @@ import type { StoryFn, Meta } from '@storybook/react';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useState } from '@wordpress/element';
10
- import { starEmpty, starFilled } from '@wordpress/icons';
10
+ import { fullscreen } from '@wordpress/icons';
11
11
 
12
12
  /**
13
13
  * Internal dependencies
@@ -103,22 +103,16 @@ WithsizeSmall.args = {
103
103
  };
104
104
  WithsizeSmall.storyName = 'With size: small';
105
105
 
106
- const LikeButton = () => {
107
- const [ isLiked, setIsLiked ] = useState( false );
108
- return (
109
- <Button
110
- icon={ isLiked ? starFilled : starEmpty }
111
- label="Like"
112
- onClick={ () => setIsLiked( ! isLiked ) }
113
- />
114
- );
115
- };
116
-
106
+ /**
107
+ * The `headerActions` prop can be used to add auxiliary actions to the header, for example a fullscreen mode toggle.
108
+ */
117
109
  export const WithHeaderActions: StoryFn< typeof Modal > = Template.bind( {} );
118
110
  WithHeaderActions.args = {
119
111
  ...Default.args,
120
- headerActions: <LikeButton />,
121
- isDismissible: false,
112
+ headerActions: (
113
+ <Button icon={ fullscreen } label="Fullscreen mode" size="small" />
114
+ ),
115
+ children: <div style={ { height: '200px' } } />,
122
116
  };
123
117
  WithHeaderActions.parameters = {
124
118
  ...Default.parameters,