@wordpress/components 19.17.0 → 20.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 (773) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/CONTRIBUTING.md +10 -10
  3. package/build/alignment-matrix-control/index.js +1 -1
  4. package/build/alignment-matrix-control/index.js.map +1 -1
  5. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  6. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  7. package/build/angle-picker-control/index.js +3 -0
  8. package/build/angle-picker-control/index.js.map +1 -1
  9. package/build/angle-picker-control/styles/angle-picker-control-styles.js +14 -4
  10. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  11. package/build/autocomplete/index.js +9 -11
  12. package/build/autocomplete/index.js.map +1 -1
  13. package/build/base-control/styles/base-control-styles.js +8 -8
  14. package/build/base-control/styles/base-control-styles.js.map +1 -1
  15. package/build/base-field/styles.js +5 -5
  16. package/build/base-field/styles.js.map +1 -1
  17. package/build/box-control/styles/box-control-visualizer-styles.js +8 -8
  18. package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  19. package/build/card/card/component.js +6 -11
  20. package/build/card/card/component.js.map +1 -1
  21. package/build/card/card/hook.js +0 -10
  22. package/build/card/card/hook.js.map +1 -1
  23. package/build/card/card/index.js.map +1 -1
  24. package/build/card/card-body/component.js +7 -8
  25. package/build/card/card-body/component.js.map +1 -1
  26. package/build/card/card-body/hook.js +0 -4
  27. package/build/card/card-body/hook.js.map +1 -1
  28. package/build/card/card-body/index.js.map +1 -1
  29. package/build/card/card-divider/component.js +7 -8
  30. package/build/card/card-divider/component.js.map +1 -1
  31. package/build/card/card-divider/hook.js +0 -4
  32. package/build/card/card-divider/hook.js.map +1 -1
  33. package/build/card/card-divider/index.js.map +1 -1
  34. package/build/card/card-footer/component.js +7 -8
  35. package/build/card/card-footer/component.js.map +1 -1
  36. package/build/card/card-footer/hook.js +0 -4
  37. package/build/card/card-footer/hook.js.map +1 -1
  38. package/build/card/card-footer/index.js.map +1 -1
  39. package/build/card/card-header/component.js +7 -8
  40. package/build/card/card-header/component.js.map +1 -1
  41. package/build/card/card-header/hook.js +0 -4
  42. package/build/card/card-header/hook.js.map +1 -1
  43. package/build/card/card-header/index.js.map +1 -1
  44. package/build/card/card-media/component.js +7 -7
  45. package/build/card/card-media/component.js.map +1 -1
  46. package/build/card/card-media/hook.js +0 -4
  47. package/build/card/card-media/hook.js.map +1 -1
  48. package/build/card/card-media/index.js.map +1 -1
  49. package/build/card/context.js.map +1 -1
  50. package/build/card/index.js.map +1 -1
  51. package/build/card/styles.js +17 -17
  52. package/build/card/styles.js.map +1 -1
  53. package/build/color-list-picker/index.js +16 -5
  54. package/build/color-list-picker/index.js.map +1 -1
  55. package/build/color-palette/index.js +22 -12
  56. package/build/color-palette/index.js.map +1 -1
  57. package/build/color-palette/index.native.js +3 -3
  58. package/build/color-palette/index.native.js.map +1 -1
  59. package/build/combobox-control/index.js +7 -4
  60. package/build/combobox-control/index.js.map +1 -1
  61. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  62. package/build/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  63. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  64. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  65. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  66. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  67. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  68. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  69. package/build/custom-gradient-picker/index.js +19 -4
  70. package/build/custom-gradient-picker/index.js.map +1 -1
  71. package/build/custom-select-control/index.js +21 -11
  72. package/build/custom-select-control/index.js.map +1 -1
  73. package/build/custom-select-control/styles.js +34 -0
  74. package/build/custom-select-control/styles.js.map +1 -0
  75. package/build/date-time/constants.js +9 -0
  76. package/build/date-time/constants.js.map +1 -0
  77. package/build/date-time/date/index.js +175 -186
  78. package/build/date-time/date/index.js.map +1 -1
  79. package/build/date-time/date/styles.js +59 -40
  80. package/build/date-time/date/styles.js.map +1 -1
  81. package/build/date-time/date-time/index.js +5 -2
  82. package/build/date-time/date-time/index.js.map +1 -1
  83. package/build/date-time/time/index.js +22 -17
  84. package/build/date-time/time/index.js.map +1 -1
  85. package/build/date-time/utils.js +27 -0
  86. package/build/date-time/utils.js.map +1 -0
  87. package/build/dimension-control/index.js +2 -6
  88. package/build/dimension-control/index.js.map +1 -1
  89. package/build/disabled/index.js +28 -11
  90. package/build/disabled/index.js.map +1 -1
  91. package/build/disabled/styles/disabled-styles.js +3 -3
  92. package/build/disabled/styles/disabled-styles.js.map +1 -1
  93. package/build/{swatch → disabled}/types.js +0 -0
  94. package/build/{swatch → disabled}/types.js.map +0 -0
  95. package/build/drop-zone/index.js +2 -4
  96. package/build/drop-zone/index.js.map +1 -1
  97. package/build/dropdown/index.js +5 -6
  98. package/build/dropdown/index.js.map +1 -1
  99. package/build/duotone-picker/custom-duotone-bar.js +2 -2
  100. package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
  101. package/build/duotone-picker/duotone-picker.js +9 -1
  102. package/build/duotone-picker/duotone-picker.js.map +1 -1
  103. package/build/duotone-picker/duotone-swatch.js +13 -3
  104. package/build/duotone-picker/duotone-swatch.js.map +1 -1
  105. package/build/focal-point-picker/index.js +4 -6
  106. package/build/focal-point-picker/index.js.map +1 -1
  107. package/build/focal-point-picker/styles/focal-point-style.js +4 -4
  108. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  109. package/build/font-size-picker/index.js +43 -14
  110. package/build/font-size-picker/index.js.map +1 -1
  111. package/build/font-size-picker/utils.js +32 -22
  112. package/build/font-size-picker/utils.js.map +1 -1
  113. package/build/form-token-field/index.js +29 -20
  114. package/build/form-token-field/index.js.map +1 -1
  115. package/build/gradient-picker/index.js +15 -3
  116. package/build/gradient-picker/index.js.map +1 -1
  117. package/build/guide/index.js +5 -3
  118. package/build/guide/index.js.map +1 -1
  119. package/build/guide/page-control.js +3 -7
  120. package/build/guide/page-control.js.map +1 -1
  121. package/build/item-group/styles.js +10 -10
  122. package/build/item-group/styles.js.map +1 -1
  123. package/build/mobile/bottom-sheet/index.native.js +3 -6
  124. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  125. package/build/mobile/global-styles-context/utils.native.js +3 -1
  126. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  127. package/build/mobile/image/index.native.js +6 -26
  128. package/build/mobile/image/index.native.js.map +1 -1
  129. package/build/mobile/picker/index.android.js +3 -3
  130. package/build/mobile/picker/index.android.js.map +1 -1
  131. package/build/modal/index.js +1 -3
  132. package/build/modal/index.js.map +1 -1
  133. package/build/navigable-container/container.js +9 -8
  134. package/build/navigable-container/container.js.map +1 -1
  135. package/build/navigable-container/menu.js +3 -9
  136. package/build/navigable-container/menu.js.map +1 -1
  137. package/build/navigator/navigator-back-button/hook.js +0 -4
  138. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  139. package/build/navigator/navigator-button/hook.js +0 -4
  140. package/build/navigator/navigator-button/hook.js.map +1 -1
  141. package/build/notice/list.js +10 -6
  142. package/build/notice/list.js.map +1 -1
  143. package/build/palette-edit/index.js +1 -0
  144. package/build/palette-edit/index.js.map +1 -1
  145. package/build/palette-edit/styles.js +10 -10
  146. package/build/palette-edit/styles.js.map +1 -1
  147. package/build/popover/index.js +100 -97
  148. package/build/popover/index.js.map +1 -1
  149. package/build/popover/utils.js +178 -0
  150. package/build/popover/utils.js.map +1 -0
  151. package/build/range-control/index.js +3 -0
  152. package/build/range-control/index.js.map +1 -1
  153. package/build/range-control/styles/range-control-styles.js +43 -37
  154. package/build/range-control/styles/range-control-styles.js.map +1 -1
  155. package/build/select-control/chevron-down.js +30 -0
  156. package/build/select-control/chevron-down.js.map +1 -0
  157. package/build/select-control/index.js +7 -7
  158. package/build/select-control/index.js.map +1 -1
  159. package/build/select-control/styles/select-control-styles.js +30 -15
  160. package/build/select-control/styles/select-control-styles.js.map +1 -1
  161. package/build/snackbar/list.js +5 -3
  162. package/build/snackbar/list.js.map +1 -1
  163. package/build/spinner/index.js +2 -0
  164. package/build/spinner/index.js.map +1 -1
  165. package/build/text/styles.js +7 -7
  166. package/build/text/styles.js.map +1 -1
  167. package/build/toggle-group-control/toggle-group-control/component.js +16 -8
  168. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  169. package/build/toggle-group-control/toggle-group-control/styles.js +7 -5
  170. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  171. package/build/toggle-group-control/toggle-group-control-option/component.js +15 -5
  172. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  173. package/build/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  174. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  175. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +20 -7
  176. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  177. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +26 -7
  178. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  179. package/build/tools-panel/styles.js +11 -11
  180. package/build/tools-panel/styles.js.map +1 -1
  181. package/build/tooltip/index.js +1 -7
  182. package/build/tooltip/index.js.map +1 -1
  183. package/build/tree-grid/index.js +4 -10
  184. package/build/tree-grid/index.js.map +1 -1
  185. package/build/ui/context/context-connect.js +1 -3
  186. package/build/ui/context/context-connect.js.map +1 -1
  187. package/build/unit-control/index.js +2 -3
  188. package/build/unit-control/index.js.map +1 -1
  189. package/build/utils/colors-values.js +52 -142
  190. package/build/utils/colors-values.js.map +1 -1
  191. package/build/utils/config-values.js +1 -1
  192. package/build/utils/config-values.js.map +1 -1
  193. package/build/utils/input/input-control.js +1 -1
  194. package/build/utils/input/input-control.js.map +1 -1
  195. package/build/utils/rtl.js +6 -5
  196. package/build/utils/rtl.js.map +1 -1
  197. package/build/utils/strings.js +50 -0
  198. package/build/utils/strings.js.map +1 -0
  199. package/build-module/alignment-matrix-control/index.js +1 -1
  200. package/build-module/alignment-matrix-control/index.js.map +1 -1
  201. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  202. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  203. package/build-module/angle-picker-control/index.js +3 -0
  204. package/build-module/angle-picker-control/index.js.map +1 -1
  205. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -4
  206. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  207. package/build-module/autocomplete/index.js +9 -10
  208. package/build-module/autocomplete/index.js.map +1 -1
  209. package/build-module/base-control/styles/base-control-styles.js +8 -8
  210. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  211. package/build-module/base-field/styles.js +5 -5
  212. package/build-module/base-field/styles.js.map +1 -1
  213. package/build-module/box-control/styles/box-control-visualizer-styles.js +8 -8
  214. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  215. package/build-module/card/card/component.js +5 -10
  216. package/build-module/card/card/component.js.map +1 -1
  217. package/build-module/card/card/hook.js +0 -9
  218. package/build-module/card/card/hook.js.map +1 -1
  219. package/build-module/card/card/index.js.map +1 -1
  220. package/build-module/card/card-body/component.js +7 -8
  221. package/build-module/card/card-body/component.js.map +1 -1
  222. package/build-module/card/card-body/hook.js +0 -4
  223. package/build-module/card/card-body/hook.js.map +1 -1
  224. package/build-module/card/card-body/index.js.map +1 -1
  225. package/build-module/card/card-divider/component.js +7 -8
  226. package/build-module/card/card-divider/component.js.map +1 -1
  227. package/build-module/card/card-divider/hook.js +0 -4
  228. package/build-module/card/card-divider/hook.js.map +1 -1
  229. package/build-module/card/card-divider/index.js.map +1 -1
  230. package/build-module/card/card-footer/component.js +7 -8
  231. package/build-module/card/card-footer/component.js.map +1 -1
  232. package/build-module/card/card-footer/hook.js +0 -4
  233. package/build-module/card/card-footer/hook.js.map +1 -1
  234. package/build-module/card/card-footer/index.js.map +1 -1
  235. package/build-module/card/card-header/component.js +7 -8
  236. package/build-module/card/card-header/component.js.map +1 -1
  237. package/build-module/card/card-header/hook.js +0 -4
  238. package/build-module/card/card-header/hook.js.map +1 -1
  239. package/build-module/card/card-header/index.js.map +1 -1
  240. package/build-module/card/card-media/component.js +7 -7
  241. package/build-module/card/card-media/component.js.map +1 -1
  242. package/build-module/card/card-media/hook.js +0 -4
  243. package/build-module/card/card-media/hook.js.map +1 -1
  244. package/build-module/card/card-media/index.js.map +1 -1
  245. package/build-module/card/context.js.map +1 -1
  246. package/build-module/card/index.js.map +1 -1
  247. package/build-module/card/styles.js +17 -17
  248. package/build-module/card/styles.js.map +1 -1
  249. package/build-module/color-list-picker/index.js +13 -5
  250. package/build-module/color-list-picker/index.js.map +1 -1
  251. package/build-module/color-palette/index.js +22 -11
  252. package/build-module/color-palette/index.js.map +1 -1
  253. package/build-module/color-palette/index.native.js +4 -4
  254. package/build-module/color-palette/index.native.js.map +1 -1
  255. package/build-module/combobox-control/index.js +6 -3
  256. package/build-module/combobox-control/index.js.map +1 -1
  257. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  258. package/build-module/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  259. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  260. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  261. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  262. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  263. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  264. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  265. package/build-module/custom-gradient-picker/index.js +16 -3
  266. package/build-module/custom-gradient-picker/index.js.map +1 -1
  267. package/build-module/custom-select-control/index.js +20 -12
  268. package/build-module/custom-select-control/index.js.map +1 -1
  269. package/build-module/custom-select-control/styles.js +22 -0
  270. package/build-module/custom-select-control/styles.js.map +1 -0
  271. package/build-module/date-time/constants.js +2 -0
  272. package/build-module/date-time/constants.js.map +1 -0
  273. package/build-module/date-time/date/index.js +178 -184
  274. package/build-module/date-time/date/index.js.map +1 -1
  275. package/build-module/date-time/date/styles.js +47 -38
  276. package/build-module/date-time/date/styles.js.map +1 -1
  277. package/build-module/date-time/date-time/index.js +4 -2
  278. package/build-module/date-time/date-time/index.js.map +1 -1
  279. package/build-module/date-time/time/index.js +20 -16
  280. package/build-module/date-time/time/index.js.map +1 -1
  281. package/build-module/date-time/utils.js +19 -0
  282. package/build-module/date-time/utils.js.map +1 -0
  283. package/build-module/dimension-control/index.js +1 -5
  284. package/build-module/dimension-control/index.js.map +1 -1
  285. package/build-module/disabled/index.js +28 -11
  286. package/build-module/disabled/index.js.map +1 -1
  287. package/build-module/disabled/styles/disabled-styles.js +3 -3
  288. package/build-module/disabled/styles/disabled-styles.js.map +1 -1
  289. package/build-module/{swatch → disabled}/types.js +0 -0
  290. package/build-module/{swatch → disabled}/types.js.map +0 -0
  291. package/build-module/drop-zone/index.js +2 -3
  292. package/build-module/drop-zone/index.js.map +1 -1
  293. package/build-module/dropdown/index.js +5 -6
  294. package/build-module/dropdown/index.js.map +1 -1
  295. package/build-module/duotone-picker/custom-duotone-bar.js +1 -1
  296. package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
  297. package/build-module/duotone-picker/duotone-picker.js +7 -1
  298. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  299. package/build-module/duotone-picker/duotone-swatch.js +11 -3
  300. package/build-module/duotone-picker/duotone-swatch.js.map +1 -1
  301. package/build-module/focal-point-picker/index.js +4 -5
  302. package/build-module/focal-point-picker/index.js.map +1 -1
  303. package/build-module/focal-point-picker/styles/focal-point-style.js +4 -4
  304. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  305. package/build-module/font-size-picker/index.js +39 -14
  306. package/build-module/font-size-picker/index.js.map +1 -1
  307. package/build-module/font-size-picker/utils.js +31 -23
  308. package/build-module/font-size-picker/utils.js.map +1 -1
  309. package/build-module/form-token-field/index.js +30 -20
  310. package/build-module/form-token-field/index.js.map +1 -1
  311. package/build-module/gradient-picker/index.js +14 -3
  312. package/build-module/gradient-picker/index.js.map +1 -1
  313. package/build-module/guide/index.js +5 -3
  314. package/build-module/guide/index.js.map +1 -1
  315. package/build-module/guide/page-control.js +3 -6
  316. package/build-module/guide/page-control.js.map +1 -1
  317. package/build-module/item-group/styles.js +10 -10
  318. package/build-module/item-group/styles.js.map +1 -1
  319. package/build-module/mobile/bottom-sheet/index.native.js +3 -5
  320. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  321. package/build-module/mobile/global-styles-context/utils.native.js +2 -1
  322. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  323. package/build-module/mobile/image/index.native.js +8 -28
  324. package/build-module/mobile/image/index.native.js.map +1 -1
  325. package/build-module/mobile/picker/index.android.js +3 -3
  326. package/build-module/mobile/picker/index.android.js.map +1 -1
  327. package/build-module/modal/index.js +1 -2
  328. package/build-module/modal/index.js.map +1 -1
  329. package/build-module/navigable-container/container.js +9 -7
  330. package/build-module/navigable-container/container.js.map +1 -1
  331. package/build-module/navigable-container/menu.js +3 -8
  332. package/build-module/navigable-container/menu.js.map +1 -1
  333. package/build-module/navigator/navigator-back-button/hook.js +0 -4
  334. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  335. package/build-module/navigator/navigator-button/hook.js +0 -4
  336. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  337. package/build-module/notice/list.js +10 -5
  338. package/build-module/notice/list.js.map +1 -1
  339. package/build-module/palette-edit/index.js +1 -0
  340. package/build-module/palette-edit/index.js.map +1 -1
  341. package/build-module/palette-edit/styles.js +10 -10
  342. package/build-module/palette-edit/styles.js.map +1 -1
  343. package/build-module/popover/index.js +100 -98
  344. package/build-module/popover/index.js.map +1 -1
  345. package/build-module/popover/utils.js +164 -0
  346. package/build-module/popover/utils.js.map +1 -0
  347. package/build-module/range-control/index.js +3 -0
  348. package/build-module/range-control/index.js.map +1 -1
  349. package/build-module/range-control/styles/range-control-styles.js +43 -37
  350. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  351. package/build-module/select-control/chevron-down.js +21 -0
  352. package/build-module/select-control/chevron-down.js.map +1 -0
  353. package/build-module/select-control/index.js +7 -7
  354. package/build-module/select-control/index.js.map +1 -1
  355. package/build-module/select-control/styles/select-control-styles.js +24 -13
  356. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  357. package/build-module/snackbar/list.js +5 -2
  358. package/build-module/snackbar/list.js.map +1 -1
  359. package/build-module/spinner/index.js +2 -0
  360. package/build-module/spinner/index.js.map +1 -1
  361. package/build-module/text/styles.js +7 -7
  362. package/build-module/text/styles.js.map +1 -1
  363. package/build-module/toggle-group-control/toggle-group-control/component.js +14 -7
  364. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  365. package/build-module/toggle-group-control/toggle-group-control/styles.js +5 -4
  366. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  367. package/build-module/toggle-group-control/toggle-group-control-option/component.js +17 -3
  368. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  369. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  370. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  371. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +16 -6
  372. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  373. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +27 -5
  374. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  375. package/build-module/tools-panel/styles.js +11 -11
  376. package/build-module/tools-panel/styles.js.map +1 -1
  377. package/build-module/tooltip/index.js +1 -6
  378. package/build-module/tooltip/index.js.map +1 -1
  379. package/build-module/tree-grid/index.js +4 -9
  380. package/build-module/tree-grid/index.js.map +1 -1
  381. package/build-module/ui/context/context-connect.js +1 -2
  382. package/build-module/ui/context/context-connect.js.map +1 -1
  383. package/build-module/unit-control/index.js +2 -2
  384. package/build-module/unit-control/index.js.map +1 -1
  385. package/build-module/utils/colors-values.js +52 -141
  386. package/build-module/utils/colors-values.js.map +1 -1
  387. package/build-module/utils/config-values.js +1 -1
  388. package/build-module/utils/config-values.js.map +1 -1
  389. package/build-module/utils/input/input-control.js +1 -1
  390. package/build-module/utils/input/input-control.js.map +1 -1
  391. package/build-module/utils/rtl.js +6 -4
  392. package/build-module/utils/rtl.js.map +1 -1
  393. package/build-module/utils/strings.js +37 -0
  394. package/build-module/utils/strings.js.map +1 -0
  395. package/build-style/style-rtl.css +176 -1227
  396. package/build-style/style.css +171 -1225
  397. package/build-types/card/card/component.d.ts +3 -3
  398. package/build-types/card/card/component.d.ts.map +1 -1
  399. package/build-types/card/card/hook.d.ts +7 -2
  400. package/build-types/card/card/hook.d.ts.map +1 -1
  401. package/build-types/card/card/index.d.ts +2 -2
  402. package/build-types/card/card/index.d.ts.map +1 -1
  403. package/build-types/card/card-body/component.d.ts +3 -3
  404. package/build-types/card/card-body/component.d.ts.map +1 -1
  405. package/build-types/card/card-body/hook.d.ts +5 -2
  406. package/build-types/card/card-body/hook.d.ts.map +1 -1
  407. package/build-types/card/card-body/index.d.ts +2 -2
  408. package/build-types/card/card-body/index.d.ts.map +1 -1
  409. package/build-types/card/card-divider/component.d.ts +3 -3
  410. package/build-types/card/card-divider/component.d.ts.map +1 -1
  411. package/build-types/card/card-divider/hook.d.ts +5 -2
  412. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  413. package/build-types/card/card-divider/index.d.ts +2 -2
  414. package/build-types/card/card-divider/index.d.ts.map +1 -1
  415. package/build-types/card/card-footer/component.d.ts +3 -3
  416. package/build-types/card/card-footer/component.d.ts.map +1 -1
  417. package/build-types/card/card-footer/hook.d.ts +5 -2
  418. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  419. package/build-types/card/card-footer/index.d.ts +2 -2
  420. package/build-types/card/card-footer/index.d.ts.map +1 -1
  421. package/build-types/card/card-header/component.d.ts +3 -3
  422. package/build-types/card/card-header/component.d.ts.map +1 -1
  423. package/build-types/card/card-header/hook.d.ts +5 -2
  424. package/build-types/card/card-header/hook.d.ts.map +1 -1
  425. package/build-types/card/card-header/index.d.ts +2 -2
  426. package/build-types/card/card-header/index.d.ts.map +1 -1
  427. package/build-types/card/card-media/component.d.ts +3 -4
  428. package/build-types/card/card-media/component.d.ts.map +1 -1
  429. package/build-types/card/card-media/hook.d.ts +6 -5
  430. package/build-types/card/card-media/hook.d.ts.map +1 -1
  431. package/build-types/card/card-media/index.d.ts +2 -2
  432. package/build-types/card/card-media/index.d.ts.map +1 -1
  433. package/build-types/card/context.d.ts +3 -2
  434. package/build-types/card/context.d.ts.map +1 -1
  435. package/build-types/card/index.d.ts +6 -6
  436. package/build-types/card/index.d.ts.map +1 -1
  437. package/build-types/card/stories/index.d.ts +12 -0
  438. package/build-types/card/stories/index.d.ts.map +1 -0
  439. package/build-types/card/styles.d.ts +20 -22
  440. package/build-types/card/styles.d.ts.map +1 -1
  441. package/build-types/card/test/index.d.ts +2 -0
  442. package/build-types/{flyout → card/test}/index.d.ts.map +1 -1
  443. package/build-types/card/types.d.ts +7 -1
  444. package/build-types/card/types.d.ts.map +1 -1
  445. package/build-types/color-palette/index.d.ts +2 -1
  446. package/build-types/color-palette/index.d.ts.map +1 -1
  447. package/build-types/color-picker/styles.d.ts +2 -2
  448. package/build-types/date-time/constants.d.ts +2 -0
  449. package/build-types/date-time/constants.d.ts.map +1 -0
  450. package/build-types/date-time/date/index.d.ts +3 -1
  451. package/build-types/date-time/date/index.d.ts.map +1 -1
  452. package/build-types/date-time/date/styles.d.ts +22 -8
  453. package/build-types/date-time/date/styles.d.ts.map +1 -1
  454. package/build-types/date-time/date/test/index.d.ts +1 -1
  455. package/build-types/date-time/date/test/index.d.ts.map +1 -1
  456. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  457. package/build-types/date-time/time/index.d.ts.map +1 -1
  458. package/build-types/date-time/utils.d.ts +8 -0
  459. package/build-types/date-time/utils.d.ts.map +1 -0
  460. package/build-types/disabled/index.d.ts +35 -28
  461. package/build-types/disabled/index.d.ts.map +1 -1
  462. package/build-types/disabled/stories/index.d.ts +13 -0
  463. package/build-types/disabled/stories/index.d.ts.map +1 -0
  464. package/build-types/disabled/styles/disabled-styles.d.ts +2 -1
  465. package/build-types/disabled/styles/disabled-styles.d.ts.map +1 -1
  466. package/build-types/disabled/test/index.d.ts +2 -0
  467. package/build-types/{flyout/flyout → disabled/test}/index.d.ts.map +1 -1
  468. package/build-types/disabled/types.d.ts +14 -0
  469. package/build-types/disabled/types.d.ts.map +1 -0
  470. package/build-types/dropdown/index.d.ts.map +1 -1
  471. package/build-types/form-token-field/index.d.ts.map +1 -1
  472. package/build-types/form-token-field/stories/index.d.ts +1 -0
  473. package/build-types/form-token-field/stories/index.d.ts.map +1 -1
  474. package/build-types/form-token-field/test/index.d.ts +2 -0
  475. package/build-types/form-token-field/test/index.d.ts.map +1 -0
  476. package/build-types/form-token-field/types.d.ts +7 -0
  477. package/build-types/form-token-field/types.d.ts.map +1 -1
  478. package/build-types/navigable-container/menu.d.ts.map +1 -1
  479. package/build-types/navigator/navigator-back-button/hook.d.ts +0 -3
  480. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  481. package/build-types/navigator/navigator-button/hook.d.ts +0 -3
  482. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  483. package/build-types/placeholder/test/index.d.ts +2 -0
  484. package/build-types/placeholder/test/index.d.ts.map +1 -0
  485. package/build-types/popover/index.d.ts +1 -1
  486. package/build-types/popover/index.d.ts.map +1 -1
  487. package/build-types/popover/utils.d.ts +26 -69
  488. package/build-types/popover/utils.d.ts.map +1 -1
  489. package/build-types/range-control/index.d.ts +2 -2
  490. package/build-types/range-control/index.d.ts.map +1 -1
  491. package/build-types/range-control/styles/range-control-styles.d.ts +5 -2
  492. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  493. package/build-types/range-control/types.d.ts +2 -2
  494. package/build-types/range-control/types.d.ts.map +1 -1
  495. package/build-types/select-control/chevron-down.d.ts +4 -0
  496. package/build-types/select-control/chevron-down.d.ts.map +1 -0
  497. package/build-types/select-control/index.d.ts.map +1 -1
  498. package/build-types/select-control/styles/select-control-styles.d.ts +8 -0
  499. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  500. package/build-types/spinner/index.d.ts.map +1 -1
  501. package/build-types/toggle-group-control/stories/index.d.ts +25 -0
  502. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -0
  503. package/build-types/toggle-group-control/test/index.d.ts +2 -0
  504. package/build-types/toggle-group-control/test/index.d.ts.map +1 -0
  505. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +6 -3
  506. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  507. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -0
  508. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  509. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -7
  510. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  511. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  512. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +4 -0
  513. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  514. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +11 -9
  515. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  516. package/build-types/toggle-group-control/types.d.ts +23 -10
  517. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  518. package/build-types/tooltip/index.d.ts.map +1 -1
  519. package/build-types/ui/context/context-connect.d.ts +3 -0
  520. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  521. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  522. package/build-types/unit-control/index.d.ts +2 -1
  523. package/build-types/unit-control/index.d.ts.map +1 -1
  524. package/build-types/unit-control/types.d.ts +5 -1
  525. package/build-types/unit-control/types.d.ts.map +1 -1
  526. package/build-types/utils/colors-values.d.ts +18 -97
  527. package/build-types/utils/colors-values.d.ts.map +1 -1
  528. package/build-types/utils/rtl.d.ts.map +1 -1
  529. package/build-types/utils/strings.d.ts +2 -0
  530. package/build-types/utils/strings.d.ts.map +1 -0
  531. package/package.json +22 -21
  532. package/src/alignment-matrix-control/index.js +1 -1
  533. package/src/alignment-matrix-control/stories/index.js +49 -24
  534. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +1 -3
  535. package/src/angle-picker-control/index.js +7 -1
  536. package/src/angle-picker-control/stories/index.js +8 -5
  537. package/src/angle-picker-control/styles/angle-picker-control-styles.js +12 -3
  538. package/src/autocomplete/index.js +9 -18
  539. package/src/base-control/styles/base-control-styles.ts +1 -1
  540. package/src/base-field/styles.js +1 -1
  541. package/src/base-field/test/__snapshots__/index.js.snap +2 -2
  542. package/src/box-control/styles/box-control-visualizer-styles.js +0 -1
  543. package/src/box-control/test/index.js +8 -8
  544. package/src/button/test/index.js +188 -146
  545. package/src/card/card/{component.js → component.tsx} +13 -9
  546. package/src/card/card/{hook.js → hook.ts} +11 -11
  547. package/src/card/card/{index.js → index.ts} +0 -0
  548. package/src/card/card-body/{component.js → component.tsx} +13 -9
  549. package/src/card/card-body/{hook.js → hook.ts} +5 -5
  550. package/src/card/card-body/{index.js → index.ts} +0 -0
  551. package/src/card/card-divider/{component.js → component.tsx} +16 -10
  552. package/src/card/card-divider/{hook.js → hook.ts} +5 -5
  553. package/src/card/card-divider/{index.js → index.ts} +0 -0
  554. package/src/card/card-footer/{component.js → component.tsx} +13 -9
  555. package/src/card/card-footer/{hook.js → hook.ts} +5 -5
  556. package/src/card/card-footer/{index.js → index.ts} +0 -0
  557. package/src/card/card-header/{component.js → component.tsx} +13 -9
  558. package/src/card/card-header/{hook.js → hook.ts} +5 -5
  559. package/src/card/card-header/{index.js → index.ts} +0 -0
  560. package/src/card/card-media/{component.js → component.tsx} +13 -8
  561. package/src/card/card-media/{hook.js → hook.ts} +5 -5
  562. package/src/card/card-media/{index.js → index.ts} +0 -0
  563. package/src/card/{context.js → context.ts} +0 -0
  564. package/src/card/{index.js → index.ts} +0 -0
  565. package/src/card/stories/index.tsx +75 -0
  566. package/src/card/{styles.js → styles.ts} +0 -0
  567. package/src/card/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  568. package/src/card/test/{index.js → index.tsx} +3 -3
  569. package/src/card/types.ts +8 -1
  570. package/src/color-list-picker/index.js +15 -3
  571. package/src/color-list-picker/style.scss +11 -0
  572. package/src/color-palette/index.js +32 -16
  573. package/src/color-palette/index.native.js +10 -6
  574. package/src/color-palette/stories/index.js +1 -1
  575. package/src/color-palette/test/__snapshots__/index.js.snap +17 -3
  576. package/src/combobox-control/index.js +6 -5
  577. package/src/combobox-control/stories/index.js +9 -3
  578. package/src/combobox-control/style.scss +0 -1
  579. package/src/confirm-dialog/test/index.js +85 -62
  580. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  581. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +54 -50
  582. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -3
  583. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/test/utils.js +0 -0
  584. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  585. package/src/custom-gradient-picker/index.js +18 -3
  586. package/src/custom-gradient-picker/stories/index.js +4 -3
  587. package/src/custom-gradient-picker/style.scss +30 -27
  588. package/src/custom-select-control/README.md +10 -0
  589. package/src/custom-select-control/index.js +22 -16
  590. package/src/custom-select-control/stories/index.js +1 -1
  591. package/src/custom-select-control/style.scss +0 -12
  592. package/src/custom-select-control/styles.ts +28 -0
  593. package/src/custom-select-control/test/index.js +4 -1
  594. package/src/date-time/constants.ts +1 -0
  595. package/src/date-time/date/index.tsx +289 -184
  596. package/src/date-time/date/styles.ts +86 -27
  597. package/src/date-time/date/test/index.tsx +18 -28
  598. package/src/date-time/date-time/index.tsx +3 -2
  599. package/src/date-time/time/index.tsx +23 -19
  600. package/src/date-time/utils.ts +17 -0
  601. package/src/dimension-control/index.js +1 -5
  602. package/src/disabled/index.tsx +80 -0
  603. package/src/disabled/stories/index.tsx +87 -0
  604. package/src/disabled/styles/{disabled-styles.js → disabled-styles.tsx} +0 -0
  605. package/src/disabled/test/index.tsx +174 -0
  606. package/src/disabled/types.ts +13 -0
  607. package/src/drop-zone/index.js +2 -3
  608. package/src/dropdown/index.js +3 -5
  609. package/src/dropdown-menu/stories/index.js +13 -2
  610. package/src/duotone-picker/custom-duotone-bar.js +1 -1
  611. package/src/duotone-picker/duotone-picker.js +34 -26
  612. package/src/duotone-picker/duotone-swatch.js +12 -5
  613. package/src/duotone-picker/stories/duotone-picker.js +66 -0
  614. package/src/duotone-picker/stories/duotone-swatch.js +32 -0
  615. package/src/focal-point-picker/index.js +10 -5
  616. package/src/focal-point-picker/styles/focal-point-style.js +0 -1
  617. package/src/focal-point-picker/test/index.js +78 -45
  618. package/src/font-size-picker/index.js +161 -144
  619. package/src/font-size-picker/stories/index.js +1 -0
  620. package/src/font-size-picker/style.scss +8 -5
  621. package/src/font-size-picker/test/index.js +13 -6
  622. package/src/font-size-picker/test/{util.js → utils.js} +77 -1
  623. package/src/font-size-picker/utils.js +38 -23
  624. package/src/form-token-field/README.md +1 -0
  625. package/src/form-token-field/index.tsx +41 -33
  626. package/src/form-token-field/stories/index.tsx +8 -0
  627. package/src/form-token-field/test/index.tsx +2106 -0
  628. package/src/form-token-field/types.ts +7 -0
  629. package/src/gradient-picker/index.js +22 -7
  630. package/src/gradient-picker/stories/index.js +56 -81
  631. package/src/guide/index.js +3 -1
  632. package/src/guide/page-control.js +1 -6
  633. package/src/guide/stories/index.js +12 -11
  634. package/src/guide/test/index.js +54 -37
  635. package/src/guide/test/page-control.js +14 -17
  636. package/src/higher-order/with-notices/test/index.js +4 -2
  637. package/src/higher-order/with-spoken-messages/test/index.js +1 -1
  638. package/src/item-group/styles.ts +3 -3
  639. package/src/menu-group/test/index.js +18 -7
  640. package/src/mobile/bottom-sheet/index.native.js +2 -4
  641. package/src/mobile/global-styles-context/utils.native.js +2 -1
  642. package/src/mobile/image/index.native.js +9 -30
  643. package/src/mobile/picker/index.android.js +10 -4
  644. package/src/mobile/picker/styles.native.scss +4 -4
  645. package/src/modal/index.js +1 -2
  646. package/src/modal/test/index.js +11 -9
  647. package/src/navigable-container/container.js +12 -18
  648. package/src/navigable-container/menu.js +3 -7
  649. package/src/navigable-container/test/menu.js +14 -11
  650. package/src/navigator/navigator-back-button/hook.ts +0 -3
  651. package/src/navigator/navigator-button/hook.ts +0 -3
  652. package/src/notice/list.js +12 -10
  653. package/src/palette-edit/index.js +1 -0
  654. package/src/palette-edit/styles.js +6 -5
  655. package/src/placeholder/README.md +1 -1
  656. package/src/placeholder/style.scss +65 -20
  657. package/src/placeholder/test/index.tsx +174 -0
  658. package/src/popover/index.js +133 -112
  659. package/src/popover/stories/index.js +17 -3
  660. package/src/popover/test/__snapshots__/index.js.snap +6 -6
  661. package/src/popover/test/index.js +129 -36
  662. package/src/popover/utils.js +107 -0
  663. package/src/range-control/index.tsx +3 -0
  664. package/src/range-control/styles/range-control-styles.ts +9 -4
  665. package/src/range-control/types.ts +5 -2
  666. package/src/select-control/chevron-down.tsx +25 -0
  667. package/src/select-control/index.tsx +6 -9
  668. package/src/select-control/styles/select-control-styles.ts +23 -14
  669. package/src/slot-fill/test/slot.js +5 -5
  670. package/src/snackbar/list.js +3 -2
  671. package/src/spinner/index.tsx +2 -0
  672. package/src/style.scss +0 -2
  673. package/src/text/styles.js +1 -1
  674. package/src/text/test/index.tsx +1 -1
  675. package/src/toggle-group-control/stories/index.tsx +127 -0
  676. package/src/toggle-group-control/test/__snapshots__/{index.js.snap → index.tsx.snap} +28 -22
  677. package/src/toggle-group-control/test/{index.js → index.tsx} +2 -4
  678. package/src/toggle-group-control/toggle-group-control/README.md +2 -0
  679. package/src/toggle-group-control/toggle-group-control/component.tsx +18 -9
  680. package/src/toggle-group-control/toggle-group-control/styles.ts +9 -6
  681. package/src/toggle-group-control/toggle-group-control-option/component.tsx +19 -3
  682. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +3 -0
  683. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +18 -0
  684. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +6 -8
  685. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +30 -7
  686. package/src/toggle-group-control/types.ts +74 -59
  687. package/src/toolbar/test/index.js +4 -4
  688. package/src/toolbar-group/test/index.js +9 -15
  689. package/src/tools-panel/styles.ts +2 -2
  690. package/src/tools-panel/test/index.js +3 -2
  691. package/src/tooltip/index.js +1 -5
  692. package/src/tooltip/test/index.js +188 -172
  693. package/src/tree-grid/index.js +4 -9
  694. package/src/ui/context/context-connect.ts +3 -2
  695. package/src/unit-control/index.tsx +2 -2
  696. package/src/unit-control/types.ts +10 -1
  697. package/src/utils/colors-values.js +42 -137
  698. package/src/utils/config-values.js +1 -1
  699. package/src/utils/input/input-control.js +6 -6
  700. package/src/utils/rtl.js +6 -2
  701. package/src/utils/strings.ts +72 -0
  702. package/src/utils/test/strings.js +15 -0
  703. package/tsconfig.json +0 -1
  704. package/tsconfig.tsbuildinfo +1 -1
  705. package/build/custom-gradient-bar/constants.js.map +0 -1
  706. package/build/custom-gradient-bar/control-points.js.map +0 -1
  707. package/build/custom-gradient-bar/index.js.map +0 -1
  708. package/build/custom-gradient-bar/utils.js.map +0 -1
  709. package/build/date-time/date/utils.js +0 -34
  710. package/build/date-time/date/utils.js.map +0 -1
  711. package/build/swatch/index.js +0 -41
  712. package/build/swatch/index.js.map +0 -1
  713. package/build-module/custom-gradient-bar/constants.js.map +0 -1
  714. package/build-module/custom-gradient-bar/control-points.js.map +0 -1
  715. package/build-module/custom-gradient-bar/index.js.map +0 -1
  716. package/build-module/custom-gradient-bar/utils.js.map +0 -1
  717. package/build-module/date-time/date/utils.js +0 -22
  718. package/build-module/date-time/date/utils.js.map +0 -1
  719. package/build-module/swatch/index.js +0 -30
  720. package/build-module/swatch/index.js.map +0 -1
  721. package/build-types/color-picker/color-display.d.ts +0 -13
  722. package/build-types/color-picker/color-display.d.ts.map +0 -1
  723. package/build-types/date-time/date/test/utils.d.ts +0 -2
  724. package/build-types/date-time/date/test/utils.d.ts.map +0 -1
  725. package/build-types/date-time/date/utils.d.ts +0 -15
  726. package/build-types/date-time/date/utils.d.ts.map +0 -1
  727. package/build-types/flyout/context.d.ts +0 -6
  728. package/build-types/flyout/context.d.ts.map +0 -1
  729. package/build-types/flyout/flyout/component.d.ts +0 -21
  730. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  731. package/build-types/flyout/flyout/hook.d.ts +0 -270
  732. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  733. package/build-types/flyout/flyout/index.d.ts +0 -3
  734. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  735. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  736. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  737. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  738. package/build-types/flyout/index.d.ts +0 -2
  739. package/build-types/flyout/styles.d.ts +0 -22
  740. package/build-types/flyout/styles.d.ts.map +0 -1
  741. package/build-types/flyout/types.d.ts +0 -80
  742. package/build-types/flyout/types.d.ts.map +0 -1
  743. package/build-types/flyout/utils.d.ts +0 -8
  744. package/build-types/flyout/utils.d.ts.map +0 -1
  745. package/build-types/form-token-field/test/lib/fixtures.d.ts +0 -26
  746. package/build-types/form-token-field/test/lib/fixtures.d.ts.map +0 -1
  747. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts +0 -21
  748. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts.map +0 -1
  749. package/build-types/swatch/index.d.ts +0 -5
  750. package/build-types/swatch/index.d.ts.map +0 -1
  751. package/build-types/swatch/types.d.ts +0 -11
  752. package/build-types/swatch/types.d.ts.map +0 -1
  753. package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
  754. package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
  755. package/src/card/stories/index.js +0 -209
  756. package/src/date-time/date/datepicker.scss +0 -863
  757. package/src/date-time/date/style.scss +0 -85
  758. package/src/date-time/date/test/utils.ts +0 -32
  759. package/src/date-time/date/utils.ts +0 -20
  760. package/src/date-time/style.scss +0 -1
  761. package/src/disabled/index.js +0 -55
  762. package/src/disabled/stories/index.js +0 -61
  763. package/src/disabled/test/index.js +0 -240
  764. package/src/form-token-field/test/index.js +0 -411
  765. package/src/form-token-field/test/lib/fixtures.js +0 -89
  766. package/src/form-token-field/test/lib/token-field-wrapper.tsx +0 -71
  767. package/src/menu-group/test/__snapshots__/index.js.snap +0 -23
  768. package/src/placeholder/test/index.js +0 -163
  769. package/src/swatch/index.tsx +0 -22
  770. package/src/swatch/style.scss +0 -21
  771. package/src/swatch/types.ts +0 -11
  772. package/src/toggle-group-control/stories/index.js +0 -203
  773. package/src/tools-panel/test/__snapshots__/index.js.snap +0 -210
