@wordpress/components 28.6.0 → 28.8.1-next.5368f64a9.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 (644) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/CONTRIBUTING.md +42 -19
  3. package/build/alignment-matrix-control/cell.js +4 -7
  4. package/build/alignment-matrix-control/cell.js.map +1 -1
  5. package/build/alignment-matrix-control/icon.js +31 -19
  6. package/build/alignment-matrix-control/icon.js.map +1 -1
  7. package/build/alignment-matrix-control/index.js +55 -51
  8. package/build/alignment-matrix-control/index.js.map +1 -1
  9. package/build/alignment-matrix-control/styles.js +73 -0
  10. package/build/alignment-matrix-control/styles.js.map +1 -0
  11. package/build/alignment-matrix-control/types.js.map +1 -1
  12. package/build/angle-picker-control/angle-circle.js +9 -9
  13. package/build/angle-picker-control/angle-circle.js.map +1 -1
  14. package/build/border-control/border-control/component.js +18 -13
  15. package/build/border-control/border-control/component.js.map +1 -1
  16. package/build/circular-option-picker/circular-option-picker-option.js +15 -9
  17. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  18. package/build/circular-option-picker/circular-option-picker.js +15 -12
  19. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  20. package/build/circular-option-picker/types.js.map +1 -1
  21. package/build/clipboard-button/index.js +6 -6
  22. package/build/clipboard-button/index.js.map +1 -1
  23. package/build/color-palette/utils.js +1 -2
  24. package/build/color-palette/utils.js.map +1 -1
  25. package/build/color-picker/color-copy-button.js +8 -8
  26. package/build/color-picker/color-copy-button.js.map +1 -1
  27. package/build/color-picker/hex-input.js +8 -8
  28. package/build/color-picker/hex-input.js.map +1 -1
  29. package/build/color-picker/input-with-slider.js +8 -8
  30. package/build/color-picker/input-with-slider.js.map +1 -1
  31. package/build/color-picker/styles.js +8 -8
  32. package/build/color-picker/styles.js.map +1 -1
  33. package/build/combobox-control/types.js.map +1 -1
  34. package/build/composite/context.js +1 -1
  35. package/build/composite/context.js.map +1 -1
  36. package/build/composite/group-label.js +33 -0
  37. package/build/composite/group-label.js.map +1 -0
  38. package/build/composite/group.js +33 -0
  39. package/build/composite/group.js.map +1 -0
  40. package/build/composite/hover.js +33 -0
  41. package/build/composite/hover.js.map +1 -0
  42. package/build/composite/index.js +63 -118
  43. package/build/composite/index.js.map +1 -1
  44. package/build/composite/item.js +33 -0
  45. package/build/composite/item.js.map +1 -0
  46. package/build/composite/legacy/index.js +59 -7
  47. package/build/composite/legacy/index.js.map +1 -1
  48. package/build/composite/row.js +33 -0
  49. package/build/composite/row.js.map +1 -0
  50. package/build/composite/typeahead.js +33 -0
  51. package/build/composite/typeahead.js.map +1 -0
  52. package/build/composite/types.js.map +1 -1
  53. package/build/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  54. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  55. package/build/custom-select-control-v2/styles.js +12 -14
  56. package/build/custom-select-control-v2/styles.js.map +1 -1
  57. package/build/date-time/date/index.js +1 -1
  58. package/build/date-time/date/index.js.map +1 -1
  59. package/build/date-time/date/styles.js +37 -26
  60. package/build/date-time/date/styles.js.map +1 -1
  61. package/build/date-time/date/use-lilius/index.js +163 -0
  62. package/build/date-time/date/use-lilius/index.js.map +1 -0
  63. package/build/date-time/time/time-input/index.js +17 -19
  64. package/build/date-time/time/time-input/index.js.map +1 -1
  65. package/build/dimension-control/index.js +6 -1
  66. package/build/dimension-control/index.js.map +1 -1
  67. package/build/draggable/index.js +4 -4
  68. package/build/draggable/index.js.map +1 -1
  69. package/build/dropdown-menu-v2/checkbox-item.js +69 -0
  70. package/build/dropdown-menu-v2/checkbox-item.js.map +1 -0
  71. package/build/dropdown-menu-v2/context.js +17 -0
  72. package/build/dropdown-menu-v2/context.js.map +1 -0
  73. package/build/dropdown-menu-v2/group-label.js +40 -0
  74. package/build/dropdown-menu-v2/group-label.js.map +1 -0
  75. package/build/dropdown-menu-v2/group.js +29 -0
  76. package/build/dropdown-menu-v2/group.js.map +1 -0
  77. package/build/dropdown-menu-v2/index.js +58 -146
  78. package/build/dropdown-menu-v2/index.js.map +1 -1
  79. package/build/dropdown-menu-v2/item-help-text.js +27 -0
  80. package/build/dropdown-menu-v2/item-help-text.js.map +1 -0
  81. package/build/dropdown-menu-v2/item-label.js +27 -0
  82. package/build/dropdown-menu-v2/item-label.js.map +1 -0
  83. package/build/dropdown-menu-v2/item.js +53 -0
  84. package/build/dropdown-menu-v2/item.js.map +1 -0
  85. package/build/dropdown-menu-v2/radio-item.js +79 -0
  86. package/build/dropdown-menu-v2/radio-item.js.map +1 -0
  87. package/build/dropdown-menu-v2/separator.js +30 -0
  88. package/build/dropdown-menu-v2/separator.js.map +1 -0
  89. package/build/dropdown-menu-v2/styles.js +54 -78
  90. package/build/dropdown-menu-v2/styles.js.map +1 -1
  91. package/build/dropdown-menu-v2/types.js.map +1 -1
  92. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js +27 -0
  93. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  94. package/build/focal-point-picker/styles/focal-point-style.js +7 -2
  95. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  96. package/build/form-token-field/types.js.map +1 -1
  97. package/build/index.js +13 -0
  98. package/build/index.js.map +1 -1
  99. package/build/input-control/index.js +2 -2
  100. package/build/input-control/index.js.map +1 -1
  101. package/build/input-control/input-base.js +5 -10
  102. package/build/input-control/input-base.js.map +1 -1
  103. package/build/input-control/input-prefix-wrapper.js +3 -3
  104. package/build/input-control/input-prefix-wrapper.js.map +1 -1
  105. package/build/input-control/input-suffix-wrapper.js +2 -3
  106. package/build/input-control/input-suffix-wrapper.js.map +1 -1
  107. package/build/input-control/reducer/reducer.js +8 -8
  108. package/build/input-control/reducer/reducer.js.map +1 -1
  109. package/build/input-control/styles/input-control-styles.js +75 -45
  110. package/build/input-control/styles/input-control-styles.js.map +1 -1
  111. package/build/input-control/types.js.map +1 -1
  112. package/build/input-control/utils.js +3 -3
  113. package/build/input-control/utils.js.map +1 -1
  114. package/build/item-group/styles.js +10 -10
  115. package/build/item-group/styles.js.map +1 -1
  116. package/build/modal/index.js +16 -9
  117. package/build/modal/index.js.map +1 -1
  118. package/build/navigation/index.js +4 -4
  119. package/build/navigation/index.js.map +1 -1
  120. package/build/navigation/styles/navigation-styles.js +13 -13
  121. package/build/navigation/styles/navigation-styles.js.map +1 -1
  122. package/build/navigator/index.js +12 -13
  123. package/build/navigator/index.js.map +1 -1
  124. package/build/navigator/navigator-back-button/hook.js +2 -2
  125. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  126. package/build/navigator/navigator-button/hook.js +2 -2
  127. package/build/navigator/navigator-button/hook.js.map +1 -1
  128. package/build/navigator/navigator-provider/component.js +99 -67
  129. package/build/navigator/navigator-provider/component.js.map +1 -1
  130. package/build/navigator/navigator-screen/component.js +5 -0
  131. package/build/navigator/navigator-screen/component.js.map +1 -1
  132. package/build/navigator/navigator-to-parent-button/component.js +2 -2
  133. package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
  134. package/build/navigator/types.js.map +1 -1
  135. package/build/navigator/use-navigator.js +1 -2
  136. package/build/navigator/use-navigator.js.map +1 -1
  137. package/build/palette-edit/index.js +2 -2
  138. package/build/palette-edit/index.js.map +1 -1
  139. package/build/private-apis.js +1 -14
  140. package/build/private-apis.js.map +1 -1
  141. package/build/range-control/styles/range-control-styles.js +30 -30
  142. package/build/range-control/styles/range-control-styles.js.map +1 -1
  143. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  144. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  145. package/build/select-control/styles/select-control-styles.js +12 -12
  146. package/build/select-control/styles/select-control-styles.js.map +1 -1
  147. package/build/slot-fill/bubbles-virtually/fill.js +4 -4
  148. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  149. package/build/slot-fill/index.js +1 -0
  150. package/build/slot-fill/index.js.map +1 -1
  151. package/build/snackbar/index.js +4 -4
  152. package/build/snackbar/index.js.map +1 -1
  153. package/build/tabs/index.js +4 -4
  154. package/build/tabs/index.js.map +1 -1
  155. package/build/tabs/styles.js +3 -3
  156. package/build/tabs/styles.js.map +1 -1
  157. package/build/tabs/tablist.js +5 -4
  158. package/build/tabs/tablist.js.map +1 -1
  159. package/build/toggle-group-control/toggle-group-control/utils.js +6 -6
  160. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  161. package/build/tools-panel/tools-panel/hook.js +6 -6
  162. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  163. package/build/unit-control/styles/unit-control-styles.js +7 -7
  164. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  165. package/build/utils/config-values.js +6 -4
  166. package/build/utils/config-values.js.map +1 -1
  167. package/build/utils/element-rect.js +73 -105
  168. package/build/utils/element-rect.js.map +1 -1
  169. package/build/utils/hooks/use-update-effect.js +4 -4
  170. package/build/utils/hooks/use-update-effect.js.map +1 -1
  171. package/build-module/alignment-matrix-control/cell.js +2 -5
  172. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  173. package/build-module/alignment-matrix-control/icon.js +31 -19
  174. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  175. package/build-module/alignment-matrix-control/index.js +55 -50
  176. package/build-module/alignment-matrix-control/index.js.map +1 -1
  177. package/build-module/alignment-matrix-control/styles.js +70 -0
  178. package/build-module/alignment-matrix-control/styles.js.map +1 -0
  179. package/build-module/alignment-matrix-control/types.js.map +1 -1
  180. package/build-module/angle-picker-control/angle-circle.js +9 -9
  181. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  182. package/build-module/border-control/border-control/component.js +18 -13
  183. package/build-module/border-control/border-control/component.js.map +1 -1
  184. package/build-module/circular-option-picker/circular-option-picker-option.js +16 -10
  185. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  186. package/build-module/circular-option-picker/circular-option-picker.js +16 -13
  187. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  188. package/build-module/circular-option-picker/types.js.map +1 -1
  189. package/build-module/clipboard-button/index.js +6 -6
  190. package/build-module/clipboard-button/index.js.map +1 -1
  191. package/build-module/color-palette/utils.js +1 -2
  192. package/build-module/color-palette/utils.js.map +1 -1
  193. package/build-module/color-picker/color-copy-button.js +8 -8
  194. package/build-module/color-picker/color-copy-button.js.map +1 -1
  195. package/build-module/color-picker/hex-input.js +7 -8
  196. package/build-module/color-picker/hex-input.js.map +1 -1
  197. package/build-module/color-picker/input-with-slider.js +7 -8
  198. package/build-module/color-picker/input-with-slider.js.map +1 -1
  199. package/build-module/color-picker/styles.js +8 -8
  200. package/build-module/color-picker/styles.js.map +1 -1
  201. package/build-module/combobox-control/types.js.map +1 -1
  202. package/build-module/composite/context.js +1 -1
  203. package/build-module/composite/context.js.map +1 -1
  204. package/build-module/composite/group-label.js +25 -0
  205. package/build-module/composite/group-label.js.map +1 -0
  206. package/build-module/composite/group.js +25 -0
  207. package/build-module/composite/group.js.map +1 -0
  208. package/build-module/composite/hover.js +25 -0
  209. package/build-module/composite/hover.js.map +1 -0
  210. package/build-module/composite/index.js +64 -118
  211. package/build-module/composite/index.js.map +1 -1
  212. package/build-module/composite/item.js +25 -0
  213. package/build-module/composite/item.js.map +1 -0
  214. package/build-module/composite/legacy/index.js +57 -8
  215. package/build-module/composite/legacy/index.js.map +1 -1
  216. package/build-module/composite/row.js +25 -0
  217. package/build-module/composite/row.js.map +1 -0
  218. package/build-module/composite/typeahead.js +25 -0
  219. package/build-module/composite/typeahead.js.map +1 -0
  220. package/build-module/composite/types.js.map +1 -1
  221. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  222. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  223. package/build-module/custom-select-control-v2/styles.js +12 -14
  224. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  225. package/build-module/date-time/date/index.js +1 -2
  226. package/build-module/date-time/date/index.js.map +1 -1
  227. package/build-module/date-time/date/styles.js +33 -26
  228. package/build-module/date-time/date/styles.js.map +1 -1
  229. package/build-module/date-time/date/use-lilius/index.js +158 -0
  230. package/build-module/date-time/date/use-lilius/index.js.map +1 -0
  231. package/build-module/date-time/time/time-input/index.js +17 -19
  232. package/build-module/date-time/time/time-input/index.js.map +1 -1
  233. package/build-module/dimension-control/index.js +6 -1
  234. package/build-module/dimension-control/index.js.map +1 -1
  235. package/build-module/draggable/index.js +4 -4
  236. package/build-module/draggable/index.js.map +1 -1
  237. package/build-module/dropdown-menu-v2/checkbox-item.js +62 -0
  238. package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -0
  239. package/build-module/dropdown-menu-v2/context.js +11 -0
  240. package/build-module/dropdown-menu-v2/context.js.map +1 -0
  241. package/build-module/dropdown-menu-v2/group-label.js +32 -0
  242. package/build-module/dropdown-menu-v2/group-label.js.map +1 -0
  243. package/build-module/dropdown-menu-v2/group.js +21 -0
  244. package/build-module/dropdown-menu-v2/group.js.map +1 -0
  245. package/build-module/dropdown-menu-v2/index.js +57 -144
  246. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  247. package/build-module/dropdown-menu-v2/item-help-text.js +19 -0
  248. package/build-module/dropdown-menu-v2/item-help-text.js.map +1 -0
  249. package/build-module/dropdown-menu-v2/item-label.js +19 -0
  250. package/build-module/dropdown-menu-v2/item-label.js.map +1 -0
  251. package/build-module/dropdown-menu-v2/item.js +46 -0
  252. package/build-module/dropdown-menu-v2/item.js.map +1 -0
  253. package/build-module/dropdown-menu-v2/radio-item.js +72 -0
  254. package/build-module/dropdown-menu-v2/radio-item.js.map +1 -0
  255. package/build-module/dropdown-menu-v2/separator.js +22 -0
  256. package/build-module/dropdown-menu-v2/separator.js.map +1 -0
  257. package/build-module/dropdown-menu-v2/styles.js +54 -78
  258. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  259. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  260. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js +20 -0
  261. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  262. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -2
  263. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  264. package/build-module/form-token-field/types.js.map +1 -1
  265. package/build-module/index.js +3 -1
  266. package/build-module/index.js.map +1 -1
  267. package/build-module/input-control/index.js +2 -2
  268. package/build-module/input-control/index.js.map +1 -1
  269. package/build-module/input-control/input-base.js +6 -11
  270. package/build-module/input-control/input-base.js.map +1 -1
  271. package/build-module/input-control/input-prefix-wrapper.js +4 -3
  272. package/build-module/input-control/input-prefix-wrapper.js.map +1 -1
  273. package/build-module/input-control/input-suffix-wrapper.js +3 -3
  274. package/build-module/input-control/input-suffix-wrapper.js.map +1 -1
  275. package/build-module/input-control/reducer/reducer.js +8 -8
  276. package/build-module/input-control/reducer/reducer.js.map +1 -1
  277. package/build-module/input-control/styles/input-control-styles.js +74 -44
  278. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  279. package/build-module/input-control/types.js.map +1 -1
  280. package/build-module/input-control/utils.js +3 -3
  281. package/build-module/input-control/utils.js.map +1 -1
  282. package/build-module/item-group/styles.js +10 -10
  283. package/build-module/item-group/styles.js.map +1 -1
  284. package/build-module/modal/index.js +17 -9
  285. package/build-module/modal/index.js.map +1 -1
  286. package/build-module/navigation/index.js +4 -4
  287. package/build-module/navigation/index.js.map +1 -1
  288. package/build-module/navigation/styles/navigation-styles.js +14 -14
  289. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  290. package/build-module/navigator/index.js +6 -6
  291. package/build-module/navigator/index.js.map +1 -1
  292. package/build-module/navigator/navigator-back-button/hook.js +1 -1
  293. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  294. package/build-module/navigator/navigator-button/hook.js +1 -1
  295. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  296. package/build-module/navigator/navigator-provider/component.js +99 -67
  297. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  298. package/build-module/navigator/navigator-screen/component.js +4 -0
  299. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  300. package/build-module/navigator/navigator-to-parent-button/component.js +1 -1
  301. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
  302. package/build-module/navigator/types.js.map +1 -1
  303. package/build-module/navigator/use-navigator.js +1 -2
  304. package/build-module/navigator/use-navigator.js.map +1 -1
  305. package/build-module/palette-edit/index.js +2 -2
  306. package/build-module/palette-edit/index.js.map +1 -1
  307. package/build-module/private-apis.js +1 -14
  308. package/build-module/private-apis.js.map +1 -1
  309. package/build-module/range-control/styles/range-control-styles.js +31 -31
  310. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  311. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
  312. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  313. package/build-module/select-control/styles/select-control-styles.js +13 -13
  314. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  315. package/build-module/slot-fill/bubbles-virtually/fill.js +4 -4
  316. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  317. package/build-module/slot-fill/index.js +1 -0
  318. package/build-module/slot-fill/index.js.map +1 -1
  319. package/build-module/snackbar/index.js +4 -4
  320. package/build-module/snackbar/index.js.map +1 -1
  321. package/build-module/tabs/index.js +4 -4
  322. package/build-module/tabs/index.js.map +1 -1
  323. package/build-module/tabs/styles.js +4 -4
  324. package/build-module/tabs/styles.js.map +1 -1
  325. package/build-module/tabs/tablist.js +5 -4
  326. package/build-module/tabs/tablist.js.map +1 -1
  327. package/build-module/toggle-group-control/toggle-group-control/utils.js +6 -6
  328. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  329. package/build-module/tools-panel/tools-panel/hook.js +6 -6
  330. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  331. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  332. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  333. package/build-module/utils/config-values.js +6 -4
  334. package/build-module/utils/config-values.js.map +1 -1
  335. package/build-module/utils/element-rect.js +74 -105
  336. package/build-module/utils/element-rect.js.map +1 -1
  337. package/build-module/utils/hooks/use-update-effect.js +4 -4
  338. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  339. package/build-style/style-rtl.css +11 -27
  340. package/build-style/style.css +11 -27
  341. package/build-types/alignment-matrix-control/cell.d.ts +1 -1
  342. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  343. package/build-types/alignment-matrix-control/icon.d.ts +1 -1
  344. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
  345. package/build-types/alignment-matrix-control/index.d.ts +16 -6
  346. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  347. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  348. package/build-types/alignment-matrix-control/{styles/alignment-matrix-control-styles.d.ts → styles.d.ts} +9 -10
  349. package/build-types/alignment-matrix-control/styles.d.ts.map +1 -0
  350. package/build-types/alignment-matrix-control/types.d.ts +12 -1
  351. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  352. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  353. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  354. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  355. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  356. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  357. package/build-types/circular-option-picker/types.d.ts +2 -2
  358. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  359. package/build-types/color-palette/utils.d.ts.map +1 -1
  360. package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
  361. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  362. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  363. package/build-types/color-picker/styles.d.ts.map +1 -1
  364. package/build-types/combobox-control/types.d.ts +1 -0
  365. package/build-types/combobox-control/types.d.ts.map +1 -1
  366. package/build-types/composite/context.d.ts.map +1 -1
  367. package/build-types/composite/group-label.d.ts +3 -0
  368. package/build-types/composite/group-label.d.ts.map +1 -0
  369. package/build-types/composite/group.d.ts +3 -0
  370. package/build-types/composite/group.d.ts.map +1 -0
  371. package/build-types/composite/hover.d.ts +3 -0
  372. package/build-types/composite/hover.d.ts.map +1 -0
  373. package/build-types/composite/index.d.ts +63 -47
  374. package/build-types/composite/index.d.ts.map +1 -1
  375. package/build-types/composite/item.d.ts +3 -0
  376. package/build-types/composite/item.d.ts.map +1 -0
  377. package/build-types/composite/legacy/index.d.ts +23 -3
  378. package/build-types/composite/legacy/index.d.ts.map +1 -1
  379. package/build-types/composite/legacy/stories/index.story.d.ts.map +1 -1
  380. package/build-types/composite/row.d.ts +3 -0
  381. package/build-types/composite/row.d.ts.map +1 -0
  382. package/build-types/composite/stories/index.story.d.ts +9 -8
  383. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  384. package/build-types/composite/typeahead.d.ts +3 -0
  385. package/build-types/composite/typeahead.d.ts.map +1 -0
  386. package/build-types/composite/types.d.ts +12 -11
  387. package/build-types/composite/types.d.ts.map +1 -1
  388. package/build-types/date-time/date/index.d.ts +0 -3
  389. package/build-types/date-time/date/index.d.ts.map +1 -1
  390. package/build-types/date-time/date/styles.d.ts.map +1 -1
  391. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  392. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  393. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  394. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  395. package/build-types/date-time/time/time-input/index.d.ts.map +1 -1
  396. package/build-types/dimension-control/index.d.ts +1 -1
  397. package/build-types/dimension-control/index.d.ts.map +1 -1
  398. package/build-types/dimension-control/stories/index.story.d.ts +5 -0
  399. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  400. package/build-types/dropdown-menu-v2/checkbox-item.d.ts +3 -0
  401. package/build-types/dropdown-menu-v2/checkbox-item.d.ts.map +1 -0
  402. package/build-types/dropdown-menu-v2/context.d.ts +6 -0
  403. package/build-types/dropdown-menu-v2/context.d.ts.map +1 -0
  404. package/build-types/dropdown-menu-v2/group-label.d.ts +3 -0
  405. package/build-types/dropdown-menu-v2/group-label.d.ts.map +1 -0
  406. package/build-types/dropdown-menu-v2/group.d.ts +3 -0
  407. package/build-types/dropdown-menu-v2/group.d.ts.map +1 -0
  408. package/build-types/dropdown-menu-v2/index.d.ts +39 -18
  409. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  410. package/build-types/dropdown-menu-v2/item-help-text.d.ts +6 -0
  411. package/build-types/dropdown-menu-v2/item-help-text.d.ts.map +1 -0
  412. package/build-types/dropdown-menu-v2/item-label.d.ts +6 -0
  413. package/build-types/dropdown-menu-v2/item-label.d.ts.map +1 -0
  414. package/build-types/dropdown-menu-v2/item.d.ts +3 -0
  415. package/build-types/dropdown-menu-v2/item.d.ts.map +1 -0
  416. package/build-types/dropdown-menu-v2/radio-item.d.ts +3 -0
  417. package/build-types/dropdown-menu-v2/radio-item.d.ts.map +1 -0
  418. package/build-types/dropdown-menu-v2/separator.d.ts +3 -0
  419. package/build-types/dropdown-menu-v2/separator.d.ts.map +1 -0
  420. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +10 -10
  421. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  422. package/build-types/dropdown-menu-v2/styles.d.ts +14 -6
  423. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  424. package/build-types/dropdown-menu-v2/types.d.ts +6 -0
  425. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  426. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts +8 -0
  427. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts.map +1 -0
  428. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  429. package/build-types/form-token-field/types.d.ts +1 -0
  430. package/build-types/form-token-field/types.d.ts.map +1 -1
  431. package/build-types/index.d.ts +4 -1
  432. package/build-types/index.d.ts.map +1 -1
  433. package/build-types/input-control/input-base.d.ts.map +1 -1
  434. package/build-types/input-control/input-prefix-wrapper.d.ts +2 -2
  435. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  436. package/build-types/input-control/input-suffix-wrapper.d.ts +2 -2
  437. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  438. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  439. package/build-types/input-control/stories/index.story.d.ts +9 -0
  440. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  441. package/build-types/input-control/styles/input-control-styles.d.ts +15 -9
  442. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  443. package/build-types/input-control/types.d.ts +23 -6
  444. package/build-types/input-control/types.d.ts.map +1 -1
  445. package/build-types/modal/index.d.ts.map +1 -1
  446. package/build-types/modal/stories/index.story.d.ts +3 -0
  447. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  448. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  449. package/build-types/navigator/index.d.ts +6 -6
  450. package/build-types/navigator/index.d.ts.map +1 -1
  451. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  452. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  453. package/build-types/navigator/stories/index.story.d.ts +1 -1
  454. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  455. package/build-types/navigator/types.d.ts +3 -1
  456. package/build-types/navigator/types.d.ts.map +1 -1
  457. package/build-types/navigator/use-navigator.d.ts +1 -2
  458. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  459. package/build-types/private-apis.d.ts.map +1 -1
  460. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  461. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  462. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  463. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  464. package/build-types/slot-fill/index.d.ts +3 -0
  465. package/build-types/slot-fill/index.d.ts.map +1 -1
  466. package/build-types/tabs/index.d.ts.map +1 -1
  467. package/build-types/tabs/styles.d.ts.map +1 -1
  468. package/build-types/tabs/tablist.d.ts.map +1 -1
  469. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  470. package/build-types/utils/config-values.d.ts +3 -3
  471. package/build-types/utils/element-rect.d.ts +32 -74
  472. package/build-types/utils/element-rect.d.ts.map +1 -1
  473. package/package.json +19 -20
  474. package/src/alignment-matrix-control/README.md +1 -5
  475. package/src/alignment-matrix-control/cell.tsx +3 -9
  476. package/src/alignment-matrix-control/icon.tsx +48 -30
  477. package/src/alignment-matrix-control/index.tsx +60 -50
  478. package/src/alignment-matrix-control/stories/index.story.tsx +3 -12
  479. package/src/alignment-matrix-control/styles.ts +113 -0
  480. package/src/alignment-matrix-control/types.ts +12 -1
  481. package/src/angle-picker-control/angle-circle.tsx +11 -9
  482. package/src/border-control/border-control/component.tsx +23 -16
  483. package/src/circular-option-picker/circular-option-picker-option.tsx +16 -19
  484. package/src/circular-option-picker/circular-option-picker.tsx +26 -12
  485. package/src/circular-option-picker/types.ts +2 -2
  486. package/src/clipboard-button/index.tsx +6 -6
  487. package/src/color-palette/test/utils.ts +21 -2
  488. package/src/color-palette/utils.ts +1 -3
  489. package/src/color-picker/color-copy-button.tsx +10 -8
  490. package/src/color-picker/hex-input.tsx +6 -10
  491. package/src/color-picker/input-with-slider.tsx +6 -10
  492. package/src/color-picker/styles.ts +1 -1
  493. package/src/combobox-control/types.ts +1 -0
  494. package/src/composite/README.md +5 -24
  495. package/src/composite/{context.ts → context.tsx} +1 -2
  496. package/src/composite/group-label.tsx +30 -0
  497. package/src/composite/group.tsx +30 -0
  498. package/src/composite/hover.tsx +30 -0
  499. package/src/composite/index.tsx +71 -166
  500. package/src/composite/item.tsx +30 -0
  501. package/src/composite/legacy/index.tsx +73 -11
  502. package/src/composite/legacy/stories/index.story.tsx +2 -1
  503. package/src/composite/legacy/test/index.tsx +57 -1
  504. package/src/composite/row.tsx +30 -0
  505. package/src/composite/stories/index.story.tsx +254 -365
  506. package/src/composite/typeahead.tsx +30 -0
  507. package/src/composite/types.ts +14 -16
  508. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +10 -10
  509. package/src/custom-gradient-picker/style.scss +2 -21
  510. package/src/custom-select-control-v2/styles.ts +4 -4
  511. package/src/date-time/date/index.tsx +1 -1
  512. package/src/date-time/date/styles.ts +33 -13
  513. package/src/date-time/date/test/use-lilius.ts +417 -0
  514. package/src/date-time/date/use-lilius/index.ts +394 -0
  515. package/src/date-time/time/test/index.tsx +3 -6
  516. package/src/date-time/time/time-input/index.tsx +25 -25
  517. package/src/date-time/time/time-input/test/index.tsx +6 -7
  518. package/src/dimension-control/README.md +4 -0
  519. package/src/dimension-control/index.tsx +7 -1
  520. package/src/dimension-control/stories/index.story.tsx +7 -2
  521. package/src/dimension-control/test/__snapshots__/index.test.js.snap +16 -16
  522. package/src/dimension-control/test/index.test.js +1 -0
  523. package/src/draggable/index.tsx +4 -4
  524. package/src/dropdown-menu-v2/README.md +73 -60
  525. package/src/dropdown-menu-v2/checkbox-item.tsx +63 -0
  526. package/src/dropdown-menu-v2/context.tsx +13 -0
  527. package/src/dropdown-menu-v2/group-label.tsx +37 -0
  528. package/src/dropdown-menu-v2/group.tsx +26 -0
  529. package/src/dropdown-menu-v2/index.tsx +57 -197
  530. package/src/dropdown-menu-v2/item-help-text.tsx +23 -0
  531. package/src/dropdown-menu-v2/item-label.tsx +23 -0
  532. package/src/dropdown-menu-v2/item.tsx +50 -0
  533. package/src/dropdown-menu-v2/radio-item.tsx +70 -0
  534. package/src/dropdown-menu-v2/separator.tsx +27 -0
  535. package/src/dropdown-menu-v2/stories/index.story.tsx +295 -262
  536. package/src/dropdown-menu-v2/styles.ts +102 -66
  537. package/src/dropdown-menu-v2/test/index.tsx +159 -132
  538. package/src/dropdown-menu-v2/types.ts +7 -0
  539. package/src/dropdown-menu-v2/use-temporary-focus-visible-fix.ts +22 -0
  540. package/src/focal-point-picker/styles/focal-point-style.ts +6 -1
  541. package/src/form-toggle/style.scss +1 -1
  542. package/src/form-token-field/style.scss +2 -3
  543. package/src/form-token-field/types.ts +1 -0
  544. package/src/index.ts +6 -1
  545. package/src/input-control/index.tsx +2 -2
  546. package/src/input-control/input-base.tsx +4 -14
  547. package/src/input-control/input-prefix-wrapper.tsx +8 -4
  548. package/src/input-control/input-suffix-wrapper.tsx +4 -6
  549. package/src/input-control/reducer/reducer.ts +13 -10
  550. package/src/input-control/stories/index.story.tsx +31 -12
  551. package/src/input-control/styles/input-control-styles.tsx +42 -11
  552. package/src/input-control/types.ts +23 -7
  553. package/src/input-control/utils.ts +3 -3
  554. package/src/item-group/styles.ts +3 -3
  555. package/src/item-group/test/__snapshots__/index.js.snap +3 -3
  556. package/src/modal/index.tsx +21 -12
  557. package/src/modal/stories/index.story.tsx +8 -14
  558. package/src/modal/style.scss +5 -9
  559. package/src/navigation/index.tsx +4 -4
  560. package/src/navigation/styles/navigation-styles.tsx +3 -3
  561. package/src/navigator/index.ts +6 -6
  562. package/src/navigator/navigator-back-button/hook.ts +1 -1
  563. package/src/navigator/navigator-button/hook.ts +1 -1
  564. package/src/navigator/navigator-provider/README.md +2 -3
  565. package/src/navigator/navigator-provider/component.tsx +97 -82
  566. package/src/navigator/navigator-screen/component.tsx +7 -0
  567. package/src/navigator/navigator-to-parent-button/component.tsx +1 -1
  568. package/src/navigator/stories/index.story.tsx +82 -253
  569. package/src/navigator/test/index.tsx +8 -0
  570. package/src/navigator/types.ts +3 -1
  571. package/src/navigator/use-navigator.ts +1 -3
  572. package/src/palette-edit/index.tsx +2 -2
  573. package/src/private-apis.ts +1 -23
  574. package/src/range-control/styles/range-control-styles.ts +7 -7
  575. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -2
  576. package/src/resizable-box/style.scss +2 -2
  577. package/src/select-control/README.md +2 -2
  578. package/src/select-control/styles/select-control-styles.ts +5 -5
  579. package/src/slot-fill/bubbles-virtually/fill.tsx +4 -4
  580. package/src/slot-fill/index.tsx +1 -0
  581. package/src/snackbar/index.tsx +4 -4
  582. package/src/tab-panel/style.scss +0 -1
  583. package/src/tabs/index.tsx +8 -4
  584. package/src/tabs/styles.ts +42 -14
  585. package/src/tabs/tablist.tsx +5 -4
  586. package/src/text-control/style.scss +3 -2
  587. package/src/toggle-group-control/toggle-group-control/utils.ts +7 -7
  588. package/src/tools-panel/tools-panel/hook.ts +6 -6
  589. package/src/unit-control/styles/unit-control-styles.ts +2 -1
  590. package/src/utils/config-values.js +6 -4
  591. package/src/utils/element-rect.ts +93 -130
  592. package/src/utils/hooks/use-update-effect.js +4 -4
  593. package/tsconfig.tsbuildinfo +1 -1
  594. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -66
  595. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  596. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -77
  597. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  598. package/build/navigator/navigator-back-button/index.js +0 -14
  599. package/build/navigator/navigator-back-button/index.js.map +0 -1
  600. package/build/navigator/navigator-button/index.js +0 -14
  601. package/build/navigator/navigator-button/index.js.map +0 -1
  602. package/build/navigator/navigator-provider/index.js +0 -14
  603. package/build/navigator/navigator-provider/index.js.map +0 -1
  604. package/build/navigator/navigator-screen/index.js +0 -14
  605. package/build/navigator/navigator-screen/index.js.map +0 -1
  606. package/build/navigator/navigator-to-parent-button/index.js +0 -14
  607. package/build/navigator/navigator-to-parent-button/index.js.map +0 -1
  608. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -63
  609. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  610. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -72
  611. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  612. package/build-module/navigator/navigator-back-button/index.js +0 -2
  613. package/build-module/navigator/navigator-back-button/index.js.map +0 -1
  614. package/build-module/navigator/navigator-button/index.js +0 -2
  615. package/build-module/navigator/navigator-button/index.js.map +0 -1
  616. package/build-module/navigator/navigator-provider/index.js +0 -2
  617. package/build-module/navigator/navigator-provider/index.js.map +0 -1
  618. package/build-module/navigator/navigator-screen/index.js +0 -2
  619. package/build-module/navigator/navigator-screen/index.js.map +0 -1
  620. package/build-module/navigator/navigator-to-parent-button/index.js +0 -2
  621. package/build-module/navigator/navigator-to-parent-button/index.js.map +0 -1
  622. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +0 -18
  623. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +0 -1
  624. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +0 -1
  625. package/build-types/composite/stories/utils.d.ts +0 -29
  626. package/build-types/composite/stories/utils.d.ts.map +0 -1
  627. package/build-types/navigator/navigator-back-button/index.d.ts +0 -2
  628. package/build-types/navigator/navigator-back-button/index.d.ts.map +0 -1
  629. package/build-types/navigator/navigator-button/index.d.ts +0 -2
  630. package/build-types/navigator/navigator-button/index.d.ts.map +0 -1
  631. package/build-types/navigator/navigator-provider/index.d.ts +0 -2
  632. package/build-types/navigator/navigator-provider/index.d.ts.map +0 -1
  633. package/build-types/navigator/navigator-screen/index.d.ts +0 -2
  634. package/build-types/navigator/navigator-screen/index.d.ts.map +0 -1
  635. package/build-types/navigator/navigator-to-parent-button/index.d.ts +0 -2
  636. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +0 -1
  637. package/src/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.ts +0 -77
  638. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +0 -102
  639. package/src/composite/stories/utils.tsx +0 -76
  640. package/src/navigator/navigator-back-button/index.ts +0 -1
  641. package/src/navigator/navigator-button/index.ts +0 -1
  642. package/src/navigator/navigator-provider/index.ts +0 -1
  643. package/src/navigator/navigator-screen/index.ts +0 -1
  644. package/src/navigator/navigator-to-parent-button/index.ts +0 -1
