@wordpress/components 19.14.0 → 19.15.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 (506) hide show
  1. package/CHANGELOG.md +51 -12
  2. package/build/autocomplete/get-default-use-items.js +5 -1
  3. package/build/autocomplete/get-default-use-items.js.map +1 -1
  4. package/build/autocomplete/index.js +5 -1
  5. package/build/autocomplete/index.js.map +1 -1
  6. package/build/border-control/border-control/hook.js.map +1 -1
  7. package/build/box-control/index.js +1 -1
  8. package/build/box-control/index.js.map +1 -1
  9. package/build/color-picker/hex-input.js +5 -4
  10. package/build/color-picker/hex-input.js.map +1 -1
  11. package/build/color-picker/index.native.js +35 -34
  12. package/build/color-picker/index.native.js.map +1 -1
  13. package/build/color-picker/input-with-slider.js +3 -1
  14. package/build/color-picker/input-with-slider.js.map +1 -1
  15. package/build/color-picker/styles.js +31 -43
  16. package/build/color-picker/styles.js.map +1 -1
  17. package/build/color-picker/use-deprecated-props.js +22 -31
  18. package/build/color-picker/use-deprecated-props.js.map +1 -1
  19. package/build/combobox-control/index.js +14 -6
  20. package/build/combobox-control/index.js.map +1 -1
  21. package/build/combobox-control/styles.js +39 -0
  22. package/build/combobox-control/styles.js.map +1 -0
  23. package/build/dropdown-menu/index.js +5 -5
  24. package/build/dropdown-menu/index.js.map +1 -1
  25. package/build/dropdown-menu/index.native.js +5 -5
  26. package/build/dropdown-menu/index.native.js.map +1 -1
  27. package/build/elevation/hook.js +5 -5
  28. package/build/elevation/hook.js.map +1 -1
  29. package/build/external-link/index.js +1 -3
  30. package/build/external-link/index.js.map +1 -1
  31. package/build/focal-point-picker/grid.js +2 -7
  32. package/build/focal-point-picker/grid.js.map +1 -1
  33. package/build/focal-point-picker/index.native.js +8 -8
  34. package/build/focal-point-picker/index.native.js.map +1 -1
  35. package/build/focal-point-picker/tooltip/index.native.js +11 -12
  36. package/build/focal-point-picker/tooltip/index.native.js.map +1 -1
  37. package/build/form-token-field/index.js +22 -7
  38. package/build/form-token-field/index.js.map +1 -1
  39. package/build/form-token-field/styles.js +40 -0
  40. package/build/form-token-field/styles.js.map +1 -0
  41. package/build/form-token-field/suggestions-list.js +2 -7
  42. package/build/form-token-field/suggestions-list.js.map +1 -1
  43. package/build/grid/component.js +7 -8
  44. package/build/grid/component.js.map +1 -1
  45. package/build/grid/hook.js +1 -5
  46. package/build/grid/hook.js.map +1 -1
  47. package/build/grid/index.js.map +1 -1
  48. package/build/grid/utils.js +4 -7
  49. package/build/grid/utils.js.map +1 -1
  50. package/build/h-stack/component.js +5 -9
  51. package/build/h-stack/component.js.map +1 -1
  52. package/build/h-stack/hook.js +8 -10
  53. package/build/h-stack/hook.js.map +1 -1
  54. package/build/h-stack/index.js.map +1 -1
  55. package/build/h-stack/utils.js +7 -18
  56. package/build/h-stack/utils.js.map +1 -1
  57. package/build/icon/index.js.map +1 -1
  58. package/build/menu-item/index.js +1 -3
  59. package/build/menu-item/index.js.map +1 -1
  60. package/build/mobile/focal-point-settings-panel/index.native.js +1 -1
  61. package/build/mobile/focal-point-settings-panel/index.native.js.map +1 -1
  62. package/build/mobile/image/index.native.js +4 -2
  63. package/build/mobile/image/index.native.js.map +1 -1
  64. package/build/modal/index.js +17 -3
  65. package/build/modal/index.js.map +1 -1
  66. package/build/navigation/index.js +4 -1
  67. package/build/navigation/index.js.map +1 -1
  68. package/build/navigation/item/base.js +3 -0
  69. package/build/navigation/item/base.js.map +1 -1
  70. package/build/popover/index.js +4 -4
  71. package/build/popover/index.js.map +1 -1
  72. package/build/range-control/index.js +54 -40
  73. package/build/range-control/index.js.map +1 -1
  74. package/build/range-control/input-range.js +5 -7
  75. package/build/range-control/input-range.js.map +1 -1
  76. package/build/range-control/mark.js +5 -7
  77. package/build/range-control/mark.js.map +1 -1
  78. package/build/range-control/rail.js +10 -16
  79. package/build/range-control/rail.js.map +1 -1
  80. package/build/range-control/styles/range-control-styles.js +62 -62
  81. package/build/range-control/styles/range-control-styles.js.map +1 -1
  82. package/build/range-control/tooltip.js +5 -7
  83. package/build/range-control/tooltip.js.map +1 -1
  84. package/build/range-control/types.js +6 -0
  85. package/build/range-control/types.js.map +1 -0
  86. package/build/range-control/utils.js +22 -29
  87. package/build/range-control/utils.js.map +1 -1
  88. package/build/resizable-box/resize-tooltip/utils.js +2 -7
  89. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  90. package/build/scrollable/component.js +7 -8
  91. package/build/scrollable/component.js.map +1 -1
  92. package/build/scrollable/hook.js +0 -8
  93. package/build/scrollable/hook.js.map +1 -1
  94. package/build/scrollable/index.js.map +1 -1
  95. package/build/scrollable/styles.js +7 -7
  96. package/build/scrollable/styles.js.map +1 -1
  97. package/build/shortcut/index.js +2 -8
  98. package/build/shortcut/index.js.map +1 -1
  99. package/build/slot-fill/index.native.js +6 -8
  100. package/build/slot-fill/index.native.js.map +1 -1
  101. package/build/slot-fill/provider.js +4 -8
  102. package/build/slot-fill/provider.js.map +1 -1
  103. package/build/slot-fill/slot.js +4 -8
  104. package/build/slot-fill/slot.js.map +1 -1
  105. package/build/spacer/component.js.map +1 -1
  106. package/build/spacer/hook.js +2 -2
  107. package/build/spacer/hook.js.map +1 -1
  108. package/build/spacer/index.js.map +1 -1
  109. package/build/text-highlight/index.js +22 -5
  110. package/build/text-highlight/index.js.map +1 -1
  111. package/build/text-highlight/types.js +6 -0
  112. package/build/text-highlight/types.js.map +1 -0
  113. package/build/tip/index.js +5 -11
  114. package/build/tip/index.js.map +1 -1
  115. package/build/tip/types.js +6 -0
  116. package/build/tip/types.js.map +1 -0
  117. package/build/toolbar-group/index.js +3 -3
  118. package/build/toolbar-group/index.js.map +1 -1
  119. package/build/tree-select/index.js +2 -2
  120. package/build/tree-select/index.js.map +1 -1
  121. package/build/ui/utils/get-valid-children.js.map +1 -1
  122. package/build/visually-hidden/component.js +12 -13
  123. package/build/visually-hidden/component.js.map +1 -1
  124. package/build/visually-hidden/index.js.map +1 -1
  125. package/build/visually-hidden/styles.js +3 -1
  126. package/build/visually-hidden/styles.js.map +1 -1
  127. package/build/visually-hidden/types.js +6 -0
  128. package/build/visually-hidden/types.js.map +1 -0
  129. package/build-module/autocomplete/get-default-use-items.js +3 -2
  130. package/build-module/autocomplete/get-default-use-items.js.map +1 -1
  131. package/build-module/autocomplete/index.js +3 -2
  132. package/build-module/autocomplete/index.js.map +1 -1
  133. package/build-module/border-control/border-control/hook.js.map +1 -1
  134. package/build-module/box-control/index.js +1 -1
  135. package/build-module/box-control/index.js.map +1 -1
  136. package/build-module/color-picker/hex-input.js +4 -3
  137. package/build-module/color-picker/hex-input.js.map +1 -1
  138. package/build-module/color-picker/index.native.js +36 -35
  139. package/build-module/color-picker/index.native.js.map +1 -1
  140. package/build-module/color-picker/input-with-slider.js +3 -1
  141. package/build-module/color-picker/input-with-slider.js.map +1 -1
  142. package/build-module/color-picker/styles.js +23 -40
  143. package/build-module/color-picker/styles.js.map +1 -1
  144. package/build-module/color-picker/use-deprecated-props.js +22 -31
  145. package/build-module/color-picker/use-deprecated-props.js.map +1 -1
  146. package/build-module/combobox-control/index.js +14 -7
  147. package/build-module/combobox-control/index.js.map +1 -1
  148. package/build-module/combobox-control/styles.js +27 -0
  149. package/build-module/combobox-control/styles.js.map +1 -0
  150. package/build-module/dropdown-menu/index.js +5 -4
  151. package/build-module/dropdown-menu/index.js.map +1 -1
  152. package/build-module/dropdown-menu/index.native.js +5 -4
  153. package/build-module/dropdown-menu/index.native.js.map +1 -1
  154. package/build-module/elevation/hook.js +5 -5
  155. package/build-module/elevation/hook.js.map +1 -1
  156. package/build-module/external-link/index.js +1 -2
  157. package/build-module/external-link/index.js.map +1 -1
  158. package/build-module/focal-point-picker/grid.js +2 -6
  159. package/build-module/focal-point-picker/grid.js.map +1 -1
  160. package/build-module/focal-point-picker/index.native.js +8 -8
  161. package/build-module/focal-point-picker/index.native.js.map +1 -1
  162. package/build-module/focal-point-picker/tooltip/index.native.js +11 -12
  163. package/build-module/focal-point-picker/tooltip/index.native.js.map +1 -1
  164. package/build-module/form-token-field/index.js +20 -6
  165. package/build-module/form-token-field/index.js.map +1 -1
  166. package/build-module/form-token-field/styles.js +28 -0
  167. package/build-module/form-token-field/styles.js.map +1 -0
  168. package/build-module/form-token-field/suggestions-list.js +2 -7
  169. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  170. package/build-module/grid/component.js +7 -8
  171. package/build-module/grid/component.js.map +1 -1
  172. package/build-module/grid/hook.js +1 -5
  173. package/build-module/grid/hook.js.map +1 -1
  174. package/build-module/grid/index.js.map +1 -1
  175. package/build-module/grid/utils.js +3 -8
  176. package/build-module/grid/utils.js.map +1 -1
  177. package/build-module/h-stack/component.js +3 -7
  178. package/build-module/h-stack/component.js.map +1 -1
  179. package/build-module/h-stack/hook.js +10 -12
  180. package/build-module/h-stack/hook.js.map +1 -1
  181. package/build-module/h-stack/index.js.map +1 -1
  182. package/build-module/h-stack/utils.js +7 -19
  183. package/build-module/h-stack/utils.js.map +1 -1
  184. package/build-module/icon/index.js.map +1 -1
  185. package/build-module/menu-item/index.js +1 -2
  186. package/build-module/menu-item/index.js.map +1 -1
  187. package/build-module/mobile/focal-point-settings-panel/index.native.js +2 -2
  188. package/build-module/mobile/focal-point-settings-panel/index.native.js.map +1 -1
  189. package/build-module/mobile/image/index.native.js +3 -2
  190. package/build-module/mobile/image/index.native.js.map +1 -1
  191. package/build-module/modal/index.js +19 -5
  192. package/build-module/modal/index.js.map +1 -1
  193. package/build-module/navigation/index.js +4 -1
  194. package/build-module/navigation/index.js.map +1 -1
  195. package/build-module/navigation/item/base.js +3 -0
  196. package/build-module/navigation/item/base.js.map +1 -1
  197. package/build-module/popover/index.js +4 -4
  198. package/build-module/popover/index.js.map +1 -1
  199. package/build-module/range-control/index.js +54 -40
  200. package/build-module/range-control/index.js.map +1 -1
  201. package/build-module/range-control/input-range.js +5 -6
  202. package/build-module/range-control/input-range.js.map +1 -1
  203. package/build-module/range-control/mark.js +5 -6
  204. package/build-module/range-control/mark.js.map +1 -1
  205. package/build-module/range-control/rail.js +10 -15
  206. package/build-module/range-control/rail.js.map +1 -1
  207. package/build-module/range-control/styles/range-control-styles.js +62 -64
  208. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  209. package/build-module/range-control/tooltip.js +5 -6
  210. package/build-module/range-control/tooltip.js.map +1 -1
  211. package/build-module/range-control/types.js +2 -0
  212. package/build-module/range-control/types.js.map +1 -0
  213. package/build-module/range-control/utils.js +22 -29
  214. package/build-module/range-control/utils.js.map +1 -1
  215. package/build-module/resizable-box/resize-tooltip/utils.js +2 -6
  216. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  217. package/build-module/scrollable/component.js +7 -8
  218. package/build-module/scrollable/component.js.map +1 -1
  219. package/build-module/scrollable/hook.js +0 -8
  220. package/build-module/scrollable/hook.js.map +1 -1
  221. package/build-module/scrollable/index.js.map +1 -1
  222. package/build-module/scrollable/styles.js +7 -7
  223. package/build-module/scrollable/styles.js.map +1 -1
  224. package/build-module/shortcut/index.js +2 -7
  225. package/build-module/shortcut/index.js.map +1 -1
  226. package/build-module/slot-fill/index.native.js +6 -7
  227. package/build-module/slot-fill/index.native.js.map +1 -1
  228. package/build-module/slot-fill/provider.js +4 -7
  229. package/build-module/slot-fill/provider.js.map +1 -1
  230. package/build-module/slot-fill/slot.js +4 -7
  231. package/build-module/slot-fill/slot.js.map +1 -1
  232. package/build-module/spacer/component.js.map +1 -1
  233. package/build-module/spacer/hook.js +2 -2
  234. package/build-module/spacer/hook.js.map +1 -1
  235. package/build-module/spacer/index.js.map +1 -1
  236. package/build-module/text-highlight/index.js +23 -6
  237. package/build-module/text-highlight/index.js.map +1 -1
  238. package/build-module/text-highlight/types.js +2 -0
  239. package/build-module/text-highlight/types.js.map +1 -0
  240. package/build-module/tip/index.js +6 -10
  241. package/build-module/tip/index.js.map +1 -1
  242. package/build-module/tip/types.js +2 -0
  243. package/build-module/tip/types.js.map +1 -0
  244. package/build-module/toolbar-group/index.js +3 -2
  245. package/build-module/toolbar-group/index.js.map +1 -1
  246. package/build-module/tree-select/index.js +3 -3
  247. package/build-module/tree-select/index.js.map +1 -1
  248. package/build-module/ui/utils/get-valid-children.js.map +1 -1
  249. package/build-module/visually-hidden/component.js +12 -13
  250. package/build-module/visually-hidden/component.js.map +1 -1
  251. package/build-module/visually-hidden/index.js.map +1 -1
  252. package/build-module/visually-hidden/styles.js +3 -1
  253. package/build-module/visually-hidden/styles.js.map +1 -1
  254. package/build-module/visually-hidden/types.js +2 -0
  255. package/build-module/visually-hidden/types.js.map +1 -0
  256. package/build-style/style-rtl.css +13 -19
  257. package/build-style/style.css +13 -19
  258. package/build-types/border-control/border-control/hook.d.ts +1 -1
  259. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  260. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  261. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  262. package/build-types/color-picker/styles.d.ts +30 -31
  263. package/build-types/color-picker/styles.d.ts.map +1 -1
  264. package/build-types/color-picker/use-deprecated-props.d.ts.map +1 -1
  265. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  266. package/build-types/external-link/index.d.ts.map +1 -1
  267. package/build-types/form-token-field/index.d.ts.map +1 -1
  268. package/build-types/form-token-field/styles.d.ts +14 -0
  269. package/build-types/form-token-field/styles.d.ts.map +1 -0
  270. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
  271. package/build-types/form-token-field/types.d.ts +7 -0
  272. package/build-types/form-token-field/types.d.ts.map +1 -1
  273. package/build-types/grid/component.d.ts +3 -3
  274. package/build-types/grid/component.d.ts.map +1 -1
  275. package/build-types/grid/hook.d.ts +5 -2
  276. package/build-types/grid/hook.d.ts.map +1 -1
  277. package/build-types/grid/index.d.ts +2 -2
  278. package/build-types/grid/index.d.ts.map +1 -1
  279. package/build-types/grid/stories/index.d.ts +9 -0
  280. package/build-types/grid/stories/index.d.ts.map +1 -0
  281. package/build-types/grid/test/grid.d.ts +2 -0
  282. package/build-types/grid/test/grid.d.ts.map +1 -0
  283. package/build-types/grid/types.d.ts +16 -15
  284. package/build-types/grid/types.d.ts.map +1 -1
  285. package/build-types/grid/utils.d.ts +50 -69
  286. package/build-types/grid/utils.d.ts.map +1 -1
  287. package/build-types/h-stack/component.d.ts +3 -2
  288. package/build-types/h-stack/component.d.ts.map +1 -1
  289. package/build-types/h-stack/hook.d.ts +5 -3
  290. package/build-types/h-stack/hook.d.ts.map +1 -1
  291. package/build-types/h-stack/index.d.ts +2 -2
  292. package/build-types/h-stack/index.d.ts.map +1 -1
  293. package/build-types/h-stack/stories/index.d.ts +9 -0
  294. package/build-types/h-stack/stories/index.d.ts.map +1 -0
  295. package/build-types/h-stack/test/index.d.ts +2 -0
  296. package/build-types/h-stack/test/index.d.ts.map +1 -0
  297. package/build-types/h-stack/utils.d.ts +8 -4
  298. package/build-types/h-stack/utils.d.ts.map +1 -1
  299. package/build-types/icon/index.d.ts +1 -1
  300. package/build-types/icon/index.d.ts.map +1 -1
  301. package/build-types/menu-item/index.d.ts.map +1 -1
  302. package/build-types/popover/index.d.ts.map +1 -1
  303. package/build-types/range-control/index.d.ts +54 -29
  304. package/build-types/range-control/index.d.ts.map +1 -1
  305. package/build-types/range-control/input-range.d.ts +7 -10
  306. package/build-types/range-control/input-range.d.ts.map +1 -1
  307. package/build-types/range-control/mark.d.ts +4 -7
  308. package/build-types/range-control/mark.d.ts.map +1 -1
  309. package/build-types/range-control/rail.d.ts +4 -9
  310. package/build-types/range-control/rail.d.ts.map +1 -1
  311. package/build-types/range-control/stories/index.d.ts +48 -0
  312. package/build-types/range-control/stories/index.d.ts.map +1 -0
  313. package/build-types/range-control/styles/range-control-styles.d.ts +32 -40
  314. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  315. package/build-types/range-control/test/index.d.ts +2 -0
  316. package/build-types/range-control/test/index.d.ts.map +1 -0
  317. package/build-types/range-control/tooltip.d.ts +4 -11
  318. package/build-types/range-control/tooltip.d.ts.map +1 -1
  319. package/build-types/range-control/types.d.ts +302 -0
  320. package/build-types/range-control/types.d.ts.map +1 -0
  321. package/build-types/range-control/utils.d.ts +15 -33
  322. package/build-types/range-control/utils.d.ts.map +1 -1
  323. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  324. package/build-types/scrollable/component.d.ts +3 -3
  325. package/build-types/scrollable/component.d.ts.map +1 -1
  326. package/build-types/scrollable/hook.d.ts +5 -2
  327. package/build-types/scrollable/hook.d.ts.map +1 -1
  328. package/build-types/scrollable/index.d.ts +2 -2
  329. package/build-types/scrollable/index.d.ts.map +1 -1
  330. package/build-types/scrollable/stories/index.d.ts +9 -0
  331. package/build-types/scrollable/stories/index.d.ts.map +1 -0
  332. package/build-types/scrollable/styles.d.ts +7 -7
  333. package/build-types/scrollable/styles.d.ts.map +1 -1
  334. package/build-types/scrollable/test/index.d.ts +2 -0
  335. package/build-types/scrollable/test/index.d.ts.map +1 -0
  336. package/build-types/scrollable/types.d.ts +9 -6
  337. package/build-types/scrollable/types.d.ts.map +1 -1
  338. package/build-types/shortcut/index.d.ts.map +1 -1
  339. package/build-types/slot-fill/provider.d.ts.map +1 -1
  340. package/build-types/slot-fill/slot.d.ts.map +1 -1
  341. package/build-types/spacer/component.d.ts +2 -2
  342. package/build-types/spacer/component.d.ts.map +1 -1
  343. package/build-types/spacer/hook.d.ts +2 -2
  344. package/build-types/spacer/hook.d.ts.map +1 -1
  345. package/build-types/spacer/index.d.ts +1 -1
  346. package/build-types/spacer/index.d.ts.map +1 -1
  347. package/build-types/spacer/test/index.d.ts +2 -0
  348. package/build-types/spacer/test/index.d.ts.map +1 -0
  349. package/build-types/spacer/types.d.ts +41 -29
  350. package/build-types/spacer/types.d.ts.map +1 -1
  351. package/build-types/text-highlight/index.d.ts +23 -0
  352. package/build-types/text-highlight/index.d.ts.map +1 -0
  353. package/build-types/text-highlight/stories/index.d.ts +12 -0
  354. package/build-types/text-highlight/stories/index.d.ts.map +1 -0
  355. package/build-types/text-highlight/test/index.d.ts +2 -0
  356. package/build-types/text-highlight/test/index.d.ts.map +1 -0
  357. package/build-types/text-highlight/types.d.ts +17 -0
  358. package/build-types/text-highlight/types.d.ts.map +1 -0
  359. package/build-types/tip/index.d.ts +5 -14
  360. package/build-types/tip/index.d.ts.map +1 -1
  361. package/build-types/tip/stories/index.d.ts +12 -0
  362. package/build-types/tip/stories/index.d.ts.map +1 -0
  363. package/build-types/tip/types.d.ts +11 -0
  364. package/build-types/tip/types.d.ts.map +1 -0
  365. package/build-types/ui/form-group/form-group.d.ts +1 -1
  366. package/build-types/ui/form-group/types.d.ts +1 -1
  367. package/build-types/ui/form-group/types.d.ts.map +1 -1
  368. package/build-types/ui/form-group/use-form-group.d.ts +3 -3
  369. package/build-types/ui/utils/get-valid-children.d.ts +2 -2
  370. package/build-types/ui/utils/get-valid-children.d.ts.map +1 -1
  371. package/build-types/visually-hidden/component.d.ts +8 -10
  372. package/build-types/visually-hidden/component.d.ts.map +1 -1
  373. package/build-types/visually-hidden/index.d.ts +1 -1
  374. package/build-types/visually-hidden/index.d.ts.map +1 -1
  375. package/build-types/visually-hidden/stories/index.d.ts +14 -0
  376. package/build-types/visually-hidden/stories/index.d.ts.map +1 -0
  377. package/build-types/visually-hidden/styles.d.ts +5 -2
  378. package/build-types/visually-hidden/styles.d.ts.map +1 -1
  379. package/build-types/visually-hidden/test/index.d.ts +2 -0
  380. package/build-types/visually-hidden/test/index.d.ts.map +1 -0
  381. package/build-types/visually-hidden/types.d.ts +11 -0
  382. package/build-types/visually-hidden/types.d.ts.map +1 -0
  383. package/package.json +17 -17
  384. package/src/autocomplete/get-default-use-items.js +3 -2
  385. package/src/autocomplete/index.js +3 -2
  386. package/src/border-control/border-control/hook.ts +1 -1
  387. package/src/box-control/index.js +1 -1
  388. package/src/button/README.md +1 -1
  389. package/src/color-picker/hex-input.tsx +3 -2
  390. package/src/color-picker/index.native.js +20 -27
  391. package/src/color-picker/input-with-slider.tsx +2 -0
  392. package/src/color-picker/styles.ts +0 -5
  393. package/src/color-picker/use-deprecated-props.ts +24 -43
  394. package/src/combobox-control/index.js +15 -7
  395. package/src/combobox-control/stories/index.js +3 -2
  396. package/src/combobox-control/style.scss +1 -1
  397. package/src/combobox-control/styles.ts +27 -0
  398. package/src/dropdown-menu/index.js +3 -4
  399. package/src/dropdown-menu/index.native.js +3 -5
  400. package/src/elevation/hook.js +3 -3
  401. package/src/external-link/index.tsx +10 -4
  402. package/src/focal-point-picker/grid.js +2 -5
  403. package/src/focal-point-picker/index.native.js +8 -8
  404. package/src/focal-point-picker/tooltip/index.native.js +10 -11
  405. package/src/form-token-field/index.tsx +45 -24
  406. package/src/form-token-field/style.scss +2 -7
  407. package/src/form-token-field/styles.ts +32 -0
  408. package/src/form-token-field/suggestions-list.tsx +2 -4
  409. package/src/form-token-field/types.ts +7 -0
  410. package/src/grid/README.md +33 -19
  411. package/src/grid/{component.js → component.tsx} +13 -9
  412. package/src/grid/{hook.js → hook.ts} +5 -5
  413. package/src/grid/{index.js → index.ts} +0 -0
  414. package/src/grid/stories/index.tsx +72 -0
  415. package/src/grid/test/{grid.js → grid.tsx} +4 -4
  416. package/src/grid/types.ts +16 -17
  417. package/src/grid/{utils.js → utils.ts} +9 -7
  418. package/src/guide/style.scss +1 -0
  419. package/src/h-stack/{component.js → component.tsx} +8 -8
  420. package/src/h-stack/{hook.js → hook.tsx} +21 -16
  421. package/src/h-stack/{index.js → index.ts} +0 -0
  422. package/src/h-stack/stories/index.tsx +92 -0
  423. package/src/h-stack/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  424. package/src/h-stack/test/{index.js → index.tsx} +0 -0
  425. package/src/h-stack/{utils.js → utils.ts} +14 -14
  426. package/src/higher-order/navigate-regions/README.md +4 -1
  427. package/src/icon/index.tsx +1 -1
  428. package/src/menu-item/index.js +1 -2
  429. package/src/mobile/focal-point-settings-panel/index.native.js +2 -2
  430. package/src/mobile/image/index.native.js +3 -2
  431. package/src/modal/index.js +21 -2
  432. package/src/modal/stories/index.js +17 -1
  433. package/src/modal/style.scss +9 -18
  434. package/src/navigation/index.js +3 -0
  435. package/src/navigation/item/base.js +2 -1
  436. package/src/popover/README.md +2 -2
  437. package/src/popover/index.js +7 -4
  438. package/src/range-control/README.md +107 -79
  439. package/src/range-control/{index.js → index.tsx} +78 -48
  440. package/src/range-control/{input-range.js → input-range.tsx} +11 -7
  441. package/src/range-control/{mark.js → mark.tsx} +15 -9
  442. package/src/range-control/{rail.js → rail.tsx} +40 -23
  443. package/src/range-control/stories/index.tsx +244 -0
  444. package/src/range-control/styles/{range-control-styles.js → range-control-styles.ts} +28 -24
  445. package/src/range-control/test/index.tsx +311 -0
  446. package/src/range-control/{tooltip.js → tooltip.tsx} +19 -14
  447. package/src/range-control/types.ts +326 -0
  448. package/src/range-control/utils.ts +132 -0
  449. package/src/resizable-box/resize-tooltip/utils.ts +2 -3
  450. package/src/scrollable/README.md +14 -8
  451. package/src/scrollable/{component.js → component.tsx} +13 -10
  452. package/src/scrollable/{hook.js → hook.ts} +5 -7
  453. package/src/scrollable/{index.js → index.ts} +0 -0
  454. package/src/scrollable/stories/{index.js → index.tsx} +29 -34
  455. package/src/scrollable/{styles.js → styles.ts} +0 -0
  456. package/src/scrollable/test/__snapshots__/{index.js.snap → index.tsx.snap} +1 -0
  457. package/src/scrollable/test/index.tsx +34 -0
  458. package/src/scrollable/types.ts +10 -5
  459. package/src/select-control/test/select-control.tsx +22 -15
  460. package/src/shortcut/index.js +2 -7
  461. package/src/slot-fill/index.native.js +2 -7
  462. package/src/slot-fill/provider.js +3 -7
  463. package/src/slot-fill/slot.js +21 -24
  464. package/src/spacer/README.md +43 -37
  465. package/src/spacer/component.tsx +2 -2
  466. package/src/spacer/hook.ts +4 -2
  467. package/src/spacer/index.ts +1 -1
  468. package/src/spacer/test/__snapshots__/{index.js.snap → index.tsx.snap} +1 -0
  469. package/src/spacer/test/index.tsx +149 -0
  470. package/src/spacer/types.ts +41 -29
  471. package/src/tab-panel/README.md +1 -1
  472. package/src/text-highlight/README.md +6 -6
  473. package/src/text-highlight/index.tsx +49 -0
  474. package/src/text-highlight/stories/index.tsx +33 -0
  475. package/src/text-highlight/test/index.tsx +93 -0
  476. package/src/text-highlight/types.ts +16 -0
  477. package/src/tip/index.tsx +22 -0
  478. package/src/tip/stories/index.tsx +33 -0
  479. package/src/tip/types.ts +11 -0
  480. package/src/toolbar-group/index.js +1 -2
  481. package/src/tree-select/index.tsx +3 -3
  482. package/src/ui/form-group/types.ts +1 -1
  483. package/src/ui/utils/get-valid-children.ts +4 -2
  484. package/src/visually-hidden/{component.js → component.tsx} +23 -15
  485. package/src/visually-hidden/{index.js → index.ts} +0 -0
  486. package/src/visually-hidden/stories/index.tsx +66 -0
  487. package/src/visually-hidden/{styles.js → styles.ts} +6 -2
  488. package/src/visually-hidden/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  489. package/src/visually-hidden/test/index.tsx +17 -0
  490. package/src/visually-hidden/types.ts +11 -0
  491. package/tsconfig.json +1 -0
  492. package/tsconfig.tsbuildinfo +1 -1
  493. package/src/grid/stories/index.js +0 -49
  494. package/src/h-stack/stories/index.js +0 -22
  495. package/src/range-control/stories/index.js +0 -180
  496. package/src/range-control/test/index.js +0 -320
  497. package/src/range-control/utils.js +0 -131
  498. package/src/scrollable/test/index.js +0 -31
  499. package/src/spacer/test/index.js +0 -146
  500. package/src/text-highlight/index.js +0 -28
  501. package/src/text-highlight/stories/index.js +0 -28
  502. package/src/text-highlight/test/index.js +0 -120
  503. package/src/tip/index.js +0 -24
  504. package/src/tip/stories/index.js +0 -26
  505. package/src/visually-hidden/stories/index.js +0 -42
  506. package/src/visually-hidden/test/index.js +0 -19
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { flatMap, isEmpty } from 'lodash';
6
5
  import { Platform } from 'react-native';