@@ -6,12 +6,14 @@ import { createElement } from "@wordpress/element";
6
6
  * External dependencies
7
7
  */
8
8
  import classnames from 'classnames';
9
- import { useFloating, flip, shift, autoUpdate, arrow, offset as offsetMiddleware, limitShift, size } from '@floating-ui/react-dom';
9
+ import { useFloating, flip, shift, autoUpdate, arrow, offset as offsetMiddleware, limitShift, size } from '@floating-ui/react-dom'; // eslint-disable-next-line no-restricted-imports
10
+
11
+ import { motion, useReducedMotion } from 'framer-motion';
10
12
  /**
11
13
  * WordPress dependencies
12
14
  */
13
15
 
14
- import { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo } from '@wordpress/element';
16
+ import { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo, useEffect } from '@wordpress/element';
15
17
  import { useViewportMatch, useMergeRefs, __experimentalUseDialog as useDialog } from '@wordpress/compose';
16
18
  import { close } from '@wordpress/icons';
17
19
  import deprecated from '@wordpress/deprecated';
@@ -23,7 +25,7 @@ import { Path, SVG } from '@wordpress/primitives';
23
25
  import Button from '../button';
24
26
  import ScrollLock from '../scroll-lock';
25
27
  import { Slot, Fill, useSlot } from '../slot-fill';