@@ -16,148 +16,21 @@ import * as Ariakit from '@ariakit/react';
16
16
  /**
17
17
  * WordPress dependencies
18
18
  */
19
+ import { isRTL } from '@wordpress/i18n';
19
20
  import { useMemo, forwardRef } from '@wordpress/element';
20
21
 
21
22
  /**
22
23
  * Internal dependencies
23
24
  */
24
25
  import type { WordPressComponentProps } from '../context';
25
- import { CompositeContext, useCompositeContext } from './context';
26
- import type {
27
- CompositeStoreProps,
28
- CompositeProps,
29
- CompositeGroupProps,
30
- CompositeGroupLabelProps,
31
- CompositeItemProps,
32
- CompositeRowProps,
33
- CompositeHoverProps,
34
- CompositeTypeaheadProps,
35
- } from './types';
36
-
37
- /**
38
- * Creates a composite store.
39
- *
40
- * @example
41
- * ```jsx
42
- * import { Composite, useCompositeStore } from '@wordpress/components';
43
- *
44
- * const store = useCompositeStore();
45
- * <Composite store={store}>
46
- * <Composite.Item>Item</Composite.Item>
47
- * <Composite.Item>Item</Composite.Item>
48
- * <Composite.Item>Item</Composite.Item>
49
- * </Composite>
50
- * ```
51
- */
52
- export function useCompositeStore( {
53
- focusLoop = false,
54
- focusWrap = false,
55
- focusShift = false,
56
- virtualFocus = false,
57
- orientation = 'both',
58
- rtl = false,
59
- ...props
60
- }: CompositeStoreProps = {} ) {
61
- return Ariakit.useCompositeStore( {
62
- focusLoop,
63
- focusWrap,
64
- focusShift,
65
- virtualFocus,
66
- orientation,
67
- rtl,
68
- ...props,
69
- } );
70
- }
71
-
72
- const Group = forwardRef<
73
- HTMLDivElement,
74
- WordPressComponentProps< CompositeGroupProps, 'div', false >
75
- >( function CompositeGroup( props, ref ) {
76
- const context = useCompositeContext();
77
- return (
78
- <Ariakit.CompositeGroup
79
- store={ context?.store }
80
- { ...props }
81
- ref={ ref }
82
- />
83
- );
84
- } );
85
- Group.displayName = 'Composite.Group';
86
-
87
- const GroupLabel = forwardRef<
88
- HTMLDivElement,
89
- WordPressComponentProps< CompositeGroupLabelProps, 'div', false >
90
- >( function CompositeGroupLabel( props, ref ) {
91
- const context = useCompositeContext();
92
- return (
93
- <Ariakit.CompositeGroupLabel
94
- store={ context?.store }
95
- { ...props }
96
- ref={ ref }
97
- />
98
- );
99
- } );
100
- GroupLabel.displayName = 'Composite.GroupLabel';
101
-
102
- const Item = forwardRef<
103
- HTMLButtonElement,
104
- WordPressComponentProps< CompositeItemProps, 'button', false >
105
- >( function CompositeItem( props, ref ) {
106
- const context = useCompositeContext();
107
- return (
108
- <Ariakit.CompositeItem
109
- store={ context?.store }
110
- { ...props }
111
- ref={ ref }
112
- />
113
- );
114
- } );
115
- Item.displayName = 'Composite.Item';
116
-
117
- const Row = forwardRef<
118
- HTMLDivElement,
119
- WordPressComponentProps< CompositeRowProps, 'div', false >
120
- >( function CompositeRow( props, ref ) {
121
- const context = useCompositeContext();
122
- return (
123
- <Ariakit.CompositeRow
124
- store={ context?.store }
125
- { ...props }
126
- ref={ ref }
127
- />
128
- );
129
- } );
130
- Row.displayName = 'Composite.Row';
131
-
132
- const Hover = forwardRef<
133
- HTMLDivElement,
134
- WordPressComponentProps< CompositeHoverProps, 'div', false >
135
- >( function CompositeHover( props, ref ) {
136
- const context = useCompositeContext();
137
- return (
138
- <Ariakit.CompositeHover
139
- store={ context?.store }
140
- { ...props }
141
- ref={ ref }
142
- />
143
- );
144
- } );
145
- Hover.displayName = 'Composite.Hover';
146
-
147
- const Typeahead = forwardRef<
148
- HTMLDivElement,
149
- WordPressComponentProps< CompositeTypeaheadProps, 'div', false >
150
- >( function CompositeTypeahead( props, ref ) {
151
- const context = useCompositeContext();
152
- return (
153
- <Ariakit.CompositeTypeahead
154
- store={ context?.store }
155
- { ...props }
156
- ref={ ref }
157
- />
158
- );
159
- } );
160
- Typeahead.displayName = 'Composite.Typeahead';
26
+ import { CompositeContext } from './context';
27
+ import { CompositeGroup } from './group';
28
+ import { CompositeGroupLabel } from './group-label';
29
+ import { CompositeHover } from './hover';
30
+ import { CompositeItem } from './item';
31
+ import { CompositeRow } from './row';
32
+ import { CompositeTypeahead } from './typeahead';
33
+ import type { CompositeProps } from './types';
161
34
 
