@wordpress/components 23.4.0 → 23.6.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 (978) hide show
  1. package/CHANGELOG.md +54 -6
  2. package/build/animate/index.js +3 -1
  3. package/build/animate/index.js.map +1 -1
  4. package/build/animation/index.js.map +1 -1
  5. package/build/autocomplete/autocompleter-ui.js +46 -22
  6. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  7. package/build/autocomplete/get-default-use-items.js.map +1 -1
  8. package/build/autocomplete/index.js +51 -119
  9. package/build/autocomplete/index.js.map +1 -1
  10. package/build/autocomplete/types.js +6 -0
  11. package/build/autocomplete/types.js.map +1 -0
  12. package/build/circular-option-picker/index.js +63 -14
  13. package/build/circular-option-picker/index.js.map +1 -1
  14. package/build/circular-option-picker/types.js +6 -0
  15. package/build/circular-option-picker/types.js.map +1 -0
  16. package/build/custom-gradient-picker/gradient-bar/control-points.js +2 -0
  17. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  18. package/build/custom-gradient-picker/gradient-bar/index.js +2 -0
  19. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  20. package/build/custom-gradient-picker/gradient-bar/utils.js +2 -0
  21. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  22. package/build/custom-gradient-picker/index.js +2 -0
  23. package/build/custom-gradient-picker/index.js.map +1 -1
  24. package/build/custom-gradient-picker/serializer.js +1 -0
  25. package/build/custom-gradient-picker/serializer.js.map +1 -1
  26. package/build/custom-gradient-picker/utils.js +2 -0
  27. package/build/custom-gradient-picker/utils.js.map +1 -1
  28. package/build/dimension-control/index.js +31 -5
  29. package/build/dimension-control/index.js.map +1 -1
  30. package/build/dimension-control/sizes.js +2 -4
  31. package/build/dimension-control/sizes.js.map +1 -1
  32. package/build/dimension-control/types.js +6 -0
  33. package/build/dimension-control/types.js.map +1 -0
  34. package/build/dropdown-menu/index.js +6 -2
  35. package/build/dropdown-menu/index.js.map +1 -1
  36. package/build/flex/flex/hook.js +3 -3
  37. package/build/flex/flex/hook.js.map +1 -1
  38. package/build/font-size-picker/index.js +2 -1
  39. package/build/font-size-picker/index.js.map +1 -1
  40. package/build/form-token-field/index.js +1 -1
  41. package/build/form-token-field/index.js.map +1 -1
  42. package/build/gradient-picker/index.js +2 -0
  43. package/build/gradient-picker/index.js.map +1 -1
  44. package/build/guide/icons.js.map +1 -1
  45. package/build/guide/index.js +46 -8
  46. package/build/guide/index.js.map +1 -1
  47. package/build/guide/page-control.js.map +1 -1
  48. package/build/guide/page.js.map +1 -1
  49. package/build/guide/types.js +6 -0
  50. package/build/guide/types.js.map +1 -0
  51. package/build/h-stack/utils.js +5 -5
  52. package/build/h-stack/utils.js.map +1 -1
  53. package/build/higher-order/navigate-regions/index.js +33 -3
  54. package/build/higher-order/navigate-regions/index.js.map +1 -1
  55. package/build/higher-order/with-constrained-tabbing/index.js +9 -0
  56. package/build/higher-order/with-constrained-tabbing/index.js.map +1 -1
  57. package/build/higher-order/with-fallback-styles/index.js +2 -2
  58. package/build/higher-order/with-fallback-styles/index.js.map +1 -1
  59. package/build/higher-order/with-filters/index.js +31 -7
  60. package/build/higher-order/with-filters/index.js.map +1 -1
  61. package/build/higher-order/with-focus-return/index.js +10 -10
  62. package/build/higher-order/with-focus-return/index.js.map +1 -1
  63. package/build/higher-order/with-notices/index.js +28 -25
  64. package/build/higher-order/with-notices/index.js.map +1 -1
  65. package/build/higher-order/with-notices/types.js +6 -0
  66. package/build/higher-order/with-notices/types.js.map +1 -0
  67. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  68. package/build/icon/index.js +1 -8
  69. package/build/icon/index.js.map +1 -1
  70. package/build/index.native.js +18 -9
  71. package/build/index.native.js.map +1 -1
  72. package/build/mobile/bottom-sheet/cell.native.js +1 -1
  73. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  74. package/build/mobile/bottom-sheet-text-control/index.native.js +4 -3
  75. package/build/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  76. package/build/mobile/global-styles-context/utils.native.js +2 -1
  77. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  78. package/build/navigation/back-button/index.js +6 -5
  79. package/build/navigation/back-button/index.js.map +1 -1
  80. package/build/navigation/constants.js.map +1 -1
  81. package/build/navigation/context.js +7 -4
  82. package/build/navigation/context.js.map +1 -1
  83. package/build/navigation/group/context.js.map +1 -1
  84. package/build/navigation/group/index.js +5 -1
  85. package/build/navigation/group/index.js.map +1 -1
  86. package/build/navigation/index.js +49 -3
  87. package/build/navigation/index.js.map +1 -1
  88. package/build/navigation/item/base-content.js +0 -1
  89. package/build/navigation/item/base-content.js.map +1 -1
  90. package/build/navigation/item/base.js.map +1 -1
  91. package/build/navigation/item/index.js +5 -1
  92. package/build/navigation/item/index.js.map +1 -1
  93. package/build/navigation/item/use-navigation-tree-item.js +1 -1
  94. package/build/navigation/item/use-navigation-tree-item.js.map +1 -1
  95. package/build/navigation/menu/context.js.map +1 -1
  96. package/build/navigation/menu/index.js +5 -1
  97. package/build/navigation/menu/index.js.map +1 -1
  98. package/build/navigation/menu/menu-title-search.js +8 -6
  99. package/build/navigation/menu/menu-title-search.js.map +1 -1
  100. package/build/navigation/menu/menu-title.js +4 -2
  101. package/build/navigation/menu/menu-title.js.map +1 -1
  102. package/build/navigation/menu/search-no-results-found.js.map +1 -1
  103. package/build/navigation/menu/use-navigation-tree-menu.js.map +1 -1
  104. package/build/navigation/styles/navigation-styles.js +36 -36
  105. package/build/navigation/styles/navigation-styles.js.map +1 -1
  106. package/build/navigation/types.js +6 -0
  107. package/build/navigation/types.js.map +1 -0
  108. package/build/navigation/use-create-navigation-tree.js +7 -0
  109. package/build/navigation/use-create-navigation-tree.js.map +1 -1
  110. package/build/navigation/use-navigation-tree-nodes.js +3 -5
  111. package/build/navigation/use-navigation-tree-nodes.js.map +1 -1
  112. package/build/navigation/utils.js.map +1 -1
  113. package/build/navigator/navigator-screen/component.js +5 -3
  114. package/build/navigator/navigator-screen/component.js.map +1 -1
  115. package/build/number-control/index.js +1 -3
  116. package/build/number-control/index.js.map +1 -1
  117. package/build/palette-edit/index.js +67 -27
  118. package/build/palette-edit/index.js.map +1 -1
  119. package/build/palette-edit/types.js +6 -0
  120. package/build/palette-edit/types.js.map +1 -0
  121. package/build/panel/body.js +15 -17
  122. package/build/panel/body.js.map +1 -1
  123. package/build/placeholder/index.js.map +1 -1
  124. package/build/query-controls/author-select.js +0 -4
  125. package/build/query-controls/author-select.js.map +1 -1
  126. package/build/query-controls/category-select.js +0 -4
  127. package/build/query-controls/category-select.js.map +1 -1
  128. package/build/query-controls/terms.js +30 -15
  129. package/build/query-controls/terms.js.map +1 -1
  130. package/build/range-control/index.js +1 -0
  131. package/build/range-control/index.js.map +1 -1
  132. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  133. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  134. package/build/responsive-wrapper/index.js +12 -13
  135. package/build/responsive-wrapper/index.js.map +1 -1
  136. package/build/select-control/index.js +19 -16
  137. package/build/select-control/index.js.map +1 -1
  138. package/build/toolbar/toolbar-button/index.js +32 -10
  139. package/build/toolbar/toolbar-button/index.js.map +1 -1
  140. package/build/toolbar/toolbar-button/toolbar-button-container.js +12 -4
  141. package/build/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  142. package/build/toolbar/toolbar-button/types.js +6 -0
  143. package/build/toolbar/toolbar-button/types.js.map +1 -0
  144. package/build/toolbar/toolbar-context/index.js +4 -2
  145. package/build/toolbar/toolbar-context/index.js.map +1 -1
  146. package/build/tools-panel/context.js +2 -0
  147. package/build/tools-panel/context.js.map +1 -1
  148. package/build/tools-panel/tools-panel/hook.js +18 -12
  149. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  150. package/build/tools-panel/tools-panel-item/hook.js +14 -2
  151. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  152. package/build/tooltip/index.js +18 -6
  153. package/build/tooltip/index.js.map +1 -1
  154. package/build/tree-select/index.js.map +1 -1
  155. package/build/ui/context/context-system-provider.js +8 -4
  156. package/build/ui/context/context-system-provider.js.map +1 -1
  157. package/build/ui/context/get-styled-class-name-from-key.js +2 -2
  158. package/build/ui/context/get-styled-class-name-from-key.js.map +1 -1
  159. package/build/utils/font.js +3 -7
  160. package/build/utils/font.js.map +1 -1
  161. package/build/v-stack/hook.js +2 -0
  162. package/build/v-stack/hook.js.map +1 -1
  163. package/build-module/animate/index.js +3 -1
  164. package/build-module/animate/index.js.map +1 -1
  165. package/build-module/animation/index.js.map +1 -1
  166. package/build-module/autocomplete/autocompleter-ui.js +45 -24
  167. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  168. package/build-module/autocomplete/get-default-use-items.js.map +1 -1
  169. package/build-module/autocomplete/index.js +54 -122
  170. package/build-module/autocomplete/index.js.map +1 -1
  171. package/build-module/autocomplete/types.js +2 -0
  172. package/build-module/autocomplete/types.js.map +1 -0
  173. package/build-module/circular-option-picker/index.js +59 -16
  174. package/build-module/circular-option-picker/index.js.map +1 -1
  175. package/build-module/circular-option-picker/types.js +2 -0
  176. package/build-module/circular-option-picker/types.js.map +1 -0
  177. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +1 -0
  178. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  179. package/build-module/custom-gradient-picker/gradient-bar/index.js +1 -0
  180. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  181. package/build-module/custom-gradient-picker/gradient-bar/utils.js +2 -0
  182. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  183. package/build-module/custom-gradient-picker/index.js +1 -0
  184. package/build-module/custom-gradient-picker/index.js.map +1 -1
  185. package/build-module/custom-gradient-picker/serializer.js +1 -0
  186. package/build-module/custom-gradient-picker/serializer.js.map +1 -1
  187. package/build-module/custom-gradient-picker/utils.js +2 -0
  188. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  189. package/build-module/dimension-control/index.js +28 -3
  190. package/build-module/dimension-control/index.js.map +1 -1
  191. package/build-module/dimension-control/sizes.js +6 -5
  192. package/build-module/dimension-control/sizes.js.map +1 -1
  193. package/build-module/dimension-control/types.js +2 -0
  194. package/build-module/dimension-control/types.js.map +1 -0
  195. package/build-module/dropdown-menu/index.js +6 -2
  196. package/build-module/dropdown-menu/index.js.map +1 -1
  197. package/build-module/flex/flex/hook.js +3 -3
  198. package/build-module/flex/flex/hook.js.map +1 -1
  199. package/build-module/font-size-picker/index.js +2 -1
  200. package/build-module/font-size-picker/index.js.map +1 -1
  201. package/build-module/form-token-field/index.js +1 -1
  202. package/build-module/form-token-field/index.js.map +1 -1
  203. package/build-module/gradient-picker/index.js +1 -0
  204. package/build-module/gradient-picker/index.js.map +1 -1
  205. package/build-module/guide/icons.js.map +1 -1
  206. package/build-module/guide/index.js +45 -8
  207. package/build-module/guide/index.js.map +1 -1
  208. package/build-module/guide/page-control.js.map +1 -1
  209. package/build-module/guide/page.js +4 -0
  210. package/build-module/guide/page.js.map +1 -1
  211. package/build-module/guide/types.js +2 -0
  212. package/build-module/guide/types.js.map +1 -0
  213. package/build-module/h-stack/utils.js +5 -5
  214. package/build-module/h-stack/utils.js.map +1 -1
  215. package/build-module/higher-order/navigate-regions/index.js +33 -3
  216. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  217. package/build-module/higher-order/with-constrained-tabbing/index.js +9 -0
  218. package/build-module/higher-order/with-constrained-tabbing/index.js.map +1 -1
  219. package/build-module/higher-order/with-fallback-styles/index.js +2 -2
  220. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  221. package/build-module/higher-order/with-filters/index.js +31 -7
  222. package/build-module/higher-order/with-filters/index.js.map +1 -1
  223. package/build-module/higher-order/with-focus-return/index.js +10 -10
  224. package/build-module/higher-order/with-focus-return/index.js.map +1 -1
  225. package/build-module/higher-order/with-notices/index.js +29 -26
  226. package/build-module/higher-order/with-notices/index.js.map +1 -1
  227. package/build-module/higher-order/with-notices/types.js +2 -0
  228. package/build-module/higher-order/with-notices/types.js.map +1 -0
  229. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  230. package/build-module/icon/index.js +2 -9
  231. package/build-module/icon/index.js.map +1 -1
  232. package/build-module/index.native.js +1 -0
  233. package/build-module/index.native.js.map +1 -1
  234. package/build-module/mobile/bottom-sheet/cell.native.js +1 -1
  235. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  236. package/build-module/mobile/bottom-sheet-text-control/index.native.js +4 -3
  237. package/build-module/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  238. package/build-module/mobile/global-styles-context/utils.native.js +2 -1
  239. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  240. package/build-module/navigation/back-button/index.js +4 -3
  241. package/build-module/navigation/back-button/index.js.map +1 -1
  242. package/build-module/navigation/constants.js.map +1 -1
  243. package/build-module/navigation/context.js +7 -4
  244. package/build-module/navigation/context.js.map +1 -1
  245. package/build-module/navigation/group/context.js +4 -0
  246. package/build-module/navigation/group/context.js.map +1 -1
  247. package/build-module/navigation/group/index.js +2 -1
  248. package/build-module/navigation/group/index.js.map +1 -1
  249. package/build-module/navigation/index.js +46 -3
  250. package/build-module/navigation/index.js.map +1 -1
  251. package/build-module/navigation/item/base-content.js +0 -1
  252. package/build-module/navigation/item/base-content.js.map +1 -1
  253. package/build-module/navigation/item/base.js.map +1 -1
  254. package/build-module/navigation/item/index.js +2 -1
  255. package/build-module/navigation/item/index.js.map +1 -1
  256. package/build-module/navigation/item/use-navigation-tree-item.js +1 -1
  257. package/build-module/navigation/item/use-navigation-tree-item.js.map +1 -1
  258. package/build-module/navigation/menu/context.js +4 -0
  259. package/build-module/navigation/menu/context.js.map +1 -1
  260. package/build-module/navigation/menu/index.js +2 -1
  261. package/build-module/navigation/menu/index.js.map +1 -1
  262. package/build-module/navigation/menu/menu-title-search.js +8 -6
  263. package/build-module/navigation/menu/menu-title-search.js.map +1 -1
  264. package/build-module/navigation/menu/menu-title.js +4 -2
  265. package/build-module/navigation/menu/menu-title.js.map +1 -1
  266. package/build-module/navigation/menu/search-no-results-found.js.map +1 -1
  267. package/build-module/navigation/menu/use-navigation-tree-menu.js.map +1 -1
  268. package/build-module/navigation/styles/navigation-styles.js +36 -36
  269. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  270. package/build-module/navigation/types.js +2 -0
  271. package/build-module/navigation/types.js.map +1 -0
  272. package/build-module/navigation/use-create-navigation-tree.js +7 -0
  273. package/build-module/navigation/use-create-navigation-tree.js.map +1 -1
  274. package/build-module/navigation/use-navigation-tree-nodes.js +2 -2
  275. package/build-module/navigation/use-navigation-tree-nodes.js.map +1 -1
  276. package/build-module/navigation/utils.js.map +1 -1
  277. package/build-module/navigator/navigator-screen/component.js +5 -3
  278. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  279. package/build-module/number-control/index.js +1 -3
  280. package/build-module/number-control/index.js.map +1 -1
  281. package/build-module/palette-edit/index.js +65 -27
  282. package/build-module/palette-edit/index.js.map +1 -1
  283. package/build-module/palette-edit/types.js +2 -0
  284. package/build-module/palette-edit/types.js.map +1 -0
  285. package/build-module/panel/body.js +12 -12
  286. package/build-module/panel/body.js.map +1 -1
  287. package/build-module/placeholder/index.js.map +1 -1
  288. package/build-module/query-controls/author-select.js +0 -4
  289. package/build-module/query-controls/author-select.js.map +1 -1
  290. package/build-module/query-controls/category-select.js +1 -5
  291. package/build-module/query-controls/category-select.js.map +1 -1
  292. package/build-module/query-controls/terms.js +29 -16
  293. package/build-module/query-controls/terms.js.map +1 -1
  294. package/build-module/range-control/index.js +1 -0
  295. package/build-module/range-control/index.js.map +1 -1
  296. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
  297. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  298. package/build-module/responsive-wrapper/index.js +12 -12
  299. package/build-module/responsive-wrapper/index.js.map +1 -1
  300. package/build-module/select-control/index.js +20 -17
  301. package/build-module/select-control/index.js.map +1 -1
  302. package/build-module/toolbar/toolbar-button/index.js +32 -9
  303. package/build-module/toolbar/toolbar-button/index.js.map +1 -1
  304. package/build-module/toolbar/toolbar-button/toolbar-button-container.js +12 -4
  305. package/build-module/toolbar/toolbar-button/toolbar-button-container.js.map +1 -1
  306. package/build-module/toolbar/toolbar-button/types.js +2 -0
  307. package/build-module/toolbar/toolbar-button/types.js.map +1 -0
  308. package/build-module/toolbar/toolbar-context/index.js +4 -2
  309. package/build-module/toolbar/toolbar-context/index.js.map +1 -1
  310. package/build-module/tools-panel/context.js +2 -0
  311. package/build-module/tools-panel/context.js.map +1 -1
  312. package/build-module/tools-panel/tools-panel/hook.js +18 -12
  313. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  314. package/build-module/tools-panel/tools-panel-item/hook.js +14 -2
  315. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  316. package/build-module/tooltip/index.js +16 -6
  317. package/build-module/tooltip/index.js.map +1 -1
  318. package/build-module/tree-select/index.js.map +1 -1
  319. package/build-module/ui/context/context-system-provider.js +7 -4
  320. package/build-module/ui/context/context-system-provider.js.map +1 -1
  321. package/build-module/ui/context/get-styled-class-name-from-key.js +1 -1
  322. package/build-module/ui/context/get-styled-class-name-from-key.js.map +1 -1
  323. package/build-module/utils/font.js +3 -6
  324. package/build-module/utils/font.js.map +1 -1
  325. package/build-module/v-stack/hook.js +2 -0
  326. package/build-module/v-stack/hook.js.map +1 -1
  327. package/build-style/style-rtl.css +15 -11
  328. package/build-style/style.css +15 -11
  329. package/build-types/alignment-matrix-control/types.d.ts +4 -4
  330. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  331. package/build-types/angle-picker-control/types.d.ts +2 -2
  332. package/build-types/angle-picker-control/types.d.ts.map +1 -1
  333. package/build-types/animate/index.d.ts +2 -2
  334. package/build-types/animate/index.d.ts.map +1 -1
  335. package/build-types/animation/index.d.ts +8 -1
  336. package/build-types/animation/index.d.ts.map +1 -1
  337. package/build-types/autocomplete/autocompleter-ui.d.ts +4 -0
  338. package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -0
  339. package/build-types/autocomplete/get-default-use-items.d.ts +3 -0
  340. package/build-types/autocomplete/get-default-use-items.d.ts.map +1 -0
  341. package/build-types/autocomplete/index.d.ts +23 -0
  342. package/build-types/autocomplete/index.d.ts.map +1 -0
  343. package/build-types/autocomplete/test/index.d.ts +2 -0
  344. package/build-types/autocomplete/test/index.d.ts.map +1 -0
  345. package/build-types/autocomplete/types.d.ts +201 -0
  346. package/build-types/autocomplete/types.d.ts.map +1 -0
  347. package/build-types/base-control/types.d.ts +2 -2
  348. package/build-types/base-control/types.d.ts.map +1 -1
  349. package/build-types/border-box-control/border-box-control/hook.d.ts +1 -1
  350. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  351. package/build-types/border-box-control/styles.d.ts +3 -3
  352. package/build-types/border-box-control/styles.d.ts.map +1 -1
  353. package/build-types/border-box-control/types.d.ts +8 -8
  354. package/build-types/border-box-control/types.d.ts.map +1 -1
  355. package/build-types/border-box-control/utils.d.ts +5 -5
  356. package/build-types/border-box-control/utils.d.ts.map +1 -1
  357. package/build-types/border-control/border-control/hook.d.ts +3 -3
  358. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  359. package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
  360. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  361. package/build-types/border-control/styles.d.ts +4 -4
  362. package/build-types/border-control/styles.d.ts.map +1 -1
  363. package/build-types/border-control/types.d.ts +6 -6
  364. package/build-types/border-control/types.d.ts.map +1 -1
  365. package/build-types/box-control/types.d.ts +6 -6
  366. package/build-types/box-control/types.d.ts.map +1 -1
  367. package/build-types/button/deprecated.d.ts +6 -6
  368. package/build-types/button/types.d.ts +10 -10
  369. package/build-types/button/types.d.ts.map +1 -1
  370. package/build-types/button-group/types.d.ts +1 -1
  371. package/build-types/button-group/types.d.ts.map +1 -1
  372. package/build-types/card/card/hook.d.ts +1 -1
  373. package/build-types/card/card/hook.d.ts.map +1 -1
  374. package/build-types/card/types.d.ts +10 -10
  375. package/build-types/card/types.d.ts.map +1 -1
  376. package/build-types/checkbox-control/types.d.ts +1 -1
  377. package/build-types/checkbox-control/types.d.ts.map +1 -1
  378. package/build-types/circular-option-picker/index.d.ts +56 -7
  379. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  380. package/build-types/circular-option-picker/stories/index.d.ts +14 -0
  381. package/build-types/circular-option-picker/stories/index.d.ts.map +1 -0
  382. package/build-types/circular-option-picker/types.d.ts +49 -0
  383. package/build-types/circular-option-picker/types.d.ts.map +1 -0
  384. package/build-types/color-indicator/types.d.ts +1 -1
  385. package/build-types/color-indicator/types.d.ts.map +1 -1
  386. package/build-types/color-list-picker/types.d.ts +2 -2
  387. package/build-types/color-list-picker/types.d.ts.map +1 -1
  388. package/build-types/color-palette/types.d.ts +7 -7
  389. package/build-types/color-palette/types.d.ts.map +1 -1
  390. package/build-types/color-palette/utils.d.ts +1 -1
  391. package/build-types/color-palette/utils.d.ts.map +1 -1
  392. package/build-types/color-picker/legacy-adapter.d.ts +1 -1
  393. package/build-types/color-picker/legacy-adapter.d.ts.map +1 -1
  394. package/build-types/color-picker/styles.d.ts +3 -3
  395. package/build-types/color-picker/types.d.ts +2 -2
  396. package/build-types/color-picker/types.d.ts.map +1 -1
  397. package/build-types/color-picker/use-deprecated-props.d.ts +2 -2
  398. package/build-types/color-picker/use-deprecated-props.d.ts.map +1 -1
  399. package/build-types/combobox-control/types.d.ts +2 -2
  400. package/build-types/combobox-control/types.d.ts.map +1 -1
  401. package/build-types/confirm-dialog/component.d.ts +4 -4
  402. package/build-types/confirm-dialog/types.d.ts +5 -5
  403. package/build-types/confirm-dialog/types.d.ts.map +1 -1
  404. package/build-types/custom-gradient-picker/constants.d.ts +25 -0
  405. package/build-types/custom-gradient-picker/constants.d.ts.map +1 -0
  406. package/build-types/custom-gradient-picker/gradient-bar/constants.d.ts +8 -0
  407. package/build-types/custom-gradient-picker/gradient-bar/constants.d.ts.map +1 -0
  408. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts +25 -0
  409. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -0
  410. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts +10 -0
  411. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -0
  412. package/build-types/custom-gradient-picker/gradient-bar/utils.d.ts +138 -0
  413. package/build-types/custom-gradient-picker/gradient-bar/utils.d.ts.map +1 -0
  414. package/build-types/custom-gradient-picker/index.d.ts +7 -0
  415. package/build-types/custom-gradient-picker/index.d.ts.map +1 -0
  416. package/build-types/custom-gradient-picker/serializer.d.ts +17 -0
  417. package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -0
  418. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +11 -0
  419. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts.map +1 -0
  420. package/build-types/custom-gradient-picker/utils.d.ts +5 -0
  421. package/build-types/custom-gradient-picker/utils.d.ts.map +1 -0
  422. package/build-types/custom-select-control/styles.d.ts +1 -1
  423. package/build-types/custom-select-control/styles.d.ts.map +1 -1
  424. package/build-types/dashicon/types.d.ts +2 -2
  425. package/build-types/dashicon/types.d.ts.map +1 -1
  426. package/build-types/date-time/date-time/styles.d.ts +1 -4
  427. package/build-types/date-time/date-time/styles.d.ts.map +1 -1
  428. package/build-types/date-time/time/styles.d.ts +1 -1
  429. package/build-types/date-time/types.d.ts +4 -4
  430. package/build-types/date-time/types.d.ts.map +1 -1
  431. package/build-types/dimension-control/index.d.ts +28 -0
  432. package/build-types/dimension-control/index.d.ts.map +1 -0
  433. package/build-types/dimension-control/sizes.d.ts +26 -0
  434. package/build-types/dimension-control/sizes.d.ts.map +1 -0
  435. package/build-types/dimension-control/stories/index.d.ts +12 -0
  436. package/build-types/dimension-control/stories/index.d.ts.map +1 -0
  437. package/build-types/dimension-control/types.d.ts +47 -0
  438. package/build-types/dimension-control/types.d.ts.map +1 -0
  439. package/build-types/divider/types.d.ts +1 -1
  440. package/build-types/divider/types.d.ts.map +1 -1
  441. package/build-types/draggable/types.d.ts +1 -1
  442. package/build-types/draggable/types.d.ts.map +1 -1
  443. package/build-types/drop-zone/types.d.ts +2 -2
  444. package/build-types/drop-zone/types.d.ts.map +1 -1
  445. package/build-types/dropdown/types.d.ts +3 -3
  446. package/build-types/dropdown/types.d.ts.map +1 -1
  447. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  448. package/build-types/elevation/types.d.ts +1 -1
  449. package/build-types/elevation/types.d.ts.map +1 -1
  450. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  451. package/build-types/external-link/types.d.ts +1 -1
  452. package/build-types/external-link/types.d.ts.map +1 -1
  453. package/build-types/flex/types.d.ts +4 -4
  454. package/build-types/flex/types.d.ts.map +1 -1
  455. package/build-types/focal-point-picker/types.d.ts +7 -7
  456. package/build-types/focal-point-picker/types.d.ts.map +1 -1
  457. package/build-types/font-size-picker/index.d.ts.map +1 -1
  458. package/build-types/font-size-picker/stories/index.d.ts.map +1 -1
  459. package/build-types/font-size-picker/types.d.ts +9 -5
  460. package/build-types/font-size-picker/types.d.ts.map +1 -1
  461. package/build-types/form-file-upload/types.d.ts +1 -1
  462. package/build-types/form-file-upload/types.d.ts.map +1 -1
  463. package/build-types/form-toggle/types.d.ts +1 -1
  464. package/build-types/form-toggle/types.d.ts.map +1 -1
  465. package/build-types/form-token-field/index.d.ts.map +1 -1
  466. package/build-types/form-token-field/stories/index.d.ts +6 -0
  467. package/build-types/form-token-field/stories/index.d.ts.map +1 -1
  468. package/build-types/form-token-field/styles.d.ts +1 -1
  469. package/build-types/form-token-field/styles.d.ts.map +1 -1
  470. package/build-types/form-token-field/types.d.ts +1 -1
  471. package/build-types/form-token-field/types.d.ts.map +1 -1
  472. package/build-types/gradient-picker/index.d.ts +12 -0
  473. package/build-types/gradient-picker/index.d.ts.map +1 -0
  474. package/build-types/grid/types.d.ts +2 -2
  475. package/build-types/grid/types.d.ts.map +1 -1
  476. package/build-types/guide/icons.d.ts +5 -0
  477. package/build-types/guide/icons.d.ts.map +1 -0
  478. package/build-types/guide/index.d.ts +37 -0
  479. package/build-types/guide/index.d.ts.map +1 -0
  480. package/build-types/guide/page-control.d.ts +4 -0
  481. package/build-types/guide/page-control.d.ts.map +1 -0
  482. package/build-types/guide/page.d.ts +7 -0
  483. package/build-types/guide/page.d.ts.map +1 -0
  484. package/build-types/guide/stories/index.d.ts +9 -0
  485. package/build-types/guide/stories/index.d.ts.map +1 -0
  486. package/build-types/guide/test/index.d.ts +2 -0
  487. package/build-types/guide/test/index.d.ts.map +1 -0
  488. package/build-types/guide/types.d.ts +65 -0
  489. package/build-types/guide/types.d.ts.map +1 -0
  490. package/build-types/h-stack/stories/e2e/index.d.ts +9 -0
  491. package/build-types/h-stack/stories/e2e/index.d.ts.map +1 -0
  492. package/build-types/h-stack/types.d.ts +6 -6
  493. package/build-types/h-stack/types.d.ts.map +1 -1
  494. package/build-types/heading/hook.d.ts +1 -1
  495. package/build-types/heading/types.d.ts +2 -2
  496. package/build-types/heading/types.d.ts.map +1 -1
  497. package/build-types/higher-order/navigate-regions/index.d.ts +46 -0
  498. package/build-types/higher-order/navigate-regions/index.d.ts.map +1 -0
  499. package/build-types/higher-order/with-constrained-tabbing/index.d.ts +10 -1
  500. package/build-types/higher-order/with-constrained-tabbing/index.d.ts.map +1 -1
  501. package/build-types/higher-order/with-fallback-styles/index.d.ts +44 -0
  502. package/build-types/higher-order/with-fallback-styles/index.d.ts.map +1 -0
  503. package/build-types/higher-order/with-filters/index.d.ts +89 -0
  504. package/build-types/higher-order/with-filters/index.d.ts.map +1 -0
  505. package/build-types/higher-order/with-filters/test/index.d.ts +2 -0
  506. package/build-types/higher-order/with-filters/test/index.d.ts.map +1 -0
  507. package/build-types/higher-order/with-focus-outside/index.d.ts +1 -1
  508. package/build-types/higher-order/with-focus-return/index.d.ts +20 -0
  509. package/build-types/higher-order/with-focus-return/index.d.ts.map +1 -0
  510. package/build-types/higher-order/with-focus-return/test/index.d.ts +2 -0
  511. package/build-types/higher-order/with-focus-return/test/index.d.ts.map +1 -0
  512. package/build-types/higher-order/with-notices/index.d.ts +37 -0
  513. package/build-types/higher-order/with-notices/index.d.ts.map +1 -0
  514. package/build-types/higher-order/with-notices/test/index.d.ts +2 -0
  515. package/build-types/higher-order/with-notices/test/index.d.ts.map +1 -0
  516. package/build-types/higher-order/with-notices/types.d.ts +34 -0
  517. package/build-types/higher-order/with-notices/types.d.ts.map +1 -0
  518. package/build-types/higher-order/with-spoken-messages/index.d.ts +13 -2
  519. package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
  520. package/build-types/higher-order/with-spoken-messages/test/index.d.ts +2 -0
  521. package/build-types/higher-order/with-spoken-messages/test/index.d.ts.map +1 -0
  522. package/build-types/icon/index.d.ts +10 -6
  523. package/build-types/icon/index.d.ts.map +1 -1
  524. package/build-types/icon/test/index.d.ts +2 -0
  525. package/build-types/icon/test/index.d.ts.map +1 -0
  526. package/build-types/input-control/reducer/actions.d.ts +15 -15
  527. package/build-types/input-control/reducer/actions.d.ts.map +1 -1
  528. package/build-types/input-control/reducer/state.d.ts +1 -1
  529. package/build-types/input-control/reducer/state.d.ts.map +1 -1
  530. package/build-types/input-control/styles/input-control-styles.d.ts +4 -4
  531. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  532. package/build-types/input-control/types.d.ts +7 -7
  533. package/build-types/input-control/types.d.ts.map +1 -1
  534. package/build-types/item-group/item/hook.d.ts +1 -1
  535. package/build-types/item-group/types.d.ts +2 -2
  536. package/build-types/item-group/types.d.ts.map +1 -1
  537. package/build-types/keyboard-shortcuts/types.d.ts +3 -3
  538. package/build-types/keyboard-shortcuts/types.d.ts.map +1 -1
  539. package/build-types/menu-group/types.d.ts +1 -1
  540. package/build-types/menu-group/types.d.ts.map +1 -1
  541. package/build-types/menu-item/index.d.ts +1 -1
  542. package/build-types/menu-items-choice/types.d.ts +2 -2
  543. package/build-types/menu-items-choice/types.d.ts.map +1 -1
  544. package/build-types/modal/types.d.ts +1 -1
  545. package/build-types/modal/types.d.ts.map +1 -1
  546. package/build-types/navigable-container/container.d.ts +1 -1
  547. package/build-types/navigable-container/menu.d.ts +1 -1
  548. package/build-types/navigable-container/tabbable.d.ts +1 -1
  549. package/build-types/navigation/back-button/index.d.ts +5 -0
  550. package/build-types/navigation/back-button/index.d.ts.map +1 -0
  551. package/build-types/navigation/constants.d.ts +3 -0
  552. package/build-types/navigation/constants.d.ts.map +1 -0
  553. package/build-types/navigation/context.d.ts +5 -0
  554. package/build-types/navigation/context.d.ts.map +1 -0
  555. package/build-types/navigation/group/context.d.ts +8 -0
  556. package/build-types/navigation/group/context.d.ts.map +1 -0
  557. package/build-types/navigation/group/index.d.ts +5 -0
  558. package/build-types/navigation/group/index.d.ts.map +1 -0
  559. package/build-types/navigation/index.d.ts +46 -0
  560. package/build-types/navigation/index.d.ts.map +1 -0
  561. package/build-types/navigation/item/base-content.d.ts +4 -0
  562. package/build-types/navigation/item/base-content.d.ts.map +1 -0
  563. package/build-types/navigation/item/base.d.ts +4 -0
  564. package/build-types/navigation/item/base.d.ts.map +1 -0
  565. package/build-types/navigation/item/index.d.ts +5 -0
  566. package/build-types/navigation/item/index.d.ts.map +1 -0
  567. package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
  568. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
  569. package/build-types/navigation/menu/context.d.ts +8 -0
  570. package/build-types/navigation/menu/context.d.ts.map +1 -0
  571. package/build-types/navigation/menu/index.d.ts +5 -0
  572. package/build-types/navigation/menu/index.d.ts.map +1 -0
  573. package/build-types/navigation/menu/menu-title-search.d.ts +4 -0
  574. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
  575. package/build-types/navigation/menu/menu-title.d.ts +4 -0
  576. package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
  577. package/build-types/navigation/menu/search-no-results-found.d.ts +4 -0
  578. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
  579. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
  580. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
  581. package/build-types/navigation/stories/index.d.ts +18 -0
  582. package/build-types/navigation/stories/index.d.ts.map +1 -0
  583. package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
  584. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
  585. package/build-types/navigation/stories/utils/default.d.ts +10 -0
  586. package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
  587. package/build-types/navigation/stories/utils/group.d.ts +10 -0
  588. package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
  589. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
  590. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
  591. package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
  592. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
  593. package/build-types/navigation/stories/utils/search.d.ts +10 -0
  594. package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
  595. package/build-types/navigation/styles/navigation-styles.d.ts +58 -0
  596. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
  597. package/build-types/navigation/test/index.d.ts +2 -0
  598. package/build-types/navigation/test/index.d.ts.map +1 -0
  599. package/build-types/navigation/types.d.ts +267 -0
  600. package/build-types/navigation/types.d.ts.map +1 -0
  601. package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
  602. package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
  603. package/build-types/navigation/use-navigation-tree-nodes.d.ts +11 -0
  604. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
  605. package/build-types/navigation/utils.d.ts +3 -0
  606. package/build-types/navigation/utils.d.ts.map +1 -0
  607. package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
  608. package/build-types/navigator/navigator-back-button/hook.d.ts +1 -1
  609. package/build-types/navigator/navigator-button/component.d.ts +1 -1
  610. package/build-types/navigator/navigator-button/hook.d.ts +1 -1
  611. package/build-types/navigator/navigator-screen/component.d.ts +1 -1
  612. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  613. package/build-types/navigator/navigator-to-parent-button/component.d.ts +1 -1
  614. package/build-types/navigator/types.d.ts +12 -12
  615. package/build-types/navigator/types.d.ts.map +1 -1
  616. package/build-types/notice/types.d.ts +7 -7
  617. package/build-types/notice/types.d.ts.map +1 -1
  618. package/build-types/number-control/index.d.ts.map +1 -1
  619. package/build-types/number-control/types.d.ts +1 -1
  620. package/build-types/number-control/types.d.ts.map +1 -1
  621. package/build-types/palette-edit/index.d.ts +37 -0
  622. package/build-types/palette-edit/index.d.ts.map +1 -0
  623. package/build-types/palette-edit/stories/index.d.ts +13 -0
  624. package/build-types/palette-edit/stories/index.d.ts.map +1 -0
  625. package/build-types/palette-edit/styles.d.ts +51 -0
  626. package/build-types/palette-edit/styles.d.ts.map +1 -0
  627. package/build-types/palette-edit/test/index.d.ts +2 -0
  628. package/build-types/palette-edit/test/index.d.ts.map +1 -0
  629. package/build-types/palette-edit/types.d.ts +114 -0
  630. package/build-types/palette-edit/types.d.ts.map +1 -0
  631. package/build-types/panel/body.d.ts +9 -0
  632. package/build-types/panel/body.d.ts.map +1 -0
  633. package/build-types/panel/stories/index.d.ts +19 -0
  634. package/build-types/panel/stories/index.d.ts.map +1 -0
  635. package/build-types/panel/test/body.d.ts +2 -0
  636. package/build-types/panel/test/body.d.ts.map +1 -0
  637. package/build-types/panel/types.d.ts +73 -3
  638. package/build-types/panel/types.d.ts.map +1 -1
  639. package/build-types/placeholder/index.d.ts +1 -1
  640. package/build-types/placeholder/index.d.ts.map +1 -1
  641. package/build-types/placeholder/types.d.ts +2 -2
  642. package/build-types/placeholder/types.d.ts.map +1 -1
  643. package/build-types/popover/limit-shift.d.ts +2 -2
  644. package/build-types/popover/limit-shift.d.ts.map +1 -1
  645. package/build-types/popover/types.d.ts +10 -10
  646. package/build-types/popover/types.d.ts.map +1 -1
  647. package/build-types/popover/utils.d.ts +2 -2
  648. package/build-types/popover/utils.d.ts.map +1 -1
  649. package/build-types/query-controls/author-select.d.ts.map +1 -1
  650. package/build-types/query-controls/category-select.d.ts.map +1 -1
  651. package/build-types/query-controls/terms.d.ts.map +1 -1
  652. package/build-types/query-controls/types.d.ts +12 -12
  653. package/build-types/query-controls/types.d.ts.map +1 -1
  654. package/build-types/radio-control/types.d.ts +1 -1
  655. package/build-types/radio-control/types.d.ts.map +1 -1
  656. package/build-types/radio-group/index.d.ts +1 -1
  657. package/build-types/radio-group/radio/index.d.ts +1 -1
  658. package/build-types/range-control/index.d.ts +2 -2
  659. package/build-types/range-control/types.d.ts +17 -17
  660. package/build-types/range-control/types.d.ts.map +1 -1
  661. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  662. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  663. package/build-types/resizable-box/resize-tooltip/label.d.ts +1 -1
  664. package/build-types/resizable-box/resize-tooltip/label.d.ts.map +1 -1
  665. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  666. package/build-types/resizable-box/resize-tooltip/utils.d.ts +2 -2
  667. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  668. package/build-types/responsive-wrapper/index.d.ts.map +1 -1
  669. package/build-types/responsive-wrapper/stories/index.d.ts +10 -0
  670. package/build-types/responsive-wrapper/stories/index.d.ts.map +1 -1
  671. package/build-types/responsive-wrapper/types.d.ts +3 -3
  672. package/build-types/responsive-wrapper/types.d.ts.map +1 -1
  673. package/build-types/sandbox/types.d.ts +1 -1
  674. package/build-types/sandbox/types.d.ts.map +1 -1
  675. package/build-types/scrollable/types.d.ts +2 -2
  676. package/build-types/scrollable/types.d.ts.map +1 -1
  677. package/build-types/search-control/types.d.ts +1 -1
  678. package/build-types/search-control/types.d.ts.map +1 -1
  679. package/build-types/select-control/index.d.ts +2 -1
  680. package/build-types/select-control/index.d.ts.map +1 -1
  681. package/build-types/select-control/stories/index.d.ts +3 -3
  682. package/build-types/select-control/stories/index.d.ts.map +1 -1
  683. package/build-types/select-control/types.d.ts +44 -20
  684. package/build-types/select-control/types.d.ts.map +1 -1
  685. package/build-types/shortcut/types.d.ts +1 -1
  686. package/build-types/shortcut/types.d.ts.map +1 -1
  687. package/build-types/slot-fill/bubbles-virtually/slot.d.ts +1 -1
  688. package/build-types/slot-fill/provider.d.ts +1 -0
  689. package/build-types/slot-fill/provider.d.ts.map +1 -1
  690. package/build-types/snackbar/types.d.ts +3 -3
  691. package/build-types/snackbar/types.d.ts.map +1 -1
  692. package/build-types/spacer/types.d.ts +1 -1
  693. package/build-types/spacer/types.d.ts.map +1 -1
  694. package/build-types/spinner/index.d.ts +1 -1
  695. package/build-types/style-provider/types.d.ts +1 -1
  696. package/build-types/style-provider/types.d.ts.map +1 -1
  697. package/build-types/surface/types.d.ts +2 -2
  698. package/build-types/surface/types.d.ts.map +1 -1
  699. package/build-types/tab-panel/stories/index.d.ts +1 -0
  700. package/build-types/tab-panel/stories/index.d.ts.map +1 -1
  701. package/build-types/tab-panel/types.d.ts +5 -5
  702. package/build-types/tab-panel/types.d.ts.map +1 -1
  703. package/build-types/text/types.d.ts +3 -3
  704. package/build-types/text/types.d.ts.map +1 -1
  705. package/build-types/text-control/types.d.ts +1 -1
  706. package/build-types/text-control/types.d.ts.map +1 -1
  707. package/build-types/text-highlight/types.d.ts +1 -1
  708. package/build-types/text-highlight/types.d.ts.map +1 -1
  709. package/build-types/textarea-control/types.d.ts +1 -1
  710. package/build-types/textarea-control/types.d.ts.map +1 -1
  711. package/build-types/theme/types.d.ts +3 -3
  712. package/build-types/theme/types.d.ts.map +1 -1
  713. package/build-types/tip/types.d.ts +1 -1
  714. package/build-types/tip/types.d.ts.map +1 -1
  715. package/build-types/toggle-control/types.d.ts +1 -1
  716. package/build-types/toggle-control/types.d.ts.map +1 -1
  717. package/build-types/toggle-group-control/types.d.ts +10 -10
  718. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  719. package/build-types/toolbar/toolbar/types.d.ts +1 -1
  720. package/build-types/toolbar/toolbar/types.d.ts.map +1 -1
  721. package/build-types/toolbar/toolbar-button/index.d.ts +165 -11
  722. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  723. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts +6 -1
  724. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -1
  725. package/build-types/toolbar/toolbar-button/types.d.ts +45 -0
  726. package/build-types/toolbar/toolbar-button/types.d.ts.map +1 -0
  727. package/build-types/toolbar/toolbar-context/index.d.ts +6 -1
  728. package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -1
  729. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +1 -1
  730. package/build-types/toolbar/toolbar-item/index.d.ts +1 -1
  731. package/build-types/tools-panel/context.d.ts.map +1 -1
  732. package/build-types/tools-panel/test/index.d.ts +2 -0
  733. package/build-types/tools-panel/test/index.d.ts.map +1 -0
  734. package/build-types/tools-panel/tools-panel/hook.d.ts +3 -1
  735. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  736. package/build-types/tools-panel/tools-panel-header/hook.d.ts +1 -1
  737. package/build-types/tools-panel/tools-panel-item/component.d.ts +1 -0
  738. package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
  739. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  740. package/build-types/tools-panel/types.d.ts +21 -19
  741. package/build-types/tools-panel/types.d.ts.map +1 -1
  742. package/build-types/tooltip/index.d.ts.map +1 -1
  743. package/build-types/tree-grid/types.d.ts +5 -5
  744. package/build-types/tree-grid/types.d.ts.map +1 -1
  745. package/build-types/tree-select/index.d.ts.map +1 -1
  746. package/build-types/tree-select/types.d.ts +4 -10
  747. package/build-types/tree-select/types.d.ts.map +1 -1
  748. package/build-types/truncate/types.d.ts +2 -2
  749. package/build-types/truncate/types.d.ts.map +1 -1
  750. package/build-types/ui/context/context-connect.d.ts +1 -1
  751. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  752. package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
  753. package/build-types/ui/context/wordpress-component.d.ts +3 -3
  754. package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
  755. package/build-types/ui/control-group/types.d.ts +2 -2
  756. package/build-types/ui/control-group/types.d.ts.map +1 -1
  757. package/build-types/ui/control-label/types.d.ts +1 -1
  758. package/build-types/ui/control-label/types.d.ts.map +1 -1
  759. package/build-types/ui/form-group/form-group-content.d.ts +1 -1
  760. package/build-types/ui/form-group/form-group-help.d.ts +1 -1
  761. package/build-types/ui/form-group/form-group-label.d.ts +1 -1
  762. package/build-types/ui/form-group/types.d.ts +5 -5
  763. package/build-types/ui/form-group/types.d.ts.map +1 -1
  764. package/build-types/ui/form-group/use-form-group.d.ts +3 -3
  765. package/build-types/ui/spinner/component.d.ts +1 -1
  766. package/build-types/ui/tooltip/content.d.ts +1 -1
  767. package/build-types/ui/tooltip/types.d.ts +2 -2
  768. package/build-types/ui/tooltip/types.d.ts.map +1 -1
  769. package/build-types/ui/utils/font-size.d.ts +1 -1
  770. package/build-types/ui/utils/font-size.d.ts.map +1 -1
  771. package/build-types/ui/utils/space.d.ts +1 -1
  772. package/build-types/ui/utils/space.d.ts.map +1 -1
  773. package/build-types/ui/utils/types.d.ts +4 -4
  774. package/build-types/ui/utils/types.d.ts.map +1 -1
  775. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  776. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  777. package/build-types/unit-control/types.d.ts +5 -5
  778. package/build-types/unit-control/types.d.ts.map +1 -1
  779. package/build-types/utils/breakpoint-values.d.ts +1 -1
  780. package/build-types/utils/colors-values.d.ts +1 -1
  781. package/build-types/utils/config-values.d.ts +9 -9
  782. package/build-types/utils/events.d.ts +1 -1
  783. package/build-types/utils/events.d.ts.map +1 -1
  784. package/build-types/utils/font-values.d.ts +1 -1
  785. package/build-types/utils/font.d.ts.map +1 -1
  786. package/build-types/utils/hooks/use-controlled-value.d.ts +1 -1
  787. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  788. package/build-types/utils/types.d.ts +4 -4
  789. package/build-types/utils/types.d.ts.map +1 -1
  790. package/build-types/v-stack/component.d.ts +1 -4
  791. package/build-types/v-stack/component.d.ts.map +1 -1
  792. package/build-types/v-stack/hook.d.ts.map +1 -1
  793. package/build-types/v-stack/stories/e2e/index.d.ts +9 -0
  794. package/build-types/v-stack/stories/e2e/index.d.ts.map +1 -0
  795. package/build-types/v-stack/stories/index.d.ts +1 -4
  796. package/build-types/v-stack/stories/index.d.ts.map +1 -1
  797. package/build-types/v-stack/types.d.ts +5 -3
  798. package/build-types/v-stack/types.d.ts.map +1 -1
  799. package/build-types/view/types.d.ts +1 -1
  800. package/build-types/view/types.d.ts.map +1 -1
  801. package/build-types/visually-hidden/types.d.ts +1 -1
  802. package/build-types/visually-hidden/types.d.ts.map +1 -1
  803. package/build-types/z-stack/types.d.ts +1 -1
  804. package/build-types/z-stack/types.d.ts.map +1 -1
  805. package/package.json +24 -22
  806. package/src/animate/index.js +3 -1
  807. package/src/autocomplete/README.md +51 -0
  808. package/src/autocomplete/autocompleter-ui.tsx +167 -0
  809. package/src/autocomplete/{get-default-use-items.js → get-default-use-items.tsx} +11 -6
  810. package/src/autocomplete/{index.js → index.tsx} +107 -141
  811. package/src/autocomplete/test/{index.js → index.tsx} +31 -20
  812. package/src/autocomplete/types.ts +220 -0
  813. package/src/border-control/test/index.js +0 -2
  814. package/src/button/style.scss +12 -1
  815. package/src/button/types.ts +2 -2
  816. package/src/circular-option-picker/README.md +141 -0
  817. package/src/circular-option-picker/{index.js → index.tsx} +74 -14
  818. package/src/circular-option-picker/stories/index.tsx +134 -0
  819. package/src/circular-option-picker/types.ts +69 -0
  820. package/src/color-palette/test/__snapshots__/index.tsx.snap +17 -15
  821. package/src/custom-gradient-picker/gradient-bar/control-points.js +2 -0
  822. package/src/custom-gradient-picker/gradient-bar/index.js +2 -0
  823. package/src/custom-gradient-picker/gradient-bar/utils.js +2 -0
  824. package/src/custom-gradient-picker/index.js +2 -0
  825. package/src/custom-gradient-picker/serializer.js +2 -0
  826. package/src/custom-gradient-picker/utils.js +2 -0
  827. package/src/dimension-control/README.md +22 -55
  828. package/src/dimension-control/index.tsx +101 -0
  829. package/src/dimension-control/{sizes.js → sizes.ts} +8 -5
  830. package/src/dimension-control/stories/index.tsx +48 -0
  831. package/src/dimension-control/types.ts +48 -0
  832. package/src/dropdown-menu/index.js +6 -3
  833. package/src/flex/flex/hook.ts +2 -2
  834. package/src/font-size-picker/README.md +26 -20
  835. package/src/font-size-picker/index.tsx +2 -1
  836. package/src/font-size-picker/stories/index.tsx +1 -0
  837. package/src/font-size-picker/test/index.tsx +23 -0
  838. package/src/font-size-picker/types.ts +4 -0
  839. package/src/form-token-field/index.tsx +4 -1
  840. package/src/form-token-field/stories/index.tsx +13 -0
  841. package/src/form-token-field/test/index.tsx +80 -0
  842. package/src/gradient-picker/index.js +2 -0
  843. package/src/guide/README.md +17 -15
  844. package/src/guide/{icons.js → icons.tsx} +1 -1
  845. package/src/guide/{index.js → index.tsx} +47 -7
  846. package/src/guide/{page-control.js → page-control.tsx} +2 -1
  847. package/src/guide/{page.js → page.tsx} +8 -1
  848. package/src/guide/stories/{index.js → index.tsx} +11 -5
  849. package/src/guide/test/{index.js → index.tsx} +22 -4
  850. package/src/guide/types.ts +68 -0
  851. package/src/h-stack/README.md +2 -2
  852. package/src/h-stack/stories/e2e/index.tsx +36 -0
  853. package/src/h-stack/types.ts +2 -2
  854. package/src/h-stack/utils.ts +3 -3
  855. package/src/higher-order/navigate-regions/{index.js → index.tsx} +47 -11
  856. package/src/higher-order/navigate-regions/style.scss +2 -1
  857. package/src/higher-order/with-constrained-tabbing/index.tsx +30 -0
  858. package/src/higher-order/with-fallback-styles/{index.js → index.tsx} +22 -5
  859. package/src/higher-order/with-filters/{index.js → index.tsx} +44 -12
  860. package/src/higher-order/with-filters/test/{index.js → index.tsx} +5 -1
  861. package/src/higher-order/with-focus-return/index.tsx +74 -0
  862. package/src/higher-order/with-focus-return/test/{index.js → index.tsx} +2 -2
  863. package/src/higher-order/with-notices/README.md +4 -1
  864. package/src/higher-order/with-notices/index.tsx +116 -0
  865. package/src/higher-order/with-notices/test/{index.js → index.tsx} +11 -6
  866. package/src/higher-order/with-notices/types.ts +35 -0
  867. package/src/higher-order/with-spoken-messages/test/{index.js → index.tsx} +2 -1
  868. package/src/icon/index.tsx +11 -15
  869. package/src/icon/test/{index.js → index.tsx} +6 -2
  870. package/src/index.native.js +1 -0
  871. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +1 -1
  872. package/src/mobile/bottom-sheet/cell.native.js +1 -1
  873. package/src/mobile/bottom-sheet-text-control/README.md +8 -1
  874. package/src/mobile/bottom-sheet-text-control/index.native.js +2 -1
  875. package/src/mobile/global-styles-context/utils.native.js +1 -0
  876. package/src/mobile/link-settings/test/link-settings-navigation.native.js +1 -1
  877. package/src/navigation/README.md +16 -2
  878. package/src/navigation/back-button/{index.js → index.tsx} +22 -6
  879. package/src/navigation/{context.js → context.tsx} +8 -5
  880. package/src/navigation/group/context.tsx +15 -0
  881. package/src/navigation/group/{index.js → index.tsx} +9 -1
  882. package/src/navigation/{index.js → index.tsx} +63 -7
  883. package/src/navigation/item/{base-content.js → base-content.tsx} +5 -2
  884. package/src/navigation/item/{base.js → base.tsx} +3 -1
  885. package/src/navigation/item/{index.js → index.tsx} +8 -2
  886. package/src/navigation/item/{use-navigation-tree-item.js → use-navigation-tree-item.tsx} +9 -2
  887. package/src/navigation/menu/context.tsx +18 -0
  888. package/src/navigation/menu/{index.js → index.tsx} +5 -1
  889. package/src/navigation/menu/{menu-title-search.js → menu-title-search.tsx} +11 -7
  890. package/src/navigation/menu/{menu-title.js → menu-title.tsx} +5 -3
  891. package/src/navigation/menu/{search-no-results-found.js → search-no-results-found.tsx} +5 -1
  892. package/src/navigation/menu/{use-navigation-tree-menu.js → use-navigation-tree-menu.tsx} +3 -1
  893. package/src/navigation/stories/index.tsx +53 -0
  894. package/src/navigation/stories/utils/{controlled-state.js → controlled-state.tsx} +32 -13
  895. package/src/navigation/stories/utils/{default.js → default.tsx} +20 -6
  896. package/src/navigation/stories/utils/{group.js → group.tsx} +21 -7
  897. package/src/navigation/stories/utils/{hide-if-empty.js → hide-if-empty.tsx} +19 -6
  898. package/src/navigation/stories/utils/{more-examples.js → more-examples.tsx} +30 -12
  899. package/src/navigation/stories/utils/{search.js → search.tsx} +21 -7
  900. package/src/navigation/test/{index.js → index.tsx} +17 -4
  901. package/src/navigation/types.ts +325 -0
  902. package/src/navigation/{use-create-navigation-tree.js → use-create-navigation-tree.tsx} +37 -25
  903. package/src/navigation/{use-navigation-tree-nodes.js → use-navigation-tree-nodes.tsx} +10 -6
  904. package/src/navigation/{utils.js → utils.tsx} +2 -2
  905. package/src/navigator/navigator-screen/component.tsx +13 -7
  906. package/src/navigator/test/index.tsx +65 -22
  907. package/src/number-control/index.tsx +0 -2
  908. package/src/palette-edit/{index.js → index.tsx} +115 -48
  909. package/src/palette-edit/stories/index.tsx +82 -0
  910. package/src/palette-edit/test/{index.js → index.tsx} +15 -3
  911. package/src/palette-edit/types.ts +126 -0
  912. package/src/panel/README.md +53 -35
  913. package/src/panel/{body.js → body.tsx} +31 -17
  914. package/src/panel/stories/{index.js → index.tsx} +16 -6
  915. package/src/panel/test/{body.js → body.tsx} +12 -17
  916. package/src/panel/types.ts +78 -0
  917. package/src/placeholder/index.tsx +2 -6
  918. package/src/placeholder/test/index.tsx +1 -1
  919. package/src/placeholder/types.ts +2 -2
  920. package/src/popover/test/index.tsx +5 -2
  921. package/src/query-controls/author-select.tsx +1 -6
  922. package/src/query-controls/category-select.tsx +1 -6
  923. package/src/query-controls/terms.ts +29 -18
  924. package/src/range-control/index.tsx +7 -7
  925. package/src/range-control/types.ts +3 -3
  926. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -1
  927. package/src/responsive-wrapper/README.md +8 -2
  928. package/src/responsive-wrapper/index.tsx +18 -17
  929. package/src/responsive-wrapper/stories/index.tsx +41 -0
  930. package/src/responsive-wrapper/style.scss +5 -11
  931. package/src/responsive-wrapper/types.ts +2 -2
  932. package/src/select-control/index.tsx +16 -16
  933. package/src/select-control/stories/index.tsx +24 -12
  934. package/src/select-control/types.ts +68 -40
  935. package/src/tab-panel/stories/index.tsx +41 -0
  936. package/src/tab-panel/test/index.tsx +794 -262
  937. package/src/tab-panel/types.ts +4 -4
  938. package/src/toolbar/toolbar-button/README.md +13 -1
  939. package/src/toolbar/toolbar-button/{index.js → index.tsx} +55 -20
  940. package/src/toolbar/toolbar-button/toolbar-button-container.tsx +13 -0
  941. package/src/toolbar/toolbar-button/types.ts +46 -0
  942. package/src/toolbar/toolbar-context/index.ts +15 -0
  943. package/src/tools-panel/context.ts +2 -0
  944. package/src/tools-panel/test/{index.js → index.tsx} +171 -61
  945. package/src/tools-panel/tools-panel/hook.ts +30 -11
  946. package/src/tools-panel/tools-panel-item/hook.ts +18 -2
  947. package/src/tools-panel/types.ts +12 -9
  948. package/src/tooltip/index.js +11 -1
  949. package/src/tree-grid/test/__snapshots__/index.tsx.snap +1 -1
  950. package/src/tree-select/index.tsx +5 -2
  951. package/src/tree-select/types.ts +6 -13
  952. package/src/ui/context/context-system-provider.js +7 -4
  953. package/src/ui/context/get-styled-class-name-from-key.ts +1 -1
  954. package/src/utils/font.js +1 -6
  955. package/src/v-stack/README.md +2 -2
  956. package/src/v-stack/hook.ts +6 -4
  957. package/src/v-stack/stories/e2e/index.tsx +36 -0
  958. package/src/v-stack/stories/index.tsx +28 -7
  959. package/src/v-stack/test/__snapshots__/index.tsx.snap +20 -18
  960. package/src/v-stack/types.ts +5 -3
  961. package/tsconfig.json +1 -14
  962. package/tsconfig.tsbuildinfo +1 -1
  963. package/src/autocomplete/autocompleter-ui.js +0 -118
  964. package/src/dimension-control/index.js +0 -73
  965. package/src/higher-order/with-constrained-tabbing/index.js +0 -22
  966. package/src/higher-order/with-focus-return/index.js +0 -64
  967. package/src/higher-order/with-notices/index.js +0 -104
  968. package/src/navigation/group/context.js +0 -9
  969. package/src/navigation/menu/context.js +0 -11
  970. package/src/navigation/stories/index.js +0 -33
  971. package/src/toolbar/toolbar-button/toolbar-button-container.js +0 -6
  972. package/src/toolbar/toolbar-context/index.js +0 -10
  973. /package/src/animation/{index.js → index.tsx} +0 -0
  974. /package/src/higher-order/with-filters/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  975. /package/src/higher-order/with-spoken-messages/{index.js → index.tsx} +0 -0
  976. /package/src/navigation/{constants.js → constants.tsx} +0 -0
  977. /package/src/navigation/styles/{navigation-styles.js → navigation-styles.tsx} +0 -0
  978. /package/src/panel/test/__snapshots__/{body.js.snap → body.tsx.snap} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,19 +2,66 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 23.6.0 (2023-03-15)
