@wordpress/components 20.0.2-next.957ca95e4c.0 → 21.0.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 (851) hide show
  1. package/CHANGELOG.md +56 -1
  2. package/CONTRIBUTING.md +3 -54
  3. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  4. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  5. package/build/angle-picker-control/index.js +10 -0
  6. package/build/angle-picker-control/index.js.map +1 -1
  7. package/build/border-box-control/border-box-control/component.js +5 -1
  8. package/build/border-box-control/border-box-control/component.js.map +1 -1
  9. package/build/border-box-control/border-box-control-split-controls/component.js +5 -1
  10. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  11. package/build/border-control/border-control-dropdown/component.js +2 -1
  12. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  13. package/build/card/styles.js +17 -17
  14. package/build/card/styles.js.map +1 -1
  15. package/build/checkbox-control/index.js +3 -3
  16. package/build/checkbox-control/index.js.map +1 -1
  17. package/build/color-palette/index.js +1 -1
  18. package/build/color-palette/index.js.map +1 -1
  19. package/build/color-picker/input-with-slider.js +2 -1
  20. package/build/color-picker/input-with-slider.js.map +1 -1
  21. package/build/combobox-control/index.js +1 -1
  22. package/build/combobox-control/index.js.map +1 -1
  23. package/build/custom-gradient-picker/index.js +1 -1
  24. package/build/custom-gradient-picker/index.js.map +1 -1
  25. package/build/date-time/date/index.js +1 -1
  26. package/build/date-time/date/index.js.map +1 -1
  27. package/build/date-time/time/timezone.js +1 -1
  28. package/build/date-time/time/timezone.js.map +1 -1
  29. package/build/disabled/index.js +14 -6
  30. package/build/disabled/index.js.map +1 -1
  31. package/build/disabled/styles/disabled-styles.js +8 -18
  32. package/build/disabled/styles/disabled-styles.js.map +1 -1
  33. package/build/drop-zone/index.js +44 -9
  34. package/build/drop-zone/index.js.map +1 -1
  35. package/build/drop-zone/provider.js.map +1 -1
  36. package/build/drop-zone/types.js +6 -0
  37. package/build/drop-zone/types.js.map +1 -0
  38. package/build/flex/flex/hook.js +6 -30
  39. package/build/flex/flex/hook.js.map +1 -1
  40. package/build/focal-point-picker/controls.js +10 -5
  41. package/build/focal-point-picker/controls.js.map +1 -1
  42. package/build/focal-point-picker/focal-point.js.map +1 -1
  43. package/build/focal-point-picker/grid.js.map +1 -1
  44. package/build/focal-point-picker/index.js +83 -16
  45. package/build/focal-point-picker/index.js.map +1 -1
  46. package/build/focal-point-picker/media.js +4 -0
  47. package/build/focal-point-picker/media.js.map +1 -1
  48. package/build/focal-point-picker/styles/focal-point-picker-style.js +70 -41
  49. package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  50. package/build/focal-point-picker/styles/focal-point-style.js +12 -12
  51. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  52. package/build/focal-point-picker/types.js +6 -0
  53. package/build/focal-point-picker/types.js.map +1 -0
  54. package/build/focal-point-picker/utils.js +6 -6
  55. package/build/focal-point-picker/utils.js.map +1 -1
  56. package/build/font-size-picker/index.js +11 -0
  57. package/build/font-size-picker/index.js.map +1 -1
  58. package/build/font-size-picker/utils.js +1 -1
  59. package/build/font-size-picker/utils.js.map +1 -1
  60. package/build/form-file-upload/index.js +22 -2
  61. package/build/form-file-upload/index.js.map +1 -1
  62. package/build/form-file-upload/types.js +6 -0
  63. package/build/form-file-upload/types.js.map +1 -0
  64. package/build/form-toggle/index.js +1 -3
  65. package/build/form-toggle/index.js.map +1 -1
  66. package/build/form-token-field/index.js +4 -6
  67. package/build/form-token-field/index.js.map +1 -1
  68. package/build/form-token-field/suggestions-list.js +1 -3
  69. package/build/form-token-field/suggestions-list.js.map +1 -1
  70. package/build/gradient-picker/index.js +25 -26
  71. package/build/gradient-picker/index.js.map +1 -1
  72. package/build/icon/index.js +1 -2
  73. package/build/icon/index.js.map +1 -1
  74. package/build/input-control/input-base.js +3 -2
  75. package/build/input-control/input-base.js.map +1 -1
  76. package/build/input-control/label.js +2 -2
  77. package/build/input-control/label.js.map +1 -1
  78. package/build/input-control/styles/input-control-styles.js +41 -128
  79. package/build/input-control/styles/input-control-styles.js.map +1 -1
  80. package/build/modal/aria-helper.js +3 -10
  81. package/build/modal/aria-helper.js.map +1 -1
  82. package/build/navigable-container/container.js +5 -1
  83. package/build/navigable-container/container.js.map +1 -1
  84. package/build/navigable-container/menu.js +10 -12
  85. package/build/navigable-container/menu.js.map +1 -1
  86. package/build/navigable-container/tabbable.js +2 -4
  87. package/build/navigable-container/tabbable.js.map +1 -1
  88. package/build/navigator/navigator-button/hook.js +1 -1
  89. package/build/navigator/navigator-button/hook.js.map +1 -1
  90. package/build/navigator/navigator-screen/component.js +2 -2
  91. package/build/navigator/navigator-screen/component.js.map +1 -1
  92. package/build/number-control/index.js +29 -25
  93. package/build/number-control/index.js.map +1 -1
  94. package/build/number-control/types.js +6 -0
  95. package/build/number-control/types.js.map +1 -0
  96. package/build/placeholder/index.js +1 -3
  97. package/build/placeholder/index.js.map +1 -1
  98. package/build/popover/index.js +155 -154
  99. package/build/popover/index.js.map +1 -1
  100. package/build/popover/types.js +6 -0
  101. package/build/popover/types.js.map +1 -0
  102. package/build/popover/utils.js +119 -24
  103. package/build/popover/utils.js.map +1 -1
  104. package/build/radio-control/index.js +7 -4
  105. package/build/radio-control/index.js.map +1 -1
  106. package/build/range-control/index.js +4 -1
  107. package/build/range-control/index.js.map +1 -1
  108. package/build/range-control/styles/range-control-styles.js +33 -33
  109. package/build/range-control/styles/range-control-styles.js.map +1 -1
  110. package/build/sandbox/index.js +2 -2
  111. package/build/sandbox/index.js.map +1 -1
  112. package/build/search-control/index.js +38 -10
  113. package/build/search-control/index.js.map +1 -1
  114. package/build/search-control/types.js +6 -0
  115. package/build/search-control/types.js.map +1 -0
  116. package/build/select-control/index.native.js +2 -1
  117. package/build/select-control/index.native.js.map +1 -1
  118. package/build/tab-panel/index.js +48 -9
  119. package/build/tab-panel/index.js.map +1 -1
  120. package/build/tab-panel/types.js +6 -0
  121. package/build/tab-panel/types.js.map +1 -0
  122. package/build/text-control/index.js +2 -0
  123. package/build/text-control/index.js.map +1 -1
  124. package/build/textarea-control/index.js +3 -3
  125. package/build/textarea-control/index.js.map +1 -1
  126. package/build/toggle-control/index.js +44 -4
  127. package/build/toggle-control/index.js.map +1 -1
  128. package/build/toggle-control/types.js +6 -0
  129. package/build/toggle-control/types.js.map +1 -0
  130. package/build/toggle-group-control/toggle-group-control/component.js +2 -2
  131. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  132. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +1 -1
  133. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  134. package/build/tooltip/index.js +1 -1
  135. package/build/tooltip/index.js.map +1 -1
  136. package/build/ui/context/context-connect.js +31 -22
  137. package/build/ui/context/context-connect.js.map +1 -1
  138. package/build/ui/context/context-system-provider.js +4 -3
  139. package/build/ui/context/context-system-provider.js.map +1 -1
  140. package/build/unit-control/index.js +1 -1
  141. package/build/unit-control/index.js.map +1 -1
  142. package/build/unit-control/styles/unit-control-styles.js +9 -9
  143. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  144. package/build/utils/colors-values.js +2 -30
  145. package/build/utils/colors-values.js.map +1 -1
  146. package/build/utils/math.js +4 -4
  147. package/build/utils/math.js.map +1 -1
  148. package/build/utils/values.js +62 -6
  149. package/build/utils/values.js.map +1 -1
  150. package/build/view/component.js +6 -7
  151. package/build/view/component.js.map +1 -1
  152. package/build/view/types.js +6 -0
  153. package/build/view/types.js.map +1 -0
  154. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  155. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  156. package/build-module/angle-picker-control/index.js +9 -0
  157. package/build-module/angle-picker-control/index.js.map +1 -1
  158. package/build-module/border-box-control/border-box-control/component.js +5 -1
  159. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  160. package/build-module/border-box-control/border-box-control-split-controls/component.js +5 -1
  161. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  162. package/build-module/border-control/border-control-dropdown/component.js +2 -1
  163. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  164. package/build-module/card/styles.js +17 -17
  165. package/build-module/card/styles.js.map +1 -1
  166. package/build-module/checkbox-control/index.js +3 -3
  167. package/build-module/checkbox-control/index.js.map +1 -1
  168. package/build-module/color-palette/index.js +1 -1
  169. package/build-module/color-palette/index.js.map +1 -1
  170. package/build-module/color-picker/input-with-slider.js +2 -1
  171. package/build-module/color-picker/input-with-slider.js.map +1 -1
  172. package/build-module/combobox-control/index.js +1 -1
  173. package/build-module/combobox-control/index.js.map +1 -1
  174. package/build-module/custom-gradient-picker/index.js +1 -1
  175. package/build-module/custom-gradient-picker/index.js.map +1 -1
  176. package/build-module/date-time/date/index.js +2 -3
  177. package/build-module/date-time/date/index.js.map +1 -1
  178. package/build-module/date-time/time/timezone.js +1 -1
  179. package/build-module/date-time/time/timezone.js.map +1 -1
  180. package/build-module/disabled/index.js +16 -8
  181. package/build-module/disabled/index.js.map +1 -1
  182. package/build-module/disabled/styles/disabled-styles.js +6 -12
  183. package/build-module/disabled/styles/disabled-styles.js.map +1 -1
  184. package/build-module/drop-zone/index.js +40 -9
  185. package/build-module/drop-zone/index.js.map +1 -1
  186. package/build-module/drop-zone/provider.js.map +1 -1
  187. package/build-module/drop-zone/types.js +2 -0
  188. package/build-module/drop-zone/types.js.map +1 -0
  189. package/build-module/flex/flex/hook.js +7 -29
  190. package/build-module/flex/flex/hook.js.map +1 -1
  191. package/build-module/focal-point-picker/controls.js +11 -6
  192. package/build-module/focal-point-picker/controls.js.map +1 -1
  193. package/build-module/focal-point-picker/focal-point.js.map +1 -1
  194. package/build-module/focal-point-picker/grid.js.map +1 -1
  195. package/build-module/focal-point-picker/index.js +81 -16
  196. package/build-module/focal-point-picker/index.js.map +1 -1
  197. package/build-module/focal-point-picker/media.js +4 -0
  198. package/build-module/focal-point-picker/media.js.map +1 -1
  199. package/build-module/focal-point-picker/styles/focal-point-picker-style.js +68 -40
  200. package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  201. package/build-module/focal-point-picker/styles/focal-point-style.js +12 -12
  202. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  203. package/build-module/focal-point-picker/types.js +2 -0
  204. package/build-module/focal-point-picker/types.js.map +1 -0
  205. package/build-module/focal-point-picker/utils.js +6 -6
  206. package/build-module/focal-point-picker/utils.js.map +1 -1
  207. package/build-module/font-size-picker/index.js +10 -0
  208. package/build-module/font-size-picker/index.js.map +1 -1
  209. package/build-module/font-size-picker/utils.js +1 -1
  210. package/build-module/font-size-picker/utils.js.map +1 -1
  211. package/build-module/form-file-upload/index.js +21 -4
  212. package/build-module/form-file-upload/index.js.map +1 -1
  213. package/build-module/form-file-upload/types.js +2 -0
  214. package/build-module/form-file-upload/types.js.map +1 -0
  215. package/build-module/form-toggle/index.js +1 -3
  216. package/build-module/form-toggle/index.js.map +1 -1
  217. package/build-module/form-token-field/index.js +4 -5
  218. package/build-module/form-token-field/index.js.map +1 -1
  219. package/build-module/form-token-field/suggestions-list.js +1 -2
  220. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  221. package/build-module/gradient-picker/index.js +25 -26
  222. package/build-module/gradient-picker/index.js.map +1 -1
  223. package/build-module/icon/index.js +1 -2
  224. package/build-module/icon/index.js.map +1 -1
  225. package/build-module/input-control/input-base.js +4 -3
  226. package/build-module/input-control/input-base.js.map +1 -1
  227. package/build-module/input-control/label.js +3 -3
  228. package/build-module/input-control/label.js.map +1 -1
  229. package/build-module/input-control/styles/input-control-styles.js +41 -127
  230. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  231. package/build-module/modal/aria-helper.js +3 -8
  232. package/build-module/modal/aria-helper.js.map +1 -1
  233. package/build-module/navigable-container/container.js +5 -1
  234. package/build-module/navigable-container/container.js.map +1 -1
  235. package/build-module/navigable-container/menu.js +10 -11
  236. package/build-module/navigable-container/menu.js.map +1 -1
  237. package/build-module/navigable-container/tabbable.js +2 -3
  238. package/build-module/navigable-container/tabbable.js.map +1 -1
  239. package/build-module/navigator/navigator-button/hook.js +1 -1
  240. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  241. package/build-module/navigator/navigator-screen/component.js +2 -2
  242. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  243. package/build-module/number-control/index.js +31 -23
  244. package/build-module/number-control/index.js.map +1 -1
  245. package/build-module/number-control/types.js +2 -0
  246. package/build-module/number-control/types.js.map +1 -0
  247. package/build-module/placeholder/index.js +1 -3
  248. package/build-module/placeholder/index.js.map +1 -1
  249. package/build-module/popover/index.js +157 -156
  250. package/build-module/popover/index.js.map +1 -1
  251. package/build-module/popover/types.js +2 -0
  252. package/build-module/popover/types.js.map +1 -0
  253. package/build-module/popover/utils.js +112 -23
  254. package/build-module/popover/utils.js.map +1 -1
  255. package/build-module/radio-control/index.js +7 -5
  256. package/build-module/radio-control/index.js.map +1 -1
  257. package/build-module/range-control/index.js +4 -1
  258. package/build-module/range-control/index.js.map +1 -1
  259. package/build-module/range-control/styles/range-control-styles.js +33 -33
  260. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  261. package/build-module/sandbox/index.js +2 -2
  262. package/build-module/sandbox/index.js.map +1 -1
  263. package/build-module/search-control/index.js +34 -7
  264. package/build-module/search-control/index.js.map +1 -1
  265. package/build-module/search-control/types.js +2 -0
  266. package/build-module/search-control/types.js.map +1 -0
  267. package/build-module/select-control/index.native.js +1 -1
  268. package/build-module/select-control/index.native.js.map +1 -1
  269. package/build-module/tab-panel/index.js +46 -10
  270. package/build-module/tab-panel/index.js.map +1 -1
  271. package/build-module/tab-panel/types.js +2 -0
  272. package/build-module/tab-panel/types.js.map +1 -0
  273. package/build-module/text-control/index.js +2 -0
  274. package/build-module/text-control/index.js.map +1 -1
  275. package/build-module/textarea-control/index.js +3 -3
  276. package/build-module/textarea-control/index.js.map +1 -1
  277. package/build-module/toggle-control/index.js +38 -4
  278. package/build-module/toggle-control/index.js.map +1 -1
  279. package/build-module/toggle-control/types.js +2 -0
  280. package/build-module/toggle-control/types.js.map +1 -0
  281. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -2
  282. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  283. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +1 -1
  284. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  285. package/build-module/tooltip/index.js +1 -1
  286. package/build-module/tooltip/index.js.map +1 -1
  287. package/build-module/ui/context/context-connect.js +30 -23
  288. package/build-module/ui/context/context-connect.js.map +1 -1
  289. package/build-module/ui/context/context-system-provider.js +5 -4
  290. package/build-module/ui/context/context-system-provider.js.map +1 -1
  291. package/build-module/unit-control/index.js +1 -1
  292. package/build-module/unit-control/index.js.map +1 -1
  293. package/build-module/unit-control/styles/unit-control-styles.js +9 -9
  294. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  295. package/build-module/utils/colors-values.js +2 -30
  296. package/build-module/utils/colors-values.js.map +1 -1
  297. package/build-module/utils/math.js +4 -4
  298. package/build-module/utils/math.js.map +1 -1
  299. package/build-module/utils/values.js +48 -6
  300. package/build-module/utils/values.js.map +1 -1
  301. package/build-module/view/component.js +5 -8
  302. package/build-module/view/component.js.map +1 -1
  303. package/build-module/view/types.js +2 -0
  304. package/build-module/view/types.js.map +1 -0
  305. package/build-style/style-rtl.css +2 -28
  306. package/build-style/style.css +2 -28
  307. package/build-types/base-field/hook.d.ts +54 -55
  308. package/build-types/base-field/hook.d.ts.map +1 -1
  309. package/build-types/border-box-control/border-box-control/component.d.ts +10 -2
  310. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  311. package/build-types/border-box-control/border-box-control/hook.d.ts +56 -57
  312. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  313. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +2 -1
  314. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
  315. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +55 -56
  316. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  317. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +9 -2
  318. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  319. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +56 -57
  320. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  321. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +2 -1
  322. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
  323. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +55 -56
  324. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  325. package/build-types/border-box-control/types.d.ts +5 -4
  326. package/build-types/border-box-control/types.d.ts.map +1 -1
  327. package/build-types/border-control/border-control/component.d.ts +14 -2
  328. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  329. package/build-types/border-control/border-control/hook.d.ts +56 -57
  330. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  331. package/build-types/border-control/border-control-dropdown/component.d.ts +10 -2
  332. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  333. package/build-types/border-control/border-control-dropdown/hook.d.ts +56 -57
  334. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  335. package/build-types/border-control/border-control-style-picker/component.d.ts +6 -2
  336. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -1
  337. package/build-types/border-control/border-control-style-picker/hook.d.ts +55 -56
  338. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -1
  339. package/build-types/border-control/stories/index.d.ts +74 -6
  340. package/build-types/border-control/stories/index.d.ts.map +1 -1
  341. package/build-types/border-control/types.d.ts +6 -8
  342. package/build-types/border-control/types.d.ts.map +1 -1
  343. package/build-types/button-group/index.d.ts +1 -3
  344. package/build-types/button-group/index.d.ts.map +1 -1
  345. package/build-types/card/card/component.d.ts +9 -2
  346. package/build-types/card/card/component.d.ts.map +1 -1
  347. package/build-types/card/card/hook.d.ts +55 -56
  348. package/build-types/card/card/hook.d.ts.map +1 -1
  349. package/build-types/card/card-body/component.d.ts +9 -2
  350. package/build-types/card/card-body/component.d.ts.map +1 -1
  351. package/build-types/card/card-body/hook.d.ts +55 -56
  352. package/build-types/card/card-body/hook.d.ts.map +1 -1
  353. package/build-types/card/card-divider/component.d.ts +7 -2
  354. package/build-types/card/card-divider/component.d.ts.map +1 -1
  355. package/build-types/card/card-divider/hook.d.ts +55 -55
  356. package/build-types/card/card-footer/component.d.ts +11 -2
  357. package/build-types/card/card-footer/component.d.ts.map +1 -1
  358. package/build-types/card/card-footer/hook.d.ts +55 -56
  359. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  360. package/build-types/card/card-header/component.d.ts +1 -1
  361. package/build-types/card/card-header/component.d.ts.map +1 -1
  362. package/build-types/card/card-header/hook.d.ts +55 -56
  363. package/build-types/card/card-header/hook.d.ts.map +1 -1
  364. package/build-types/card/card-media/component.d.ts +2 -1
  365. package/build-types/card/card-media/component.d.ts.map +1 -1
  366. package/build-types/card/card-media/hook.d.ts +55 -56
  367. package/build-types/card/card-media/hook.d.ts.map +1 -1
  368. package/build-types/checkbox-control/index.d.ts +1 -1
  369. package/build-types/checkbox-control/index.d.ts.map +1 -1
  370. package/build-types/checkbox-control/stories/index.d.ts.map +1 -1
  371. package/build-types/checkbox-control/types.d.ts +1 -1
  372. package/build-types/checkbox-control/types.d.ts.map +1 -1
  373. package/build-types/color-indicator/index.d.ts +1 -3
  374. package/build-types/color-indicator/index.d.ts.map +1 -1
  375. package/build-types/color-palette/styles.d.ts +1 -3
  376. package/build-types/color-palette/styles.d.ts.map +1 -1
  377. package/build-types/color-picker/component.d.ts +2 -1
  378. package/build-types/color-picker/component.d.ts.map +1 -1
  379. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  380. package/build-types/color-picker/styles.d.ts +12 -25
  381. package/build-types/color-picker/styles.d.ts.map +1 -1
  382. package/build-types/confirm-dialog/component.d.ts +4 -8
  383. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  384. package/build-types/date-time/date/styles.d.ts +4 -8
  385. package/build-types/date-time/date/styles.d.ts.map +1 -1
  386. package/build-types/date-time/date-time/styles.d.ts +4 -6
  387. package/build-types/date-time/date-time/styles.d.ts.map +1 -1
  388. package/build-types/date-time/time/styles.d.ts +21 -43
  389. package/build-types/date-time/time/styles.d.ts.map +1 -1
  390. package/build-types/disabled/index.d.ts +1 -1
  391. package/build-types/disabled/index.d.ts.map +1 -1
  392. package/build-types/disabled/styles/disabled-styles.d.ts +1 -5
  393. package/build-types/disabled/styles/disabled-styles.d.ts.map +1 -1
  394. package/build-types/divider/component.d.ts +7 -2
  395. package/build-types/divider/component.d.ts.map +1 -1
  396. package/build-types/drop-zone/index.d.ts +29 -0
  397. package/build-types/drop-zone/index.d.ts.map +1 -0
  398. package/build-types/drop-zone/provider.d.ts +5 -0
  399. package/build-types/drop-zone/provider.d.ts.map +1 -0
  400. package/build-types/drop-zone/stories/index.d.ts +12 -0
  401. package/build-types/drop-zone/stories/index.d.ts.map +1 -0
  402. package/build-types/drop-zone/types.d.ts +29 -0
  403. package/build-types/drop-zone/types.d.ts.map +1 -0
  404. package/build-types/dropdown/dropdown-content-wrapper.d.ts +2 -1
  405. package/build-types/dropdown/dropdown-content-wrapper.d.ts.map +1 -1
  406. package/build-types/elevation/component.d.ts +2 -1
  407. package/build-types/elevation/component.d.ts.map +1 -1
  408. package/build-types/elevation/hook.d.ts +54 -55
  409. package/build-types/elevation/hook.d.ts.map +1 -1
  410. package/build-types/external-link/index.d.ts +1 -1
  411. package/build-types/external-link/index.d.ts.map +1 -1
  412. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  413. package/build-types/flex/flex/component.d.ts +2 -1
  414. package/build-types/flex/flex/component.d.ts.map +1 -1
  415. package/build-types/flex/flex/hook.d.ts +55 -56
  416. package/build-types/flex/flex/hook.d.ts.map +1 -1
  417. package/build-types/flex/flex-block/component.d.ts +2 -1
  418. package/build-types/flex/flex-block/component.d.ts.map +1 -1
  419. package/build-types/flex/flex-block/hook.d.ts +55 -56
  420. package/build-types/flex/flex-block/hook.d.ts.map +1 -1
  421. package/build-types/flex/flex-item/component.d.ts +2 -1
  422. package/build-types/flex/flex-item/component.d.ts.map +1 -1
  423. package/build-types/flex/flex-item/hook.d.ts +55 -56
  424. package/build-types/flex/flex-item/hook.d.ts.map +1 -1
  425. package/build-types/focal-point-picker/controls.d.ts +4 -0
  426. package/build-types/focal-point-picker/controls.d.ts.map +1 -0
  427. package/build-types/focal-point-picker/focal-point.d.ts +5 -0
  428. package/build-types/focal-point-picker/focal-point.d.ts.map +1 -0
  429. package/build-types/focal-point-picker/grid.d.ts +5 -0
  430. package/build-types/focal-point-picker/grid.d.ts.map +1 -0
  431. package/build-types/focal-point-picker/index.d.ts +51 -0
  432. package/build-types/focal-point-picker/index.d.ts.map +1 -0
  433. package/build-types/focal-point-picker/media.d.ts +4 -0
  434. package/build-types/focal-point-picker/media.d.ts.map +1 -0
  435. package/build-types/focal-point-picker/stories/index.d.ts +15 -0
  436. package/build-types/focal-point-picker/stories/index.d.ts.map +1 -0
  437. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +56 -0
  438. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -0
  439. package/build-types/focal-point-picker/styles/focal-point-style.d.ts +19 -0
  440. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -0
  441. package/build-types/focal-point-picker/types.d.ts +79 -0
  442. package/build-types/focal-point-picker/types.d.ts.map +1 -0
  443. package/build-types/focal-point-picker/utils.d.ts +26 -0
  444. package/build-types/focal-point-picker/utils.d.ts.map +1 -0
  445. package/build-types/form-file-upload/index.d.ts +22 -0
  446. package/build-types/form-file-upload/index.d.ts.map +1 -0
  447. package/build-types/form-file-upload/stories/index.d.ts +23 -0
  448. package/build-types/form-file-upload/stories/index.d.ts.map +1 -0
  449. package/build-types/form-file-upload/test/index.d.ts +2 -0
  450. package/build-types/form-file-upload/test/index.d.ts.map +1 -0
  451. package/build-types/form-file-upload/types.d.ts +63 -0
  452. package/build-types/form-file-upload/types.d.ts.map +1 -0
  453. package/build-types/form-toggle/index.d.ts +1 -1
  454. package/build-types/form-toggle/index.d.ts.map +1 -1
  455. package/build-types/form-token-field/index.d.ts.map +1 -1
  456. package/build-types/form-token-field/styles.d.ts +1 -3
  457. package/build-types/form-token-field/styles.d.ts.map +1 -1
  458. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
  459. package/build-types/form-token-field/token-input.d.ts +1 -3
  460. package/build-types/form-token-field/token-input.d.ts.map +1 -1
  461. package/build-types/grid/component.d.ts +2 -1
  462. package/build-types/grid/component.d.ts.map +1 -1
  463. package/build-types/grid/hook.d.ts +55 -56
  464. package/build-types/grid/hook.d.ts.map +1 -1
  465. package/build-types/h-stack/component.d.ts +5 -2
  466. package/build-types/h-stack/component.d.ts.map +1 -1
  467. package/build-types/h-stack/hook.d.ts +55 -56
  468. package/build-types/h-stack/hook.d.ts.map +1 -1
  469. package/build-types/heading/component.d.ts +4 -2
  470. package/build-types/heading/component.d.ts.map +1 -1
  471. package/build-types/heading/hook.d.ts +54 -55
  472. package/build-types/heading/hook.d.ts.map +1 -1
  473. package/build-types/input-control/index.d.ts +1 -1
  474. package/build-types/input-control/index.d.ts.map +1 -1
  475. package/build-types/input-control/input-base.d.ts.map +1 -1
  476. package/build-types/input-control/input-field.d.ts +1 -3
  477. package/build-types/input-control/input-field.d.ts.map +1 -1
  478. package/build-types/input-control/input-prefix-wrapper.d.ts +2 -1
  479. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  480. package/build-types/input-control/input-suffix-wrapper.d.ts +2 -1
  481. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  482. package/build-types/input-control/label.d.ts.map +1 -1
  483. package/build-types/input-control/stories/index.d.ts +5 -5
  484. package/build-types/input-control/stories/index.d.ts.map +1 -1
  485. package/build-types/input-control/styles/input-control-styles.d.ts +2 -6
  486. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  487. package/build-types/input-control/types.d.ts +3 -0
  488. package/build-types/input-control/types.d.ts.map +1 -1
  489. package/build-types/item-group/item/component.d.ts +2 -1
  490. package/build-types/item-group/item/component.d.ts.map +1 -1
  491. package/build-types/item-group/item/hook.d.ts +54 -55
  492. package/build-types/item-group/item/hook.d.ts.map +1 -1
  493. package/build-types/item-group/item-group/component.d.ts +2 -1
  494. package/build-types/item-group/item-group/component.d.ts.map +1 -1
  495. package/build-types/item-group/item-group/hook.d.ts +54 -55
  496. package/build-types/item-group/item-group/hook.d.ts.map +1 -1
  497. package/build-types/modal/aria-helper.d.ts.map +1 -1
  498. package/build-types/navigable-container/menu.d.ts.map +1 -1
  499. package/build-types/navigable-container/tabbable.d.ts.map +1 -1
  500. package/build-types/navigator/navigator-back-button/component.d.ts +4 -2
  501. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  502. package/build-types/navigator/navigator-back-button/hook.d.ts +59 -60
  503. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  504. package/build-types/navigator/navigator-button/component.d.ts +7 -2
  505. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  506. package/build-types/navigator/navigator-button/hook.d.ts +59 -60
  507. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  508. package/build-types/navigator/navigator-provider/component.d.ts +2 -1
  509. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  510. package/build-types/navigator/navigator-screen/component.d.ts +1 -1
  511. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  512. package/build-types/number-control/index.d.ts +10 -28
  513. package/build-types/number-control/index.d.ts.map +1 -1
  514. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  515. package/build-types/number-control/types.d.ts +72 -0
  516. package/build-types/number-control/types.d.ts.map +1 -0
  517. package/build-types/placeholder/index.d.ts +1 -1
  518. package/build-types/placeholder/index.d.ts.map +1 -1
  519. package/build-types/popover/index.d.ts +28 -24
  520. package/build-types/popover/index.d.ts.map +1 -1
  521. package/build-types/popover/stories/index.d.ts +12 -0
  522. package/build-types/popover/stories/index.d.ts.map +1 -0
  523. package/build-types/popover/types.d.ts +161 -0
  524. package/build-types/popover/types.d.ts.map +1 -0
  525. package/build-types/popover/utils.d.ts +42 -24
  526. package/build-types/popover/utils.d.ts.map +1 -1
  527. package/build-types/radio-control/index.d.ts +1 -1
  528. package/build-types/radio-control/index.d.ts.map +1 -1
  529. package/build-types/range-control/index.d.ts +2 -4
  530. package/build-types/range-control/index.d.ts.map +1 -1
  531. package/build-types/range-control/input-range.d.ts +2 -4
  532. package/build-types/range-control/input-range.d.ts.map +1 -1
  533. package/build-types/range-control/styles/range-control-styles.d.ts +5 -10
  534. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  535. package/build-types/resizable-box/index.d.ts +1 -1
  536. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  537. package/build-types/resizable-box/resize-tooltip/label.d.ts +1 -1
  538. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +1 -3
  539. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  540. package/build-types/scrollable/component.d.ts +2 -1
  541. package/build-types/scrollable/component.d.ts.map +1 -1
  542. package/build-types/scrollable/hook.d.ts +55 -56
  543. package/build-types/scrollable/hook.d.ts.map +1 -1
  544. package/build-types/search-control/index.d.ts +29 -0
  545. package/build-types/search-control/index.d.ts.map +1 -0
  546. package/build-types/search-control/stories/index.d.ts +47 -0
  547. package/build-types/search-control/stories/index.d.ts.map +1 -0
  548. package/build-types/search-control/types.d.ts +39 -0
  549. package/build-types/search-control/types.d.ts.map +1 -0
  550. package/build-types/select-control/index.d.ts +1 -3
  551. package/build-types/select-control/index.d.ts.map +1 -1
  552. package/build-types/select-control/stories/index.d.ts +2 -6
  553. package/build-types/select-control/stories/index.d.ts.map +1 -1
  554. package/build-types/select-control/styles/select-control-styles.d.ts +1 -3
  555. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  556. package/build-types/spacer/component.d.ts +2 -1
  557. package/build-types/spacer/component.d.ts.map +1 -1
  558. package/build-types/spacer/hook.d.ts +55 -56
  559. package/build-types/spacer/hook.d.ts.map +1 -1
  560. package/build-types/spinner/index.d.ts +1 -3
  561. package/build-types/spinner/index.d.ts.map +1 -1
  562. package/build-types/surface/component.d.ts +2 -1
  563. package/build-types/surface/component.d.ts.map +1 -1
  564. package/build-types/surface/hook.d.ts +55 -56
  565. package/build-types/surface/hook.d.ts.map +1 -1
  566. package/build-types/tab-panel/index.d.ts +42 -0
  567. package/build-types/tab-panel/index.d.ts.map +1 -0
  568. package/build-types/tab-panel/stories/index.d.ts +12 -0
  569. package/build-types/tab-panel/stories/index.d.ts.map +1 -0
  570. package/build-types/tab-panel/test/index.d.ts +2 -0
  571. package/build-types/tab-panel/test/index.d.ts.map +1 -0
  572. package/build-types/tab-panel/types.d.ts +64 -0
  573. package/build-types/tab-panel/types.d.ts.map +1 -0
  574. package/build-types/text/component.d.ts +1 -1
  575. package/build-types/text/component.d.ts.map +1 -1
  576. package/build-types/text/hook.d.ts +55 -56
  577. package/build-types/text/hook.d.ts.map +1 -1
  578. package/build-types/text-control/index.d.ts +2 -4
  579. package/build-types/text-control/index.d.ts.map +1 -1
  580. package/build-types/text-control/types.d.ts +1 -1
  581. package/build-types/text-control/types.d.ts.map +1 -1
  582. package/build-types/textarea-control/index.d.ts +1 -1
  583. package/build-types/textarea-control/index.d.ts.map +1 -1
  584. package/build-types/textarea-control/types.d.ts +1 -1
  585. package/build-types/textarea-control/types.d.ts.map +1 -1
  586. package/build-types/toggle-control/index.d.ts +26 -0
  587. package/build-types/toggle-control/index.d.ts.map +1 -0
  588. package/build-types/toggle-control/stories/index.d.ts +13 -0
  589. package/build-types/toggle-control/stories/index.d.ts.map +1 -0
  590. package/build-types/toggle-control/test/index.d.ts +2 -0
  591. package/build-types/toggle-control/test/index.d.ts.map +1 -0
  592. package/build-types/toggle-control/types.d.ts +20 -0
  593. package/build-types/toggle-control/types.d.ts.map +1 -0
  594. package/build-types/toggle-group-control/stories/index.d.ts +4 -2
  595. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
  596. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +12 -2
  597. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  598. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +2 -4
  599. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  600. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +2 -1
  601. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  602. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +3 -5
  603. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  604. package/build-types/toggle-group-control/types.d.ts +2 -2
  605. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  606. package/build-types/tools-panel/tools-panel/component.d.ts +2 -1
  607. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  608. package/build-types/tools-panel/tools-panel/hook.d.ts +55 -56
  609. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  610. package/build-types/tools-panel/tools-panel-header/component.d.ts +2 -1
  611. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  612. package/build-types/tools-panel/tools-panel-header/hook.d.ts +55 -56
  613. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  614. package/build-types/tools-panel/tools-panel-item/component.d.ts +6 -2
  615. package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
  616. package/build-types/tools-panel/tools-panel-item/hook.d.ts +55 -56
  617. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  618. package/build-types/truncate/component.d.ts +2 -1
  619. package/build-types/truncate/component.d.ts.map +1 -1
  620. package/build-types/truncate/hook.d.ts +55 -56
  621. package/build-types/truncate/hook.d.ts.map +1 -1
  622. package/build-types/ui/context/context-connect.d.ts +10 -9
  623. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  624. package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
  625. package/build-types/ui/context/test/context-connect.d.ts +2 -0
  626. package/build-types/ui/context/test/context-connect.d.ts.map +1 -0
  627. package/build-types/ui/context/test/wordpress-component.d.ts +2 -0
  628. package/build-types/ui/context/test/wordpress-component.d.ts.map +1 -0
  629. package/build-types/ui/context/wordpress-component.d.ts +8 -9
  630. package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
  631. package/build-types/ui/control-group/component.d.ts +4 -1
  632. package/build-types/ui/control-group/component.d.ts.map +1 -1
  633. package/build-types/ui/control-group/hook.d.ts +55 -56
  634. package/build-types/ui/control-group/hook.d.ts.map +1 -1
  635. package/build-types/ui/control-label/component.d.ts +4 -1
  636. package/build-types/ui/control-label/component.d.ts.map +1 -1
  637. package/build-types/ui/control-label/hook.d.ts +55 -56
  638. package/build-types/ui/control-label/hook.d.ts.map +1 -1
  639. package/build-types/ui/form-group/form-group.d.ts +4 -8
  640. package/build-types/ui/form-group/form-group.d.ts.map +1 -1
  641. package/build-types/ui/form-group/use-form-group.d.ts +112 -114
  642. package/build-types/ui/form-group/use-form-group.d.ts.map +1 -1
  643. package/build-types/ui/shortcut/component.d.ts +2 -1
  644. package/build-types/ui/shortcut/component.d.ts.map +1 -1
  645. package/build-types/ui/spinner/component.d.ts +1 -1
  646. package/build-types/ui/tooltip/component.d.ts +11 -1
  647. package/build-types/ui/tooltip/component.d.ts.map +1 -1
  648. package/build-types/ui/tooltip/content.d.ts +7 -1
  649. package/build-types/ui/tooltip/styles.d.ts +1 -3
  650. package/build-types/ui/tooltip/styles.d.ts.map +1 -1
  651. package/build-types/unit-control/index.d.ts +2 -12
  652. package/build-types/unit-control/index.d.ts.map +1 -1
  653. package/build-types/unit-control/stories/index.d.ts.map +1 -1
  654. package/build-types/unit-control/styles/unit-control-styles.d.ts +5 -10
  655. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  656. package/build-types/unit-control/types.d.ts +3 -35
  657. package/build-types/unit-control/types.d.ts.map +1 -1
  658. package/build-types/utils/colors-values.d.ts +0 -18
  659. package/build-types/utils/colors-values.d.ts.map +1 -1
  660. package/build-types/utils/math.d.ts +6 -6
  661. package/build-types/utils/math.d.ts.map +1 -1
  662. package/build-types/utils/values.d.ts +10 -8
  663. package/build-types/utils/values.d.ts.map +1 -1
  664. package/build-types/v-stack/component.d.ts +8 -2
  665. package/build-types/v-stack/component.d.ts.map +1 -1
  666. package/build-types/v-stack/hook.d.ts +55 -56
  667. package/build-types/v-stack/hook.d.ts.map +1 -1
  668. package/build-types/v-stack/stories/index.d.ts +8 -1
  669. package/build-types/v-stack/stories/index.d.ts.map +1 -1
  670. package/build-types/view/component.d.ts +8 -6
  671. package/build-types/view/component.d.ts.map +1 -1
  672. package/build-types/view/stories/index.d.ts +12 -0
  673. package/build-types/view/stories/index.d.ts.map +1 -0
  674. package/build-types/view/types.d.ts +8 -0
  675. package/build-types/view/types.d.ts.map +1 -0
  676. package/build-types/visually-hidden/component.d.ts +2 -1
  677. package/build-types/visually-hidden/component.d.ts.map +1 -1
  678. package/build-types/z-stack/component.d.ts +2 -1
  679. package/build-types/z-stack/component.d.ts.map +1 -1
  680. package/package.json +17 -17
  681. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +1 -1
  682. package/src/angle-picker-control/README.md +9 -1
  683. package/src/angle-picker-control/index.js +12 -0
  684. package/src/angle-picker-control/stories/index.js +3 -3
  685. package/src/base-field/test/__snapshots__/index.js.snap +3 -5
  686. package/src/border-box-control/border-box-control/component.tsx +9 -2
  687. package/src/border-box-control/border-box-control-split-controls/component.tsx +8 -2
  688. package/src/border-box-control/types.ts +5 -4
  689. package/src/border-control/border-control-dropdown/component.tsx +3 -8
  690. package/src/border-control/types.ts +7 -9
  691. package/src/card/styles.ts +1 -1
  692. package/src/card/test/__snapshots__/index.tsx.snap +39 -51
  693. package/src/checkbox-control/index.tsx +3 -6
  694. package/src/checkbox-control/stories/index.tsx +6 -2
  695. package/src/checkbox-control/types.ts +4 -1
  696. package/src/color-palette/index.js +1 -1
  697. package/src/color-palette/test/__snapshots__/index.js.snap +67 -91
  698. package/src/color-picker/input-with-slider.tsx +1 -0
  699. package/src/combobox-control/index.js +1 -1
  700. package/src/combobox-control/test/index.js +311 -0
  701. package/src/custom-gradient-picker/index.js +1 -1
  702. package/src/date-time/date/index.tsx +2 -2
  703. package/src/date-time/time/timezone.tsx +1 -1
  704. package/src/dimension-control/test/__snapshots__/index.test.js.snap +1122 -164
  705. package/src/dimension-control/test/index.test.js +29 -38
  706. package/src/disabled/index.tsx +27 -9
  707. package/src/disabled/styles/disabled-styles.tsx +2 -2
  708. package/src/disabled/test/index.tsx +38 -0
  709. package/src/drop-zone/README.md +3 -3
  710. package/src/drop-zone/{index.js → index.tsx} +48 -13
  711. package/src/drop-zone/{provider.js → provider.ts} +5 -1
  712. package/src/drop-zone/stories/index.tsx +30 -0
  713. package/src/drop-zone/types.ts +29 -0
  714. package/src/dropdown/README.md +6 -4
  715. package/src/dropdown/stories/index.js +1 -1
  716. package/src/flex/flex/hook.ts +5 -54
  717. package/src/flex/test/__snapshots__/index.tsx.snap +7 -15
  718. package/src/focal-point-picker/README.md +2 -2
  719. package/src/focal-point-picker/{controls.js → controls.tsx} +38 -10
  720. package/src/focal-point-picker/{focal-point.js → focal-point.tsx} +7 -1
  721. package/src/focal-point-picker/{grid.js → grid.tsx} +6 -1
  722. package/src/focal-point-picker/{index.js → index.tsx} +99 -15
  723. package/src/focal-point-picker/{media.js → media.tsx} +10 -4
  724. package/src/focal-point-picker/stories/index.tsx +93 -0
  725. package/src/focal-point-picker/styles/{focal-point-picker-style.js → focal-point-picker-style.ts} +31 -5
  726. package/src/focal-point-picker/styles/{focal-point-style.js → focal-point-style.ts} +2 -1
  727. package/src/focal-point-picker/test/index.js +27 -7
  728. package/src/focal-point-picker/types.ts +93 -0
  729. package/src/focal-point-picker/{utils.js → utils.ts} +9 -9
  730. package/src/font-size-picker/README.md +9 -0
  731. package/src/font-size-picker/index.js +9 -0
  732. package/src/font-size-picker/stories/index.js +3 -5
  733. package/src/font-size-picker/test/index.js +15 -2
  734. package/src/font-size-picker/test/utils.js +1 -2
  735. package/src/font-size-picker/utils.js +1 -1
  736. package/src/form-file-upload/README.md +6 -1
  737. package/src/form-file-upload/{index.js → index.tsx} +22 -4
  738. package/src/form-file-upload/stories/index.tsx +74 -0
  739. package/src/form-file-upload/test/{index.js → index.tsx} +7 -3
  740. package/src/form-file-upload/types.ts +63 -0
  741. package/src/form-toggle/index.tsx +1 -6
  742. package/src/form-token-field/index.tsx +4 -5
  743. package/src/form-token-field/suggestions-list.tsx +1 -2
  744. package/src/gradient-picker/index.js +41 -47
  745. package/src/gradient-picker/stories/index.js +10 -0
  746. package/src/h-stack/test/__snapshots__/index.tsx.snap +3 -12
  747. package/src/higher-order/with-filters/test/__snapshots__/index.js.snap +87 -0
  748. package/src/higher-order/with-filters/test/index.js +20 -74
  749. package/src/icon/index.tsx +1 -1
  750. package/src/icon/stories/index.js +18 -0
  751. package/src/icon/test/index.js +32 -83
  752. package/src/input-control/input-base.tsx +9 -11
  753. package/src/input-control/label.tsx +9 -4
  754. package/src/input-control/styles/input-control-styles.tsx +0 -43
  755. package/src/input-control/types.ts +3 -0
  756. package/src/isolated-event-container/test/index.js +53 -11
  757. package/src/item-group/test/__snapshots__/index.js.snap +16 -16
  758. package/src/keyboard-shortcuts/test/index.js +16 -31
  759. package/src/menu-item/test/__snapshots__/index.js.snap +60 -62
  760. package/src/menu-item/test/index.js +30 -22
  761. package/src/modal/aria-helper.js +3 -8
  762. package/src/navigable-container/README.md +2 -0
  763. package/src/navigable-container/container.js +8 -1
  764. package/src/navigable-container/menu.js +14 -11
  765. package/src/navigable-container/stories/navigable-menu.js +49 -0
  766. package/src/navigable-container/stories/tabbable-container.js +40 -0
  767. package/src/navigable-container/tabbable.js +2 -3
  768. package/src/navigable-container/test/navigable-menu.js +277 -0
  769. package/src/navigable-container/test/tababble-container.js +175 -0
  770. package/src/navigator/navigator-button/hook.ts +1 -1
  771. package/src/navigator/navigator-screen/component.tsx +6 -1
  772. package/src/number-control/index.tsx +209 -0
  773. package/src/number-control/stories/index.js +6 -18
  774. package/src/number-control/types.ts +75 -0
  775. package/src/panel/test/__snapshots__/header.js.snap +9 -0
  776. package/src/panel/test/__snapshots__/index.js.snap +17 -0
  777. package/src/panel/test/__snapshots__/row.js.snap +17 -0
  778. package/src/panel/test/header.js +30 -23
  779. package/src/panel/test/index.js +33 -25
  780. package/src/panel/test/row.js +18 -11
  781. package/src/placeholder/index.tsx +4 -5
  782. package/src/placeholder/style.scss +4 -0
  783. package/src/popover/README.md +83 -48
  784. package/src/popover/{index.js → index.tsx} +246 -176
  785. package/src/popover/stories/{index.js → index.tsx} +51 -54
  786. package/src/popover/types.ts +173 -0
  787. package/src/popover/utils.ts +230 -0
  788. package/src/radio-control/index.tsx +28 -29
  789. package/src/radio-control/style.scss +0 -17
  790. package/src/range-control/index.tsx +4 -1
  791. package/src/range-control/styles/range-control-styles.ts +8 -8
  792. package/src/sandbox/index.js +2 -2
  793. package/src/search-control/README.md +5 -3
  794. package/src/search-control/{index.js → index.tsx} +35 -7
  795. package/src/search-control/stories/index.tsx +66 -0
  796. package/src/search-control/types.ts +43 -0
  797. package/src/select-control/index.native.js +1 -1
  798. package/src/slot-fill/test/index.js +69 -12
  799. package/src/style.scss +0 -1
  800. package/src/surface/test/__snapshots__/index.tsx.snap +10 -10
  801. package/src/tab-panel/README.md +1 -2
  802. package/src/tab-panel/{index.js → index.tsx} +58 -13
  803. package/src/tab-panel/stories/index.tsx +37 -0
  804. package/src/tab-panel/test/index.tsx +120 -0
  805. package/src/tab-panel/types.ts +65 -0
  806. package/src/text-control/index.tsx +2 -0
  807. package/src/text-control/types.ts +5 -1
  808. package/src/textarea-control/index.tsx +3 -6
  809. package/src/textarea-control/types.ts +1 -1
  810. package/src/toggle-control/index.tsx +97 -0
  811. package/src/toggle-control/stories/index.tsx +58 -0
  812. package/src/toggle-control/test/index.tsx +53 -0
  813. package/src/toggle-control/types.ts +28 -0
  814. package/src/toggle-group-control/stories/index.tsx +10 -3
  815. package/src/toggle-group-control/toggle-group-control/component.tsx +3 -3
  816. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
  817. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +1 -1
  818. package/src/toggle-group-control/types.ts +2 -2
  819. package/src/tooltip/index.js +1 -1
  820. package/src/ui/context/context-connect.ts +58 -31
  821. package/src/ui/context/context-system-provider.js +5 -4
  822. package/src/ui/context/test/context-connect.tsx +55 -0
  823. package/src/ui/context/test/wordpress-component.tsx +36 -0
  824. package/src/ui/context/wordpress-component.ts +18 -12
  825. package/src/ui/control-group/test/__snapshots__/index.js.snap +1 -4
  826. package/src/unit-control/index.tsx +1 -1
  827. package/src/unit-control/stories/index.tsx +7 -16
  828. package/src/unit-control/styles/unit-control-styles.ts +2 -2
  829. package/src/unit-control/test/__snapshots__/index.tsx.snap +4 -6
  830. package/src/unit-control/types.ts +3 -44
  831. package/src/utils/colors-values.js +2 -24
  832. package/src/utils/math.js +4 -4
  833. package/src/utils/values.js +48 -6
  834. package/src/v-stack/test/__snapshots__/index.tsx.snap +3 -12
  835. package/src/view/{component.js → component.tsx} +13 -4
  836. package/src/view/stories/index.tsx +32 -0
  837. package/src/view/types.ts +6 -0
  838. package/tsconfig.json +0 -6
  839. package/tsconfig.tsbuildinfo +1 -1
  840. package/src/focal-point-picker/stories/index.js +0 -76
  841. package/src/navigable-container/test/menu.js +0 -310
  842. package/src/navigable-container/test/tabbable.js +0 -158
  843. package/src/number-control/index.js +0 -192
  844. package/src/popover/utils.js +0 -107
  845. package/src/search-control/stories/index.js +0 -39
  846. package/src/tab-panel/stories/index.js +0 -39
  847. package/src/tab-panel/test/index.js +0 -179
  848. package/src/toggle-control/index.js +0 -55
  849. package/src/toggle-control/stories/index.js +0 -64
  850. package/src/toggle-control/style.scss +0 -14
  851. package/src/toggle-control/test/index.js +0 -52