162
35
  /**
163
36
  * Renders a widget based on the WAI-ARIA [`composite`](https://w3c.github.io/aria/#composite)
@@ -166,10 +39,9 @@ Typeahead.displayName = 'Composite.Typeahead';
166
39
  *
167
40
  * @example
168
41
  * ```jsx
169
- * import { Composite, useCompositeStore } from '@wordpress/components';
42
+ * import { Composite } from '@wordpress/components';
170
43
  *
171
- * const store = useCompositeStore();
172
- * <Composite store={store}>
44
+ * <Composite>
173
45
  * <Composite.Item>Item 1</Composite.Item>
174
46
  * <Composite.Item>Item 2</Composite.Item>
175
47
  * </Composite>
@@ -180,9 +52,39 @@ export const Composite = Object.assign(
180
52
  HTMLDivElement,
181
53
  WordPressComponentProps< CompositeProps, 'div', false >
182
54
  >( function Composite(
183
- { children, store, disabled = false, ...props },
55
+ {
56
+ // Composite store props
57
+ activeId,
58
+ defaultActiveId,
59
+ setActiveId,
60
+ focusLoop = false,
61
+ focusWrap = false,
62
+ focusShift = false,
63
+ virtualFocus = false,
64
+ orientation = 'both',
65
+ rtl = isRTL(),
66
+
67
+ // Composite component props
68
+ children,
69
+ disabled = false,
70
+
71
+ // Rest props
72
+ ...props
73
+ },
184
74
  ref
185
75
  ) {
76
+ const store = Ariakit.useCompositeStore( {
77
+ activeId,
78
+ defaultActiveId,
79
+ setActiveId,
80
+ focusLoop,
81
+ focusWrap,
82
+ focusShift,
83
+ virtualFocus,
84
+ orientation,
85
+ rtl,
86
+ } );
87
+
186
88
  const contextValue = useMemo(
187
89
  () => ( {
188
90
  store,
@@ -204,16 +106,14 @@ export const Composite = Object.assign(
204
106
  );
205
107
  } ),
206
108
  {
207
- displayName: 'Composite',
208
109
  /**
209
110
  * Renders a group element for composite items.
210
111
  *
211
112
  * @example
212
113
  * ```jsx
213
- * import { Composite, useCompositeStore } from '@wordpress/components';
114
+ * import { Composite } from '@wordpress/components';
214
115
  *
215
- * const store = useCompositeStore();
216
- * <Composite store={store}>
116
+ * <Composite>
217
117
  * <Composite.Group>
218
118
  * <Composite.GroupLabel>Label</Composite.GroupLabel>
219
119
  * <Composite.Item>Item 1</Composite.Item>
@@ -222,7 +122,9 @@ export const Composite = Object.assign(
222
122
  * </Composite>
223
123
  * ```
224
124
  */
