@wordpress/components 23.1.0 → 23.3.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 (623) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/LICENSE.md +1 -1
  4. package/build/alignment-matrix-control/utils.js +2 -2
  5. package/build/alignment-matrix-control/utils.js.map +1 -1
  6. package/build/autocomplete/autocompleter-ui.js +1 -3
  7. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  8. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  9. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  10. package/build/border-control/border-control-dropdown/component.js +8 -4
  11. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  12. package/build/button/deprecated.js +8 -6
  13. package/build/button/deprecated.js.map +1 -1
  14. package/build/button/index.js +52 -23
  15. package/build/button/index.js.map +1 -1
  16. package/build/button/types.js +6 -0
  17. package/build/button/types.js.map +1 -0
  18. package/build/color-list-picker/index.js.map +1 -1
  19. package/build/color-list-picker/types.js +6 -0
  20. package/build/color-list-picker/types.js.map +1 -0
  21. package/build/color-palette/index.js +9 -61
  22. package/build/color-palette/index.js.map +1 -1
  23. package/build/color-palette/index.native.js +24 -9
  24. package/build/color-palette/index.native.js.map +1 -1
  25. package/build/color-palette/utils.js +103 -0
  26. package/build/color-palette/utils.js.map +1 -0
  27. package/build/color-picker/component.js +1 -0
  28. package/build/color-picker/component.js.map +1 -1
  29. package/build/color-picker/styles.js +8 -10
  30. package/build/color-picker/styles.js.map +1 -1
  31. package/build/combobox-control/index.js +5 -1
  32. package/build/combobox-control/index.js.map +1 -1
  33. package/build/custom-gradient-picker/gradient-bar/utils.js +1 -1
  34. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  35. package/build/date-time/date/index.js.map +1 -1
  36. package/build/dropdown/index.js +20 -8
  37. package/build/dropdown/index.js.map +1 -1
  38. package/build/focal-point-picker/utils.js +1 -1
  39. package/build/focal-point-picker/utils.js.map +1 -1
  40. package/build/form-token-field/token.js +1 -1
  41. package/build/form-token-field/token.js.map +1 -1
  42. package/build/gradient-picker/index.js +9 -1
  43. package/build/gradient-picker/index.js.map +1 -1
  44. package/build/h-stack/component.js +0 -1
  45. package/build/h-stack/component.js.map +1 -1
  46. package/build/index.js +7 -17
  47. package/build/index.js.map +1 -1
  48. package/build/index.native.js +8 -18
  49. package/build/index.native.js.map +1 -1
  50. package/build/input-control/input-field.js +4 -2
  51. package/build/input-control/input-field.js.map +1 -1
  52. package/build/item-group/item/component.js +27 -3
  53. package/build/item-group/item/component.js.map +1 -1
  54. package/build/item-group/item-group/component.js +26 -3
  55. package/build/item-group/item-group/component.js.map +1 -1
  56. package/build/item-group/styles.js +14 -14
  57. package/build/item-group/styles.js.map +1 -1
  58. package/build/keyboard-shortcuts/index.js +44 -16
  59. package/build/keyboard-shortcuts/index.js.map +1 -1
  60. package/build/keyboard-shortcuts/types.js +6 -0
  61. package/build/keyboard-shortcuts/types.js.map +1 -0
  62. package/build/modal/index.js +1 -1
  63. package/build/modal/index.js.map +1 -1
  64. package/build/notice/index.js +16 -18
  65. package/build/notice/index.js.map +1 -1
  66. package/build/notice/list.js +23 -8
  67. package/build/notice/list.js.map +1 -1
  68. package/build/notice/types.js +6 -0
  69. package/build/notice/types.js.map +1 -0
  70. package/build/number-control/index.js +1 -1
  71. package/build/number-control/index.js.map +1 -1
  72. package/build/panel/row.js +5 -3
  73. package/build/panel/row.js.map +1 -1
  74. package/build/query-controls/author-select.js +7 -3
  75. package/build/query-controls/author-select.js.map +1 -1
  76. package/build/query-controls/category-select.js +7 -3
  77. package/build/query-controls/category-select.js.map +1 -1
  78. package/build/query-controls/index.js +69 -20
  79. package/build/query-controls/index.js.map +1 -1
  80. package/build/query-controls/terms.js +4 -3
  81. package/build/query-controls/terms.js.map +1 -1
  82. package/build/query-controls/types.js +6 -0
  83. package/build/query-controls/types.js.map +1 -0
  84. package/build/resizable-box/index.js +5 -4
  85. package/build/resizable-box/index.js.map +1 -1
  86. package/build/responsive-wrapper/index.js +18 -1
  87. package/build/responsive-wrapper/index.js.map +1 -1
  88. package/build/responsive-wrapper/types.js +6 -0
  89. package/build/responsive-wrapper/types.js.map +1 -0
  90. package/build/sandbox/index.js +35 -24
  91. package/build/sandbox/index.js.map +1 -1
  92. package/build/sandbox/types.js +6 -0
  93. package/build/sandbox/types.js.map +1 -0
  94. package/build/slot-fill/bubbles-virtually/fill.js +1 -0
  95. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  96. package/build/slot-fill/slot.js +1 -0
  97. package/build/slot-fill/slot.js.map +1 -1
  98. package/build/slot-fill/use-slot.js +1 -11
  99. package/build/slot-fill/use-slot.js.map +1 -1
  100. package/build/snackbar/index.js.map +1 -1
  101. package/build/snackbar/list.js.map +1 -1
  102. package/build/tab-panel/index.js +40 -7
  103. package/build/tab-panel/index.js.map +1 -1
  104. package/build/toolbar/index.js +42 -60
  105. package/build/toolbar/index.js.map +1 -1
  106. package/build/toolbar/toolbar/index.js +74 -0
  107. package/build/toolbar/toolbar/index.js.map +1 -0
  108. package/build/toolbar/{toolbar-container.js → toolbar/toolbar-container.js} +0 -0
  109. package/build/toolbar/toolbar/toolbar-container.js.map +1 -0
  110. package/build/toolbar/{toolbar-container.native.js → toolbar/toolbar-container.native.js} +0 -0
  111. package/build/toolbar/toolbar/toolbar-container.native.js.map +1 -0
  112. package/build/{toolbar-button → toolbar/toolbar-button}/index.js +1 -1
  113. package/build/toolbar/toolbar-button/index.js.map +1 -0
  114. package/build/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.js +0 -0
  115. package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -0
  116. package/build/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.native.js +0 -0
  117. package/build/toolbar/toolbar-button/toolbar-button-container.native.js.map +1 -0
  118. package/build/{toolbar-context → toolbar/toolbar-context}/index.js +0 -0
  119. package/build/toolbar/toolbar-context/index.js.map +1 -0
  120. package/build/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/index.js +1 -1
  121. package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -0
  122. package/build/{toolbar-group → toolbar/toolbar-group}/index.js +0 -0
  123. package/build/toolbar/toolbar-group/index.js.map +1 -0
  124. package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.js +1 -1
  125. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -0
  126. package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.native.js +1 -1
  127. package/build/toolbar/toolbar-group/toolbar-group-collapsed.native.js.map +1 -0
  128. package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.js +0 -0
  129. package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -0
  130. package/build/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.native.js +0 -0
  131. package/build/toolbar/toolbar-group/toolbar-group-container.native.js.map +1 -0
  132. package/build/{toolbar-item → toolbar/toolbar-item}/index.js +0 -0
  133. package/build/toolbar/toolbar-item/index.js.map +1 -0
  134. package/build/{toolbar-item → toolbar/toolbar-item}/index.native.js +0 -0
  135. package/build/toolbar/toolbar-item/index.native.js.map +1 -0
  136. package/build/tree-grid/index.js +4 -4
  137. package/build/tree-grid/index.js.map +1 -1
  138. package/build/tree-select/index.js +2 -6
  139. package/build/tree-select/index.js.map +1 -1
  140. package/build-module/alignment-matrix-control/utils.js +2 -2
  141. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  142. package/build-module/autocomplete/autocompleter-ui.js +1 -2
  143. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  144. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  145. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  146. package/build-module/border-control/border-control-dropdown/component.js +7 -4
  147. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  148. package/build-module/button/deprecated.js +8 -5
  149. package/build-module/button/deprecated.js.map +1 -1
  150. package/build-module/button/index.js +51 -22
  151. package/build-module/button/index.js.map +1 -1
  152. package/build-module/button/types.js +2 -0
  153. package/build-module/button/types.js.map +1 -0
  154. package/build-module/color-list-picker/index.js.map +1 -1
  155. package/build-module/color-list-picker/types.js +2 -0
  156. package/build-module/color-list-picker/types.js.map +1 -0
  157. package/build-module/color-palette/index.js +7 -54
  158. package/build-module/color-palette/index.js.map +1 -1
  159. package/build-module/color-palette/index.native.js +24 -8
  160. package/build-module/color-palette/index.native.js.map +1 -1
  161. package/build-module/color-palette/utils.js +79 -0
  162. package/build-module/color-palette/utils.js.map +1 -0
  163. package/build-module/color-picker/component.js +1 -0
  164. package/build-module/color-picker/component.js.map +1 -1
  165. package/build-module/color-picker/styles.js +8 -9
  166. package/build-module/color-picker/styles.js.map +1 -1
  167. package/build-module/combobox-control/index.js +5 -1
  168. package/build-module/combobox-control/index.js.map +1 -1
  169. package/build-module/custom-gradient-picker/gradient-bar/utils.js +1 -1
  170. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  171. package/build-module/date-time/date/index.js +1 -1
  172. package/build-module/date-time/date/index.js.map +1 -1
  173. package/build-module/dropdown/index.js +19 -8
  174. package/build-module/dropdown/index.js.map +1 -1
  175. package/build-module/focal-point-picker/utils.js +1 -1
  176. package/build-module/focal-point-picker/utils.js.map +1 -1
  177. package/build-module/form-token-field/token.js +1 -1
  178. package/build-module/form-token-field/token.js.map +1 -1
  179. package/build-module/gradient-picker/index.js +9 -2
  180. package/build-module/gradient-picker/index.js.map +1 -1
  181. package/build-module/h-stack/component.js +0 -1
  182. package/build-module/h-stack/component.js.map +1 -1
  183. package/build-module/index.js +1 -6
  184. package/build-module/index.js.map +1 -1
  185. package/build-module/index.native.js +1 -6
  186. package/build-module/index.native.js.map +1 -1
  187. package/build-module/input-control/input-field.js +4 -2
  188. package/build-module/input-control/input-field.js.map +1 -1
  189. package/build-module/item-group/item/component.js +26 -2
  190. package/build-module/item-group/item/component.js.map +1 -1
  191. package/build-module/item-group/item-group/component.js +25 -2
  192. package/build-module/item-group/item-group/component.js.map +1 -1
  193. package/build-module/item-group/styles.js +14 -14
  194. package/build-module/item-group/styles.js.map +1 -1
  195. package/build-module/keyboard-shortcuts/index.js +48 -16
  196. package/build-module/keyboard-shortcuts/index.js.map +1 -1
  197. package/build-module/keyboard-shortcuts/types.js +2 -0
  198. package/build-module/keyboard-shortcuts/types.js.map +1 -0
  199. package/build-module/modal/index.js +1 -1
  200. package/build-module/modal/index.js.map +1 -1
  201. package/build-module/notice/index.js +14 -15
  202. package/build-module/notice/index.js.map +1 -1
  203. package/build-module/notice/list.js +23 -8
  204. package/build-module/notice/list.js.map +1 -1
  205. package/build-module/notice/types.js +2 -0
  206. package/build-module/notice/types.js.map +1 -0
  207. package/build-module/number-control/index.js +1 -1
  208. package/build-module/number-control/index.js.map +1 -1
  209. package/build-module/panel/row.js +5 -3
  210. package/build-module/panel/row.js.map +1 -1
  211. package/build-module/query-controls/author-select.js +7 -3
  212. package/build-module/query-controls/author-select.js.map +1 -1
  213. package/build-module/query-controls/category-select.js +8 -4
  214. package/build-module/query-controls/category-select.js.map +1 -1
  215. package/build-module/query-controls/index.js +65 -20
  216. package/build-module/query-controls/index.js.map +1 -1
  217. package/build-module/query-controls/terms.js +8 -4
  218. package/build-module/query-controls/terms.js.map +1 -1
  219. package/build-module/query-controls/types.js +2 -0
  220. package/build-module/query-controls/types.js.map +1 -0
  221. package/build-module/resizable-box/index.js +3 -2
  222. package/build-module/resizable-box/index.js.map +1 -1
  223. package/build-module/responsive-wrapper/index.js +20 -1
  224. package/build-module/responsive-wrapper/index.js.map +1 -1
  225. package/build-module/responsive-wrapper/types.js +2 -0
  226. package/build-module/responsive-wrapper/types.js.map +1 -0
  227. package/build-module/sandbox/index.js +37 -23
  228. package/build-module/sandbox/index.js.map +1 -1
  229. package/build-module/sandbox/types.js +2 -0
  230. package/build-module/sandbox/types.js.map +1 -0
  231. package/build-module/slot-fill/bubbles-virtually/fill.js +1 -0
  232. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  233. package/build-module/slot-fill/slot.js +1 -0
  234. package/build-module/slot-fill/slot.js.map +1 -1
  235. package/build-module/slot-fill/use-slot.js +2 -12
  236. package/build-module/slot-fill/use-slot.js.map +1 -1
  237. package/build-module/snackbar/index.js.map +1 -1
  238. package/build-module/snackbar/list.js.map +1 -1
  239. package/build-module/tab-panel/index.js +40 -7
  240. package/build-module/tab-panel/index.js.map +1 -1
  241. package/build-module/toolbar/index.js +6 -58
  242. package/build-module/toolbar/index.js.map +1 -1
  243. package/build-module/toolbar/toolbar/index.js +59 -0
  244. package/build-module/toolbar/toolbar/index.js.map +1 -0
  245. package/build-module/toolbar/{toolbar-container.js → toolbar/toolbar-container.js} +0 -0
  246. package/{build → build-module/toolbar}/toolbar/toolbar-container.js.map +1 -1
  247. package/build-module/toolbar/{toolbar-container.native.js → toolbar/toolbar-container.native.js} +0 -0
  248. package/build-module/toolbar/toolbar/toolbar-container.native.js.map +1 -0
  249. package/build-module/{toolbar-button → toolbar/toolbar-button}/index.js +1 -1
  250. package/build-module/toolbar/toolbar-button/index.js.map +1 -0
  251. package/build-module/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.js +0 -0
  252. package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -0
  253. package/build-module/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.native.js +0 -0
  254. package/build-module/toolbar/toolbar-button/toolbar-button-container.native.js.map +1 -0
  255. package/build-module/{toolbar-context → toolbar/toolbar-context}/index.js +0 -0
  256. package/build-module/toolbar/toolbar-context/index.js.map +1 -0
  257. package/build-module/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/index.js +1 -1
  258. package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -0
  259. package/build-module/{toolbar-group → toolbar/toolbar-group}/index.js +0 -0
  260. package/build-module/toolbar/toolbar-group/index.js.map +1 -0
  261. package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.js +1 -1
  262. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -0
  263. package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.native.js +1 -1
  264. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.native.js.map +1 -0
  265. package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.js +0 -0
  266. package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -0
  267. package/build-module/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.native.js +0 -0
  268. package/build-module/toolbar/toolbar-group/toolbar-group-container.native.js.map +1 -0
  269. package/build-module/{toolbar-item → toolbar/toolbar-item}/index.js +0 -0
  270. package/build-module/toolbar/toolbar-item/index.js.map +1 -0
  271. package/build-module/{toolbar-item → toolbar/toolbar-item}/index.native.js +0 -0
  272. package/build-module/toolbar/toolbar-item/index.native.js.map +1 -0
  273. package/build-module/tree-grid/index.js +4 -4
  274. package/build-module/tree-grid/index.js.map +1 -1
  275. package/build-module/tree-select/index.js +2 -6
  276. package/build-module/tree-select/index.js.map +1 -1
  277. package/build-style/style-rtl.css +6 -1
  278. package/build-style/style.css +6 -1
  279. package/build-types/border-box-control/border-box-control/hook.d.ts +1 -1
  280. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +1 -1
  281. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +171 -160
  282. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  283. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -1
  284. package/build-types/border-control/border-control/hook.d.ts +1 -1
  285. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  286. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -1
  287. package/build-types/button/deprecated.d.ts +143 -7
  288. package/build-types/button/deprecated.d.ts.map +1 -1
  289. package/build-types/button/index.d.ts +20 -3
  290. package/build-types/button/index.d.ts.map +1 -1
  291. package/build-types/button/stories/index.d.ts +20 -0
  292. package/build-types/button/stories/index.d.ts.map +1 -0
  293. package/build-types/button/test/index.d.ts +2 -0
  294. package/build-types/button/test/index.d.ts.map +1 -0
  295. package/build-types/button/types.d.ts +134 -0
  296. package/build-types/button/types.d.ts.map +1 -0
  297. package/build-types/color-list-picker/index.d.ts +5 -0
  298. package/build-types/color-list-picker/index.d.ts.map +1 -0
  299. package/build-types/color-list-picker/types.d.ts +42 -0
  300. package/build-types/color-list-picker/types.d.ts.map +1 -0
  301. package/build-types/color-palette/index.d.ts +2 -4
  302. package/build-types/color-palette/index.d.ts.map +1 -1
  303. package/build-types/color-palette/stories/index.d.ts +2 -2
  304. package/build-types/color-palette/styles.d.ts +1 -1
  305. package/build-types/color-palette/types.d.ts +1 -1
  306. package/build-types/color-palette/types.d.ts.map +1 -1
  307. package/build-types/color-palette/utils.d.ts +14 -0
  308. package/build-types/color-palette/utils.d.ts.map +1 -0
  309. package/build-types/color-picker/component.d.ts.map +1 -1
  310. package/build-types/color-picker/styles.d.ts +2 -2
  311. package/build-types/color-picker/styles.d.ts.map +1 -1
  312. package/build-types/dashicon/types.d.ts +0 -4
  313. package/build-types/dashicon/types.d.ts.map +1 -1
  314. package/build-types/date-time/date/index.d.ts.map +1 -1
  315. package/build-types/date-time/date/styles.d.ts +3 -3
  316. package/build-types/dropdown/index.d.ts +4 -4
  317. package/build-types/dropdown/index.d.ts.map +1 -1
  318. package/build-types/dropdown/stories/index.d.ts.map +1 -1
  319. package/build-types/dropdown/types.d.ts +9 -10
  320. package/build-types/dropdown/types.d.ts.map +1 -1
  321. package/build-types/focal-point-picker/utils.d.ts.map +1 -1
  322. package/build-types/font-size-picker/styles.d.ts +2 -2
  323. package/build-types/h-stack/component.d.ts +0 -1
  324. package/build-types/h-stack/component.d.ts.map +1 -1
  325. package/build-types/input-control/input-field.d.ts.map +1 -1
  326. package/build-types/item-group/item/component.d.ts +24 -2
  327. package/build-types/item-group/item/component.d.ts.map +1 -1
  328. package/build-types/item-group/item-group/component.d.ts +23 -2
  329. package/build-types/item-group/item-group/component.d.ts.map +1 -1
  330. package/build-types/item-group/stories/index.d.ts +15 -0
  331. package/build-types/item-group/stories/index.d.ts.map +1 -0
  332. package/build-types/item-group/styles.d.ts.map +1 -1
  333. package/build-types/keyboard-shortcuts/index.d.ts +38 -0
  334. package/build-types/keyboard-shortcuts/index.d.ts.map +1 -0
  335. package/build-types/keyboard-shortcuts/stories/index.d.ts +12 -0
  336. package/build-types/keyboard-shortcuts/stories/index.d.ts.map +1 -0
  337. package/build-types/keyboard-shortcuts/test/index.d.ts +2 -0
  338. package/build-types/keyboard-shortcuts/test/index.d.ts.map +1 -0
  339. package/build-types/keyboard-shortcuts/types.d.ts +48 -0
  340. package/build-types/keyboard-shortcuts/types.d.ts.map +1 -0
  341. package/build-types/modal/index.d.ts.map +1 -1
  342. package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
  343. package/build-types/navigator/navigator-back-button/hook.d.ts +2 -2
  344. package/build-types/navigator/navigator-button/component.d.ts +1 -1
  345. package/build-types/navigator/navigator-button/hook.d.ts +2 -2
  346. package/build-types/notice/index.d.ts +16 -0
  347. package/build-types/notice/index.d.ts.map +1 -0
  348. package/build-types/notice/list.d.ts +32 -0
  349. package/build-types/notice/list.d.ts.map +1 -0
  350. package/build-types/notice/stories/index.d.ts +17 -0
  351. package/build-types/notice/stories/index.d.ts.map +1 -0
  352. package/build-types/notice/test/index.d.ts +2 -0
  353. package/build-types/notice/test/index.d.ts.map +1 -0
  354. package/build-types/notice/test/list.d.ts +2 -0
  355. package/build-types/notice/test/list.d.ts.map +1 -0
  356. package/build-types/notice/types.d.ts +128 -0
  357. package/build-types/notice/types.d.ts.map +1 -0
  358. package/build-types/number-control/styles/number-control-styles.d.ts +2 -2
  359. package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
  360. package/build-types/placeholder/stories/index.d.ts.map +1 -1
  361. package/build-types/query-controls/author-select.d.ts +4 -0
  362. package/build-types/query-controls/author-select.d.ts.map +1 -0
  363. package/build-types/query-controls/category-select.d.ts +4 -0
  364. package/build-types/query-controls/category-select.d.ts.map +1 -0
  365. package/build-types/query-controls/index.d.ts +30 -0
  366. package/build-types/query-controls/index.d.ts.map +1 -0
  367. package/build-types/query-controls/stories/index.d.ts +13 -0
  368. package/build-types/query-controls/stories/index.d.ts.map +1 -0
  369. package/build-types/query-controls/terms.d.ts +13 -0
  370. package/build-types/query-controls/terms.d.ts.map +1 -0
  371. package/build-types/query-controls/test/terms.d.ts +2 -0
  372. package/build-types/query-controls/test/terms.d.ts.map +1 -0
  373. package/build-types/query-controls/types.d.ts +131 -0
  374. package/build-types/query-controls/types.d.ts.map +1 -0
  375. package/build-types/range-control/index.d.ts +1 -1
  376. package/build-types/resizable-box/index.d.ts +6 -7
  377. package/build-types/resizable-box/index.d.ts.map +1 -1
  378. package/build-types/resizable-box/stories/index.d.ts +61 -0
  379. package/build-types/resizable-box/stories/index.d.ts.map +1 -0
  380. package/build-types/responsive-wrapper/index.d.ts +24 -0
  381. package/build-types/responsive-wrapper/index.d.ts.map +1 -0
  382. package/build-types/responsive-wrapper/stories/index.d.ts +12 -0
  383. package/build-types/responsive-wrapper/stories/index.d.ts.map +1 -0
  384. package/build-types/responsive-wrapper/types.d.ts +22 -0
  385. package/build-types/responsive-wrapper/types.d.ts.map +1 -0
  386. package/build-types/sandbox/index.d.ts +19 -0
  387. package/build-types/sandbox/index.d.ts.map +1 -0
  388. package/build-types/sandbox/stories/index.d.ts +12 -0
  389. package/build-types/sandbox/stories/index.d.ts.map +1 -0
  390. package/build-types/sandbox/test/index.d.ts +2 -0
  391. package/build-types/sandbox/test/index.d.ts.map +1 -0
  392. package/build-types/sandbox/types.d.ts +36 -0
  393. package/build-types/sandbox/types.d.ts.map +1 -0
  394. package/build-types/slot-fill/bubbles-virtually/fill.d.ts.map +1 -1
  395. package/build-types/slot-fill/use-slot.d.ts.map +1 -1
  396. package/build-types/snackbar/index.d.ts +9 -2
  397. package/build-types/snackbar/index.d.ts.map +1 -1
  398. package/build-types/snackbar/list.d.ts.map +1 -1
  399. package/build-types/snackbar/types.d.ts +15 -88
  400. package/build-types/snackbar/types.d.ts.map +1 -1
  401. package/build-types/tab-panel/index.d.ts.map +1 -1
  402. package/build-types/tab-panel/stories/index.d.ts +1 -0
  403. package/build-types/tab-panel/stories/index.d.ts.map +1 -1
  404. package/build-types/tab-panel/types.d.ts +11 -5
  405. package/build-types/tab-panel/types.d.ts.map +1 -1
  406. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
  407. package/build-types/tree-select/index.d.ts.map +1 -1
  408. package/build-types/ui/form-group/form-group.d.ts +2 -2
  409. package/package.json +18 -17
  410. package/src/alignment-matrix-control/utils.tsx +2 -2
  411. package/src/autocomplete/autocompleter-ui.js +1 -2
  412. package/src/autocomplete/test/index.js +1 -5
  413. package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
  414. package/src/border-box-control/border-box-control-linked-button/hook.ts +1 -1
  415. package/src/border-control/border-control-dropdown/component.tsx +9 -8
  416. package/src/box-control/test/index.js +11 -35
  417. package/src/button/README.md +49 -55
  418. package/src/button/{deprecated.js → deprecated.tsx} +19 -4
  419. package/src/button/{index.js → index.tsx} +95 -34
  420. package/src/button/stories/index.tsx +106 -0
  421. package/src/button/style.scss +3 -2
  422. package/src/button/test/{index.js → index.tsx} +30 -7
  423. package/src/button/types.ts +138 -0
  424. package/src/checkbox-control/test/index.tsx +1 -5
  425. package/src/color-list-picker/{index.js → index.tsx} +3 -2
  426. package/src/color-list-picker/types.ts +46 -0
  427. package/src/color-palette/README.md +1 -1
  428. package/src/color-palette/index.native.js +11 -4
  429. package/src/color-palette/index.tsx +11 -67
  430. package/src/color-palette/test/index.tsx +4 -14
  431. package/src/color-palette/test/utils.ts +1 -1
  432. package/src/color-palette/types.ts +1 -1
  433. package/src/color-palette/utils.ts +98 -0
  434. package/src/color-picker/component.tsx +1 -0
  435. package/src/color-picker/stories/index.js +20 -60
  436. package/src/color-picker/styles.ts +0 -5
  437. package/src/color-picker/test/index.js +6 -15
  438. package/src/combobox-control/index.js +9 -1
  439. package/src/combobox-control/test/index.js +1 -6
  440. package/src/confirm-dialog/test/index.js +9 -29
  441. package/src/custom-gradient-picker/gradient-bar/utils.js +1 -1
  442. package/src/dashicon/types.ts +0 -6
  443. package/src/date-time/date/index.tsx +2 -1
  444. package/src/date-time/date/test/index.tsx +2 -8
  445. package/src/date-time/time/test/index.tsx +9 -29
  446. package/src/dimension-control/test/index.test.js +2 -8
  447. package/src/disabled/test/index.tsx +1 -5
  448. package/src/draggable/test/index.native.js +4 -4
  449. package/src/dropdown/README.md +1 -8
  450. package/src/dropdown/index.tsx +17 -6
  451. package/src/dropdown/stories/index.tsx +3 -3
  452. package/src/dropdown/test/index.tsx +2 -8
  453. package/src/dropdown/types.ts +9 -10
  454. package/src/dropdown-menu/README.md +1 -1
  455. package/src/dropdown-menu/stories/index.js +96 -27
  456. package/src/dropdown-menu/test/index.js +2 -8
  457. package/src/external-link/test/index.tsx +1 -6
  458. package/src/focal-point-picker/stories/index.tsx +1 -1
  459. package/src/focal-point-picker/test/index.js +3 -11
  460. package/src/focal-point-picker/utils.ts +4 -1
  461. package/src/font-size-picker/test/index.tsx +14 -44
  462. package/src/form-file-upload/test/index.tsx +2 -17
  463. package/src/form-toggle/test/index.tsx +1 -5
  464. package/src/form-token-field/test/index.tsx +80 -163
  465. package/src/form-token-field/token.tsx +1 -1
  466. package/src/gradient-picker/index.js +15 -4
  467. package/src/guide/stories/index.js +14 -41
  468. package/src/guide/test/index.js +5 -17
  469. package/src/h-stack/component.tsx +0 -1
  470. package/src/higher-order/with-filters/test/index.js +24 -24
  471. package/src/higher-order/with-focus-outside/test/index.js +11 -25
  472. package/src/higher-order/with-focus-return/test/index.js +1 -5
  473. package/src/index.js +8 -6
  474. package/src/index.native.js +8 -6
  475. package/src/input-control/input-field.tsx +3 -1
  476. package/src/input-control/test/index.js +1 -6
  477. package/src/isolated-event-container/test/index.js +2 -8
  478. package/src/item-group/item/component.tsx +26 -2
  479. package/src/item-group/item-group/component.tsx +25 -2
  480. package/src/item-group/stories/index.tsx +103 -0
  481. package/src/item-group/styles.ts +1 -0
  482. package/src/item-group/test/__snapshots__/index.js.snap +11 -10
  483. package/src/keyboard-shortcuts/README.md +1 -1
  484. package/src/keyboard-shortcuts/index.tsx +93 -0
  485. package/src/keyboard-shortcuts/stories/index.tsx +60 -0
  486. package/src/keyboard-shortcuts/test/{index.js → index.tsx} +16 -6
  487. package/src/keyboard-shortcuts/types.ts +51 -0
  488. package/src/modal/index.tsx +1 -2
  489. package/src/navigable-container/test/navigable-menu.js +5 -17
  490. package/src/navigable-container/test/tababble-container.js +3 -11
  491. package/src/navigation/test/index.js +3 -11
  492. package/src/navigator/test/index.tsx +6 -20
  493. package/src/notice/README.md +89 -42
  494. package/src/notice/{index.js → index.tsx} +28 -20
  495. package/src/notice/list.tsx +72 -0
  496. package/src/notice/stories/index.tsx +119 -0
  497. package/src/notice/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  498. package/src/notice/test/{index.js → index.tsx} +7 -4
  499. package/src/notice/test/{list.js → list.tsx} +0 -0
  500. package/src/notice/types.ts +136 -0
  501. package/src/number-control/index.tsx +1 -1
  502. package/src/number-control/test/index.tsx +28 -86
  503. package/src/panel/row.js +3 -3
  504. package/src/panel/stories/index.js +62 -80
  505. package/src/panel/test/body.js +2 -8
  506. package/src/placeholder/stories/index.tsx +1 -0
  507. package/src/placeholder/style.scss +1 -1
  508. package/src/query-controls/README.md +56 -56
  509. package/src/query-controls/author-select.tsx +37 -0
  510. package/src/query-controls/category-select.tsx +46 -0
  511. package/src/query-controls/index.tsx +192 -0
  512. package/src/query-controls/stories/index.tsx +205 -0
  513. package/src/query-controls/terms.ts +57 -0
  514. package/src/query-controls/test/{terms.js → terms.ts} +36 -20
  515. package/src/query-controls/types.ts +150 -0
  516. package/src/resizable-box/README.md +2 -2
  517. package/src/resizable-box/index.tsx +7 -6
  518. package/src/resizable-box/stories/index.tsx +92 -0
  519. package/src/responsive-wrapper/README.md +29 -0
  520. package/src/responsive-wrapper/{index.js → index.tsx} +23 -2
  521. package/src/responsive-wrapper/stories/index.tsx +38 -0
  522. package/src/responsive-wrapper/types.ts +20 -0
  523. package/src/sandbox/README.md +45 -2
  524. package/src/sandbox/{index.js → index.tsx} +47 -24
  525. package/src/sandbox/stories/index.tsx +32 -0
  526. package/src/sandbox/test/{index.js → index.tsx} +9 -4
  527. package/src/sandbox/types.ts +34 -0
  528. package/src/select-control/test/select-control.tsx +1 -6
  529. package/src/slot-fill/bubbles-virtually/fill.js +1 -0
  530. package/src/slot-fill/slot.js +1 -1
  531. package/src/slot-fill/stories/index.js +12 -17
  532. package/src/slot-fill/use-slot.js +6 -16
  533. package/src/snackbar/index.tsx +6 -5
  534. package/src/snackbar/list.tsx +4 -2
  535. package/src/snackbar/types.ts +18 -92
  536. package/src/style.scss +3 -3
  537. package/src/tab-panel/README.md +1 -0
  538. package/src/tab-panel/index.tsx +42 -6
  539. package/src/tab-panel/stories/index.tsx +20 -0
  540. package/src/tab-panel/style.scss +8 -0
  541. package/src/tab-panel/test/index.tsx +124 -7
  542. package/src/tab-panel/types.ts +11 -5
  543. package/src/theme/test/index.tsx +4 -4
  544. package/src/toggle-group-control/stories/index.tsx +1 -0
  545. package/src/toggle-group-control/test/index.tsx +7 -23
  546. package/src/toolbar/index.js +6 -52
  547. package/src/toolbar/stories/index.js +71 -75
  548. package/src/toolbar/test/index.js +1 -2
  549. package/src/{toolbar-group/test/index.js → toolbar/test/toolbar-group.js} +1 -1
  550. package/src/toolbar/{README.md → toolbar/README.md} +0 -0
  551. package/src/toolbar/toolbar/index.js +52 -0
  552. package/src/toolbar/{style.native.scss → toolbar/style.native.scss} +0 -0
  553. package/src/toolbar/{style.scss → toolbar/style.scss} +0 -0
  554. package/src/toolbar/{toolbar-container.js → toolbar/toolbar-container.js} +0 -0
  555. package/src/toolbar/{toolbar-container.native.js → toolbar/toolbar-container.native.js} +0 -0
  556. package/src/{toolbar-button → toolbar/toolbar-button}/README.md +0 -0
  557. package/src/{toolbar-button → toolbar/toolbar-button}/index.js +1 -1
  558. package/src/{toolbar-button → toolbar/toolbar-button}/style.scss +0 -0
  559. package/src/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.js +0 -0
  560. package/src/{toolbar-button → toolbar/toolbar-button}/toolbar-button-container.native.js +0 -0
  561. package/src/{toolbar-context → toolbar/toolbar-context}/index.js +0 -0
  562. package/src/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/README.md +0 -0
  563. package/src/{toolbar-dropdown-menu → toolbar/toolbar-dropdown-menu}/index.js +1 -1
  564. package/src/{toolbar-group → toolbar/toolbar-group}/README.md +0 -0
  565. package/src/{toolbar-group → toolbar/toolbar-group}/index.js +0 -0
  566. package/src/{toolbar-group → toolbar/toolbar-group}/style.native.scss +0 -0
  567. package/src/{toolbar-group → toolbar/toolbar-group}/style.scss +0 -0
  568. package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.js +1 -1
  569. package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-collapsed.native.js +1 -1
  570. package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.js +0 -0
  571. package/src/{toolbar-group → toolbar/toolbar-group}/toolbar-group-container.native.js +0 -0
  572. package/src/{toolbar-item → toolbar/toolbar-item}/README.md +0 -0
  573. package/src/{toolbar-item → toolbar/toolbar-item}/index.js +0 -0
  574. package/src/{toolbar-item → toolbar/toolbar-item}/index.native.js +0 -0
  575. package/src/tools-panel/stories/index.js +3 -0
  576. package/src/tools-panel/test/index.js +1 -1
  577. package/src/tree-grid/index.js +3 -5
  578. package/src/tree-select/index.tsx +3 -6
  579. package/src/ui/context/test/context-connect.tsx +2 -0
  580. package/src/ui/context/test/wordpress-component.tsx +2 -0
  581. package/src/unit-control/test/index.tsx +21 -74
  582. package/src/utils/hooks/test/use-latest-ref.js +15 -18
  583. package/tsconfig.json +1 -11
  584. package/tsconfig.tsbuildinfo +1 -1
  585. package/build/toolbar/toolbar-container.native.js.map +0 -1
  586. package/build/toolbar-button/index.js.map +0 -1
  587. package/build/toolbar-button/toolbar-button-container.js.map +0 -1
  588. package/build/toolbar-button/toolbar-button-container.native.js.map +0 -1
  589. package/build/toolbar-context/index.js.map +0 -1
  590. package/build/toolbar-dropdown-menu/index.js.map +0 -1
  591. package/build/toolbar-group/index.js.map +0 -1
  592. package/build/toolbar-group/toolbar-group-collapsed.js.map +0 -1
  593. package/build/toolbar-group/toolbar-group-collapsed.native.js.map +0 -1
  594. package/build/toolbar-group/toolbar-group-container.js.map +0 -1
  595. package/build/toolbar-group/toolbar-group-container.native.js.map +0 -1
  596. package/build/toolbar-item/index.js.map +0 -1
  597. package/build/toolbar-item/index.native.js.map +0 -1
  598. package/build-module/toolbar/toolbar-container.js.map +0 -1
  599. package/build-module/toolbar/toolbar-container.native.js.map +0 -1
  600. package/build-module/toolbar-button/index.js.map +0 -1
  601. package/build-module/toolbar-button/toolbar-button-container.js.map +0 -1
  602. package/build-module/toolbar-button/toolbar-button-container.native.js.map +0 -1
  603. package/build-module/toolbar-context/index.js.map +0 -1
  604. package/build-module/toolbar-dropdown-menu/index.js.map +0 -1
  605. package/build-module/toolbar-group/index.js.map +0 -1
  606. package/build-module/toolbar-group/toolbar-group-collapsed.js.map +0 -1
  607. package/build-module/toolbar-group/toolbar-group-collapsed.native.js.map +0 -1
  608. package/build-module/toolbar-group/toolbar-group-container.js.map +0 -1
  609. package/build-module/toolbar-group/toolbar-group-container.native.js.map +0 -1
  610. package/build-module/toolbar-item/index.js.map +0 -1
  611. package/build-module/toolbar-item/index.native.js.map +0 -1
  612. package/src/button/stories/index.js +0 -179
  613. package/src/item-group/stories/index.js +0 -270
  614. package/src/keyboard-shortcuts/index.js +0 -56
  615. package/src/notice/list.js +0 -48
  616. package/src/notice/stories/index.js +0 -74
  617. package/src/query-controls/author-select.js +0 -23
  618. package/src/query-controls/category-select.js +0 -31
  619. package/src/query-controls/index.js +0 -121
  620. package/src/query-controls/terms.js +0 -40
  621. package/src/resizable-box/stories/index.js +0 -97
  622. package/src/toolbar-button/stories/index.js +0 -33
  623. package/src/toolbar-group/stories/index.js +0 -33
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { text, number } from '@storybook/addon-knobs';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -17,20 +12,19 @@ import Guide from '../';
17
12
  export default {
18
13
  title: 'Components/Guide',
19
14
  component: Guide,
20
- parameters: {
21
- knobs: { disable: false },
15
+ argTypes: {
16
+ contentLabel: { control: 'text' },
17
+ finishButtonText: { control: 'text' },
18
+ onFinish: { action: 'onFinish' },
22
19
  },
23
20
  };
24
21
 
25
- const ModalExample = ( { numberOfPages, ...props } ) => {
22
+ const Template = ( { onFinish, ...props } ) => {
26
23
  const [ isOpen, setOpen ] = useState( false );
27
24
 
28
25
  const openGuide = () => setOpen( true );
29
26
  const closeGuide = () => setOpen( false );
30
27
 
31
- const loremIpsum =
32
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
33
-
34
28
  return (
35
29
  <>
36
30
  <Button variant="secondary" onClick={ openGuide }>
@@ -39,40 +33,19 @@ const ModalExample = ( { numberOfPages, ...props } ) => {
39
33
  { isOpen && (
40
34
  <Guide
41
35
  { ...props }
42
- onFinish={ closeGuide }
43
- pages={ Array.from( { length: numberOfPages } ).map(
44
- ( _, page ) => ( {
45
- content: (
46
- <>
47
- <h1>
48
- Page { page + 1 } of { numberOfPages }
49
- </h1>
50
- <p>{ loremIpsum }</p>
51
- </>
52
- ),
53
- } )
54
- ) }
36
+ onFinish={ ( ...finishArgs ) => {
37
+ closeGuide( ...finishArgs );
38
+ onFinish( ...finishArgs );
39
+ } }
55
40
  />
56
41
  ) }
57
42
  </>
58
43
  );
59
44
  };
60
45
 
61
- export const _default = () => {
62
- const finishButtonText = text( 'finishButtonText', 'Finish' );
63
- const contentLabel = text( 'title', 'Guide title' );
64
- const numberOfPages = number( 'numberOfPages', 3, {
65
- range: true,
66
- min: 1,
67
- max: 10,
68
- step: 1,
69
- } );
70
-
71
- const modalProps = {
72
- finishButtonText,
73
- contentLabel,
74
- numberOfPages,
75
- };
76
-
77
- return <ModalExample { ...modalProps } />;
46
+ export const Default = Template.bind( {} );
47
+ Default.args = {
48
+ pages: Array.from( { length: 3 } ).map( ( _, page ) => ( {
49
+ content: <p>{ `Page ${ page + 1 }` }</p>,
50
+ } ) ),
78
51
  };
@@ -9,8 +9,6 @@ import userEvent from '@testing-library/user-event';
9
9
  */
10
10
  import Guide from '../';
11
11
 
12
- jest.useFakeTimers();
13
-
14
12
  describe( 'Guide', () => {
15
13
  it( 'renders nothing when there are no pages', () => {
16
14
  render( <Guide pages={ [] } /> );
@@ -54,9 +52,7 @@ describe( 'Guide', () => {
54
52
  } );
55
53
 
56
54
  it( 'shows back button and shows finish button on the last page', async () => {
57
- const user = userEvent.setup( {
58
- advanceTimers: jest.advanceTimersByTime,
59
- } );
55
+ const user = userEvent.setup();
60
56
  render(
61
57
  <Guide
62
58
  pages={ [
@@ -89,9 +85,7 @@ describe( 'Guide', () => {
89
85
  } );
90
86
 
91
87
  it( 'calls onFinish when the finish button is clicked', async () => {
92
- const user = userEvent.setup( {
93
- advanceTimers: jest.advanceTimersByTime,
94
- } );
88
+ const user = userEvent.setup();
95
89
  const onFinish = jest.fn();
96
90
  render(
97
91
  <Guide
@@ -105,9 +99,7 @@ describe( 'Guide', () => {
105
99
  } );
106
100
 
107
101
  it( 'calls onFinish when the modal is closed', async () => {
108
- const user = userEvent.setup( {
109
- advanceTimers: jest.advanceTimersByTime,
110
- } );
102
+ const user = userEvent.setup();
111
103
  const onFinish = jest.fn();
112
104
  render(
113
105
  <Guide
@@ -158,9 +150,7 @@ describe( 'Guide', () => {
158
150
  } );
159
151
 
160
152
  it( 'sets the current page when a button is clicked', async () => {
161
- const user = userEvent.setup( {
162
- advanceTimers: jest.advanceTimersByTime,
163
- } );
153
+ const user = userEvent.setup();
164
154
 
165
155
  render(
166
156
  <Guide
@@ -202,9 +192,7 @@ describe( 'Guide', () => {
202
192
  } );
203
193
 
204
194
  it( 'allows navigating through the pages with the left and right arrows', async () => {
205
- const user = userEvent.setup( {
206
- advanceTimers: jest.advanceTimersByTime,
207
- } );
195
+ const user = userEvent.setup();
208
196
 
209
197
  render(
210
198
  <Guide
@@ -20,7 +20,6 @@ function UnconnectedHStack(
20
20
  *
21
21
  * `HStack` can render anything inside.
22
22
  *
23
- * @example
24
23
  * ```jsx
25
24
  * import {
26
25
  * __experimentalHStack as HStack,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { act, render } from '@testing-library/react';
4
+ import { render, waitFor } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -13,8 +13,6 @@ import { addFilter, removeAllFilters, removeFilter } from '@wordpress/hooks';
13
13
  */
14
14
  import withFilters from '..';
15
15
 
16
- jest.useFakeTimers();
17
-
18
16
  describe( 'withFilters', () => {
19
17
  const hookName = 'EnhancedComponent';
20
18
  const MyComponent = () => <div>My component</div>;
@@ -65,7 +63,7 @@ describe( 'withFilters', () => {
65
63
  expect( container ).toMatchSnapshot();
66
64
  } );
67
65
 
68
- it( 'should not re-render component when new filter added before component was mounted', () => {
66
+ it( 'should not re-render component when new filter added before component was mounted', async () => {
69
67
  const SpiedComponent = jest.fn( () => <div>Spied component</div> );
70
68
  addFilter(
71
69
  hookName,
@@ -81,13 +79,13 @@ describe( 'withFilters', () => {
81
79
 
82
80
  const { container } = render( <EnhancedComponent /> );
83
81
 
84
- act( () => jest.runAllTimers() );
85
-
86
- expect( SpiedComponent ).toHaveBeenCalledTimes( 1 );
82
+ await waitFor( () =>
83
+ expect( SpiedComponent ).toHaveBeenCalledTimes( 1 )
84
+ );
87
85
  expect( container ).toMatchSnapshot();
88
86
  } );
89
87
 
90
- it( 'should re-render component once when new filter added after component was mounted', () => {
88
+ it( 'should re-render component once when new filter added after component was mounted', async () => {
91
89
  const SpiedComponent = jest.fn( () => <div>Spied component</div> );
92
90
  const EnhancedComponent = withFilters( hookName )( SpiedComponent );
93
91
 
@@ -106,13 +104,13 @@ describe( 'withFilters', () => {
106
104
  )
107
105
  );
108
106
 
109
- act( () => jest.runAllTimers() );
110
-
111
- expect( SpiedComponent ).toHaveBeenCalledTimes( 1 );
107
+ await waitFor( () =>
108
+ expect( SpiedComponent ).toHaveBeenCalledTimes( 1 )
109
+ );
112
110
  expect( container ).toMatchSnapshot();
113
111
  } );
114
112
 
115
- it( 'should re-render component once when two filters added in the same animation frame', () => {
113
+ it( 'should re-render component once when two filters added in the same animation frame', async () => {
116
114
  const SpiedComponent = jest.fn( () => <div>Spied component</div> );
117
115
  const EnhancedComponent = withFilters( hookName )( SpiedComponent );
118
116
 
@@ -141,13 +139,13 @@ describe( 'withFilters', () => {
141
139
  )
142
140
  );
143
141
 
144
- act( () => jest.runAllTimers() );
145
-
146
- expect( SpiedComponent ).toHaveBeenCalledTimes( 1 );
142
+ await waitFor( () =>
143
+ expect( SpiedComponent ).toHaveBeenCalledTimes( 1 )
144
+ );
147
145
  expect( container ).toMatchSnapshot();
148
146
  } );
149
147
 
150
- it( 'should re-render component twice when new filter added and removed in two different animation frames', () => {
148
+ it( 'should re-render component twice when new filter added and removed in two different animation frames', async () => {
151
149
  const SpiedComponent = jest.fn( () => <div>Spied component</div> );
152
150
  const EnhancedComponent = withFilters( hookName )( SpiedComponent );
153
151
  const { container } = render( <EnhancedComponent /> );
@@ -165,17 +163,19 @@ describe( 'withFilters', () => {
165
163
  )
166
164
  );
167
165
 
168
- act( () => jest.runAllTimers() );
166
+ await waitFor( () =>
167
+ expect( SpiedComponent ).toHaveBeenCalledTimes( 1 )
168
+ );
169
169
 
170
170
  removeFilter( hookName, 'test/enhanced-component-spy' );
171
171
 
172
- act( () => jest.runAllTimers() );
173
-
174
- expect( SpiedComponent ).toHaveBeenCalledTimes( 2 );
172
+ await waitFor( () =>
173
+ expect( SpiedComponent ).toHaveBeenCalledTimes( 2 )
174
+ );
175
175
  expect( container ).toMatchSnapshot();
176
176
  } );
177
177
 
178
- it( 'should re-render both components once each when one filter added', () => {
178
+ it( 'should re-render both components once each when one filter added', async () => {
179
179
  const SpiedComponent = jest.fn( () => <div>Spied component</div> );
180
180
  const EnhancedComponent = withFilters( hookName )( SpiedComponent );
181
181
 
@@ -200,9 +200,9 @@ describe( 'withFilters', () => {
200
200
  )
201
201
  );
202
202
 
203
- act( () => jest.runAllTimers() );
204
-
205
- expect( SpiedComponent ).toHaveBeenCalledTimes( 2 );
203
+ await waitFor( () =>
204
+ expect( SpiedComponent ).toHaveBeenCalledTimes( 2 )
205
+ );
206
206
  expect( container ).toMatchSnapshot();
207
207
  } );
208
208
  } );
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render, screen } from '@testing-library/react';
4
+ import { render, screen, waitFor } from '@testing-library/react';
5
5
  import userEvent from '@testing-library/user-event';
6
6
 
7
7
  /**
@@ -14,8 +14,6 @@ import { Component } from '@wordpress/element';
14
14
  */
15
15
  import withFocusOutside from '../';
16
16
 
17
- jest.useFakeTimers();
18
-
19
17
  let onFocusOutside;
20
18
 
21
19
  describe( 'withFocusOutside', () => {
@@ -57,7 +55,7 @@ describe( 'withFocusOutside', () => {
57
55
  document.hasFocus = origHasFocus;
58
56
  } );
59
57
 
60
- it( 'should not call handler if focus shifts to element within component', () => {
58
+ it( 'should not call handler if focus shifts to element within component', async () => {
61
59
  render( <TestComponent onFocusOutside={ onFocusOutside } /> );
62
60
 
63
61
  const input = screen.getByRole( 'textbox' );
@@ -67,15 +65,11 @@ describe( 'withFocusOutside', () => {
67
65
  input.blur();
68
66
  button.focus();
69
67
 
70
- jest.runAllTimers();
71
-
72
- expect( onFocusOutside ).not.toHaveBeenCalled();
68
+ await waitFor( () => expect( onFocusOutside ).not.toHaveBeenCalled() );
73
69
  } );
74
70
 
75
71
  it( 'should not call handler if focus transitions via click to button', async () => {
76
- const user = userEvent.setup( {
77
- advanceTimers: jest.advanceTimersByTime,
78
- } );
72
+ const user = userEvent.setup();
79
73
  render( <TestComponent onFocusOutside={ onFocusOutside } /> );
80
74
 
81
75
  const input = screen.getByRole( 'textbox' );
@@ -84,24 +78,20 @@ describe( 'withFocusOutside', () => {
84
78
  input.focus();
85
79
  await user.click( button );
86
80
 
87
- jest.runAllTimers();
88
-
89
- expect( onFocusOutside ).not.toHaveBeenCalled();
81
+ await waitFor( () => expect( onFocusOutside ).not.toHaveBeenCalled() );
90
82
  } );
91
83
 
92
- it( 'should call handler if focus doesn’t shift to element within component', () => {
84
+ it( 'should call handler if focus doesn’t shift to element within component', async () => {
93
85
  render( <TestComponent onFocusOutside={ onFocusOutside } /> );
94
86
 
95
87
  const input = screen.getByRole( 'textbox' );
96
88
  input.focus();
97
89
  input.blur();
98
90
 
99
- jest.runAllTimers();
100
-
101
- expect( onFocusOutside ).toHaveBeenCalled();
91
+ await waitFor( () => expect( onFocusOutside ).toHaveBeenCalled() );
102
92
  } );
103
93
 
104
- it( 'should not call handler if focus shifts outside the component when the document does not have focus', () => {
94
+ it( 'should not call handler if focus shifts outside the component when the document does not have focus', async () => {
105
95
  render( <TestComponent onFocusOutside={ onFocusOutside } /> );
106
96
 
107
97
  // Force document.hasFocus() to return false to simulate the window/document losing focus
@@ -112,12 +102,10 @@ describe( 'withFocusOutside', () => {
112
102
  input.focus();
113
103
  input.blur();
114
104
 
115
- jest.runAllTimers();
116
-
117
- expect( onFocusOutside ).not.toHaveBeenCalled();
105
+ await waitFor( () => expect( onFocusOutside ).not.toHaveBeenCalled() );
118
106
  } );
119
107
 
120
- it( 'should cancel check when unmounting while queued', () => {
108
+ it( 'should cancel check when unmounting while queued', async () => {
121
109
  const { rerender } = render(
122
110
  <TestComponent onFocusOutside={ onFocusOutside } />
123
111
  );
@@ -128,8 +116,6 @@ describe( 'withFocusOutside', () => {
128
116
 
129
117
  rerender( <div /> );
130
118
 
131
- jest.runAllTimers();
132
-
133
- expect( onFocusOutside ).not.toHaveBeenCalled();
119
+ await waitFor( () => expect( onFocusOutside ).not.toHaveBeenCalled() );
134
120
  } );
135
121
  } );
@@ -14,8 +14,6 @@ import { Component } from '@wordpress/element';
14
14
  */
15
15
  import withFocusReturn from '../';
16
16
 
17
- jest.useFakeTimers();
18
-
19
17
  class Test extends Component {
20
18
  render() {
21
19
  const { className, focusHistory } = this.props;
@@ -86,9 +84,7 @@ describe( 'withFocusReturn()', () => {
86
84
  } );
87
85
 
88
86
  it( 'should switch focus back when unmounted while having focus', async () => {
89
- const user = userEvent.setup( {
90
- advanceTimers: jest.advanceTimersByTime,
91
- } );
87
+ const user = userEvent.setup();
92
88
 
93
89
  const { unmount } = render( <Composite />, {
94
90
  container: document.body.appendChild(
package/src/index.js CHANGED
@@ -155,12 +155,14 @@ export {
155
155
  ToggleGroupControlOption as __experimentalToggleGroupControlOption,
156
156
  ToggleGroupControlOptionIcon as __experimentalToggleGroupControlOptionIcon,
157
157
  } from './toggle-group-control';
158
- export { default as Toolbar } from './toolbar';
159
- export { default as ToolbarButton } from './toolbar-button';
160
- export { default as ToolbarDropdownMenu } from './toolbar-dropdown-menu';
161
- export { default as __experimentalToolbarContext } from './toolbar-context';
162
- export { default as ToolbarGroup } from './toolbar-group';
163
- export { default as ToolbarItem } from './toolbar-item';
158
+ export {
159
+ Toolbar,
160
+ ToolbarButton,
161
+ ToolbarContext as __experimentalToolbarContext,
162
+ ToolbarDropdownMenu,
163
+ ToolbarGroup,
164
+ ToolbarItem,
165
+ } from './toolbar';
164
166
  export {
165
167
  ToolsPanel as __experimentalToolsPanel,
166
168
  ToolsPanelItem as __experimentalToolsPanelItem,
@@ -15,12 +15,14 @@ export { default as Dashicon } from './dashicon';
15
15
  export { default as Dropdown } from './dropdown';
16
16
  export { default as DropdownMenu } from './dropdown-menu';
17
17
  export { default as FocalPointPicker } from './focal-point-picker';
18
- export { default as Toolbar } from './toolbar';
19
- export { default as ToolbarButton } from './toolbar-button';
20
- export { default as __experimentalToolbarContext } from './toolbar-context';
21
- export { default as ToolbarGroup } from './toolbar-group';
22
- export { default as ToolbarItem } from './toolbar-item';
23
- export { default as ToolbarDropdownMenu } from './toolbar-dropdown-menu';
18
+ export {
19
+ Toolbar,
20
+ ToolbarButton,
21
+ ToolbarContext as __experimentalToolbarContext,
22
+ ToolbarDropdownMenu,
23
+ ToolbarGroup,
24
+ ToolbarItem,
25
+ } from './toolbar';
24
26
  export { default as Tooltip } from './tooltip';
25
27
  export { default as Icon } from './icon';
26
28
  export { default as Spinner } from './spinner';
@@ -226,7 +226,9 @@ function InputField(
226
226
  onMouseDown={ handleOnMouseDown }
227
227
  ref={ ref }
228
228
  inputSize={ size }
229
- value={ value }
229
+ // Fallback to `''` to avoid "uncontrolled to controlled" warning.
230
+ // See https://github.com/WordPress/gutenberg/pull/47250 for details.
231
+ value={ value ?? '' }
230
232
  type={ type }
231
233
  />
232
234
  );
@@ -14,12 +14,7 @@ import { useState } from '@wordpress/element';
14
14
  */
15
15
  import BaseInputControl from '../';
16
16
 
17
- jest.useFakeTimers();
18
-
19
- const setupUser = () =>
20
- userEvent.setup( {
21
- advanceTimers: jest.advanceTimersByTime,
22
- } );
17
+ const setupUser = () => userEvent.setup();
23
18
 
24
19
  const getInput = () => screen.getByTestId( 'input' );
25
20
 
@@ -9,13 +9,9 @@ import userEvent from '@testing-library/user-event';
9
9
  */
10
10
  import IsolatedEventContainer from '../';
11
11
 
12
- jest.useFakeTimers();
13
-
14
12
  describe( 'IsolatedEventContainer', () => {
15
13
  it( 'should pass props to container', async () => {
16
- const user = userEvent.setup( {
17
- advanceTimers: jest.advanceTimersByTime,
18
- } );
14
+ const user = userEvent.setup();
19
15
  const clickHandler = jest.fn();
20
16
  render(
21
17
  <IsolatedEventContainer
@@ -47,9 +43,7 @@ describe( 'IsolatedEventContainer', () => {
47
43
  } );
48
44
 
49
45
  it( 'should stop event propagation only for mousedown, but not for keydown', async () => {
50
- const user = userEvent.setup( {
51
- advanceTimers: jest.advanceTimersByTime,
52
- } );
46
+ const user = userEvent.setup();
53
47
 
54
48
  const mousedownHandler = jest.fn();
55
49
  const keydownHandler = jest.fn();
@@ -11,7 +11,7 @@ import { useItem } from './hook';
11
11
  import { contextConnect, WordPressComponentProps } from '../../ui/context';
12
12
  import { View } from '../../view';
13
13
 
14
- function Item(
14
+ function UnconnectedItem(
15
15
  props: WordPressComponentProps< ItemProps, 'div' >,
16
16
  forwardedRef: ForwardedRef< any >
17
17
  ) {
@@ -24,4 +24,28 @@ function Item(
24
24
  );
25
25
  }
26
26
 
27
- export default contextConnect( Item, 'Item' );
27
+ /**
28
+ * `Item` is used in combination with `ItemGroup` to display a list of items
29
+ * grouped and styled together.
30
+ *
31
+ * @example
32
+ * ```jsx
33
+ * import {
34
+ * __experimentalItemGroup as ItemGroup,
35
+ * __experimentalItem as Item,
36
+ * } from '@wordpress/components';
37
+ *
38
+ * function Example() {
39
+ * return (
40
+ * <ItemGroup>
41
+ * <Item>Code</Item>
42
+ * <Item>is</Item>
43
+ * <Item>Poetry</Item>
44
+ * </ItemGroup>
45
+ * );
46
+ * }
47
+ * ```
48
+ */
49
+ export const Item = contextConnect( UnconnectedItem, 'Item' );
50
+
51
+ export default Item;
@@ -12,7 +12,7 @@ import { ItemGroupContext, useItemGroupContext } from '../context';
12
12
  import { View } from '../../view';
13
13
  import type { ItemGroupProps } from '../types';
14
14
 
15
- function ItemGroup(
15
+ function UnconnectedItemGroup(
16
16
  props: WordPressComponentProps< ItemGroupProps, 'div' >,
17
17
  forwardedRef: ForwardedRef< any >
18
18
  ) {
@@ -40,4 +40,27 @@ function ItemGroup(
40
40
  );
41
41
  }
42
42
 
43
- export default contextConnect( ItemGroup, 'ItemGroup' );
43
+ /**
44
+ * `ItemGroup` displays a list of `Item`s grouped and styled together.
45
+ *
46
+ * @example
47
+ * ```jsx
48
+ * import {
49
+ * __experimentalItemGroup as ItemGroup,
50
+ * __experimentalItem as Item,
51
+ * } from '@wordpress/components';
52
+ *
53
+ * function Example() {
54
+ * return (
55
+ * <ItemGroup>
56
+ * <Item>Code</Item>
57
+ * <Item>is</Item>
58
+ * <Item>Poetry</Item>
59
+ * </ItemGroup>
60
+ * );
61
+ * }
62
+ * ```
63
+ */
64
+ export const ItemGroup = contextConnect( UnconnectedItemGroup, 'ItemGroup' );
65
+
66
+ export default ItemGroup;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { ItemGroup } from '../item-group/component';
10
+ import { Item } from '../item/component';
11
+
12
+ type ItemProps = React.ComponentPropsWithoutRef< typeof Item >;
13
+
14
+ const meta: ComponentMeta< typeof ItemGroup > = {
15
+ component: ItemGroup,
16
+ title: 'Components (Experimental)/ItemGroup',
17
+ subcomponents: { Item },
18
+ argTypes: {
19
+ as: { control: { type: null } },
20
+ children: { control: { type: null } },
21
+ },
22
+ parameters: {
23
+ controls: { expanded: true },
24
+ docs: { source: { state: 'open' } },
25
+ },
26
+ };
27
+ export default meta;
28
+
29
+ const mapPropsToItem = ( props: ItemProps, index: number ) => (
30
+ <Item { ...props } key={ index } />
31
+ );
32
+
33
+ const Template: ComponentStory< typeof ItemGroup > = ( props ) => (
34
+ <ItemGroup { ...props } />
35
+ );
36
+
37
+ export const Default: ComponentStory< typeof ItemGroup > = Template.bind( {} );
38
+ Default.args = {
39
+ children: (
40
+ [
41
+ {
42
+ children: 'First item',
43
+ // eslint-disable-next-line no-alert
44
+ onClick: () => alert( 'First item clicked' ),
45
+ },
46
+ {
47
+ children: 'Second item',
48
+ // eslint-disable-next-line no-alert
49
+ onClick: () => alert( 'Second item clicked' ),
50
+ },
51
+ {
52
+ children: 'Third item',
53
+ // eslint-disable-next-line no-alert
54
+ onClick: () => alert( 'Third item clicked' ),
55
+ },
56
+ ] as ItemProps[]
57
+ ).map( mapPropsToItem ),
58
+ };
59
+
60
+ export const NonClickableItems: ComponentStory< typeof ItemGroup > =
61
+ Template.bind( {} );
62
+ NonClickableItems.args = {
63
+ children: (
64
+ [
65
+ {
66
+ children:
67
+ "This <Item /> is not click-able because it doesn't have an `onClick` prop",
68
+ },
69
+ {
70
+ children:
71
+ "This <Item /> is also not click-able because it doesn't have an `onClick` prop",
72
+ },
73
+ ] as ItemProps[]
74
+ ).map( mapPropsToItem ),
75
+ };
76
+
77
+ export const CustomItemSize: ComponentStory< typeof ItemGroup > = Template.bind(
78
+ {}
79
+ );
80
+ CustomItemSize.args = {
81
+ children: (
82
+ [
83
+ {
84
+ children:
85
+ 'This <Item /> will inherit the size from <ItemGroup /> (try changing the size prop)',
86
+ },
87
+ {
88
+ children:
89
+ 'This <Item /> has a hardcoded size="large", regardless of <ItemGroup />\'s size',
90
+ size: 'large',
91
+ },
92
+ ] as ItemProps[]
93
+ ).map( mapPropsToItem ),
94
+ };
95
+
96
+ export const WithBorder: ComponentStory< typeof ItemGroup > = Template.bind(
97
+ {}
98
+ );
99
+ WithBorder.args = {
100
+ ...Default.args,
101
+ isBordered: true,
102
+ isSeparated: true,
103
+ };
@@ -33,6 +33,7 @@ export const itemWrapper = css`
33
33
  `;
34
34
 
35
35
  export const item = css`
36
+ box-sizing: border-box;
36
37
  width: 100%;
37
38
  display: block;
38
39
  margin: 0;