7
6
  /**
8
7
  * WordPress dependencies
@@ -53,13 +52,13 @@ function DropdownMenu( {
53
52
  popoverProps,
54
53
  toggleProps,
55
54
  } ) {
56
- if ( isEmpty( controls ) && ! isFunction( children ) ) {
55
+ if ( ! controls?.length && ! isFunction( children ) ) {
57
56
  return null;
58
57
  }
59
58
 
60
59
  // Normalize controls to nested array of objects (sets of controls)
61
60
  let controlSets;
62
- if ( ! isEmpty( controls ) ) {
61
+ if ( controls?.length ) {
63
62
  controlSets = controls;
64
63
  if ( ! Array.isArray( controlSets[ 0 ] ) ) {
65
64
  controlSets = [ controlSets ];
@@ -131,8 +130,7 @@ function DropdownMenu( {
131
130
  title={ label }
132
131
  style={ { paddingLeft: 0, paddingRight: 0 } }
133
132
  >
134
- { flatMap(
135
- controlSets,
133
+ { controlSets?.flatMap(
136
134
  ( controlSet, indexOfSet ) =>
137
135
  controlSet.map(
138
136
  ( control, indexOfControl ) => (
@@ -103,9 +103,9 @@ export function useElevation( props ) {
103
103
  return cx(
104
104
  styles.Elevation,
105
105
  sx.Base,
106
- sx.hover && sx.hover,
107
- sx.focus && sx.focus,
108
- sx.active && sx.active,
106
+ sx.hover,
107
+ sx.focus,
108
+ sx.active,
109
109
  className
110
110
  );
111
111
  }, [
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { compact, uniq } from 'lodash';
6
5
  import type { ForwardedRef } from 'react';
7
6
 
8
7
  /**
@@ -28,9 +27,16 @@ function UnforwardedExternalLink(
28
27
  ref: ForwardedRef< HTMLAnchorElement >
29
28
  ) {
30
29
  const { href, children, className, rel = '', ...additionalProps } = props;
31
- const optimizedRel = uniq(
32
- compact( [ ...rel.split( ' ' ), 'external', 'noreferrer', 'noopener' ] )
33
- ).join( ' ' );
30
+ const optimizedRel = [
31
+ ...new Set(
32
+ [
33
+ ...rel.split( ' ' ),
34
+ 'external',
35
+ 'noreferrer',
36
+ 'noopener',
37
+ ].filter( Boolean )
38
+ ),
39
+ ].join( ' ' );
34
40
  const classes = classnames( 'components-external-link', className );
35
41
  return (
36
42
  /* eslint-disable react/jsx-no-target-blank */