26
- import { getAnimateClassName } from '../animate';
28
+ import { getFrameOffset, positionToPlacement, placementToMotionAnimationProps } from './utils';
27
29
  /**
28
30
  * Name of slot in which popover should fill.
29
31
  *
@@ -49,56 +51,38 @@ const ArrowTriangle = props => createElement(SVG, _extends({}, props, {
49
51
  vectorEffect: "non-scaling-stroke"
50
52
  }));
51
53
 
52
- const slotNameContext = createContext();
53
-
54
- const positionToPlacement = position => {
55
- const [x, y, z] = position.split(' ');
56
-
57
- if (['top', 'bottom'].includes(x)) {
58
- let suffix = '';
59
-
60
- if (!!z && z === 'left' || y === 'right') {
61
- suffix = '-start';
62
- } else if (!!z && z === 'right' || y === 'left') {
63
- suffix = '-end';
64
- }
65
-
66
- return x + suffix;
67
- }
68
-
69
- return y;
70
- };
71
-
72
- const placementToAnimationOrigin = placement => {
73
- const [a, b] = placement.split('-');
74
- let x, y;
75
-
76
- if (a === 'top' || a === 'bottom') {
77
- x = a === 'top' ? 'bottom' : 'top';
78
- y = 'middle';
79
-
80
- if (b === 'start') {
81
- y = 'left';
82
- } else if (b === 'end') {
83
- y = 'right';
84
- }
85
- }
86
-
87
- if (a === 'left' || a === 'right') {
88
- x = 'center';
89
- y = a === 'left' ? 'right' : 'left';
90
-
91
- if (b === 'start') {
92
- x = 'top';
93
- } else if (b === 'end') {
94
- x = 'bottom';
95
- }
54
+ const MaybeAnimatedWrapper = forwardRef((_ref, forwardedRef) => {
55
+ let {
56
+ style: receivedInlineStyles,
57
+ placement,
58
+ shouldAnimate = false,
59
+ ...props
60
+ } = _ref;
61
+ const shouldReduceMotion = useReducedMotion();
62
+ const {
63
+ style: motionInlineStyles,
64
+ ...otherMotionProps
65
+ } = useMemo(() => placementToMotionAnimationProps(placement), [placement]);
66
+
67
+ if (shouldAnimate && !shouldReduceMotion) {
68
+ return createElement(motion.div, _extends({
69
+ style: { ...motionInlineStyles,
70
+ ...receivedInlineStyles
71
+ }
72
+ }, otherMotionProps, props, {
73
+ ref: forwardedRef
74
+ }));
96
75
  }
97
76
 
98
- return x + ' ' + y;
99
- };
77
+ return createElement("div", _extends({
78
+ style: receivedInlineStyles
79
+ }, props, {
80
+ ref: forwardedRef
81
+ }));
82
+ });
83
+ const slotNameContext = createContext();
100
84
 
101
- const Popover = (_ref, forwardedRef) => {
85
+ const Popover = (_ref2, forwardedRef) => {
102
86
  let {
103
87
  range,
104
88
  animate = true,
@@ -110,7 +94,7 @@ const Popover = (_ref, forwardedRef) => {
110
94
  isAlternate,
111
95
  position,
112
96
  placement: placementProp = 'bottom-start',
113
- offset,
97
+ offset: offsetProp = 0,
114
98
  focusOnMount = 'firstElement',
115
99
  anchorRef,
116
100
  anchorRect,
@@ -122,7 +106,7 @@ const Popover = (_ref, forwardedRef) => {
122
106
  __unstableForcePosition = false,
123
107
  __unstableShift = false,
124
108
  ...contentProps
125
- } = _ref;
109
+ } = _ref2;
126
110
 
127
111
  if (range) {
128
112
  deprecated('range prop in Popover component', {
@@ -137,7 +121,7 @@ const Popover = (_ref, forwardedRef) => {
137
121
  const isExpanded = expandOnMobile && isMobileViewport;
138
122
  const hasArrow = !isExpanded && !noArrow;
139
123
  const normalizedPlacementFromProps = position ? positionToPlacement(position) : placementProp;
140
- const ownerDocument = useMemo(() => {
124
+ const referenceOwnerDocument = useMemo(() => {
141
125
  var _documentToReturn;
142
126
 
143
127
  let documentToReturn;
@@ -163,33 +147,25 @@ const Popover = (_ref, forwardedRef) => {
163
147
  }, [anchorRef, anchorRect, getAnchorRect]);
164
148
  /**
165
149
  * Offsets the position of the popover when the anchor is inside an iframe.
150
+ *
151
+ * Store the offset in a ref, due to constraints with floating-ui:
152
+ * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.
166
153
  */