225
- Group,
125
+ Group: Object.assign( CompositeGroup, {
126
+ displayName: 'Composite.Group',
127
+ } ),
226
128
  /**
227
129
  * Renders a label in a composite group. This component must be wrapped with
228
130
  * `Composite.Group` so the `aria-labelledby` prop is properly set on the
@@ -230,10 +132,9 @@ export const Composite = Object.assign(
230
132
  *
231
133
  * @example
232
134
  * ```jsx
233
- * import { Composite, useCompositeStore } from '@wordpress/components';
135
+ * import { Composite } from '@wordpress/components';
234
136
  *
235
- * const store = useCompositeStore();
236
- * <Composite store={store}>
137
+ * <Composite>
237
138
  * <Composite.Group>
238
139
  * <Composite.GroupLabel>Label</Composite.GroupLabel>
239
140
  * <Composite.Item>Item 1</Composite.Item>
@@ -242,23 +143,24 @@ export const Composite = Object.assign(
242
143
  * </Composite>
243
144
  * ```
244
145
  */
245
- GroupLabel,
146
+ GroupLabel: Object.assign( CompositeGroupLabel, {
147
+ displayName: 'Composite.GroupLabel',
148
+ } ),
246
149
  /**
247
150
  * Renders a composite item.
248
151
  *
249
152
  * @example
250
153
  * ```jsx
251
- * import { Composite, useCompositeStore } from '@wordpress/components';
154
+ * import { Composite } from '@wordpress/components';
252
155
  *
253
- * const store = useCompositeStore();
254
- * <Composite store={store}>
156
+ * <Composite>
255
157
  * <Composite.Item>Item 1</Composite.Item>
256
158
  * <Composite.Item>Item 2</Composite.Item>
257
159
  * <Composite.Item>Item 3</Composite.Item>
258
160
  * </Composite>
259
161
  * ```
260
162
  */