@@ -13,9 +13,6 @@ import {
13
13
  } from './styles/focal-point-picker-style';
14
14
  import { useUpdateEffect } from '../utils/hooks';
15
15
 
16
- const { clearTimeout, setTimeout } =
17
- typeof window !== 'undefined' ? window : {};
18
-
19
16
  export default function FocalPointPickerGrid( {
20
17
  bounds = {},
21
18
  value,
@@ -52,11 +49,11 @@ function useRevealAnimation( value ) {
52
49
 
53
50
  useUpdateEffect( () => {
54
51
  setIsActive( true );
55
- const timeout = setTimeout( () => {
52
+ const timeout = window.setTimeout( () => {
56
53
  setIsActive( false );
57
54
  }, 600 );
58
55
 
59
- return () => clearTimeout( timeout );
56
+ return () => window.clearTimeout( timeout );
60
57
  }, [ value ] );
61
58
 
62
59
  return {
@@ -40,8 +40,8 @@ function FocalPointPicker( props ) {
40
40
  const [ videoNaturalSize, setVideoNaturalSize ] = useState( null );
41
41
  const [ tooltipVisible, setTooltipVisible ] = useState( false );
42
42
 
43
- let locationPageOffsetX = useRef().current;
44
- let locationPageOffsetY = useRef().current;
43
+ const locationPageOffsetX = useRef();
44
+ const locationPageOffsetY = useRef();
45
45
  const videoRef = useRef( null );
46
46
 
47
47
  useEffect( () => {
@@ -67,7 +67,7 @@ function FocalPointPicker( props ) {
67
67
  y: focalPoint.y * containerSize.height,
68
68
  } );
69
69
  }
70
- }, [ focalPoint, containerSize ] );
70
+ }, [ focalPoint, containerSize, pan ] );
71
71
 
72
72
  // Pan responder to manage drag handle interactivity.
73
73
  const panResponder = useMemo(
@@ -86,8 +86,8 @@ function FocalPointPicker( props ) {
86
86
  pageX,
87
87
  pageY,
88
88
  } = event.nativeEvent;
89
- locationPageOffsetX = pageX - x;
90
- locationPageOffsetY = pageY - y;
89
+ locationPageOffsetX.current = pageX - x;
90
+ locationPageOffsetY.current = pageY - y;
91
91
  pan.setValue( { x, y } ); // Set cursor to tap location.
92
92
  pan.extractOffset(); // Set offset to current value.
93
93
  },
@@ -106,8 +106,8 @@ function FocalPointPicker( props ) {
106
106
  // Specifically, dragging the handle outside the bounds of the image
107
107
  // results in inaccurate locationX and locationY coordinates to be
108
108
  // reported. https://github.com/facebook/react-native/issues/15290#issuecomment-435494944
109
- const x = pageX - locationPageOffsetX;
110
- const y = pageY - locationPageOffsetY;
109
+ const x = pageX - locationPageOffsetX.current;
110
+ const y = pageY - locationPageOffsetY.current;
111
111
  onChange( {
112
112
  x: clamp( x / containerSize?.width, 0, 1 ).toFixed( 2 ),
113
113
  y: clamp( y / containerSize?.height, 0, 1 ).toFixed(
@@ -120,7 +120,7 @@ function FocalPointPicker( props ) {
120
120
  setSliderKey( ( prevState ) => prevState + 1 );
121
121
  },
122
122
  } ),
123
- [ containerSize ]
123
+ [ containerSize, pan, onChange, shouldEnableBottomSheetScroll ]
124
124
  );
125
125
 
126
126
  const mediaBackground = usePreferredColorSchemeStyle(
@@ -66,18 +66,17 @@ function Label( { align, text, xOffset, yOffset } ) {
66
66
  }
67
67
 
68
68
  useEffect( () => {
69
+ const startAnimation = () => {
70
+ Animated.timing( animationValue, {
71
+ toValue: visible ? 1 : 0,
72
+ duration: visible ? 300 : 150,
73
+ useNativeDriver: true,
74
+ delay: visible ? 500 : 0,
75
+ easing: Easing.out( Easing.quad ),
76
+ } ).start();
77
+ };
69
78
  startAnimation();
70
- }, [ visible ] );
71
-
72
- const startAnimation = () => {
73
- Animated.timing( animationValue, {
74
- toValue: visible ? 1 : 0,
75
- duration: visible ? 300 : 150,
76
- useNativeDriver: true,
77
- delay: visible ? 500 : 0,
78
- easing: Easing.out( Easing.quad ),
79
- } ).start();
80
- };
79
+ }, [ animationValue, visible ] );
81
80
 
82
81
  // Transforms rely upon onLayout to enable custom offsets additions.
83
82
  let tooltipTransforms;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { last, clone, uniq, map, difference, identity, some } from 'lodash';
4
+ import { last, clone, uniq, map, difference, some } from 'lodash';
5
5
  import classnames from 'classnames';
6
6
  import type { KeyboardEvent, MouseEvent, TouchEvent } from 'react';
7
7
 
@@ -30,8 +30,12 @@ import isShallowEqual from '@wordpress/is-shallow-equal';
30
30
  */
31
31
  import Token from './token';
32
32
  import TokenInput from './token-input';
33
+ import { TokensAndInputWrapperFlex } from './styles';
33
34
  import SuggestionsList from './suggestions-list';
34
35
  import type { FormTokenFieldProps, TokenItem } from './types';
36
+ import { FlexItem } from '../flex';
37
+
38
+ const identity = ( value: string ) => value;
35
39
 
36
40
  /**
37
41
  * A `FormTokenField` is a field similar to the tags and categories fields in the interim editor chrome,
@@ -71,6 +75,7 @@ export function FormTokenField( props: FormTokenFieldProps ) {
71
75
  __experimentalExpandOnFocus = false,
72
76
  __experimentalValidateInput = () => true,
73
77
  __experimentalShowHowTo = true,
78
+ __next36pxDefaultSize = false,
74
79
  } = props;
75
80
 
76
81
  const instanceId = useInstanceId( FormTokenField );
@@ -566,28 +571,35 @@ export function FormTokenField( props: FormTokenFieldProps ) {
566
571
  const termsCount = tokens.length;
567
572
 
568
573
  return (
569
- <Token
570
- key={ 'token-' + _value }
571
- value={ _value }
572
- status={ status }
573
- title={ typeof token !== 'string' ? token.title : undefined }
574
- displayTransform={ displayTransform }
575
- onClickRemove={ onTokenClickRemove }
576
- isBorderless={
577
- ( typeof token !== 'string' && token.isBorderless ) ||
578
- isBorderless
579
- }
580
- onMouseEnter={
581
- typeof token !== 'string' ? token.onMouseEnter : undefined
582
- }
583
- onMouseLeave={
584
- typeof token !== 'string' ? token.onMouseLeave : undefined
585
- }
586
- disabled={ 'error' !== status && disabled }
587
- messages={ messages }
588
- termsCount={ termsCount }
589
- termPosition={ termPosition }
590
- />
574
+ <FlexItem key={ 'token-' + _value }>
575
+ <Token
576
+ value={ _value }
577
+ status={ status }
578
+ title={
579
+ typeof token !== 'string' ? token.title : undefined
580
+ }
581
+ displayTransform={ displayTransform }
582
+ onClickRemove={ onTokenClickRemove }
583
+ isBorderless={
584
+ ( typeof token !== 'string' && token.isBorderless ) ||
585
+ isBorderless
586
+ }
587
+ onMouseEnter={
588
+ typeof token !== 'string'
589
+ ? token.onMouseEnter
590
+ : undefined
591
+ }
592
+ onMouseLeave={
593
+ typeof token !== 'string'
594
+ ? token.onMouseLeave
595
+ : undefined
596
+ }
597
+ disabled={ 'error' !== status && disabled }
598
+ messages={ messages }
599
+ termsCount={ termsCount }
600
+ termPosition={ termPosition }
601
+ />
602
+ </FlexItem>
591
603
  );
592
604
  }
593
605
 
@@ -660,7 +672,16 @@ export function FormTokenField( props: FormTokenFieldProps ) {
660
672
  onMouseDown={ onContainerTouched }
661
673
  onTouchStart={ onContainerTouched }
662
674
  >
663
- { renderTokensAndInput() }
675
+ <TokensAndInputWrapperFlex
676
+ justify="flex-start"
677
+ align="center"
678
+ gap={ 1 }
679
+ wrap={ true }
680
+ __next36pxDefaultSize={ __next36pxDefaultSize }
681
+ hasTokens={ !! value.length }
682
+ >
683
+ { renderTokensAndInput() }
684
+ </TokensAndInputWrapperFlex>
664
685
  { isExpanded && (
665
686
  <SuggestionsList
666
687
  instanceId={ instanceId }
@@ -1,14 +1,10 @@
1
1
  .components-form-token-field__input-container {
2
2
  @include input-control();
3
- display: flex;
4
- flex-wrap: wrap;
5
- align-items: center;
6
3
  width: 100%;
7
4
  margin: 0 0 $grid-unit-10 0;
8
- padding: $grid-unit-05*0.5 $grid-unit-05;
5
+ padding: 0;
9
6
  cursor: text;
10
7
 
11
-
12
8
  &.is-disabled {
13
9
  background: $gray-300;
14
10
  border-color: $gray-300;
@@ -67,7 +63,6 @@
67
63
  .components-form-token-field__token {
68
64
  font-size: $default-font-size;
69
65
  display: flex;
70
- margin: 2px 4px 2px 0;
71
66
  color: $gray-900;
72
67
  max-width: 100%;
73
68
 
@@ -180,7 +175,7 @@
180
175
  @include reduce-motion("transition");
181
176
  list-style: none;
182
177
  border-top: $border-width solid $gray-700;
183
- margin: $grid-unit-05 (-$grid-unit-05) (-$grid-unit-05);
178
+ margin: 0;
184
179
  padding: 0;
185
180
  }
186
181
 
@@ -0,0 +1,32 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import styled from '@emotion/styled';
5
+ import { css } from '@emotion/react';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { Flex } from '../flex';
11
+ import { space } from '../ui/utils/space';
12
+
13
+ type TokensAndInputWrapperProps = {
14
+ __next36pxDefaultSize: boolean;
15
+ hasTokens: boolean;
16
+ };
17
+
18
+ const deprecatedPaddings = ( {
19
+ __next36pxDefaultSize,
20
+ hasTokens,
21
+ }: TokensAndInputWrapperProps ) =>
22
+ ! __next36pxDefaultSize &&
23
+ css`
24
+ padding-top: ${ space( hasTokens ? 1 : 0.5 ) };
25
+ padding-bottom: ${ space( hasTokens ? 1 : 0.5 ) };
26
+ `;
27
+
28
+ export const TokensAndInputWrapperFlex = styled( Flex )`
29
+ padding: 5px ${ space( 1 ) };
30
+
31
+ ${ deprecatedPaddings }
32
+ `;
@@ -17,8 +17,6 @@ import { useRefEffect } from '@wordpress/compose';
17
17
  */
18
18
  import type { SuggestionsListProps } from './types';
19
19
 
20
- const { setTimeout, clearTimeout } = window;
21
-
22
20
  const handleMouseDown: MouseEventHandler = ( e ) => {
23
21
  // By preventing default here, we will not lose focus of <input> when clicking a suggestion.
24
22
  e.preventDefault();
@@ -54,14 +52,14 @@ export function SuggestionsList< T extends string | { value: string } >( {
54
52
  onlyScrollIfNeeded: true,
55
53
  }
56
54
  );
57
- id = setTimeout( () => {
55
+ id = window.setTimeout( () => {
58
56
  setScrollingIntoView( false );
59
57
  }, 100 );
60
58
  }
61
59
 
62
60
  return () => {
63
61
  if ( id !== undefined ) {
64
- clearTimeout( id );
62
+ window.clearTimeout( id );
65
63
  }
66
64
  };
67
65
  },
@@ -147,6 +147,13 @@ export interface FormTokenFieldProps
147
147
  * @default true
148
148
  */
149
149
  __experimentalShowHowTo?: boolean;
150
+ /**
151
+ * Start opting into the larger default height that will become the
152
+ * default size in a future version.
153
+ *
154
+ * @default false
155
+ */
156
+ __next36pxDefaultSize?: boolean;
150
157
  }
151
158
 
152
159
  export interface SuggestionsListProps< T = string | { value: string } > {
@@ -27,56 +27,70 @@ function Example() {
27
27
 
28
28
  ## Props
29
29
 
30
- ##### align
31
-
32
- **Type**: `CSS['alignItems']`
30
+ ##### `align`: `CSS['alignItems']`
33
31
 
34
32
  Adjusts the block alignment of children.
35
33
 
36
- ##### alignment
34
+ - Required: No
37
35
 
38
- **Type**: `GridAlignment`
36
+ ##### `alignment`: `GridAlignment`
39
37
 
40
38
  Adjusts the horizontal and vertical alignment of children.
41
39
 
42
- ##### columns
40
+ - Required: No
41
+
42
+ ##### `columnGap`: `CSSProperties['gridColumnGap']`
43
+
44
+ Adjusts the `grid-column-gap`.
45
+
46
+ - Required: No
43
47
 
44
- **Type**: `number`,`(number`,`null)[]`
48
+ ##### `columns`: `number`
45
49
 
46
50
  Adjusts the number of columns of the `Grid`.
47
51
 
48
- ##### gap
52
+ - Required: No
53
+ - Default: `2`
49
54
 
50
- **Type**: `number`
55
+ ##### `gap`: `number`
51
56
 
52
57
  Gap between each child.
53
58
 
54
- ##### isInline
59
+ - Required: No
60
+ - Default: `3`
55
61
 
56
- **Type**: `boolean`
62
+ ##### `isInline`: `boolean`
57
63
 
58
64
  Changes the CSS display from `grid` to `inline-grid`.
59
65
 
60
- ##### justify
66
+ - Required: No
61
67
 
62
- **Type**: `CSS['justifyContent']`
68
+ ##### `justify`: `CSS['justifyContent']`
63
69
 
64
70
  Adjusts the inline alignment of children.
65
71
 
66
- ##### rows
72
+ - Required: No
67
73
 
68
- **Type**: `number`,`(number`,`null)[]`
74
+ ##### `rowGap`: `CSSProperties['gridRowGap']`
75
+
76
+ Adjusts the `grid-row-gap`.
77
+
78
+ - Required: No
79
+
80
+ ##### `rows`: `number`
69
81
 
70
82
  Adjusts the number of rows of the `Grid`.
71
83
 
72
- ##### templateColumns
84
+ - Required: No
73
85
 
74
- **Type**: `CSS['gridTemplateColumns']`
86
+ ##### `templateColumns`: `CSS['gridTemplateColumns']`
75
87
 
76
88
  Adjusts the CSS grid `template-columns`.
77
89
 
78
- ##### templateRows
90
+ - Required: No
79
91
 
80
- **Type**: `CSS['gridTemplateRows']`
92
+ ##### `templateRows`: `CSS['gridTemplateRows']`
81
93
 
82
94
  Adjusts the CSS grid `template-rows`.
95
+
96
+ - Required: No
@@ -1,15 +1,20 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ForwardedRef } from 'react';
5
+
1
6
  /**
2
7
  * Internal dependencies
3
8
  */
4
- import { contextConnect } from '../ui/context';
9
+ import { contextConnect, WordPressComponentProps } from '../ui/context';
5
10
  import { View } from '../view';
6
11
  import useGrid from './hook';
12
+ import type { GridProps } from './types';
7
13
 
8
- /**
9
- * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
10
- * @param {import('react').ForwardedRef<any>} forwardedRef
11
- */
12
- function Grid( props, forwardedRef ) {
14
+ function UnconnectedGrid(
15
+ props: WordPressComponentProps< GridProps, 'div' >,
16
+ forwardedRef: ForwardedRef< any >
17
+ ) {
13
18
  const gridProps = useGrid( props );
14
19
 
15
20
  return <View { ...gridProps } ref={ forwardedRef } />;
@@ -18,7 +23,6 @@ function Grid( props, forwardedRef ) {
18
23
  /**
19
24
  * `Grid` is a primitive layout component that can arrange content in a grid configuration.
20
25
  *
21
- * @example
22
26
  * ```jsx
23
27
  * import {
24
28
  * __experimentalGrid as Grid,
@@ -36,6 +40,6 @@ function Grid( props, forwardedRef ) {
36
40
  * }
37
41
  * ```
38
42
  */
39
- const ConnectedGrid = contextConnect( Grid, 'Grid' );
43
+ export const Grid = contextConnect( UnconnectedGrid, 'Grid' );
40
44
 
41
- export default ConnectedGrid;
45
+ export default Grid;
@@ -11,16 +11,16 @@ import { useMemo } from '@wordpress/element';
11
11
  /**
12
12
  * Internal dependencies
13
13
  */
14
- import { useContextSystem } from '../ui/context';
14
+ import { useContextSystem, WordPressComponentProps } from '../ui/context';
15
15
  import { getAlignmentProps } from './utils';
16
16
  import { useResponsiveValue } from '../ui/utils/use-responsive-value';
17
17
  import CONFIG from '../utils/config-values';
18
18
  import { useCx } from '../utils/hooks/use-cx';
19
+ import type { GridProps } from './types';
19
20
 
20
- /**
21
- * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
22
- */
23
- export default function useGrid( props ) {
21
+ export default function useGrid(
22
+ props: WordPressComponentProps< GridProps, 'div' >
23
+ ) {
24
24
  const {
25
25
  align,
26
26
  alignment,
File without changes
@@ -0,0 +1,72 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { View } from '../../view';
10
+ import { Grid } from '..';
11
+
12
+ const meta: ComponentMeta< typeof Grid > = {
13
+ component: Grid,
14
+ title: 'Components (Experimental)/Grid',
15
+ argTypes: {
16
+ as: { control: { type: 'text' } },
17
+ align: { control: { type: 'text' } },
18
+ children: { control: { type: null } },
19
+ columnGap: { control: { type: 'text' } },
20
+ columns: {
21
+ table: { type: { summary: 'number' } },
22
+ control: { type: 'number' },
23
+ },
24
+ justify: { control: { type: 'text' } },
25
+ rowGap: { control: { type: 'text' } },
26
+ rows: {
27
+ table: { type: { summary: 'number' } },
28
+ control: { type: 'number' },
29
+ },
30
+ templateColumns: { control: { type: 'text' } },
31
+ templateRows: { control: { type: 'text' } },
32
+ },
33
+ parameters: {
34
+ controls: {
35
+ expanded: true,
36
+ },
37
+ docs: { source: { state: 'open' } },
38
+ },
39
+ };
40
+ export default meta;
41
+
42
+ const Item = ( props: { children: string } ) => (
43
+ <View
44
+ style={ {
45
+ borderRadius: 8,
46
+ background: '#eee',
47
+ padding: 8,
48
+ textAlign: 'center',
49
+ } }
50
+ { ...props }
51
+ />
52
+ );
53
+
54
+ const Template: ComponentStory< typeof Grid > = ( props ) => (
55
+ <Grid { ...props }>
56
+ <Item>One</Item>
57
+ <Item>Two</Item>
58
+ <Item>Three</Item>
59
+ <Item>Four</Item>
60
+ <Item>Five</Item>
61
+ <Item>Six</Item>
62
+ <Item>Seven</Item>
63
+ <Item>Eight</Item>
64
+ </Grid>
65
+ );
66
+
67
+ export const Default: ComponentStory< typeof Grid > = Template.bind( {} );
68
+ Default.args = {
69
+ alignment: 'bottom',
70
+ columns: 4,
71
+ gap: 2,
72
+ };
@@ -28,7 +28,7 @@ describe( 'props', () => {
28
28
 
29
29
  test( 'should render gap', () => {
30
30
  const { container } = render(
31
- <Grid columns="3" gap={ 4 }>
31
+ <Grid columns={ 3 } gap={ 4 }>
32
32
  <View />
33
33
  <View />
34
34
  <View />
@@ -44,7 +44,7 @@ describe( 'props', () => {
44
44
 
45
45
  test( 'should render custom columns', () => {
46
46
  const { container } = render(
47
- <Grid columns="7">
47
+ <Grid columns={ 7 }>
48
48
  <View />
49
49
  <View />
50
50
  <View />
@@ -59,7 +59,7 @@ describe( 'props', () => {
59
59
 
60
60
  test( 'should render custom rows', () => {
61
61
  const { container } = render(
62
- <Grid rows="7">
62
+ <Grid rows={ 7 }>
63
63
  <View />
64
64
  <View />
65
65
  <View />
@@ -120,7 +120,7 @@ describe( 'props', () => {
120
120
 
121
121
  test( 'should render isInline', () => {
122
122
  const { container } = render(
123
- <Grid columns="3" isInline>
123
+ <Grid columns={ 3 } isInline>
124
124
  <View />
125
125
  <View />
126
126
  <View />