167
154
 
168
- const frameOffset = useMemo(() => {
169
- const {
170
- defaultView
171
- } = ownerDocument;
172
- const {
173
- frameElement
174
- } = defaultView;
175
-
176
- if (!frameElement || ownerDocument === document) {
177
- return undefined;
178
- }
155
+ const frameOffsetRef = useRef(getFrameOffset(referenceOwnerDocument));
156
+ /**
157
+ * Store the offset prop in a ref, due to constraints with floating-ui:
158
+ * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.
159
+ */
179
160
 
180
- const iframeRect = frameElement.getBoundingClientRect();
181
- return {
182
- x: iframeRect.left,
183
- y: iframeRect.top
184
- };
185
- }, [ownerDocument]);
186
- const middleware = [frameOffset || offset ? offsetMiddleware(_ref2 => {
161
+ const offsetRef = useRef(offsetProp);
162
+ const middleware = [offsetMiddleware(_ref3 => {
187
163
  let {
188
164
  placement: currentPlacement
189
- } = _ref2;
165
+ } = _ref3;
190
166
 
191
- if (!frameOffset) {
192
- return offset;
167
+ if (!frameOffsetRef.current) {
168
+ return offsetRef.current;
193
169
  }
194
170
 
195
171
  const isTopBottomPlacement = currentPlacement.includes('top') || currentPlacement.includes('bottom'); // The main axis should represent the gap between the
@@ -202,20 +178,19 @@ const Popover = (_ref, forwardedRef) => {
202
178
 
203
179
  const hasBeforePlacement = currentPlacement.includes('top') || currentPlacement.includes('left');
204
180
  const mainAxisModifier = hasBeforePlacement ? -1 : 1;
205
- const normalizedOffset = offset ? offset : 0;
206
181
  return {
207
- mainAxis: normalizedOffset + frameOffset[mainAxis] * mainAxisModifier,
208
- crossAxis: frameOffset[crossAxis]
182
+ mainAxis: offsetRef.current + frameOffsetRef.current[mainAxis] * mainAxisModifier,
183
+ crossAxis: frameOffsetRef.current[crossAxis]
209
184
  };
210
- }) : undefined, __unstableForcePosition ? undefined : flip(), __unstableForcePosition ? undefined : size({
185
+ }), __unstableForcePosition ? undefined : flip(), __unstableForcePosition ? undefined : size({
211
186
  apply(sizeProps) {
212
187
  const {
213
- height
188
+ availableHeight
214
189
  } = sizeProps;
215
190
  if (!refs.floating.current) return; // Reduce the height of the popover to the available space.
216
191
 
217
192
  Object.assign(refs.floating.current.firstChild.style, {
218
- maxHeight: `${height}px`,
193
+ maxHeight: `${availableHeight}px`,
219
194
  overflow: 'auto'
220
195
  });
221
196
  }
@@ -271,7 +246,11 @@ const Popover = (_ref, forwardedRef) => {
271
246
  } = useFloating({
272
247
  placement: normalizedPlacementFromProps,
273
248
  middleware
274
- }); // Update the `reference`'s ref.
249
+ });
250
+ useEffect(() => {
251
+ offsetRef.current = offsetProp;
252
+ update();
253
+ }, [offsetProp, update]); // Update the `reference`'s ref.
275
254
  //
276
255
  // In floating-ui's terms:
277
256
  // - "reference" refers to the popover's anchor element.
@@ -337,8 +316,10 @@ const Popover = (_ref, forwardedRef) => {
337
316
  return;
338
317
  }
339
318
 
340
- return autoUpdate(resultingReferenceRef, refs.floating.current, update);
341
- }, [anchorRef, anchorRect, getAnchorRect]); // This is only needed for a smooth transition when moving blocks.
319
+ return autoUpdate(resultingReferenceRef, refs.floating.current, update); // 'reference' and 'refs.floating' are refs and don't need to be listed
320
+ // as dependencies (see https://github.com/WordPress/gutenberg/pull/41612)
321
+ // eslint-disable-next-line react-hooks/exhaustive-deps
322
+ }, [anchorRef, anchorRect, getAnchorRect, update]); // This is only needed for a smooth transition when moving blocks.
342
323
 
343
324
  useLayoutEffect(() => {
344
325
  if (!__unstableObserveElement) {
@@ -352,31 +333,52 @@ const Popover = (_ref, forwardedRef) => {
352
333
  return () => {
353
334
  observer.disconnect();
354
335
  };
355
- }, [__unstableObserveElement]); // If the reference element is in a different ownerDocument (e.g. iFrame),
336
+ }, [__unstableObserveElement, update]); // If the reference element is in a different ownerDocument (e.g. iFrame),
356
337
  // we need to manually update the floating's position as the reference's owner
357
- // document scrolls.
338
+ // document scrolls. Also update the frame offset if the view resizes.
358
339
 
359
340
  useLayoutEffect(() => {
360
- if (ownerDocument === document) {
341
+ var _referenceOwnerDocume;
342
+
343
+ if (referenceOwnerDocument === document) {
344
+ frameOffsetRef.current = undefined;
361
345
  return;
362
346
  }
363
347
 
364
- ownerDocument.addEventListener('scroll', update);
365
- return () => ownerDocument.removeEventListener('scroll', update);
366
- }, [ownerDocument]);
367
- /** @type {false | string} */
348
+ const {
349
+ defaultView
350
+ } = referenceOwnerDocument;
351
+ referenceOwnerDocument.addEventListener('scroll', update);
352
+ let updateFrameOffset;
353
+ const hasFrameElement = !!(referenceOwnerDocument !== null && referenceOwnerDocument !== void 0 && (_referenceOwnerDocume = referenceOwnerDocument.defaultView) !== null && _referenceOwnerDocume !== void 0 && _referenceOwnerDocume.frameElement);
354
+
355
+ if (hasFrameElement) {
356
+ updateFrameOffset = () => {
357
+ frameOffsetRef.current = getFrameOffset(referenceOwnerDocument);
358
+ update();
359
+ };
368
360
 
369
- const animateClassName = !!animate && getAnimateClassName({
370
- type: 'appear',
371
- origin: placementToAnimationOrigin(computedPlacement)
372
- });
361
+ updateFrameOffset();
362
+ defaultView.addEventListener('resize', updateFrameOffset);
363
+ }
364
+
365
+ return () => {
366
+ referenceOwnerDocument.removeEventListener('scroll', update);
367
+
368
+ if (updateFrameOffset) {
369
+ defaultView.removeEventListener('resize', updateFrameOffset);
370
+ }
371
+ };
372
+ }, [referenceOwnerDocument, update]);
373
373
  const mergedFloatingRef = useMergeRefs([floating, dialogRef, forwardedRef]); // Disable reason: We care to capture the _bubbled_ events from inputs