261
- Item,
163
+ Item: Object.assign( CompositeItem, { displayName: 'Composite.Item' } ),
262
164
  /**
263
165
  * Renders a composite row. Wrapping `Composite.Item` elements within
264
166
  * `Composite.Row` will create a two-dimensional composite widget, such as a
@@ -266,10 +168,9 @@ export const Composite = Object.assign(
266
168
  *
267
169
  * @example
268
170
  * ```jsx
269
- * import { Composite, useCompositeStore } from '@wordpress/components';
171
+ * import { Composite } from '@wordpress/components';
270
172
  *
271
- * const store = useCompositeStore();
272
- * <Composite store={store}>
173
+ * <Composite>
273
174
  * <Composite.Row>
274
175
  * <Composite.Item>Item 1.1</Composite.Item>
275
176
  * <Composite.Item>Item 1.2</Composite.Item>
@@ -283,7 +184,7 @@ export const Composite = Object.assign(
283
184
  * </Composite>
284
185
  * ```
285
186
  */
286
- Row,
187
+ Row: Object.assign( CompositeRow, { displayName: 'Composite.Row' } ),
287
188
  /**
288
189
  * Renders an element in a composite widget that receives focus on mouse move
289
190
  * and loses focus to the composite base element on mouse leave. This should
@@ -291,10 +192,9 @@ export const Composite = Object.assign(
291
192
  *
292
193
  * @example
293
194
  * ```jsx
294
- * import { Composite, useCompositeStore } from '@wordpress/components';
195
+ * import { Composite } from '@wordpress/components';
295
196
  *
296
- * const store = useCompositeStore();
297
- * <Composite store={store}>
197
+ * <Composite>
298
198
  * <Composite.Hover render={ <Composite.Item /> }>
299
199
  * Item 1
300
200
  * </Composite.Hover>
@@ -304,7 +204,9 @@ export const Composite = Object.assign(
304
204
  * </Composite>
305
205
  * ```
306
206
  */