@@ -1,7 +1,13 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentStory, ComponentMeta } from '@storybook/react';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
- import { useState, useRef } from '@wordpress/element';
9
+ import { useState, useRef, useEffect } from '@wordpress/element';
10
+ // @ts-expect-error The `@wordpress/block-editor` is not typed
5
11
  import { __unstableIframe as Iframe } from '@wordpress/block-editor';
6
12
 
7
13
  /**
@@ -9,26 +15,10 @@ import { __unstableIframe as Iframe } from '@wordpress/block-editor';
9
15
  */
10
16
  import Button from '../../button';
11
17
  import { Provider as SlotFillProvider } from '../../slot-fill';
12
- import Popover from '../';
18
+ import { Popover } from '..';
19
+ import type { PopoverProps } from '../types';
13
20
 
14
- // Format: "[yAxis] [xAxis]"
15
- // Valid yAxis values: 'top', 'middle', 'bottom'
16
- // Valid xAxis values: 'left', 'center', 'right'
17
- const AVAILABLE_POSITIONS = [
18
- 'top left',
19
- 'top center',
20
- 'top right',
21
- 'middle left',
22
- 'middle center',
23
- 'middle right',
24
- 'bottom left',
25
- 'bottom center',
26
- 'bottom right',
27
- ];
28
-
29
- // Follows floating UI's conventions
30
- // See https://floating-ui.com/docs/computePosition#placement
31
- const AVAILABLE_PLACEMENTS = [
21
+ const AVAILABLE_PLACEMENTS: PopoverProps[ 'placement' ][] = [
32
22
  'top',
33
23
  'top-start',
34
24
  'top-end',
@@ -43,42 +33,30 @@ const AVAILABLE_PLACEMENTS = [
43
33
  'left-end',
44
34
  ];
45
35
 
46
- export default {
36
+ const meta: ComponentMeta< typeof Popover > = {
47
37
  title: 'Components/Popover',
48
38
  component: Popover,
49
39
  argTypes: {
50
40
  anchorRef: { control: { type: null } },
51
41
  anchorRect: { control: { type: null } },
52
- animate: { control: { type: 'boolean' } },
53
42
  children: { control: { type: null } },
54
- className: { control: { type: 'text' } },
55
- expandOnMobile: { control: { type: 'boolean' } },
56
43
  focusOnMount: {
57
44
  control: { type: 'select' },
58
- options: [ 'firstElement', 'container', false ],
45
+ options: [ 'firstElement', true, false ],
59
46
  },
60
47
  getAnchorRect: { control: { type: null } },
61
- headerTitle: { control: { type: 'text' } },
62
- isAlternate: { control: { type: 'boolean' } },
63
- noArrow: { control: { type: 'boolean' } },
64
- onClose: { control: { type: null } },
65
- offset: { control: { type: 'number' } },
66
- onFocusOutside: { control: { type: null } },
67
- placement: {
68
- control: { type: 'select' },
69
- options: AVAILABLE_PLACEMENTS,
70
- },
71
- position: {
72
- control: { type: 'select' },
73
- options: AVAILABLE_POSITIONS,
74
- },
48
+ onClose: { action: 'onClose' },
49
+ onFocusOutside: { action: 'onFocusOutside' },
75
50
  __unstableSlotName: { control: { type: null } },
76
- __unstableForcePosition: { control: { type: 'boolean' } },
77
- __unstableShift: { control: { type: 'boolean' } },
51
+ },
52
+ parameters: {
53
+ controls: { expanded: true },
78
54
  },
79
55
  };
80
56
 
81
- const PopoverWithAnchor = ( args ) => {
57
+ export default meta;
58
+
59
+ const PopoverWithAnchor = ( args: PopoverProps ) => {
82
60
  const anchorRef = useRef( null );
83
61
 
84
62
  return (
@@ -101,23 +79,34 @@ const PopoverWithAnchor = ( args ) => {
101
79
  );
102
80
  };
103
81
 
104
- export const Default = ( args ) => {
82
+ export const Default: ComponentStory< typeof Popover > = ( args ) => {
105
83
  const [ isVisible, setIsVisible ] = useState( false );
106
84
  const toggleVisible = () => {
107
85
  setIsVisible( ( state ) => ! state );
108
86
  };
87
+ const buttonRef = useRef< HTMLButtonElement | undefined >();
88
+ useEffect( () => {
89
+ buttonRef.current?.scrollIntoView?.( {
90
+ block: 'center',
91
+ inline: 'center',
92
+ } );
93
+ }, [] );
109
94
 
110
95
  return (
111
96
  <div
112
97
  style={ {
113
- minWidth: '600px',
114
- minHeight: '600px',
98
+ width: '300vw',
99
+ height: '300vh',
115
100
  display: 'flex',
116
101
  alignItems: 'center',
117
102
  justifyContent: 'center',
118
103
  } }
119
104
  >
120
- <Button variant="secondary" onClick={ toggleVisible }>
105
+ <Button
106
+ variant="secondary"
107
+ onClick={ toggleVisible }
108
+ ref={ buttonRef }
109
+ >
121
110
  Toggle Popover
122
111
  { isVisible && <Popover { ...args } /> }
123
112
  </Button>
@@ -135,11 +124,10 @@ Default.args = {
135
124
  ),
136
125
  };
137
126
 
138
- /**
139
- * Resize / scroll the viewport to test the behavior of the popovers when they
140
- * reach the viewport boundaries.
141
- */
142
- export const AllPlacements = ( { children, ...args } ) => (
127
+ export const AllPlacements: ComponentStory< typeof Popover > = ( {
128
+ children,
129
+ ...args
130
+ } ) => (
143
131
  <div
144
132
  style={ {
145
133
  minWidth: '600px',
@@ -180,10 +168,14 @@ AllPlacements.args = {
180
168
  ),
181
169
  noArrow: false,
182
170
  offset: 10,
183
- __unstableForcePosition: true,
171
+ resize: false,
172
+ flip: false,
184
173
  };
185
174
 
186
- export const DynamicHeight = ( { children, ...args } ) => {
175
+ export const DynamicHeight: ComponentStory< typeof Popover > = ( {
176
+ children,
177
+ ...args
178
+ } ) => {
187
179
  const [ height, setHeight ] = useState( 200 );
188
180
  const increase = () => setHeight( height + 100 );
189
181
  const decrease = () => setHeight( height - 100 );
@@ -232,18 +224,23 @@ DynamicHeight.args = {
232
224
  children: 'Content with dynamic height',
233
225
  };
234
226
 
235
- export const WithSlotOutsideIframe = ( args ) => {
227
+ export const WithSlotOutsideIframe: ComponentStory< typeof Popover > = (
228
+ args
229
+ ) => {
236
230
  const anchorRef = useRef( null );
237
231
  const slotName = 'popover-with-slot-outside-iframe';
238
232
 
239
233
  return (
240
234
  <SlotFillProvider>
241
235
  <div>
236
+ { /* @ts-expect-error Slot is not currently typed on Popover */ }
242
237
  <Popover.Slot name={ slotName } />
243
238
  <Iframe
244
239
  style={ {
245
240
  width: '100%',
246
241
  height: '400px',
242
+ border: '0',
243
+ outline: '1px solid purple',
247
244
  } }
248
245
  >
249
246
  <div
@@ -0,0 +1,173 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ReactNode, MutableRefObject, SyntheticEvent } from 'react';
5
+ import type { Placement } from '@floating-ui/react-dom';
6
+
7
+ type PositionYAxis = 'top' | 'middle' | 'bottom';
8
+ type PositionXAxis = 'left' | 'center' | 'right';
9
+ type PositionCorner = 'top' | 'right' | 'bottom' | 'left';
10
+
11
+ type DomRectWithOwnerDocument = DOMRect & {
12
+ ownerDocument?: Document;
13
+ };
14
+
15
+ export type AnimatedWrapperProps = {
16
+ placement: Placement;
17
+ shouldAnimate?: boolean;
18
+ };
19
+
20
+ export type PopoverAnchorRefReference = MutableRefObject<
21
+ Element | null | undefined
22
+ >;
23
+ export type PopoverAnchorRefTopBottom = { top: Element; bottom: Element };
24
+
25
+ export type PopoverProps = {
26
+ /**
27
+ * The name of the Slot in which the popover should be rendered. It should
28
+ * be also passed to the corresponding `PopoverSlot` component.
29
+ *
30
+ * @default 'Popover'
31
+ */
32
+ __unstableSlotName?: string;
33
+ /**
34
+ * An object extending a `DOMRect` with an additional optional `ownerDocument`
35
+ * property, used to specify a fixed popover position.
36
+ */
37
+ anchorRect?: DomRectWithOwnerDocument;
38
+ /**
39
+ * Used to specify a fixed popover position. It can be an `Element`, a React
40
+ * reference to an `element`, an object with a `top` and a `bottom` properties
41
+ * (both pointing to elements), or a `range`.
42
+ */
43
+ anchorRef?:
44
+ | Element
45
+ | PopoverAnchorRefReference
46
+ | PopoverAnchorRefTopBottom
47
+ | Range;
48
+ /**
49
+ * Whether the popover should animate when opening.
50
+ *
51
+ * @default true
52
+ */
53
+ animate?: boolean;
54
+ /**
55
+ * The `children` elements rendered as the popover's content.
56
+ */
57
+ children: ReactNode;
58
+ /**
59
+ * Show the popover fullscreen on mobile viewports.
60
+ */
61
+ expandOnMobile?: boolean;
62
+ /**
63
+ * Specifies whether the popover should flip across its axis if there isn't
64
+ * space for it in the normal placement.
65
+ * When the using a 'top' placement, the popover will switch to a 'bottom'
66
+ * placement. When using a 'left' placement, the popover will switch to a
67
+ * `right' placement.
68
+ * The popover will retain its alignment of 'start' or 'end' when flipping.
69
+ *
70
+ * @default true
71
+ */
72
+ flip?: boolean;
73
+ /**
74
+ * By default, the _first tabbable element_ in the popover will receive focus
75
+ * when it mounts. This is the same as setting this prop to `"firstElement"`.
76
+ * Specifying a `false` value disables the focus handling entirely (this
77
+ * should only be done when an appropriately accessible substitute behavior
78
+ * exists).
79
+ *
80
+ * @default 'firstElement'
81
+ */
82
+ focusOnMount?: 'firstElement' | boolean;
83
+ /**
84
+ * A callback invoked when the focus leaves the opened popover. This should
85
+ * only be provided in advanced use-cases when a popover should close under
86
+ * specific circumstances (for example, if the new `document.activeElement`
87
+ * is content of or otherwise controlling popover visibility).
88
+ *
89
+ * When not provided, the `onClose` callback will be called instead.
90
+ */
91
+ onFocusOutside?: ( event: SyntheticEvent ) => void;
92
+ /**
93
+ * A function returning the same value as the one expected by the `anchorRect`
94
+ * prop, used to specify a dynamic popover position.
95
+ */
96
+ getAnchorRect?: (
97
+ fallbackReferenceElement: Element | null
98
+ ) => DomRectWithOwnerDocument;
99
+ /**
100
+ * Used to customize the header text shown when the popover is toggled to
101
+ * fullscreen on mobile viewports (see the `expandOnMobile` prop).
102
+ */
103
+ headerTitle?: string;
104
+ /**
105
+ * Used to enable a different visual style for the popover.
106
+ */
107
+ isAlternate?: boolean;
108
+ /**
109
+ * Used to show/hide the arrow that points at the popover's anchor.
110
+ *
111
+ * @default true
112
+ */
113
+ noArrow?: boolean;
114
+ /**
115
+ * The distance (in px) between the anchor and the popover.
116
+ */
117
+ offset?: number;
118
+ /**
119
+ * A callback invoked when the popover should be closed.
120
+ */
121
+ onClose?: () => void;
122
+ /**
123
+ * Used to specify the popover's position with respect to its anchor.
124
+ *
125
+ * @default 'bottom-start'
126
+ */
127
+ placement?: Placement;
128
+ /**
129
+ * Legacy way to specify the popover's position with respect to its anchor.
130
+ * _Note: this prop is deprecated. Use the `placement` prop instead._
131
+ */
132
+ position?:
133
+ | `${ PositionYAxis } ${ PositionXAxis }`
134
+ | `${ PositionYAxis } ${ PositionXAxis } ${ PositionCorner }`;
135
+ /**
136
+ * Adjusts the size of the popover to prevent its contents from going out of
137
+ * view when meeting the viewport edges.
138
+ *
139
+ * @default true
140
+ */
141
+ resize?: boolean;
142
+ /**
143
+ * Enables the `Popover` to shift in order to stay in view when meeting the
144
+ * viewport edges.
145
+ *
146
+ * @default false
147
+ */
148
+ shift?: boolean;
149
+
150
+ // Deprecated props
151
+ /**
152
+ * Prevent the popover from flipping and resizing when meeting the viewport
153
+ * edges. _Note: this prop is deprecated. Instead, provide use the individual
154
+ * `flip` and `resize` props._
155
+ *
156
+ * @deprecated
157
+ */
158
+ __unstableForcePosition?: boolean;
159
+ /**
160
+ * Enables the `Popover` to shift in order to stay in view when meeting the
161
+ * viewport edges.
162
+ * _Note: this prop is deprecated. Use the `shift` prop instead._
163
+ *
164
+ * @deprecated
165
+ */
166
+ __unstableShift?: boolean;
167
+ /**
168
+ * _Note: this prop is deprecated and has no effect on the component._
169
+ *
170
+ * @deprecated
171
+ */
172
+ range?: unknown;
173
+ };
@@ -0,0 +1,230 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ // eslint-disable-next-line no-restricted-imports
5
+ import type { MotionProps } from 'framer-motion';
6
+ import type { ReferenceType } from '@floating-ui/react-dom';
7
+
8
+ /**
9
+ * Internal dependencies
10
+ */
11
+ import type {
12
+ PopoverProps,
13
+ PopoverAnchorRefReference,
14
+ PopoverAnchorRefTopBottom,
15
+ } from './types';
16
+
17
+ /**
18
+ * Converts the `Popover`'s legacy "position" prop to the new "placement" prop
19
+ * (used by `floating-ui`).
20
+ *
21
+ * @param position The legacy position
22
+ * @return The corresponding placement
23
+ */
24
+ export const positionToPlacement = (
25
+ position: NonNullable< PopoverProps[ 'position' ] >
26
+ ): NonNullable< PopoverProps[ 'placement' ] > => {
27
+ const [ x, y, z ] = position.split( ' ' );
28
+
29
+ if ( [ 'top', 'bottom' ].includes( x ) ) {
30
+ let suffix = '';
31
+ if ( ( !! z && z === 'left' ) || y === 'right' ) {
32
+ suffix = '-start';
33
+ } else if ( ( !! z && z === 'right' ) || y === 'left' ) {
34
+ suffix = '-end';
35
+ }
36
+
37
+ return ( x + suffix ) as NonNullable< PopoverProps[ 'placement' ] >;
38
+ }
39
+
40
+ return y as NonNullable< PopoverProps[ 'placement' ] >;
41
+ };
42
+
43
+ /**
44
+ * @typedef AnimationOrigin
45
+ * @type {Object}
46
+ * @property {number} originX A number between 0 and 1 (in CSS logical properties jargon, 0 is "start", 0.5 is "center", and 1 is "end")
47
+ * @property {number} originY A number between 0 and 1 (0 is top, 0.5 is center, and 1 is bottom)
48
+ */
49
+
50
+ const PLACEMENT_TO_ANIMATION_ORIGIN: Record<
51
+ NonNullable< PopoverProps[ 'placement' ] >,
52
+ { originX: number; originY: number }
53
+ > = {
54
+ top: { originX: 0.5, originY: 1 }, // open from bottom, center
55
+ 'top-start': { originX: 0, originY: 1 }, // open from bottom, left
56
+ 'top-end': { originX: 1, originY: 1 }, // open from bottom, right
57
+ right: { originX: 0, originY: 0.5 }, // open from middle, left
58
+ 'right-start': { originX: 0, originY: 0 }, // open from top, left
59
+ 'right-end': { originX: 0, originY: 1 }, // open from bottom, left
60
+ bottom: { originX: 0.5, originY: 0 }, // open from top, center
61
+ 'bottom-start': { originX: 0, originY: 0 }, // open from top, left
62
+ 'bottom-end': { originX: 1, originY: 0 }, // open from top, right
63
+ left: { originX: 1, originY: 0.5 }, // open from middle, right
64
+ 'left-start': { originX: 1, originY: 0 }, // open from top, right
65
+ 'left-end': { originX: 1, originY: 1 }, // open from bottom, right
66
+ };
67
+
68
+ /**
69
+ * Given the floating-ui `placement`, compute the framer-motion props for the
70
+ * popover's entry animation.
71
+ *
72
+ * @param placement A placement string from floating ui
73
+ * @return The object containing the motion props
74
+ */
75
+ export const placementToMotionAnimationProps = (
76
+ placement: NonNullable< PopoverProps[ 'placement' ] >
77
+ ): MotionProps => {
78
+ const translateProp =
79
+ placement.startsWith( 'top' ) || placement.startsWith( 'bottom' )
80
+ ? 'translateY'
81
+ : 'translateX';
82
+ const translateDirection =
83
+ placement.startsWith( 'top' ) || placement.startsWith( 'left' )
84
+ ? 1
85
+ : -1;
86
+
87
+ return {
88
+ style: PLACEMENT_TO_ANIMATION_ORIGIN[ placement ],
89
+ initial: {
90
+ opacity: 0,
91
+ scale: 0,
92
+ [ translateProp ]: `${ 2 * translateDirection }em`,
93
+ },
94
+ animate: { opacity: 1, scale: 1, [ translateProp ]: 0 },
95
+ transition: { duration: 0.1, ease: [ 0, 0, 0.2, 1 ] },
96
+ };
97
+ };
98
+
99
+ /**
100
+ * Returns the offset of a document's frame element.
101
+ *
102
+ * @param document The iframe's owner document.
103
+ *
104
+ * @return The offset of the document's frame element, or undefined if the
105
+ * document has no frame element.
106
+ */
107
+ export const getFrameOffset = (
108
+ document?: Document
109
+ ): { x: number; y: number } | undefined => {
110
+ const frameElement = document?.defaultView?.frameElement;
111
+ if ( ! frameElement ) {
112
+ return;
113
+ }
114
+ const iframeRect = frameElement.getBoundingClientRect();
115
+ return { x: iframeRect.left, y: iframeRect.top };
116
+ };
117
+
118
+ export const getReferenceOwnerDocument = ( {
119
+ anchorRef,
120
+ anchorRect,
121
+ getAnchorRect,
122
+ fallbackReferenceElement,
123
+ fallbackDocument,
124
+ }: Pick< PopoverProps, 'anchorRef' | 'anchorRect' | 'getAnchorRect' > & {
125
+ fallbackReferenceElement: Element | null;
126
+ fallbackDocument: Document;
127
+ } ): Document => {
128
+ // In floating-ui's terms:
129
+ // - "reference" refers to the popover's anchor element.
130
+ // - "floating" refers the floating popover's element.
131
+ // A floating element can also be positioned relative to a virtual element,
132
+ // instead of a real one. A virtual element is represented by an object
133
+ // with the `getBoundingClientRect()` function (like real elements).
134
+ // See https://floating-ui.com/docs/virtual-elements for more info.
135
+ let resultingReferenceOwnerDoc;
136
+ if ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {
137
+ resultingReferenceOwnerDoc = ( anchorRef as PopoverAnchorRefTopBottom )
138
+ ?.top.ownerDocument;
139
+ } else if ( ( anchorRef as Range | undefined )?.startContainer ) {
140
+ resultingReferenceOwnerDoc = ( anchorRef as Range ).startContainer
141
+ .ownerDocument;
142
+ } else if (
143
+ ( anchorRef as PopoverAnchorRefReference | undefined )?.current
144
+ ) {
145
+ resultingReferenceOwnerDoc = (
146
+ ( anchorRef as PopoverAnchorRefReference ).current as Element
147
+ ).ownerDocument;
148
+ } else if ( anchorRef as Element | undefined ) {
149
+ // This one should be deprecated.
150
+ resultingReferenceOwnerDoc = ( anchorRef as Element ).ownerDocument;
151
+ } else if ( anchorRect && anchorRect?.ownerDocument ) {
152
+ resultingReferenceOwnerDoc = anchorRect.ownerDocument;
153
+ } else if ( getAnchorRect ) {
154
+ resultingReferenceOwnerDoc = getAnchorRect(
155
+ fallbackReferenceElement
156
+ )?.ownerDocument;
157
+ }
158
+
159
+ return resultingReferenceOwnerDoc ?? fallbackDocument;
160
+ };
161
+
162
+ export const getReferenceElement = ( {
163
+ anchorRef,
164
+ anchorRect,
165
+ getAnchorRect,
166
+ fallbackReferenceElement,
167
+ }: Pick< PopoverProps, 'anchorRef' | 'anchorRect' | 'getAnchorRect' > & {
168
+ fallbackReferenceElement: Element | null;
169
+ } ): ReferenceType | null => {
170
+ let referenceElement = null;
171
+
172
+ if ( ( anchorRef as PopoverAnchorRefTopBottom | undefined )?.top ) {
173
+ // Create a virtual element for the ref. The expectation is that
174
+ // if anchorRef.top is defined, then anchorRef.bottom is defined too.
175
+ // Seems to be used by the block toolbar, when multiple blocks are selected
176
+ // (top and bottom blocks are used to calculate the resulting rect).
177
+ referenceElement = {
178
+ getBoundingClientRect() {
179
+ const topRect = (
180
+ anchorRef as PopoverAnchorRefTopBottom
181
+ ).top.getBoundingClientRect();
182
+ const bottomRect = (
183
+ anchorRef as PopoverAnchorRefTopBottom
184
+ ).bottom.getBoundingClientRect();
185
+ return new window.DOMRect(
186
+ topRect.x,
187
+ topRect.y,
188
+ topRect.width,
189
+ bottomRect.bottom - topRect.top
190
+ );
191
+ },
192
+ };
193
+ } else if (
194
+ ( anchorRef as PopoverAnchorRefReference | undefined )?.current
195
+ ) {
196
+ // Standard React ref.
197
+ referenceElement = ( anchorRef as PopoverAnchorRefReference ).current;
198
+ } else if ( anchorRef as Element | undefined ) {
199
+ // If `anchorRef` holds directly the element's value (no `current` key)
200
+ // This is a weird scenario and should be deprecated.
201
+ referenceElement = anchorRef as Element;
202
+ } else if ( anchorRect ) {
203
+ // Create a virtual element for the ref.
204
+ referenceElement = {
205
+ getBoundingClientRect() {
206
+ return anchorRect;
207
+ },
208
+ };
209
+ } else if ( getAnchorRect ) {
210
+ // Create a virtual element for the ref.
211
+ referenceElement = {
212
+ getBoundingClientRect() {
213
+ const rect = getAnchorRect( fallbackReferenceElement );
214
+ return new window.DOMRect(
215
+ rect.x ?? rect.left,
216
+ rect.y ?? rect.top,
217
+ rect.width ?? rect.right - rect.left,
218
+ rect.height ?? rect.bottom - rect.top
219
+ );
220
+ },
221
+ };
222
+ } else if ( fallbackReferenceElement ) {
223
+ // If no explicit ref is passed via props, fall back to
224
+ // anchoring to the popover's parent node.
225
+ referenceElement = fallbackReferenceElement.parentElement;
226
+ }
227
+
228
+ // Convert any `undefined` value to `null`.
229
+ return referenceElement ?? null;
230
+ };
@@ -15,6 +15,7 @@ import { useInstanceId } from '@wordpress/compose';
15
15
  import BaseControl from '../base-control';
16
16
  import type { WordPressComponentProps } from '../ui/context';
17
17
  import type { RadioControlProps } from './types';
18
+ import { VStack } from '../v-stack';
18
19
 
19
20
  /**
20
21
  * Render a user interface to select the user type using radio inputs.
@@ -42,12 +43,7 @@ import type { RadioControlProps } from './types';
42
43
  * ```
43
44
  */
44
45
  export function RadioControl(
45
- // ref is omitted until we have `WordPressComponentPropsWithoutRef` or add
46
- // ref forwarding to RadioControl.
47
- props: Omit<
48
- WordPressComponentProps< RadioControlProps, 'input', false >,
49
- 'ref'
50
- >
46
+ props: WordPressComponentProps< RadioControlProps, 'input', false >
51
47
  ) {
52
48
  const {
53
49
  label,
@@ -70,35 +66,38 @@ export function RadioControl(
70
66
 
71
67
  return (
72
68
  <BaseControl
69
+ __nextHasNoMarginBottom
73
70
  label={ label }
74
71
  id={ id }
75
72
  hideLabelFromVision={ hideLabelFromVision }
76
73
  help={ help }
77
74
  className={ classnames( className, 'components-radio-control' ) }
78
75
  >
79
- { options.map( ( option, index ) => (
80
- <div
81
- key={ `${ id }-${ index }` }
82
- className="components-radio-control__option"
83
- >
84
- <input
85
- id={ `${ id }-${ index }` }
86
- className="components-radio-control__input"
87
- type="radio"
88
- name={ id }
89
- value={ option.value }
90
- onChange={ onChangeValue }
91
- checked={ option.value === selected }
92
- aria-describedby={
93
- !! help ? `${ id }__help` : undefined
94
- }
95
- { ...additionalProps }
96
- />
97
- <label htmlFor={ `${ id }-${ index }` }>
98
- { option.label }
99
- </label>
100
- </div>
101
- ) ) }
76
+ <VStack spacing={ 1 }>
77
+ { options.map( ( option, index ) => (
78
+ <div
79
+ key={ `${ id }-${ index }` }
80
+ className="components-radio-control__option"
81
+ >
82
+ <input
83
+ id={ `${ id }-${ index }` }
84
+ className="components-radio-control__input"
85
+ type="radio"
86
+ name={ id }
87
+ value={ option.value }
88
+ onChange={ onChangeValue }
89
+ checked={ option.value === selected }
90
+ aria-describedby={
91
+ !! help ? `${ id }__help` : undefined
92
+ }
93
+ { ...additionalProps }
94
+ />
95
+ <label htmlFor={ `${ id }-${ index }` }>
96
+ { option.label }
97
+ </label>
98
+ </div>
99
+ ) ) }
100
+ </VStack>
102
101
  </BaseControl>
103
102
  );
104
103
  }
@@ -1,20 +1,3 @@
1
- .components-radio-control {
2
- display: flex;
3
- flex-direction: column;
4
-
5
- .components-base-control__help {
6
- margin-top: 0;
7
- }
8
-
9
- .components-base-control__field {
10
- margin-bottom: 0;
11
- }
12
- }
13
-
14
- .components-radio-control__option:not(:last-child) {
15
- margin-bottom: 4px;
16
- }
17
-
18
1
  .components-radio-control__input[type="radio"] {
19
2
  @include radio-control;
20
3
  margin-top: 0;