6
+
7
+ ### Enhancements
8
+
9
+ - `FontSizePicker`: Allow custom units for custom font size control ([#48468](https://github.com/WordPress/gutenberg/pull/48468)).
10
+ - `Navigator`: Disable initial screen animation ([#49062](https://github.com/WordPress/gutenberg/pull/49062)).
11
+ - `FormTokenField`: Hide suggestions list on blur event if the input value is invalid ([#48785](https://github.com/WordPress/gutenberg/pull/48785)).
12
+
13
+ ### Bug Fix
14
+
15
+ - `ResponsiveWrapper`: use `aspect-ratio` CSS prop, add support for `SVG` elements ([#48573](https://github.com/WordPress/gutenberg/pull/48573).
16
+ - `ResizeTooltip`: Use `default.fontFamily` on tooltip ([#48805](https://github.com/WordPress/gutenberg/pull/48805).
17
+
18
+ ### Internal
19
+
20
+ - `Guide`: Convert to TypeScript ([#47493](https://github.com/WordPress/gutenberg/pull/47493)).
21
+ - `SelectControl`: improve prop types for single vs multiple selection ([#47390](https://github.com/WordPress/gutenberg/pull/47390)).
22
+ - `Navigation`: Convert to TypeScript ([#48742](https://github.com/WordPress/gutenberg/pull/48742)).
23
+ - `PanelBody`: Convert to TypeScript ([#47702](https://github.com/WordPress/gutenberg/pull/47702)).
24
+ - `withFilters` HOC: Convert to TypeScript ([#48721](https://github.com/WordPress/gutenberg/pull/48721)).
25
+ - `withFallbackStyles` HOC: Convert to TypeScript ([#48720](https://github.com/WordPress/gutenberg/pull/48720)).
26
+ - `withFocusReturn` HOC: Convert to TypeScript ([#48748](https://github.com/WordPress/gutenberg/pull/48748)).
27
+ - `navigateRegions` HOC: Convert to TypeScript ([#48632](https://github.com/WordPress/gutenberg/pull/48632)).
28
+ - `withSpokenMessages`: HOC: Convert to TypeScript ([#48163](https://github.com/WordPress/gutenberg/pull/48163)).
29
+ - `withNotices`: HOC: Convert to TypeScript ([#49088](https://github.com/WordPress/gutenberg/pull/49088)).
30
+ - `ToolbarButton`: Convert to TypeScript ([#47750](https://github.com/WordPress/gutenberg/pull/47750)).
31
+ - `DimensionControl(Experimental)`: Convert to TypeScript ([#47351](https://github.com/WordPress/gutenberg/pull/47351)).
32
+ - `PaletteEdit`: Convert to TypeScript ([#47764](https://github.com/WordPress/gutenberg/pull/47764)).
33
+ - `QueryControls`: Refactor away from Lodash (`.groupBy`) ([#48779](https://github.com/WordPress/gutenberg/pull/48779)).
34
+ - `ToolbarContext`: Convert to TypeScript ([#49002](https://github.com/WordPress/gutenberg/pull/49002)).
35
+
36
+ ## 23.5.0 (2023-03-01)
37
+
38
+ ### Enhancements
39
+
40
+ - `ToolsPanel`: Separate reset all filter registration from items registration and support global resets ([#48123](https://github.com/WordPress/gutenberg/pull/48123)).
41
+
42
+ ### Internal
43
+
44
+ - `CircularOptionPicker`: Convert to TypeScript ([#47937](https://github.com/WordPress/gutenberg/pull/47937)).
45
+ - `TabPanel`: Improve unit test in preparation for controlled component updates ([#48086](https://github.com/WordPress/gutenberg/pull/48086)).
46
+ - `Autocomplete`: performance: avoid setting state on every value change ([#48485](https://github.com/WordPress/gutenberg/pull/48485)).
47
+ - `Higher Order` -- `with-constrained-tabbing`: Convert to TypeScript ([#48162](https://github.com/WordPress/gutenberg/pull/48162)).
48
+ - `Autocomplete`: Convert to TypeScript ([#47751](https://github.com/WordPress/gutenberg/pull/47751)).
49
+ - `Autocomplete`: avoid calling setState on input ([#48565](https://github.com/WordPress/gutenberg/pull/48565)).
50
+
5
51
  ## 23.4.0 (2023-02-15)
6
52
 
7
53
  ### Bug Fix
8
54
 
9
55
  - `ToolsPanel`: fix type inconsistencies between types, docs and normal component usage ([47944](https://github.com/WordPress/gutenberg/pull/47944)).
10
56
  - `SelectControl`: Fix styling when `multiple` prop is enabled ([#47893](https://github.com/WordPress/gutenberg/pull/43213)).
57
+ - `useAutocompleteProps`, `Autocomplete`: Make accessible when rendered in an iframe ([#47907](https://github.com/WordPress/gutenberg/pull/47907)).
11
58
 
12
59
  ### Enhancements
13
60
 
14
- - `ColorPalette`, `GradientPicker`, `PaletteEdit`, `ToolsPanel`: add new props to set a custom heading level ([43848](https://github.com/WordPress/gutenberg/pull/43848) and [#47788](https://github.com/WordPress/gutenberg/pull/47788)).
61
+ - `ColorPalette`, `GradientPicker`, `PaletteEdit`, `ToolsPanel`: add new props to set a custom heading level ([43848](https://github.com/WordPress/gutenberg/pull/43848) and [#47788](https://github.com/WordPress/gutenberg/pull/47788)).
15
62
  - `ColorPalette`: ensure text label contrast checking works with CSS variables ([#47373](https://github.com/WordPress/gutenberg/pull/47373)).
16
- - `Navigator`: Support dynamic paths with parameters ([#47827](https://github.com/WordPress/gutenberg/pull/47827)).
17
- - `Navigator`: Support hierarchical paths navigation and add `NavigatorToParentButton` component ([#47883](https://github.com/WordPress/gutenberg/pull/47883)).
63
+ - `Navigator`: Support dynamic paths with parameters ([#47827](https://github.com/WordPress/gutenberg/pull/47827)).
64
+ - `Navigator`: Support hierarchical paths navigation and add `NavigatorToParentButton` component ([#47883](https://github.com/WordPress/gutenberg/pull/47883)).
18
65
 
19
66
  ### Internal
20
67
 
@@ -33,6 +80,7 @@
33
80
  - `ToolsPanel`: Ensure display of optional items when values are updated externally and multiple blocks selected ([47864](https://github.com/WordPress/gutenberg/pull/47864)).
34
81
  - `Navigator`: add more pattern matching tests, refine existing tests ([47910](https://github.com/WordPress/gutenberg/pull/47910)).
35
82
  - `ToolsPanel`: Refactor Storybook examples to TypeScript ([47944](https://github.com/WordPress/gutenberg/pull/47944)).
83
+ - `ToolsPanel`: Refactor unit tests to TypeScript ([48275](https://github.com/WordPress/gutenberg/pull/48275)).
36
84
 
37
85
  ## 23.3.0 (2023-02-01)
38
86
 
@@ -42,7 +90,7 @@
42
90
 
43
91
  ### Enhancements
44
92
 
45
- - `Dropdown`: deprecate `position` prop, use `popoverProps` instead ([46865](https://github.com/WordPress/gutenberg/pull/46865)).
93
+ - `Dropdown`: deprecate `position` prop, use `popoverProps` instead ([46865](https://github.com/WordPress/gutenberg/pull/46865)).
46
94
  - `Button`: improve padding for buttons with icon and text. ([46764](https://github.com/WordPress/gutenberg/pull/46764)).
47
95
  - `ColorPalette`: Use computed color when css variable is passed to `ColorPicker` ([47181](https://github.com/WordPress/gutenberg/pull/47181)).
48
96
  - `Popover`: add `overlay` option to the `placement` prop ([47004](https://github.com/WordPress/gutenberg/pull/47004)).
@@ -54,8 +102,7 @@
54
102
  - Removed deprecated `@storybook/addon-knobs` dependency from the package ([47152](https://github.com/WordPress/gutenberg/pull/47152)).
55
103
  - `ColorListPicker`: Convert to TypeScript ([#46358](https://github.com/WordPress/gutenberg/pull/46358)).
56
104
  - `KeyboardShortcuts`: Convert to TypeScript ([#47429](https://github.com/WordPress/gutenberg/pull/47429)).
57
- - `ColorPalette`, `BorderControl`, `GradientPicker`: refine types and logic around single vs multiple palettes
58
- ([#47384](https://github.com/WordPress/gutenberg/pull/47384)).
105
+ - `ColorPalette`, `BorderControl`, `GradientPicker`: refine types and logic around single vs multiple palettes ([#47384](https://github.com/WordPress/gutenberg/pull/47384)).
59
106
  - `Button`: Convert to TypeScript ([#46997](https://github.com/WordPress/gutenberg/pull/46997)).
60
107
  - `QueryControls`: Convert to TypeScript ([#46721](https://github.com/WordPress/gutenberg/pull/46721)).
61
108
  - `TreeGrid`: Convert to TypeScript ([#47516](https://github.com/WordPress/gutenberg/pull/47516)).
@@ -70,6 +117,7 @@
70
117
  ## 23.2.0 (2023-01-11)
71
118
 
72
119
  ### Internal
120
+
73
121
  - `AlignmentMatrixControl`: Update center cell label to 'Center' instead of 'Center Center' ([#46852](https://github.com/WordPress/gutenberg/pull/46852)).
74
122
  - `Toolbar`: move all subcomponents under the same folder ([46951](https://github.com/WordPress/gutenberg/pull/46951)).
75
123
  - `Dashicon`: remove unnecessary type for `className` prop ([46849](https://github.com/WordPress/gutenberg/pull/46849)).
@@ -37,7 +37,7 @@ function getDefaultOrigin(type) {
37
37
  /**
38
38
  * @param {GetAnimateOptions} options
39
39
  *
40
- * @return {string | void} ClassName that applies the animations
40
+ * @return {string | undefined} ClassName that applies the animations
41
41
  */
42
42
 
43
43
 
@@ -62,6 +62,8 @@ function getAnimateClassName(options) {
62
62
  if (type === 'slide-in') {
63
63
  return (0, _classnames.default)('components-animate__slide-in', 'is-from-' + origin);
64
64
  }
65
+
66
+ return undefined;
65
67
  } // @ts-ignore Reason: Planned for deprecation
66
68
 
67
69
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/animate/index.js"],"names":["getDefaultOrigin","type","getAnimateClassName","options","origin","yAxis","xAxis","split","Animate","children","className"],"mappings":";;;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AACA;AACA;AACA;AACA;AACA,SAASA,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,SAAOA,IAAI,KAAK,QAAT,GAAoB,KAApB,GAA4B,MAAnC;AACA;AACD;;AAEA;AACA;AACA;AACA;AACA;;;AACO,SAASC,mBAAT,CAA8BC,OAA9B,EAAwC;AAC9C,MAAKA,OAAO,CAACF,IAAR,KAAiB,SAAtB,EAAkC;AACjC,WAAO,yBAAY,6BAAZ,CAAP;AACA;;AAED,QAAM;AAAEA,IAAAA,IAAF;AAAQG,IAAAA,MAAM,GAAGJ,gBAAgB,CAAEC,IAAF;AAAjC,MAA8CE,OAApD;;AAEA,MAAKF,IAAI,KAAK,QAAd,EAAyB;AACxB,UAAM,CAAEI,KAAF,EAASC,KAAK,GAAG,QAAjB,IAA8BF,MAAM,CAACG,KAAP,CAAc,GAAd,CAApC;AACA,WAAO,yBAAY,4BAAZ,EAA0C;AAChD,OAAE,aAAaD,KAAf,GAAwBA,KAAK,KAAK,QADc;AAEhD,OAAE,aAAaD,KAAf,GAAwBA,KAAK,KAAK;AAFc,KAA1C,CAAP;AAIA;;AAED,MAAKJ,IAAI,KAAK,UAAd,EAA2B;AAC1B,WAAO,yBACN,8BADM,EAEN,aAAaG,MAFP,CAAP;AAIA;AACD,C,CAED;;;AACe,SAASI,OAAT,OAAqD;AAAA,MAAnC;AAAEP,IAAAA,IAAF;AAAQE,IAAAA,OAAO,GAAG,EAAlB;AAAsBM,IAAAA;AAAtB,GAAmC;AACnE,SAAOA,QAAQ,CAAE;AAChBC,IAAAA,SAAS,EAAER,mBAAmB,CAAE;AAAED,MAAAA,IAAF;AAAQ,SAAGE;AAAX,KAAF;AADd,GAAF,CAAf;AAGA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * @typedef {'top' | 'top left' | 'top right' | 'middle' | 'middle left' | 'middle right' | 'bottom' | 'bottom left' | 'bottom right'} AppearOrigin\n * @typedef {'left' | 'right'} SlideInOrigin\n * @typedef {{ type: 'appear'; origin?: AppearOrigin }} AppearOptions\n * @typedef {{ type: 'slide-in'; origin?: SlideInOrigin }} SlideInOptions\n * @typedef {{ type: 'loading' }} LoadingOptions\n * @typedef {AppearOptions | SlideInOptions | LoadingOptions} GetAnimateOptions\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @param {GetAnimateOptions['type']} type The animation type\n * @return {'top' | 'left'} Default origin\n */\nfunction getDefaultOrigin( type ) {\n\treturn type === 'appear' ? 'top' : 'left';\n}\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @param {GetAnimateOptions} options\n *\n * @return {string | void} ClassName that applies the animations\n */\nexport function getAnimateClassName( options ) {\n\tif ( options.type === 'loading' ) {\n\t\treturn classnames( 'components-animate__loading' );\n\t}\n\n\tconst { type, origin = getDefaultOrigin( type ) } = options;\n\n\tif ( type === 'appear' ) {\n\t\tconst [ yAxis, xAxis = 'center' ] = origin.split( ' ' );\n\t\treturn classnames( 'components-animate__appear', {\n\t\t\t[ 'is-from-' + xAxis ]: xAxis !== 'center',\n\t\t\t[ 'is-from-' + yAxis ]: yAxis !== 'middle',\n\t\t} );\n\t}\n\n\tif ( type === 'slide-in' ) {\n\t\treturn classnames(\n\t\t\t'components-animate__slide-in',\n\t\t\t'is-from-' + origin\n\t\t);\n\t}\n}\n\n// @ts-ignore Reason: Planned for deprecation\nexport default function Animate( { type, options = {}, children } ) {\n\treturn children( {\n\t\tclassName: getAnimateClassName( { type, ...options } ),\n\t} );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/animate/index.js"],"names":["getDefaultOrigin","type","getAnimateClassName","options","origin","yAxis","xAxis","split","undefined","Animate","children","className"],"mappings":";;;;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AACA;AACA;AACA;AACA;AACA,SAASA,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,SAAOA,IAAI,KAAK,QAAT,GAAoB,KAApB,GAA4B,MAAnC;AACA;AACD;;AAEA;AACA;AACA;AACA;AACA;;;AACO,SAASC,mBAAT,CAA8BC,OAA9B,EAAwC;AAC9C,MAAKA,OAAO,CAACF,IAAR,KAAiB,SAAtB,EAAkC;AACjC,WAAO,yBAAY,6BAAZ,CAAP;AACA;;AAED,QAAM;AAAEA,IAAAA,IAAF;AAAQG,IAAAA,MAAM,GAAGJ,gBAAgB,CAAEC,IAAF;AAAjC,MAA8CE,OAApD;;AAEA,MAAKF,IAAI,KAAK,QAAd,EAAyB;AACxB,UAAM,CAAEI,KAAF,EAASC,KAAK,GAAG,QAAjB,IAA8BF,MAAM,CAACG,KAAP,CAAc,GAAd,CAApC;AACA,WAAO,yBAAY,4BAAZ,EAA0C;AAChD,OAAE,aAAaD,KAAf,GAAwBA,KAAK,KAAK,QADc;AAEhD,OAAE,aAAaD,KAAf,GAAwBA,KAAK,KAAK;AAFc,KAA1C,CAAP;AAIA;;AAED,MAAKJ,IAAI,KAAK,UAAd,EAA2B;AAC1B,WAAO,yBACN,8BADM,EAEN,aAAaG,MAFP,CAAP;AAIA;;AAED,SAAOI,SAAP;AACA,C,CAED;;;AACe,SAASC,OAAT,OAAqD;AAAA,MAAnC;AAAER,IAAAA,IAAF;AAAQE,IAAAA,OAAO,GAAG,EAAlB;AAAsBO,IAAAA;AAAtB,GAAmC;AACnE,SAAOA,QAAQ,CAAE;AAChBC,IAAAA,SAAS,EAAET,mBAAmB,CAAE;AAAED,MAAAA,IAAF;AAAQ,SAAGE;AAAX,KAAF;AADd,GAAF,CAAf;AAGA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * @typedef {'top' | 'top left' | 'top right' | 'middle' | 'middle left' | 'middle right' | 'bottom' | 'bottom left' | 'bottom right'} AppearOrigin\n * @typedef {'left' | 'right'} SlideInOrigin\n * @typedef {{ type: 'appear'; origin?: AppearOrigin }} AppearOptions\n * @typedef {{ type: 'slide-in'; origin?: SlideInOrigin }} SlideInOptions\n * @typedef {{ type: 'loading' }} LoadingOptions\n * @typedef {AppearOptions | SlideInOptions | LoadingOptions} GetAnimateOptions\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @param {GetAnimateOptions['type']} type The animation type\n * @return {'top' | 'left'} Default origin\n */\nfunction getDefaultOrigin( type ) {\n\treturn type === 'appear' ? 'top' : 'left';\n}\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @param {GetAnimateOptions} options\n *\n * @return {string | undefined} ClassName that applies the animations\n */\nexport function getAnimateClassName( options ) {\n\tif ( options.type === 'loading' ) {\n\t\treturn classnames( 'components-animate__loading' );\n\t}\n\n\tconst { type, origin = getDefaultOrigin( type ) } = options;\n\n\tif ( type === 'appear' ) {\n\t\tconst [ yAxis, xAxis = 'center' ] = origin.split( ' ' );\n\t\treturn classnames( 'components-animate__appear', {\n\t\t\t[ 'is-from-' + xAxis ]: xAxis !== 'center',\n\t\t\t[ 'is-from-' + yAxis ]: yAxis !== 'middle',\n\t\t} );\n\t}\n\n\tif ( type === 'slide-in' ) {\n\t\treturn classnames(\n\t\t\t'components-animate__slide-in',\n\t\t\t'is-from-' + origin\n\t\t);\n\t}\n\n\treturn undefined;\n}\n\n// @ts-ignore Reason: Planned for deprecation\nexport default function Animate( { type, options = {}, children } ) {\n\treturn children( {\n\t\tclassName: getAnimateClassName( { type, ...options } ),\n\t} );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/animation/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AASA","sourcesContent":["/**\n * Framer Motion is used to create animated, interactive interfaces. The package is roughly ~30kb so\n * this should ideally be loaded once across all Gutenberg packages. To give ourselves more flexibility\n * in trying animation options, we avoid making this public API.\n *\n * @see https://www.framer.com/docs/animation/\n */\n\n// eslint-disable-next-line no-restricted-imports\nexport {\n\tmotion as __unstableMotion,\n\tAnimatePresence as __unstableAnimatePresence,\n} from 'framer-motion';\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/animation/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AASA","sourcesContent":["/**\n * Framer Motion is used to create animated, interactive interfaces. The package is roughly ~30kb so\n * this should ideally be loaded once across all Gutenberg packages. To give ourselves more flexibility\n * in trying animation options, we avoid making this public API.\n *\n * @see https://www.framer.com/docs/animation/\n */\n\n// eslint-disable-next-line no-restricted-imports\nexport {\n\tmotion as __unstableMotion,\n\tAnimatePresence as __unstableAnimatePresence,\n} from 'framer-motion';\n"]}
@@ -13,12 +13,18 @@ var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
14
  var _richText = require("@wordpress/rich-text");
15
15
 
16
+ var _compose = require("@wordpress/compose");
17
+
16
18
  var _getDefaultUseItems = _interopRequireDefault(require("./get-default-use-items"));
17
19
 
18
20
  var _button = _interopRequireDefault(require("../button"));
19
21
 
20
22
  var _popover = _interopRequireDefault(require("../popover"));
21
23
 
24
+ var _visuallyHidden = require("../visually-hidden");
25
+
26
+ var _reactDom = require("react-dom");
27
+
22
28
  /**
23
29
  * External dependencies
24
30
  */
@@ -26,6 +32,8 @@ var _popover = _interopRequireDefault(require("../popover"));
26
32
  /**
27
33
  * WordPress dependencies
28
34
  */
35
+ // Error expected because `@wordpress/rich-text` is not yet fully typed.
36
+ // @ts-expect-error
29
37
 
30
38
  /**
31
39
  * Internal dependencies
@@ -44,15 +52,22 @@ function getAutoCompleterUI(autocompleter) {
44
52
  onSelect,
45
53
  onReset,
46
54
  reset,
47
- value,
48
55
  contentRef
49
56
  } = _ref;
50
57
  const [items] = useItems(filterValue);
51
58
  const popoverAnchor = (0, _richText.useAnchor)({
52
- editableContentElement: contentRef.current,
53
- value
59
+ editableContentElement: contentRef.current
54
60
  });
55
- const popoverRef = (0, _element.useRef)();
61
+ const [needsA11yCompat, setNeedsA11yCompat] = (0, _element.useState)(false);
62
+ const popoverRef = (0, _element.useRef)(null);
63
+ const popoverRefs = (0, _compose.useMergeRefs)([popoverRef, (0, _compose.useRefEffect)(node => {
64
+ if (!contentRef.current) return; // If the popover is rendered in a different document than
65
+ // the content, we need to duplicate the options list in the
66
+ // content document so that it's available to the screen
67
+ // readers, which check the DOM ID based aira-* attributes.
68
+
69
+ setNeedsA11yCompat(node.ownerDocument !== contentRef.current.ownerDocument);
70
+ }, [contentRef])]);
56
71
  useOnClickOutside(popoverRef, reset);
57
72
  (0, _element.useLayoutEffect)(() => {
58
73
  onChangeOptions(items); // Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.
@@ -60,32 +75,41 @@ function getAutoCompleterUI(autocompleter) {
60
75
  // eslint-disable-next-line react-hooks/exhaustive-deps
61
76
  }, [items]);
62
77
 
63
- if (!items.length > 0) {
78
+ if (items.length === 0) {
64
79
  return null;
65
80
  }
66
81
 
67
- return (0, _element.createElement)(_popover.default, {
82
+ const ListBox = _ref2 => {
83
+ let {
84
+ Component = 'div'
85
+ } = _ref2;
86
+ return (0, _element.createElement)(Component, {
87
+ id: listBoxId,
88
+ role: "listbox",
89
+ className: "components-autocomplete__results"
90
+ }, items.map((option, index) => (0, _element.createElement)(_button.default, {
91
+ key: option.key,
92
+ id: `components-autocomplete-item-${instanceId}-${option.key}`,
93
+ role: "option",
94
+ "aria-selected": index === selectedIndex,
95
+ disabled: option.isDisabled,
96
+ className: (0, _classnames.default)('components-autocomplete__result', className, {
97
+ 'is-selected': index === selectedIndex
98
+ }),
99
+ onClick: () => onSelect(option)
100
+ }, option.label)));
101
+ };
102
+
103
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_popover.default, {
68
104
  focusOnMount: false,
69
105
  onClose: onReset,
70
106
  placement: "top-start",
71
107
  className: "components-autocomplete__popover",
72
108
  anchor: popoverAnchor,
73
- ref: popoverRef
74
- }, (0, _element.createElement)("div", {
75
- id: listBoxId,
76
- role: "listbox",
77
- className: "components-autocomplete__results"
78
- }, items.map((option, index) => (0, _element.createElement)(_button.default, {
79
- key: option.key,
80
- id: `components-autocomplete-item-${instanceId}-${option.key}`,
81
- role: "option",
82
- "aria-selected": index === selectedIndex,
83
- disabled: option.isDisabled,
84
- className: (0, _classnames.default)('components-autocomplete__result', className, {
85
- 'is-selected': index === selectedIndex
86
- }),
87
- onClick: () => onSelect(option)
88
- }, option.label))));
109
+ ref: popoverRefs
110
+ }, (0, _element.createElement)(ListBox, null)), contentRef.current && needsA11yCompat && (0, _reactDom.createPortal)((0, _element.createElement)(ListBox, {
111
+ Component: _visuallyHidden.VisuallyHidden
112
+ }), contentRef.current.ownerDocument.body));
89
113
  }
90
114
 
91
115
  return AutocompleterUI;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/autocomplete/autocompleter-ui.js"],"names":["getAutoCompleterUI","autocompleter","useItems","AutocompleterUI","filterValue","instanceId","listBoxId","className","selectedIndex","onChangeOptions","onSelect","onReset","reset","value","contentRef","items","popoverAnchor","editableContentElement","current","popoverRef","useOnClickOutside","length","map","option","index","key","isDisabled","label","ref","handler","listener","event","contains","target","document","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useRef, useEffect } from '@wordpress/element';\nimport { useAnchor } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport getDefaultUseItems from './get-default-use-items';\nimport Button from '../button';\nimport Popover from '../popover';\n\nexport function getAutoCompleterUI( autocompleter ) {\n\tconst useItems = autocompleter.useItems\n\t\t? autocompleter.useItems\n\t\t: getDefaultUseItems( autocompleter );\n\n\tfunction AutocompleterUI( {\n\t\tfilterValue,\n\t\tinstanceId,\n\t\tlistBoxId,\n\t\tclassName,\n\t\tselectedIndex,\n\t\tonChangeOptions,\n\t\tonSelect,\n\t\tonReset,\n\t\treset,\n\t\tvalue,\n\t\tcontentRef,\n\t} ) {\n\t\tconst [ items ] = useItems( filterValue );\n\t\tconst popoverAnchor = useAnchor( {\n\t\t\teditableContentElement: contentRef.current,\n\t\t\tvalue,\n\t\t} );\n\n\t\tconst popoverRef = useRef();\n\n\t\tuseOnClickOutside( popoverRef, reset );\n\n\t\tuseLayoutEffect( () => {\n\t\t\tonChangeOptions( items );\n\t\t\t// Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/41820\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t}, [ items ] );\n\n\t\tif ( ! items.length > 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\tonClose={ onReset }\n\t\t\t\tplacement=\"top-start\"\n\t\t\t\tclassName=\"components-autocomplete__popover\"\n\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\tref={ popoverRef }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tid={ listBoxId }\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\tclassName=\"components-autocomplete__results\"\n\t\t\t\t>\n\t\t\t\t\t{ items.map( ( option, index ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ option.key }\n\t\t\t\t\t\t\tid={ `components-autocomplete-item-${ instanceId }-${ option.key }` }\n\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\taria-selected={ index === selectedIndex }\n\t\t\t\t\t\t\tdisabled={ option.isDisabled }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'components-autocomplete__result',\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-selected': index === selectedIndex,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => onSelect( option ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) ) }\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t);\n\t}\n\n\treturn AutocompleterUI;\n}\n\nfunction useOnClickOutside( ref, handler ) {\n\tuseEffect( () => {\n\t\tconst listener = ( event ) => {\n\t\t\t// Do nothing if clicking ref's element or descendent elements, or if the ref is not referencing an element\n\t\t\tif ( ! ref.current || ref.current.contains( event.target ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandler( event );\n\t\t};\n\t\tdocument.addEventListener( 'mousedown', listener );\n\t\tdocument.addEventListener( 'touchstart', listener );\n\t\treturn () => {\n\t\t\tdocument.removeEventListener( 'mousedown', listener );\n\t\t\tdocument.removeEventListener( 'touchstart', listener );\n\t\t};\n\t\t// Disable reason: `ref` is a ref object and should not be included in a\n\t\t// hook's dependency list.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ handler ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/autocomplete/autocompleter-ui.tsx"],"names":["getAutoCompleterUI","autocompleter","useItems","AutocompleterUI","filterValue","instanceId","listBoxId","className","selectedIndex","onChangeOptions","onSelect","onReset","reset","contentRef","items","popoverAnchor","editableContentElement","current","needsA11yCompat","setNeedsA11yCompat","popoverRef","popoverRefs","node","ownerDocument","useOnClickOutside","length","ListBox","Component","map","option","index","key","isDisabled","label","VisuallyHidden","body","ref","handler","listener","event","contains","target","document","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseLayoutEffect,\n\tuseRef,\n\tuseEffect,\n\tuseState,\n} from '@wordpress/element';\n// Error expected because `@wordpress/rich-text` is not yet fully typed.\n// @ts-expect-error\nimport { useAnchor } from '@wordpress/rich-text';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport getDefaultUseItems from './get-default-use-items';\nimport Button from '../button';\nimport Popover from '../popover';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { createPortal } from 'react-dom';\nimport type { AutocompleterUIProps, WPCompleter } from './types';\n\nexport function getAutoCompleterUI( autocompleter: WPCompleter ) {\n\tconst useItems = autocompleter.useItems\n\t\t? autocompleter.useItems\n\t\t: getDefaultUseItems( autocompleter );\n\n\tfunction AutocompleterUI( {\n\t\tfilterValue,\n\t\tinstanceId,\n\t\tlistBoxId,\n\t\tclassName,\n\t\tselectedIndex,\n\t\tonChangeOptions,\n\t\tonSelect,\n\t\tonReset,\n\t\treset,\n\t\tcontentRef,\n\t}: AutocompleterUIProps ) {\n\t\tconst [ items ] = useItems( filterValue );\n\t\tconst popoverAnchor = useAnchor( {\n\t\t\teditableContentElement: contentRef.current,\n\t\t} );\n\n\t\tconst [ needsA11yCompat, setNeedsA11yCompat ] = useState( false );\n\t\tconst popoverRef = useRef< HTMLElement >( null );\n\t\tconst popoverRefs = useMergeRefs( [\n\t\t\tpopoverRef,\n\t\t\tuseRefEffect(\n\t\t\t\t( node ) => {\n\t\t\t\t\tif ( ! contentRef.current ) return;\n\n\t\t\t\t\t// If the popover is rendered in a different document than\n\t\t\t\t\t// the content, we need to duplicate the options list in the\n\t\t\t\t\t// content document so that it's available to the screen\n\t\t\t\t\t// readers, which check the DOM ID based aira-* attributes.\n\t\t\t\t\tsetNeedsA11yCompat(\n\t\t\t\t\t\tnode.ownerDocument !== contentRef.current.ownerDocument\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t[ contentRef ]\n\t\t\t),\n\t\t] );\n\n\t\tuseOnClickOutside( popoverRef, reset );\n\n\t\tuseLayoutEffect( () => {\n\t\t\tonChangeOptions( items );\n\t\t\t// Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/41820\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t}, [ items ] );\n\n\t\tif ( items.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst ListBox = ( {\n\t\t\tComponent = 'div',\n\t\t}: {\n\t\t\tComponent?: React.ElementType;\n\t\t} ) => (\n\t\t\t<Component\n\t\t\t\tid={ listBoxId }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName=\"components-autocomplete__results\"\n\t\t\t>\n\t\t\t\t{ items.map( ( option, index ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ option.key }\n\t\t\t\t\t\tid={ `components-autocomplete-item-${ instanceId }-${ option.key }` }\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-selected={ index === selectedIndex }\n\t\t\t\t\t\tdisabled={ option.isDisabled }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'components-autocomplete__result',\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': index === selectedIndex,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonClick={ () => onSelect( option ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t</Button>\n\t\t\t\t) ) }\n\t\t\t</Component>\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Popover\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tonClose={ onReset }\n\t\t\t\t\tplacement=\"top-start\"\n\t\t\t\t\tclassName=\"components-autocomplete__popover\"\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tref={ popoverRefs }\n\t\t\t\t>\n\t\t\t\t\t<ListBox />\n\t\t\t\t</Popover>\n\t\t\t\t{ contentRef.current &&\n\t\t\t\t\tneedsA11yCompat &&\n\t\t\t\t\tcreatePortal(\n\t\t\t\t\t\t<ListBox Component={ VisuallyHidden } />,\n\t\t\t\t\t\tcontentRef.current.ownerDocument.body\n\t\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn AutocompleterUI;\n}\n\nfunction useOnClickOutside(\n\tref: React.RefObject< HTMLElement >,\n\thandler: AutocompleterUIProps[ 'reset' ]\n) {\n\tuseEffect( () => {\n\t\tconst listener = ( event: MouseEvent | TouchEvent ) => {\n\t\t\t// Do nothing if clicking ref's element or descendent elements, or if the ref is not referencing an element\n\t\t\tif (\n\t\t\t\t! ref.current ||\n\t\t\t\tref.current.contains( event.target as Node )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandler( event );\n\t\t};\n\t\tdocument.addEventListener( 'mousedown', listener );\n\t\tdocument.addEventListener( 'touchstart', listener );\n\t\treturn () => {\n\t\t\tdocument.removeEventListener( 'mousedown', listener );\n\t\t\tdocument.removeEventListener( 'touchstart', listener );\n\t\t};\n\t\t// Disable reason: `ref` is a ref object and should not be included in a\n\t\t// hook's dependency list.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ handler ] );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/autocomplete/get-default-use-items.js"],"names":["filterOptions","search","options","maxResults","filtered","i","length","option","keywords","label","isMatch","some","keyword","test","push","getDefaultUseItems","autocompleter","filterValue","items","setItems","isDebounced","loadOptions","promise","Promise","resolve","then","optionsData","canceled","keyedOptions","map","optionData","optionIndex","key","name","value","getOptionLabel","getOptionKeywords","isDisabled","isOptionDisabled","RegExp","cancel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { debounce } from '@wordpress/compose';\nimport { useLayoutEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { escapeRegExp } from '../utils/strings';\n\nfunction filterOptions( search, options = [], maxResults = 10 ) {\n\tconst filtered = [];\n\tfor ( let i = 0; i < options.length; i++ ) {\n\t\tconst option = options[ i ];\n\n\t\t// Merge label into keywords.\n\t\tlet { keywords = [] } = option;\n\t\tif ( 'string' === typeof option.label ) {\n\t\t\tkeywords = [ ...keywords, option.label ];\n\t\t}\n\n\t\tconst isMatch = keywords.some( ( keyword ) =>\n\t\t\tsearch.test( removeAccents( keyword ) )\n\t\t);\n\t\tif ( ! isMatch ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfiltered.push( option );\n\n\t\t// Abort early if max reached.\n\t\tif ( filtered.length === maxResults ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn filtered;\n}\n\nexport default function getDefaultUseItems( autocompleter ) {\n\treturn ( filterValue ) => {\n\t\tconst [ items, setItems ] = useState( [] );\n\t\t/*\n\t\t * We support both synchronous and asynchronous retrieval of completer options\n\t\t * but internally treat all as async so we maintain a single, consistent code path.\n\t\t *\n\t\t * Because networks can be slow, and the internet is wonderfully unpredictable,\n\t\t * we don't want two promises updating the state at once. This ensures that only\n\t\t * the most recent promise will act on `optionsData`. This doesn't use the state\n\t\t * because `setState` is batched, and so there's no guarantee that setting\n\t\t * `activePromise` in the state would result in it actually being in `this.state`\n\t\t * before the promise resolves and we check to see if this is the active promise or not.\n\t\t */\n\t\tuseLayoutEffect( () => {\n\t\t\tconst { options, isDebounced } = autocompleter;\n\t\t\tconst loadOptions = debounce(\n\t\t\t\t() => {\n\t\t\t\t\tconst promise = Promise.resolve(\n\t\t\t\t\t\ttypeof options === 'function'\n\t\t\t\t\t\t\t? options( filterValue )\n\t\t\t\t\t\t\t: options\n\t\t\t\t\t).then( ( optionsData ) => {\n\t\t\t\t\t\tif ( promise.canceled ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst keyedOptions = optionsData.map(\n\t\t\t\t\t\t\t( optionData, optionIndex ) => ( {\n\t\t\t\t\t\t\t\tkey: `${ autocompleter.name }-${ optionIndex }`,\n\t\t\t\t\t\t\t\tvalue: optionData,\n\t\t\t\t\t\t\t\tlabel: autocompleter.getOptionLabel(\n\t\t\t\t\t\t\t\t\toptionData\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tkeywords: autocompleter.getOptionKeywords\n\t\t\t\t\t\t\t\t\t? autocompleter.getOptionKeywords(\n\t\t\t\t\t\t\t\t\t\t\toptionData\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [],\n\t\t\t\t\t\t\t\tisDisabled: autocompleter.isOptionDisabled\n\t\t\t\t\t\t\t\t\t? autocompleter.isOptionDisabled(\n\t\t\t\t\t\t\t\t\t\t\toptionData\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: false,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Create a regular expression to filter the options.\n\t\t\t\t\t\tconst search = new RegExp(\n\t\t\t\t\t\t\t'(?:\\\\b|\\\\s|^)' + escapeRegExp( filterValue ),\n\t\t\t\t\t\t\t'i'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetItems( filterOptions( search, keyedOptions ) );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn promise;\n\t\t\t\t},\n\t\t\t\tisDebounced ? 250 : 0\n\t\t\t);\n\n\t\t\tconst promise = loadOptions();\n\n\t\t\treturn () => {\n\t\t\t\tloadOptions.cancel();\n\t\t\t\tif ( promise ) {\n\t\t\t\t\tpromise.canceled = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}, [ filterValue ] );\n\n\t\treturn [ items ];\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/autocomplete/get-default-use-items.tsx"],"names":["filterOptions","search","options","maxResults","filtered","i","length","option","keywords","label","isMatch","some","keyword","test","push","getDefaultUseItems","autocompleter","filterValue","items","setItems","isDebounced","loadOptions","promise","Promise","resolve","then","optionsData","canceled","keyedOptions","map","optionData","optionIndex","key","name","value","getOptionLabel","getOptionKeywords","isDisabled","isOptionDisabled","RegExp","cancel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { debounce } from '@wordpress/compose';\nimport { useLayoutEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { escapeRegExp } from '../utils/strings';\nimport type { CancelablePromise, KeyedOption, WPCompleter } from './types';\n\nfunction filterOptions(\n\tsearch: RegExp,\n\toptions: Array< KeyedOption > = [],\n\tmaxResults = 10\n) {\n\tconst filtered = [];\n\tfor ( let i = 0; i < options.length; i++ ) {\n\t\tconst option = options[ i ];\n\n\t\t// Merge label into keywords.\n\t\tlet { keywords = [] } = option;\n\t\tif ( 'string' === typeof option.label ) {\n\t\t\tkeywords = [ ...keywords, option.label ];\n\t\t}\n\n\t\tconst isMatch = keywords.some( ( keyword ) =>\n\t\t\tsearch.test( removeAccents( keyword ) )\n\t\t);\n\t\tif ( ! isMatch ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfiltered.push( option );\n\n\t\t// Abort early if max reached.\n\t\tif ( filtered.length === maxResults ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn filtered;\n}\n\nexport default function getDefaultUseItems( autocompleter: WPCompleter ) {\n\treturn ( filterValue: string ) => {\n\t\tconst [ items, setItems ] = useState< Array< KeyedOption > >( [] );\n\t\t/*\n\t\t * We support both synchronous and asynchronous retrieval of completer options\n\t\t * but internally treat all as async so we maintain a single, consistent code path.\n\t\t *\n\t\t * Because networks can be slow, and the internet is wonderfully unpredictable,\n\t\t * we don't want two promises updating the state at once. This ensures that only\n\t\t * the most recent promise will act on `optionsData`. This doesn't use the state\n\t\t * because `setState` is batched, and so there's no guarantee that setting\n\t\t * `activePromise` in the state would result in it actually being in `this.state`\n\t\t * before the promise resolves and we check to see if this is the active promise or not.\n\t\t */\n\t\tuseLayoutEffect( () => {\n\t\t\tconst { options, isDebounced } = autocompleter;\n\t\t\tconst loadOptions = debounce(\n\t\t\t\t() => {\n\t\t\t\t\tconst promise: CancelablePromise = Promise.resolve(\n\t\t\t\t\t\ttypeof options === 'function'\n\t\t\t\t\t\t\t? options( filterValue )\n\t\t\t\t\t\t\t: options\n\t\t\t\t\t).then( ( optionsData ) => {\n\t\t\t\t\t\tif ( promise.canceled ) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst keyedOptions = optionsData.map(\n\t\t\t\t\t\t\t( optionData, optionIndex ) => ( {\n\t\t\t\t\t\t\t\tkey: `${ autocompleter.name }-${ optionIndex }`,\n\t\t\t\t\t\t\t\tvalue: optionData,\n\t\t\t\t\t\t\t\tlabel: autocompleter.getOptionLabel(\n\t\t\t\t\t\t\t\t\toptionData\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tkeywords: autocompleter.getOptionKeywords\n\t\t\t\t\t\t\t\t\t? autocompleter.getOptionKeywords(\n\t\t\t\t\t\t\t\t\t\t\toptionData\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [],\n\t\t\t\t\t\t\t\tisDisabled: autocompleter.isOptionDisabled\n\t\t\t\t\t\t\t\t\t? autocompleter.isOptionDisabled(\n\t\t\t\t\t\t\t\t\t\t\toptionData\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: false,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// Create a regular expression to filter the options.\n\t\t\t\t\t\tconst search = new RegExp(\n\t\t\t\t\t\t\t'(?:\\\\b|\\\\s|^)' + escapeRegExp( filterValue ),\n\t\t\t\t\t\t\t'i'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetItems( filterOptions( search, keyedOptions ) );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn promise;\n\t\t\t\t},\n\t\t\t\tisDebounced ? 250 : 0\n\t\t\t);\n\n\t\t\tconst promise = loadOptions();\n\n\t\t\treturn () => {\n\t\t\t\tloadOptions.cancel();\n\t\t\t\tif ( promise ) {\n\t\t\t\t\tpromise.canceled = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}, [ filterValue ] );\n\n\t\treturn [ items ] as const;\n\t};\n}\n"]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = Autocomplete;
9
+ exports.useAutocomplete = useAutocomplete;
9
10
  exports.useAutocompleteProps = useAutocompleteProps;
10
11
 
11
12
  var _element = require("@wordpress/element");
@@ -35,82 +36,8 @@ var _strings = require("../utils/strings");
35
36
  /**
36
37
  * Internal dependencies
37
38
  */
39
+ const EMPTY_FILTERED_OPTIONS = [];
38
40
 
39
- /**
40
- * A raw completer option.
41
- *
42
- * @typedef {*} CompleterOption
43
- */
44
-
45
- /**
46
- * @callback FnGetOptions
47
- *
48
- * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.
49
- */
50
-
51
- /**
52
- * @callback FnGetOptionKeywords
53
- * @param {CompleterOption} option a completer option.
54
- *
55
- * @return {string[]} list of key words to search.
56
- */
57
-
58
- /**
59
- * @callback FnIsOptionDisabled
60
- * @param {CompleterOption} option a completer option.
61
- *
62
- * @return {string[]} whether or not the given option is disabled.
63
- */
64
-
65
- /**
66
- * @callback FnGetOptionLabel
67
- * @param {CompleterOption} option a completer option.
68
- *
69
- * @return {(string|Array.<(string|WPElement)>)} list of react components to render.
70
- */
71
-
72
- /**
73
- * @callback FnAllowContext
74
- * @param {string} before the string before the auto complete trigger and query.
75
- * @param {string} after the string after the autocomplete trigger and query.
76
- *
77
- * @return {boolean} true if the completer can handle.
78
- */
79
-
80
- /**
81
- * @typedef {Object} OptionCompletion
82
- * @property {'insert-at-caret'|'replace'} action the intended placement of the completion.
83
- * @property {OptionCompletionValue} value the completion value.
84
- */
85
-
86
- /**
87
- * A completion value.
88
- *
89
- * @typedef {(string|WPElement|Object)} OptionCompletionValue
90
- */
91
-
92
- /**
93
- * @callback FnGetOptionCompletion
94
- * @param {CompleterOption} value the value of the completer option.
95
- * @param {string} query the text value of the autocomplete query.
96
- *
97
- * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an
98
- * OptionCompletionValue is returned, the
99
- * completion action defaults to `insert-at-caret`.
100
- */
101
-
102
- /**
103
- * @typedef {Object} WPCompleter
104
- * @property {string} name a way to identify a completer, useful for selective overriding.
105
- * @property {?string} className A class to apply to the popup menu.
106
- * @property {string} triggerPrefix the prefix that will display the menu.
107
- * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them.
108
- * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option.
109
- * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled.
110
- * @property {FnGetOptionLabel} getOptionLabel get the label for a given option.
111
- * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.
112
- * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.
113
- */
114
41
  function useAutocomplete(_ref) {
115
42
  let {
116
43
  record,
@@ -122,13 +49,17 @@ function useAutocomplete(_ref) {
122
49
  const debouncedSpeak = (0, _compose.useDebounce)(_a11y.speak, 500);
123
50
  const instanceId = (0, _compose.useInstanceId)(useAutocomplete);
124
51
  const [selectedIndex, setSelectedIndex] = (0, _element.useState)(0);
125
- const [filteredOptions, setFilteredOptions] = (0, _element.useState)([]);
52
+ const [filteredOptions, setFilteredOptions] = (0, _element.useState)(EMPTY_FILTERED_OPTIONS);
126
53
  const [filterValue, setFilterValue] = (0, _element.useState)('');
127
54
  const [autocompleter, setAutocompleter] = (0, _element.useState)(null);
128
55
  const [AutocompleterUI, setAutocompleterUI] = (0, _element.useState)(null);
129
56
  const backspacing = (0, _element.useRef)(false);
130
57
 
131
58
  function insertCompletion(replacement) {
59
+ if (autocompleter === null) {
60
+ return;
61
+ }
62
+
132
63
  const end = record.start;
133
64
  const start = end - autocompleter.triggerPrefix.length - filterValue.length;
134
65
  const toInsert = (0, _richText.create)({
@@ -148,21 +79,23 @@ function useAutocomplete(_ref) {
148
79
 
149
80
  if (getOptionCompletion) {
150
81
  const completion = getOptionCompletion(option.value, filterValue);
151
- const {
152
- action,
153
- value
154
- } = undefined === completion.action || undefined === completion.value ? {
82
+
83
+ const isCompletionObject = obj => {
84
+ return obj !== null && typeof obj === 'object' && 'action' in obj && obj.action !== undefined && 'value' in obj && obj.value !== undefined;
85
+ };
86
+
87
+ const completionObject = isCompletionObject(completion) ? completion : {
155
88
  action: 'insert-at-caret',
156
89
  value: completion
157
- } : completion;
90
+ };
158
91
 
159
- if ('replace' === action) {
160
- onReplace([value]); // When replacing, the component will unmount, so don't reset
92
+ if ('replace' === completionObject.action) {
93
+ onReplace([completionObject.value]); // When replacing, the component will unmount, so don't reset
161
94
  // state (below) on an unmounted component.
162
95
 
163
96
  return;
164
- } else if ('insert-at-caret' === action) {
165
- insertCompletion(value);
97
+ } else if ('insert-at-caret' === completionObject.action) {
98
+ insertCompletion(completionObject.value);
166
99
  }
167
100
  } // Reset autocomplete state after insertion rather than before
168
101
  // so insertion events don't cause the completion menu to redisplay.
@@ -173,7 +106,7 @@ function useAutocomplete(_ref) {
173
106
 
174
107
  function reset() {
175
108
  setSelectedIndex(0);
176
- setFilteredOptions([]);
109
+ setFilteredOptions(EMPTY_FILTERED_OPTIONS);
177
110
  setFilterValue('');
178
111
  setAutocompleter(null);
179
112
  setAutocompleterUI(null);
@@ -267,24 +200,22 @@ function useAutocomplete(_ref) {
267
200
  }, [record]);
268
201
  (0, _element.useEffect)(() => {
269
202
  if (!textContent) {
270
- reset();
203
+ if (autocompleter) reset();
271
204
  return;
272
205
  }
273
206
 
274
- const text = (0, _removeAccents.default)(textContent);
275
- const textAfterSelection = (0, _richText.getTextContent)((0, _richText.slice)(record, undefined, (0, _richText.getTextContent)(record).length));
276
207
  const completer = completers === null || completers === void 0 ? void 0 : completers.find(_ref2 => {
277
208
  let {
278
209
  triggerPrefix,
279
210
  allowContext
280
211
  } = _ref2;
281
- const index = text.lastIndexOf(triggerPrefix);
212
+ const index = textContent.lastIndexOf(triggerPrefix);
282
213
 
283
214
  if (index === -1) {
284
215
  return false;
285
216
  }
286
217
 
287
- const textWithoutTrigger = text.slice(index + triggerPrefix.length);
218
+ const textWithoutTrigger = textContent.slice(index + triggerPrefix.length);
288
219
  const tooDistantFromTrigger = textWithoutTrigger.length > 50; // 50 chars seems to be a good limit.
289
220
  // This is a final barrier to prevent the effect from completing with
290
221
  // an extremely long string, which causes the editor to slow-down
@@ -318,7 +249,9 @@ function useAutocomplete(_ref) {
318
249
  return false;
319
250
  }
320
251
 
321
- if (allowContext && !allowContext(text.slice(0, index), textAfterSelection)) {
252
+ const textAfterSelection = (0, _richText.getTextContent)((0, _richText.slice)(record, undefined, (0, _richText.getTextContent)(record).length));
253
+
254
+ if (allowContext && !allowContext(textContent.slice(0, index), textAfterSelection)) {
322
255
  return false;
323
256
  }
324
257
 
@@ -330,16 +263,17 @@ function useAutocomplete(_ref) {
330
263
  });
331
264
 
332
265
  if (!completer) {
333
- reset();
266
+ if (autocompleter) reset();
334
267
  return;
335
268
  }
336
269
 
337
270
  const safeTrigger = (0, _strings.escapeRegExp)(completer.triggerPrefix);
271
+ const text = (0, _removeAccents.default)(textContent);
338
272
  const match = text.slice(text.lastIndexOf(completer.triggerPrefix)).match(new RegExp(`${safeTrigger}([\u0000-\uFFFF]*)$`));
339
273
  const query = match && match[1];
340
274
  setAutocompleter(completer);
341
275
  setAutocompleterUI(() => completer !== autocompleter ? (0, _autocompleterUi.getAutoCompleterUI)(completer) : AutocompleterUI);
342
- setFilterValue(query); // Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.
276
+ setFilterValue(query === null ? '' : query); // Temporarily disabling exhaustive-deps to avoid introducing unexpected side effecst.
343
277
  // See https://github.com/WordPress/gutenberg/pull/41820
344
278
  // eslint-disable-next-line react-hooks/exhaustive-deps
345
279
  }, [textContent]);
@@ -350,7 +284,7 @@ function useAutocomplete(_ref) {
350
284
  className
351
285
  } = autocompleter || {};
352
286
  const isExpanded = !!autocompleter && filteredOptions.length > 0;
353
- const listBoxId = isExpanded ? `components-autocomplete-listbox-${instanceId}` : null;
287
+ const listBoxId = isExpanded ? `components-autocomplete-listbox-${instanceId}` : undefined;
354
288
  const activeId = isExpanded ? `components-autocomplete-item-${instanceId}-${selectedKey}` : null;
355
289
  const hasSelection = record.start !== undefined;
356
290
  return {
@@ -372,11 +306,24 @@ function useAutocomplete(_ref) {
372
306
  };
373
307
  }
374
308
 
309
+ function useLastDifferentValue(value) {
310
+ const history = (0, _element.useRef)(new Set());
311
+ history.current.add(value); // Keep the history size to 2.
312
+
313
+ if (history.current.size > 2) {
314
+ history.current.delete(Array.from(history.current)[0]);
315
+ }
316
+
317
+ return Array.from(history.current)[0];
318
+ }
319
+
375
320
  function useAutocompleteProps(options) {
376
- const [isVisible, setIsVisible] = (0, _element.useState)(false);
377
- const ref = (0, _element.useRef)();
378
- const recordAfterInput = (0, _element.useRef)();
321
+ const ref = (0, _element.useRef)(null);
379
322
  const onKeyDownRef = (0, _element.useRef)();
323
+ const {
324
+ record
325
+ } = options;
326
+ const previousRecord = useLastDifferentValue(record);
380
327
  const {
381
328
  popover,
382
329
  listBoxId,
@@ -386,37 +333,22 @@ function useAutocompleteProps(options) {
386
333
  contentRef: ref
387
334
  });
388
335
  onKeyDownRef.current = onKeyDown;
389
- (0, _element.useEffect)(() => {
390
- if (isVisible) {
391
- if (!recordAfterInput.current) {
392
- recordAfterInput.current = options.record;
393
- } else if (recordAfterInput.current.start !== options.record.start || recordAfterInput.current.end !== options.record.end) {
394
- setIsVisible(false);
395
- recordAfterInput.current = null;
396
- }
397
- } // eslint-disable-next-line react-hooks/exhaustive-deps
398
-
399
- }, [options.record]);
400
336
  const mergedRefs = (0, _compose.useMergeRefs)([ref, (0, _compose.useRefEffect)(element => {
401
337
  function _onKeyDown(event) {
402
- onKeyDownRef.current(event);
403
- }
338
+ var _onKeyDownRef$current;
404
339
 
405
- function _onInput() {
406
- // Only show auto complete UI if the user is inputting text.
407
- setIsVisible(true);
408
- recordAfterInput.current = null;
340
+ (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);
409
341
  }
410
342
 
411
343
  element.addEventListener('keydown', _onKeyDown);
412
- element.addEventListener('input', _onInput);
413
344
  return () => {
414
345
  element.removeEventListener('keydown', _onKeyDown);
415
- element.removeEventListener('input', _onInput);
416
346
  };
417
- }, [])]);
347
+ }, [])]); // We only want to show the popover if the user has typed something.
348
+
349
+ const didUserInput = record.text !== (previousRecord === null || previousRecord === void 0 ? void 0 : previousRecord.text);
418
350
 
419
- if (!isVisible) {
351
+ if (!didUserInput) {
420
352
  return {
421
353
  ref: mergedRefs
422
354
  };