307
- Hover,
207
+ Hover: Object.assign( CompositeHover, {
208
+ displayName: 'Composite.Hover',
209
+ } ),
308
210
  /**
309
211
  * Renders a component that adds typeahead functionality to composite
310
212
  * components. Hitting printable character keys will move focus to the next
@@ -312,16 +214,17 @@ export const Composite = Object.assign(
312
214
  *
313
215
  * @example
314
216
  * ```jsx
315
- * import { Composite, useCompositeStore } from '@wordpress/components';
217
+ * import { Composite } from '@wordpress/components';
316
218
  *
317
- * const store = useCompositeStore();
318
- * <Composite store={store} render={ <CompositeTypeahead /> }>
219
+ * <Composite render={ <CompositeTypeahead /> }>
319
220
  * <Composite.Item>Item 1</Composite.Item>
320
221
  * <Composite.Item>Item 2</Composite.Item>
321
222
  * </Composite>
322
223
  * ```
323
224
  */
324
- Typeahead,
225
+ Typeahead: Object.assign( CompositeTypeahead, {
226
+ displayName: 'Composite.Typeahead',
227
+ } ),
325
228
  /**
326
229
  * The React context used by the composite components. It can be used by
327
230
  * to access the composite store, and to forward the context when composite
@@ -336,6 +239,8 @@ export const Composite = Object.assign(
336
239
  * const compositeContext = useContext( Composite.Context );
337
240
  * ```
338
241
  */