374
374
  // within popover as inferring close intent.
375
375
 
376
376
  let content = // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
377
377
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
378
- createElement("div", _extends({
379
- className: classnames('components-popover', className, animateClassName, {
378
+ createElement(MaybeAnimatedWrapper, _extends({
379
+ shouldAnimate: animate && !isExpanded,
380
+ placement: computedPlacement,
381
+ className: classnames('components-popover', className, {
380
382
  'is-expanded': isExpanded,
381
383
  'is-alternate': isAlternate
382
384
  })
@@ -425,10 +427,10 @@ const Popover = (_ref, forwardedRef) => {
425
427
 
426
428
  const PopoverContainer = forwardRef(Popover);
427
429
 
428
- function PopoverSlot(_ref3, ref) {
430
+ function PopoverSlot(_ref4, ref) {
429
431
  let {
430
432
  name = SLOT_NAME
431
- } = _ref3;
433
+ } = _ref4;
432
434
  return createElement(Slot, {
433
435
  bubblesVirtually: true,
434
436
  name: name,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["classnames","useFloating","flip","shift","autoUpdate","arrow","offset","offsetMiddleware","limitShift","size","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","Button","ScrollLock","Slot","Fill","useSlot","getAnimateClassName","SLOT_NAME","ArrowTriangle","props","slotNameContext","positionToPlacement","position","x","y","z","split","includes","suffix","placementToAnimationOrigin","placement","a","b","Popover","forwardedRef","range","animate","headerTitle","onClose","children","className","noArrow","isAlternate","placementProp","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","__unstableObserveElement","__unstableForcePosition","__unstableShift","contentProps","since","version","arrowRef","anchorRefFallback","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","ownerDocument","documentToReturn","top","startContainer","current","document","frameOffset","defaultView","frameElement","undefined","iframeRect","getBoundingClientRect","left","middleware","currentPlacement","isTopBottomPlacement","mainAxis","crossAxis","hasBeforePlacement","mainAxisModifier","normalizedOffset","apply","sizeProps","height","refs","floating","Object","assign","firstChild","style","maxHeight","overflow","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","strategy","update","computedPlacement","middlewareData","arrowData","resultingReferenceRef","topRect","bottomRect","bottom","window","DOMRect","width","rect","right","parentNode","observer","MutationObserver","observe","attributes","disconnect","addEventListener","removeEventListener","animateClassName","origin","mergedFloatingRef","content","Number","isNaN","join","isFinite","ref","PopoverContainer","PopoverSlot","name","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip,\n\tshift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = ( props ) => (\n\t<SVG\n\t\t{ ...props }\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst slotNameContext = createContext();\n\nconst positionToPlacement = ( position ) => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\t\treturn x + suffix;\n\t}\n\n\treturn y;\n};\n\nconst placementToAnimationOrigin = ( placement ) => {\n\tconst [ a, b ] = placement.split( '-' );\n\n\tlet x, y;\n\tif ( a === 'top' || a === 'bottom' ) {\n\t\tx = a === 'top' ? 'bottom' : 'top';\n\t\ty = 'middle';\n\t\tif ( b === 'start' ) {\n\t\t\ty = 'left';\n\t\t} else if ( b === 'end' ) {\n\t\t\ty = 'right';\n\t\t}\n\t}\n\n\tif ( a === 'left' || a === 'right' ) {\n\t\tx = 'center';\n\t\ty = a === 'left' ? 'right' : 'left';\n\t\tif ( b === 'start' ) {\n\t\t\tx = 'top';\n\t\t} else if ( b === 'end' ) {\n\t\t\tx = 'bottom';\n\t\t}\n\t}\n\n\treturn x + ' ' + y;\n};\n\nconst Popover = (\n\t{\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableForcePosition = false,\n\t\t__unstableShift = false,\n\t\t...contentProps\n\t},\n\tforwardedRef\n) => {\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( null );\n\tconst anchorRefFallback = useRef( null );\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst ownerDocument = useMemo( () => {\n\t\tlet documentToReturn;\n\n\t\tif ( anchorRef?.top ) {\n\t\t\tdocumentToReturn = anchorRef?.top.ownerDocument;\n\t\t} else if ( anchorRef?.startContainer ) {\n\t\t\tdocumentToReturn = anchorRef.startContainer.ownerDocument;\n\t\t} else if ( anchorRef?.current ) {\n\t\t\tdocumentToReturn = anchorRef.current.ownerDocument;\n\t\t} else if ( anchorRef ) {\n\t\t\t// This one should be deprecated.\n\t\t\tdocumentToReturn = anchorRef.ownerDocument;\n\t\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\t\tdocumentToReturn = anchorRect.ownerDocument;\n\t\t} else if ( getAnchorRect ) {\n\t\t\tdocumentToReturn = getAnchorRect(\n\t\t\t\tanchorRefFallback.current\n\t\t\t)?.ownerDocument;\n\t\t}\n\n\t\treturn documentToReturn ?? document;\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t */\n\tconst frameOffset = useMemo( () => {\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tif ( ! frameElement || ownerDocument === document ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst iframeRect = frameElement.getBoundingClientRect();\n\t\treturn { x: iframeRect.left, y: iframeRect.top };\n\t}, [ ownerDocument ] );\n\n\tconst middleware = [\n\t\tframeOffset || offset\n\t\t\t? offsetMiddleware( ( { placement: currentPlacement } ) => {\n\t\t\t\t\tif ( ! frameOffset ) {\n\t\t\t\t\t\treturn offset;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst isTopBottomPlacement =\n\t\t\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\t\t\tcurrentPlacement.includes( 'bottom' );\n\n\t\t\t\t\t// The main axis should represent the gap between the\n\t\t\t\t\t// floating element and the reference element. The cross\n\t\t\t\t\t// axis is always perpendicular to the main axis.\n\t\t\t\t\tconst mainAxis = isTopBottomPlacement ? 'y' : 'x';\n\t\t\t\t\tconst crossAxis = mainAxis === 'x' ? 'y' : 'x';\n\n\t\t\t\t\t// When the popover is before the reference, subtract the offset,\n\t\t\t\t\t// of the main axis else add it.\n\t\t\t\t\tconst hasBeforePlacement =\n\t\t\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\t\t\tcurrentPlacement.includes( 'left' );\n\t\t\t\t\tconst mainAxisModifier = hasBeforePlacement ? -1 : 1;\n\t\t\t\t\tconst normalizedOffset = offset ? offset : 0;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmainAxis:\n\t\t\t\t\t\t\tnormalizedOffset +\n\t\t\t\t\t\t\tframeOffset[ mainAxis ] * mainAxisModifier,\n\t\t\t\t\t\tcrossAxis: frameOffset[ crossAxis ],\n\t\t\t\t\t};\n\t\t\t } )\n\t\t\t: undefined,\n\t\t__unstableForcePosition ? undefined : flip(),\n\t\t__unstableForcePosition\n\t\t\t? undefined\n\t\t\t: size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { height } = sizeProps;\n\t\t\t\t\t\tif ( ! refs.floating.current ) return;\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( refs.floating.current.firstChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ height }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } ),\n\t\t__unstableShift\n\t\t\t? shift( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\thasArrow ? arrow( { element: arrowRef } ) : undefined,\n\t].filter( ( m ) => !! m );\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type, event ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Callback refs (not regular refs). This allows the position to be updated.\n\t\t// when either elements change.\n\t\treference,\n\t\tfloating,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData = {} },\n\t} = useFloating( { placement: normalizedPlacementFromProps, middleware } );\n\n\t// Update the `reference`'s ref.\n\t//\n\t// In floating-ui's terms:\n\t// - \"reference\" refers to the popover's anchor element.\n\t// - \"floating\" refers the floating popover's element.\n\t// A floating element can also be positioned relative to a virtual element,\n\t// instead of a real one. A virtual element is represented by an object\n\t// with the `getBoundingClientRect()` function (like real elements).\n\t// See https://floating-ui.com/docs/virtual-elements for more info.\n\tuseLayoutEffect( () => {\n\t\tlet resultingReferenceRef;\n\n\t\tif ( anchorRef?.top ) {\n\t\t\t// Create a virtual element for the ref. The expectation is that\n\t\t\t// if anchorRef.top is defined, then anchorRef.bottom is defined too.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst topRect = anchorRef.top.getBoundingClientRect();\n\t\t\t\t\tconst bottomRect = anchorRef.bottom.getBoundingClientRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\ttopRect.x,\n\t\t\t\t\t\ttopRect.y,\n\t\t\t\t\t\ttopRect.width,\n\t\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRef?.current ) {\n\t\t\t// Standard React ref.\n\t\t\tresultingReferenceRef = anchorRef.current;\n\t\t} else if ( anchorRef ) {\n\t\t\t// If `anchorRef` holds directly the element's value (no `current` key)\n\t\t\t// This is a weird scenario and should be deprecated.\n\t\t\tresultingReferenceRef = anchorRef;\n\t\t} else if ( anchorRect ) {\n\t\t\t// Create a virtual element for the ref.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\treturn anchorRect;\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( getAnchorRect ) {\n\t\t\t// Create a virtual element for the ref.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst rect = getAnchorRect( anchorRefFallback.current );\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRefFallback.current ) {\n\t\t\t// If no explicit ref is passed via props, fall back to\n\t\t\t// anchoring to the popover's parent node.\n\t\t\tresultingReferenceRef = anchorRefFallback.current.parentNode;\n\t\t}\n\n\t\tif ( ! resultingReferenceRef ) {\n\t\t\treturn;\n\t\t}\n\n\t\treference( resultingReferenceRef );\n\n\t\tif ( ! refs.floating.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn autoUpdate(\n\t\t\tresultingReferenceRef,\n\t\t\trefs.floating.current,\n\t\t\tupdate\n\t\t);\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! __unstableObserveElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( update );\n\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ __unstableObserveElement ] );\n\n\t// If the reference element is in a different ownerDocument (e.g. iFrame),\n\t// we need to manually update the floating's position as the reference's owner\n\t// document scrolls.\n\tuseLayoutEffect( () => {\n\t\tif ( ownerDocument === document ) {\n\t\t\treturn;\n\t\t}\n\n\t\townerDocument.addEventListener( 'scroll', update );\n\t\treturn () => ownerDocument.removeEventListener( 'scroll', update );\n\t}, [ ownerDocument ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\t!! animate &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: placementToAnimationOrigin( computedPlacement ),\n\t\t} );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\tfloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft: Number.isFinite( arrowData?.x )\n\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop: Number.isFinite( arrowData?.y )\n\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["classnames","useFloating","flip","shift","autoUpdate","arrow","offset","offsetMiddleware","limitShift","size","motion","useReducedMotion","useRef","useLayoutEffect","forwardRef","createContext","useContext","useMemo","useEffect","useViewportMatch","useMergeRefs","__experimentalUseDialog","useDialog","close","deprecated","Path","SVG","Button","ScrollLock","Slot","Fill","useSlot","getFrameOffset","positionToPlacement","placementToMotionAnimationProps","SLOT_NAME","ArrowTriangle","props","MaybeAnimatedWrapper","forwardedRef","style","receivedInlineStyles","placement","shouldAnimate","shouldReduceMotion","motionInlineStyles","otherMotionProps","slotNameContext","Popover","range","animate","headerTitle","onClose","children","className","noArrow","isAlternate","position","placementProp","offsetProp","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","__unstableObserveElement","__unstableForcePosition","__unstableShift","contentProps","since","version","arrowRef","anchorRefFallback","isMobileViewport","isExpanded","hasArrow","normalizedPlacementFromProps","referenceOwnerDocument","documentToReturn","top","ownerDocument","startContainer","current","document","frameOffsetRef","offsetRef","middleware","currentPlacement","isTopBottomPlacement","includes","mainAxis","crossAxis","hasBeforePlacement","mainAxisModifier","undefined","apply","sizeProps","availableHeight","refs","floating","Object","assign","firstChild","maxHeight","overflow","limiter","padding","element","filter","m","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","x","y","reference","strategy","update","computedPlacement","middlewareData","arrowData","resultingReferenceRef","getBoundingClientRect","topRect","bottomRect","bottom","window","DOMRect","width","rect","left","right","height","parentNode","observer","MutationObserver","observe","attributes","disconnect","defaultView","addEventListener","updateFrameOffset","hasFrameElement","frameElement","removeEventListener","mergedFloatingRef","content","Number","isNaN","split","join","isFinite","ref","PopoverContainer","PopoverSlot","name","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip,\n\tshift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, useReducedMotion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseEffect,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tgetFrameOffset,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n} from './utils';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = ( props ) => (\n\t<SVG\n\t\t{ ...props }\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst MaybeAnimatedWrapper = forwardRef(\n\t(\n\t\t{\n\t\t\tstyle: receivedInlineStyles,\n\t\t\tplacement,\n\t\t\tshouldAnimate = false,\n\t\t\t...props\n\t\t},\n\t\tforwardedRef\n\t) => {\n\t\tconst shouldReduceMotion = useReducedMotion();\n\n\t\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t\t() => placementToMotionAnimationProps( placement ),\n\t\t\t[ placement ]\n\t\t);\n\n\t\tif ( shouldAnimate && ! shouldReduceMotion ) {\n\t\t\treturn (\n\t\t\t\t<motion.div\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t\t...receivedInlineStyles,\n\t\t\t\t\t} }\n\t\t\t\t\t{ ...otherMotionProps }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ forwardedRef }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={ receivedInlineStyles }\n\t\t\t\t{ ...props }\n\t\t\t\tref={ forwardedRef }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nconst slotNameContext = createContext();\n\nconst Popover = (\n\t{\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableForcePosition = false,\n\t\t__unstableShift = false,\n\t\t...contentProps\n\t},\n\tforwardedRef\n) => {\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( null );\n\tconst anchorRefFallback = useRef( null );\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst referenceOwnerDocument = useMemo( () => {\n\t\tlet documentToReturn;\n\n\t\tif ( anchorRef?.top ) {\n\t\t\tdocumentToReturn = anchorRef?.top.ownerDocument;\n\t\t} else if ( anchorRef?.startContainer ) {\n\t\t\tdocumentToReturn = anchorRef.startContainer.ownerDocument;\n\t\t} else if ( anchorRef?.current ) {\n\t\t\tdocumentToReturn = anchorRef.current.ownerDocument;\n\t\t} else if ( anchorRef ) {\n\t\t\t// This one should be deprecated.\n\t\t\tdocumentToReturn = anchorRef.ownerDocument;\n\t\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\t\tdocumentToReturn = anchorRect.ownerDocument;\n\t\t} else if ( getAnchorRect ) {\n\t\t\tdocumentToReturn = getAnchorRect(\n\t\t\t\tanchorRefFallback.current\n\t\t\t)?.ownerDocument;\n\t\t}\n\n\t\treturn documentToReturn ?? document;\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t/**\n\t * Offsets the position of the popover when the anchor is inside an iframe.\n\t *\n\t * Store the offset in a ref, due to constraints with floating-ui:\n\t * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.\n\t */\n\tconst frameOffsetRef = useRef( getFrameOffset( referenceOwnerDocument ) );\n\t/**\n\t * Store the offset prop in a ref, due to constraints with floating-ui:\n\t * https://floating-ui.com/docs/react-dom#variables-inside-middleware-functions.\n\t */\n\tconst offsetRef = useRef( offsetProp );\n\n\tconst middleware = [\n\t\toffsetMiddleware( ( { placement: currentPlacement } ) => {\n\t\t\tif ( ! frameOffsetRef.current ) {\n\t\t\t\treturn offsetRef.current;\n\t\t\t}\n\n\t\t\tconst isTopBottomPlacement =\n\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\tcurrentPlacement.includes( 'bottom' );\n\n\t\t\t// The main axis should represent the gap between the\n\t\t\t// floating element and the reference element. The cross\n\t\t\t// axis is always perpendicular to the main axis.\n\t\t\tconst mainAxis = isTopBottomPlacement ? 'y' : 'x';\n\t\t\tconst crossAxis = mainAxis === 'x' ? 'y' : 'x';\n\n\t\t\t// When the popover is before the reference, subtract the offset,\n\t\t\t// of the main axis else add it.\n\t\t\tconst hasBeforePlacement =\n\t\t\t\tcurrentPlacement.includes( 'top' ) ||\n\t\t\t\tcurrentPlacement.includes( 'left' );\n\t\t\tconst mainAxisModifier = hasBeforePlacement ? -1 : 1;\n\n\t\t\treturn {\n\t\t\t\tmainAxis:\n\t\t\t\t\toffsetRef.current +\n\t\t\t\t\tframeOffsetRef.current[ mainAxis ] * mainAxisModifier,\n\t\t\t\tcrossAxis: frameOffsetRef.current[ crossAxis ],\n\t\t\t};\n\t\t} ),\n\t\t__unstableForcePosition ? undefined : flip(),\n\t\t__unstableForcePosition\n\t\t\t? undefined\n\t\t\t: size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { availableHeight } = sizeProps;\n\t\t\t\t\t\tif ( ! refs.floating.current ) return;\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( refs.floating.current.firstChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ availableHeight }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } ),\n\t\t__unstableShift\n\t\t\t? shift( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\thasArrow ? arrow( { element: arrowRef } ) : undefined,\n\t].filter( ( m ) => !! m );\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type, event ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Callback refs (not regular refs). This allows the position to be updated.\n\t\t// when either elements change.\n\t\treference,\n\t\tfloating,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData = {} },\n\t} = useFloating( { placement: normalizedPlacementFromProps, middleware } );\n\n\tuseEffect( () => {\n\t\toffsetRef.current = offsetProp;\n\t\tupdate();\n\t}, [ offsetProp, update ] );\n\n\t// Update the `reference`'s ref.\n\t//\n\t// In floating-ui's terms:\n\t// - \"reference\" refers to the popover's anchor element.\n\t// - \"floating\" refers the floating popover's element.\n\t// A floating element can also be positioned relative to a virtual element,\n\t// instead of a real one. A virtual element is represented by an object\n\t// with the `getBoundingClientRect()` function (like real elements).\n\t// See https://floating-ui.com/docs/virtual-elements for more info.\n\tuseLayoutEffect( () => {\n\t\tlet resultingReferenceRef;\n\n\t\tif ( anchorRef?.top ) {\n\t\t\t// Create a virtual element for the ref. The expectation is that\n\t\t\t// if anchorRef.top is defined, then anchorRef.bottom is defined too.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst topRect = anchorRef.top.getBoundingClientRect();\n\t\t\t\t\tconst bottomRect = anchorRef.bottom.getBoundingClientRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\ttopRect.x,\n\t\t\t\t\t\ttopRect.y,\n\t\t\t\t\t\ttopRect.width,\n\t\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRef?.current ) {\n\t\t\t// Standard React ref.\n\t\t\tresultingReferenceRef = anchorRef.current;\n\t\t} else if ( anchorRef ) {\n\t\t\t// If `anchorRef` holds directly the element's value (no `current` key)\n\t\t\t// This is a weird scenario and should be deprecated.\n\t\t\tresultingReferenceRef = anchorRef;\n\t\t} else if ( anchorRect ) {\n\t\t\t// Create a virtual element for the ref.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\treturn anchorRect;\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( getAnchorRect ) {\n\t\t\t// Create a virtual element for the ref.\n\t\t\tresultingReferenceRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst rect = getAnchorRect( anchorRefFallback.current );\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRefFallback.current ) {\n\t\t\t// If no explicit ref is passed via props, fall back to\n\t\t\t// anchoring to the popover's parent node.\n\t\t\tresultingReferenceRef = anchorRefFallback.current.parentNode;\n\t\t}\n\n\t\tif ( ! resultingReferenceRef ) {\n\t\t\treturn;\n\t\t}\n\n\t\treference( resultingReferenceRef );\n\n\t\tif ( ! refs.floating.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn autoUpdate(\n\t\t\tresultingReferenceRef,\n\t\t\trefs.floating.current,\n\t\t\tupdate\n\t\t);\n\t\t// 'reference' and 'refs.floating' are refs and don't need to be listed\n\t\t// as dependencies (see https://github.com/WordPress/gutenberg/pull/41612)\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ anchorRef, anchorRect, getAnchorRect, update ] );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! __unstableObserveElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( update );\n\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ __unstableObserveElement, update ] );\n\n\t// If the reference element is in a different ownerDocument (e.g. iFrame),\n\t// we need to manually update the floating's position as the reference's owner\n\t// document scrolls. Also update the frame offset if the view resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( referenceOwnerDocument === document ) {\n\t\t\tframeOffsetRef.current = undefined;\n\t\t\treturn;\n\t\t}\n\n\t\tconst { defaultView } = referenceOwnerDocument;\n\n\t\treferenceOwnerDocument.addEventListener( 'scroll', update );\n\n\t\tlet updateFrameOffset;\n\t\tconst hasFrameElement =\n\t\t\t!! referenceOwnerDocument?.defaultView?.frameElement;\n\t\tif ( hasFrameElement ) {\n\t\t\tupdateFrameOffset = () => {\n\t\t\t\tframeOffsetRef.current = getFrameOffset(\n\t\t\t\t\treferenceOwnerDocument\n\t\t\t\t);\n\t\t\t\tupdate();\n\t\t\t};\n\t\t\tupdateFrameOffset();\n\t\t\tdefaultView.addEventListener( 'resize', updateFrameOffset );\n\t\t}\n\n\t\treturn () => {\n\t\t\treferenceOwnerDocument.removeEventListener( 'scroll', update );\n\n\t\t\tif ( updateFrameOffset ) {\n\t\t\t\tdefaultView.removeEventListener( 'resize', updateFrameOffset );\n\t\t\t}\n\t\t};\n\t}, [ referenceOwnerDocument, update ] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\tfloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<MaybeAnimatedWrapper\n\t\t\tshouldAnimate={ animate && ! isExpanded }\n\t\t\tplacement={ computedPlacement }\n\t\t\tclassName={ classnames( 'components-popover', className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-alternate': isAlternate,\n\t\t\t} ) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft: Number.isFinite( arrowData?.x )\n\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop: Number.isFinite( arrowData?.y )\n\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</MaybeAnimatedWrapper>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * @typedef {import('../animate').AppearOrigin} AppearOrigin
3
+ * @typedef {import('@floating-ui/react-dom').Placement} FloatingUIPlacement
4
+ * @typedef { 'top left' | 'top center' | 'top right' | 'middle left' | 'middle center' | 'middle right' | 'bottom left' | 'bottom center' | 'bottom right' | 'bottom left' | 'bottom center' | 'bottom right' } LegacyPosition
5
+ */
6
+
7
+ /**
8
+ * Converts the `Popover`'s legacy "position" prop to the new "placement" prop
9
+ * (used by `floating-ui`).
10
+ *
11
+ * @param {LegacyPosition} position The legacy position
12
+ * @return {FloatingUIPlacement} The corresponding placement
13
+ */
14
+ export const positionToPlacement = position => {
15
+ const [x, y, z] = position.split(' ');
16
+
17
+ if (['top', 'bottom'].includes(x)) {
18
+ let suffix = '';
19
+
20
+ if (!!z && z === 'left' || y === 'right') {
21
+ suffix = '-start';
22
+ } else if (!!z && z === 'right' || y === 'left') {
23
+ suffix = '-end';
24
+ } // @ts-expect-error More TypeScript effort would be required to reconcile `string` and `Placement` types.
25
+
26
+
27
+ return x + suffix;
28
+ } // @ts-expect-error More TypeScript effort would be required to reconcile `string` and `Placement` types.
29
+
30
+
31
+ return y;
32
+ };
33
+ /**
34
+ * @typedef AnimationOrigin
35
+ * @type {Object}
36
+ * @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")
37
+ * @property {number} originY A number between 0 and 1 (0 is top, 0.5 is center, and 1 is bottom)
38
+ */
39
+
40
+ /** @type {Object.<FloatingUIPlacement, {originX: number, originY: number}>} */
41
+
42
+ const PLACEMENT_TO_ANIMATION_ORIGIN = {
43
+ top: {
44
+ originX: 0.5,
45
+ originY: 1
46
+ },
47
+ // open from bottom, center
48
+ 'top-start': {
49
+ originX: 0,
50
+ originY: 1
51
+ },
52
+ // open from bottom, left
53
+ 'top-end': {
54
+ originX: 1,
55
+ originY: 1
56
+ },
57
+ // open from bottom, right
58
+ right: {
59
+ originX: 0,
60
+ originY: 0.5
61
+ },
62
+ // open from middle, left
63
+ 'right-start': {
64
+ originX: 0,
65
+ originY: 0
66
+ },
67
+ // open from top, left
68
+ 'right-end': {
69
+ originX: 0,
70
+ originY: 1
71
+ },
72
+ // open from bottom, left
73
+ bottom: {
74
+ originX: 0.5,
75
+ originY: 0
76
+ },
77
+ // open from top, center
78
+ 'bottom-start': {
79
+ originX: 0,
80
+ originY: 0
81
+ },
82
+ // open from top, left
83
+ 'bottom-end': {
84
+ originX: 1,
85
+ originY: 0
86
+ },
87
+ // open from top, right
88
+ left: {
89
+ originX: 1,
90
+ originY: 0.5
91
+ },
92
+ // open from middle, right
93
+ 'left-start': {
94
+ originX: 1,
95
+ originY: 0
96
+ },
97
+ // open from top, right
98
+ 'left-end': {
99
+ originX: 1,
100
+ originY: 1
101
+ } // open from bottom, right
102
+
103
+ };
104
+ /**
105
+ * Given the floating-ui `placement`, compute the framer-motion props for the
106
+ * popover's entry animation.
107
+ *
108
+ * @param {FloatingUIPlacement} placement A placement string from floating ui
109
+ * @return {import('framer-motion').MotionProps} The object containing the motion props
110
+ */
111
+
112
+ export const placementToMotionAnimationProps = placement => {
113
+ const translateProp = placement.startsWith('top') || placement.startsWith('bottom') ? 'translateY' : 'translateX';
114
+ const translateDirection = placement.startsWith('top') || placement.startsWith('left') ? 1 : -1;
115
+ return {
116
+ style: PLACEMENT_TO_ANIMATION_ORIGIN[placement],
117
+ initial: {
118
+ opacity: 0,
119
+ scale: 0,
120
+ [translateProp]: `${2 * translateDirection}em`
121
+ },
122
+ animate: {
123
+ opacity: 1,
124
+ scale: 1,
125
+ [translateProp]: 0
126
+ },
127
+ transition: {
128
+ duration: 0.1,
129
+ ease: [0, 0, 0.2, 1]
130
+ }
131
+ };
132
+ };
133
+ /**
134
+ * @typedef FrameOffset
135
+ * @type {Object}
136
+ * @property {number} x A numerical value representing the horizontal offset of the frame.
137
+ * @property {number} y A numerical value representing the vertical offset of the frame.
138
+ */
139
+
140
+ /**
141
+ * Returns the offset of a document's frame element.
142
+ *
143
+ * @param {Document} document A document. This will usually be the document within an iframe.
144
+ *
145
+ * @return {FrameOffset|undefined} The offset of the document's frame element,
146
+ * or undefined if the document has no frame element.
147
+ */
148
+
149
+ export const getFrameOffset = document => {
150
+ var _document$defaultView;
151
+
152
+ const frameElement = document === null || document === void 0 ? void 0 : (_document$defaultView = document.defaultView) === null || _document$defaultView === void 0 ? void 0 : _document$defaultView.frameElement;
153
+
154
+ if (!frameElement) {
155
+ return;
156
+ }
157
+
158
+ const iframeRect = frameElement.getBoundingClientRect();
159
+ return {
160
+ x: iframeRect.left,
161
+ y: iframeRect.top
162
+ };
163
+ };
164
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/popover/utils.js"],"names":["positionToPlacement","position","x","y","z","split","includes","suffix","PLACEMENT_TO_ANIMATION_ORIGIN","top","originX","originY","right","bottom","left","placementToMotionAnimationProps","placement","translateProp","startsWith","translateDirection","style","initial","opacity","scale","animate","transition","duration","ease","getFrameOffset","document","frameElement","defaultView","iframeRect","getBoundingClientRect"],"mappings":"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","sourcesContent":["/**\n * @typedef {import('../animate').AppearOrigin} AppearOrigin\n * @typedef {import('@floating-ui/react-dom').Placement} FloatingUIPlacement\n * @typedef {\t'top left' | 'top center' | 'top right' | 'middle left' | 'middle center' | 'middle right' | 'bottom left' | 'bottom center' | 'bottom right' | 'bottom left' | 'bottom center' | 'bottom right' } LegacyPosition\n */\n\n/**\n * Converts the `Popover`'s legacy \"position\" prop to the new \"placement\" prop\n * (used by `floating-ui`).\n *\n * @param {LegacyPosition} position The legacy position\n * @return {FloatingUIPlacement} The corresponding placement\n */\nexport const positionToPlacement = ( position ) => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\n\t\t// @ts-expect-error More TypeScript effort would be required to reconcile `string` and `Placement` types.\n\t\treturn x + suffix;\n\t}\n\n\t// @ts-expect-error More TypeScript effort would be required to reconcile `string` and `Placement` types.\n\treturn y;\n};\n\n/**\n * @typedef AnimationOrigin\n * @type {Object}\n * @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\")\n * @property {number} originY A number between 0 and 1 (0 is top, 0.5 is center, and 1 is bottom)\n */\n\n/** @type {Object.<FloatingUIPlacement, {originX: number, originY: number}>} */\nconst PLACEMENT_TO_ANIMATION_ORIGIN = {\n\ttop: { originX: 0.5, originY: 1 }, // open from bottom, center\n\t'top-start': { originX: 0, originY: 1 }, // open from bottom, left\n\t'top-end': { originX: 1, originY: 1 }, // open from bottom, right\n\tright: { originX: 0, originY: 0.5 }, // open from middle, left\n\t'right-start': { originX: 0, originY: 0 }, // open from top, left\n\t'right-end': { originX: 0, originY: 1 }, // open from bottom, left\n\tbottom: { originX: 0.5, originY: 0 }, // open from top, center\n\t'bottom-start': { originX: 0, originY: 0 }, // open from top, left\n\t'bottom-end': { originX: 1, originY: 0 }, // open from top, right\n\tleft: { originX: 1, originY: 0.5 }, // open from middle, right\n\t'left-start': { originX: 1, originY: 0 }, // open from top, right\n\t'left-end': { originX: 1, originY: 1 }, // open from bottom, right\n};\n\n/**\n * Given the floating-ui `placement`, compute the framer-motion props for the\n * popover's entry animation.\n *\n * @param {FloatingUIPlacement} placement A placement string from floating ui\n * @return {import('framer-motion').MotionProps} The object containing the motion props\n */\nexport const placementToMotionAnimationProps = ( placement ) => {\n\tconst translateProp =\n\t\tplacement.startsWith( 'top' ) || placement.startsWith( 'bottom' )\n\t\t\t? 'translateY'\n\t\t\t: 'translateX';\n\tconst translateDirection =\n\t\tplacement.startsWith( 'top' ) || placement.startsWith( 'left' )\n\t\t\t? 1\n\t\t\t: -1;\n\n\treturn {\n\t\tstyle: PLACEMENT_TO_ANIMATION_ORIGIN[ placement ],\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t\t[ translateProp ]: `${ 2 * translateDirection }em`,\n\t\t},\n\t\tanimate: { opacity: 1, scale: 1, [ translateProp ]: 0 },\n\t\ttransition: { duration: 0.1, ease: [ 0, 0, 0.2, 1 ] },\n\t};\n};\n\n/**\n * @typedef FrameOffset\n * @type {Object}\n * @property {number} x A numerical value representing the horizontal offset of the frame.\n * @property {number} y A numerical value representing the vertical offset of the frame.\n */\n\n/**\n * Returns the offset of a document's frame element.\n *\n * @param {Document} document A document. This will usually be the document within an iframe.\n *\n * @return {FrameOffset|undefined} The offset of the document's frame element,\n * or undefined if the document has no frame element.\n */\nexport const getFrameOffset = ( document ) => {\n\tconst frameElement = document?.defaultView?.frameElement;\n\tif ( ! frameElement ) {\n\t\treturn;\n\t}\n\tconst iframeRect = frameElement.getBoundingClientRect();\n\treturn { x: iframeRect.left, y: iframeRect.top };\n};\n"]}