339
- Context: CompositeContext,
242
+ Context: Object.assign( CompositeContext, {
243
+ displayName: 'Composite.Context',
244
+ } ),
340
245
  }
341
246
  );
@@ -0,0 +1,30 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import * as Ariakit from '@ariakit/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { forwardRef } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import type { WordPressComponentProps } from '../context';
15
+ import { useCompositeContext } from './context';
16
+ import type { CompositeItemProps } from './types';
17
+
18
+ export const CompositeItem = forwardRef<
19
+ HTMLButtonElement,
20
+ WordPressComponentProps< CompositeItemProps, 'button', false >
21
+ >( function CompositeItem( props, ref ) {
22
+ const context = useCompositeContext();
23
+ return (
24
+ <Ariakit.CompositeItem
25
+ store={ context.store as Ariakit.CompositeStore }
26
+ { ...props }
27
+ ref={ ref }
28
+ />
29
+ );
30
+ } );
@@ -13,16 +13,22 @@
13
13
  * @see https://ariakit.org/components/composite
14
14
  */
15
15
 
16
+ /**
17
+ * External dependencies
18
+ */
19
+ import * as Ariakit from '@ariakit/react';
20
+
16
21
  /**
17
22
  * WordPress dependencies
18
23
  */
19
24
  import { forwardRef } from '@wordpress/element';
25
+ import { useInstanceId } from '@wordpress/compose';
26
+ import deprecated from '@wordpress/deprecated';
20
27
 
21
28
  /**
22
29
  * Internal dependencies
23
30
  */
24
- import { Composite as Current, useCompositeStore } from '..';
25
- import { useInstanceId } from '@wordpress/compose';
31
+ import { Composite as Current } from '..';
26
32
 
27
33
  type Orientation = 'horizontal' | 'vertical';
28
34
 
@@ -78,7 +84,7 @@ export interface LegacyStateOptions {
78
84
 
79
85
  type Component = React.FunctionComponent< any >;
80
86
 
81
- type CompositeStore = ReturnType< typeof useCompositeStore >;
87
+ type CompositeStore = ReturnType< typeof Ariakit.useCompositeStore >;
82
88
  type CompositeStoreState = { store: CompositeStore };
83
89
  export type CompositeState = CompositeStoreState &
84
90
  Required< Pick< LegacyStateOptions, 'baseId' > >;
@@ -118,12 +124,31 @@ function mapLegacyStatePropsToComponentProps(
118
124
  return legacyProps;
119
125
  }
120
126
 
127
+ const LEGACY_TO_NEW_DISPLAY_NAME = {
128
+ __unstableComposite: 'Composite',
129
+ __unstableCompositeGroup: 'Composite.Group or Composite.Row',
130
+ __unstableCompositeItem: 'Composite.Item',
131
+ __unstableUseCompositeState: 'Composite',
132
+ };
133
+
121
134
  function proxyComposite< C extends Component >(
122
135
  ProxiedComponent: C | React.ForwardRefExoticComponent< C >,
123
136
  propMap: Record< string, string > = {}
124
137
  ): CompositeComponent< C > {
125
- const displayName = ProxiedComponent.displayName;
138
+ const displayName = ProxiedComponent.displayName ?? '';
139
+
126
140
  const Component = ( legacyProps: CompositeStateProps ) => {
141
+ deprecated( `wp.components.${ displayName }`, {
142
+ since: '6.7',
143
+ alternative: LEGACY_TO_NEW_DISPLAY_NAME.hasOwnProperty(
144
+ displayName
145
+ )
146
+ ? LEGACY_TO_NEW_DISPLAY_NAME[
147
+ displayName as keyof typeof LEGACY_TO_NEW_DISPLAY_NAME
148
+ ]
149
+ : undefined,
150
+ } );
151
+
127
152
  const { store, ...rest } =
128
153
  mapLegacyStatePropsToComponentProps( legacyProps );
129
154
  const props = rest as ComponentProps< C >;
@@ -148,7 +173,7 @@ function proxyComposite< C extends Component >(
148
173
  // `CompositeRow`, but this has been split into two different
149
174
  // components. We handle that difference by checking on the
150
175
  // provided role, and returning the appropriate component.
151
- const unproxiedCompositeGroup = forwardRef<
176
+ const UnproxiedCompositeGroup = forwardRef<
152
177
  any,
153
178
  React.ComponentPropsWithoutRef< typeof Current.Group | typeof Current.Row >
154
179
  >( ( { role, ...props }, ref ) => {
@@ -156,15 +181,52 @@ const unproxiedCompositeGroup = forwardRef<
156
181
  return <Component ref={ ref } role={ role } { ...props } />;
157
182
  } );
158
183
 
159
- export const Composite = proxyComposite( Current, { baseId: 'id' } );
160
- export const CompositeGroup = proxyComposite( unproxiedCompositeGroup );
161
- export const CompositeItem = proxyComposite( Current.Item, {
162
- focusable: 'accessibleWhenDisabled',
163
- } );
184
+ /**
185
+ * _Note: please use the `Composite` component instead._
186
+ *
187
+ * @deprecated
188
+ */
189
+ export const Composite = proxyComposite(
190
+ Object.assign( Current, { displayName: '__unstableComposite' } ),
191
+ { baseId: 'id' }
192
+ );
193
+ /**
194
+ * _Note: please use the `Composite.Row` or `Composite.Group` components instead._
195
+ *
196
+ * @deprecated
197
+ */
198
+ export const CompositeGroup = proxyComposite(
199
+ Object.assign( UnproxiedCompositeGroup, {
200
+ displayName: '__unstableCompositeGroup',
201
+ } )
202
+ );
203
+ /**
204
+ * _Note: please use the `Composite.Item` component instead._
205
+ *
206
+ * @deprecated
207
+ */
208
+ export const CompositeItem = proxyComposite(
209
+ Object.assign( Current.Item, {
210
+ displayName: '__unstableCompositeItem',
211
+ } ),
212
+ {
213
+ focusable: 'accessibleWhenDisabled',
214
+ }
215
+ );
164
216
 
217
+ /**
218
+ * _Note: please use the `Composite` component instead._
219
+ *
220
+ * @deprecated
221
+ */
165
222
  export function useCompositeState(
166
223
  legacyStateOptions: LegacyStateOptions = {}
167
224
  ): CompositeState {
225
+ deprecated( `wp.components.__unstableUseCompositeState`, {
226
+ since: '6.7',
227
+ alternative: LEGACY_TO_NEW_DISPLAY_NAME.__unstableUseCompositeState,
228
+ } );
229
+
168
230
  const {
169
231
  baseId,
170
232
  currentId: defaultActiveId,
@@ -179,7 +241,7 @@ export function useCompositeState(
179
241
 
180
242
  return {
181
243
  baseId: useInstanceId( Composite, 'composite', baseId ),
182
- store: useCompositeStore( {
244
+ store: Ariakit.useCompositeStore( {
183
245
  defaultActiveId,
184
246
  rtl,
185
247
  orientation,
@@ -15,7 +15,8 @@ import {
15
15
  import { UseCompositeStatePlaceholder, transform } from './utils';
16
16
 
17
17
  const meta: Meta< typeof UseCompositeStatePlaceholder > = {
18
- title: 'Components/Composite',
18
+ title: 'Components (Deprecated)/Composite (Unstable)',
19
+ id: 'components-composite-unstable',
19
20
  component: UseCompositeStatePlaceholder,
20
21
  subcomponents: {
21
22
  Composite,
@@ -1,7 +1,12 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { queryByAttribute, render, screen } from '@testing-library/react';
4
+ import {
5
+ queryByAttribute,
6
+ render,
7
+ screen,
8
+ renderHook,
9
+ } from '@testing-library/react';
5
10
  import { press, waitFor } from '@ariakit/test';
6
11
 
7
12
  /**
@@ -156,6 +161,57 @@ function getShiftTestItems() {
156
161
  };
157
162
  }
158
163
 
164
+ // Checking for deprecation warnings before other tests because the `deprecated`
165
+ // utility only fires a console.warn the first time a component is rendered.
166
+ describe( 'Shows a deprecation warning', () => {
167
+ it( 'useCompositeState', () => {
168
+ renderHook( () => useCompositeState() );
169
+ expect( console ).toHaveWarnedWith(
170
+ 'wp.components.__unstableUseCompositeState is deprecated since version 6.7. Please use Composite instead.'
171
+ );
172
+ } );
173
+ it( 'Composite', () => {
174
+ const Test = () => {
175
+ const props = useCompositeState();
176
+ return <Composite { ...props } />;
177
+ };
178
+ render( <Test /> );
179
+ expect( console ).toHaveWarnedWith(
180
+ 'wp.components.__unstableComposite is deprecated since version 6.7. Please use Composite instead.'
181
+ );
182
+ } );
183
+ it( 'CompositeItem', () => {
184
+ const Test = () => {
185
+ const props = useCompositeState();
186
+ return (
187
+ <Composite { ...props }>
188
+ <CompositeItem { ...props } />
189
+ </Composite>
190
+ );
191
+ };
192
+ render( <Test /> );
193
+ expect( console ).toHaveWarnedWith(
194
+ 'wp.components.__unstableCompositeItem is deprecated since version 6.7. Please use Composite.Item instead.'
195
+ );
196
+ } );
197
+ it( 'CompositeGroup', () => {
198
+ const Test = () => {
199
+ const props = useCompositeState();
200
+ return (
201
+ <Composite { ...props }>
202
+ <CompositeGroup { ...props }>
203
+ <CompositeItem { ...props } />
204
+ </CompositeGroup>
205
+ </Composite>
206
+ );
207
+ };
208
+ render( <Test /> );
209
+ expect( console ).toHaveWarnedWith(
210
+ 'wp.components.__unstableCompositeGroup is deprecated since version 6.7. Please use Composite.Group or Composite.Row instead.'
211
+ );
212
+ } );
213
+ } );
214
+
159
215
  describe.each( [
160
216
  [
161
217
  'With "spread" state',
@@ -0,0 +1,30 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import * as Ariakit from '@ariakit/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { forwardRef } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import type { WordPressComponentProps } from '../context';
15
+ import { useCompositeContext } from './context';
16
+ import type { CompositeRowProps } from './types';
17
+
18
+ export const CompositeRow = forwardRef<
19
+ HTMLDivElement,
20
+ WordPressComponentProps< CompositeRowProps, 'div', false >
21
+ >( function CompositeRow( props, ref ) {
22
+ const context = useCompositeContext();
23
+ return (
24
+ <Ariakit.CompositeRow
25
+ store={ context.store as Ariakit.CompositeStore }
26
+ { ...props }
27
+ ref={ ref }
28
+ />
29
+ );
30
+ } );