@wordpress/components 19.17.0 → 20.0.2-next.957ca95e4c.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 (916) hide show
  1. package/CHANGELOG.md +96 -1
  2. package/CONTRIBUTING.md +12 -12
  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 +13 -13
  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/get-default-use-items.js +7 -1
  12. package/build/autocomplete/get-default-use-items.js.map +1 -1
  13. package/build/autocomplete/index.js +12 -12
  14. package/build/autocomplete/index.js.map +1 -1
  15. package/build/base-control/styles/base-control-styles.js +8 -8
  16. package/build/base-control/styles/base-control-styles.js.map +1 -1
  17. package/build/base-field/styles.js +5 -5
  18. package/build/base-field/styles.js.map +1 -1
  19. package/build/box-control/styles/box-control-visualizer-styles.js +8 -8
  20. package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  21. package/build/card/card/component.js +6 -11
  22. package/build/card/card/component.js.map +1 -1
  23. package/build/card/card/hook.js +0 -10
  24. package/build/card/card/hook.js.map +1 -1
  25. package/build/card/card/index.js.map +1 -1
  26. package/build/card/card-body/component.js +7 -8
  27. package/build/card/card-body/component.js.map +1 -1
  28. package/build/card/card-body/hook.js +0 -4
  29. package/build/card/card-body/hook.js.map +1 -1
  30. package/build/card/card-body/index.js.map +1 -1
  31. package/build/card/card-divider/component.js +7 -8
  32. package/build/card/card-divider/component.js.map +1 -1
  33. package/build/card/card-divider/hook.js +0 -4
  34. package/build/card/card-divider/hook.js.map +1 -1
  35. package/build/card/card-divider/index.js.map +1 -1
  36. package/build/card/card-footer/component.js +7 -8
  37. package/build/card/card-footer/component.js.map +1 -1
  38. package/build/card/card-footer/hook.js +0 -4
  39. package/build/card/card-footer/hook.js.map +1 -1
  40. package/build/card/card-footer/index.js.map +1 -1
  41. package/build/card/card-header/component.js +7 -8
  42. package/build/card/card-header/component.js.map +1 -1
  43. package/build/card/card-header/hook.js +0 -4
  44. package/build/card/card-header/hook.js.map +1 -1
  45. package/build/card/card-header/index.js.map +1 -1
  46. package/build/card/card-media/component.js +7 -7
  47. package/build/card/card-media/component.js.map +1 -1
  48. package/build/card/card-media/hook.js +0 -4
  49. package/build/card/card-media/hook.js.map +1 -1
  50. package/build/card/card-media/index.js.map +1 -1
  51. package/build/card/context.js.map +1 -1
  52. package/build/card/index.js.map +1 -1
  53. package/build/card/styles.js +17 -17
  54. package/build/card/styles.js.map +1 -1
  55. package/build/clipboard-button/index.js +16 -1
  56. package/build/clipboard-button/index.js.map +1 -1
  57. package/build/color-list-picker/index.js +16 -5
  58. package/build/color-list-picker/index.js.map +1 -1
  59. package/build/color-palette/index.js +28 -14
  60. package/build/color-palette/index.js.map +1 -1
  61. package/build/color-palette/index.native.js +3 -3
  62. package/build/color-palette/index.native.js.map +1 -1
  63. package/build/combobox-control/index.js +7 -4
  64. package/build/combobox-control/index.js.map +1 -1
  65. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  66. package/build/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  67. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  68. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  69. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  70. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  71. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  72. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  73. package/build/custom-gradient-picker/index.js +30 -4
  74. package/build/custom-gradient-picker/index.js.map +1 -1
  75. package/build/custom-select-control/index.js +21 -11
  76. package/build/custom-select-control/index.js.map +1 -1
  77. package/build/custom-select-control/styles.js +34 -0
  78. package/build/custom-select-control/styles.js.map +1 -0
  79. package/build/date-time/constants.js +9 -0
  80. package/build/date-time/constants.js.map +1 -0
  81. package/build/date-time/date/index.js +196 -188
  82. package/build/date-time/date/index.js.map +1 -1
  83. package/build/date-time/date/styles.js +68 -39
  84. package/build/date-time/date/styles.js.map +1 -1
  85. package/build/date-time/date-time/index.js +3 -2
  86. package/build/date-time/date-time/index.js.map +1 -1
  87. package/build/date-time/date-time/styles.js +19 -5
  88. package/build/date-time/date-time/styles.js.map +1 -1
  89. package/build/date-time/time/index.js +22 -17
  90. package/build/date-time/time/index.js.map +1 -1
  91. package/build/date-time/time/styles.js +12 -12
  92. package/build/date-time/time/styles.js.map +1 -1
  93. package/build/date-time/utils.js +27 -0
  94. package/build/date-time/utils.js.map +1 -0
  95. package/build/dimension-control/index.js +2 -6
  96. package/build/dimension-control/index.js.map +1 -1
  97. package/build/disabled/index.js +28 -11
  98. package/build/disabled/index.js.map +1 -1
  99. package/build/disabled/styles/disabled-styles.js +3 -3
  100. package/build/disabled/styles/disabled-styles.js.map +1 -1
  101. package/build/{swatch → disabled}/types.js +0 -0
  102. package/build/{swatch → disabled}/types.js.map +0 -0
  103. package/build/drop-zone/index.js +2 -4
  104. package/build/drop-zone/index.js.map +1 -1
  105. package/build/dropdown/index.js +5 -6
  106. package/build/dropdown/index.js.map +1 -1
  107. package/build/dropdown-menu/index.js +1 -3
  108. package/build/dropdown-menu/index.js.map +1 -1
  109. package/build/dropdown-menu/index.native.js +0 -17
  110. package/build/dropdown-menu/index.native.js.map +1 -1
  111. package/build/duotone-picker/custom-duotone-bar.js +2 -2
  112. package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
  113. package/build/duotone-picker/duotone-picker.js +9 -1
  114. package/build/duotone-picker/duotone-picker.js.map +1 -1
  115. package/build/duotone-picker/duotone-swatch.js +13 -3
  116. package/build/duotone-picker/duotone-swatch.js.map +1 -1
  117. package/build/focal-point-picker/controls.js +4 -4
  118. package/build/focal-point-picker/controls.js.map +1 -1
  119. package/build/focal-point-picker/focal-point.js +4 -6
  120. package/build/focal-point-picker/focal-point.js.map +1 -1
  121. package/build/focal-point-picker/grid.js +6 -35
  122. package/build/focal-point-picker/grid.js.map +1 -1
  123. package/build/focal-point-picker/index.js +164 -336
  124. package/build/focal-point-picker/index.js.map +1 -1
  125. package/build/focal-point-picker/media.js +4 -34
  126. package/build/focal-point-picker/media.js.map +1 -1
  127. package/build/focal-point-picker/styles/focal-point-picker-style.js +14 -14
  128. package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  129. package/build/focal-point-picker/styles/focal-point-style.js +4 -4
  130. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  131. package/build/focal-point-picker/utils.js +2 -6
  132. package/build/focal-point-picker/utils.js.map +1 -1
  133. package/build/focusable-iframe/index.js +6 -0
  134. package/build/focusable-iframe/index.js.map +1 -1
  135. package/build/font-size-picker/index.js +43 -14
  136. package/build/font-size-picker/index.js.map +1 -1
  137. package/build/font-size-picker/utils.js +32 -22
  138. package/build/font-size-picker/utils.js.map +1 -1
  139. package/build/form-token-field/index.js +29 -20
  140. package/build/form-token-field/index.js.map +1 -1
  141. package/build/gradient-picker/index.js +25 -2
  142. package/build/gradient-picker/index.js.map +1 -1
  143. package/build/guide/index.js +13 -9
  144. package/build/guide/index.js.map +1 -1
  145. package/build/guide/page-control.js +3 -7
  146. package/build/guide/page-control.js.map +1 -1
  147. package/build/higher-order/with-constrained-tabbing/index.js +1 -1
  148. package/build/higher-order/with-constrained-tabbing/index.js.map +1 -1
  149. package/build/higher-order/with-spoken-messages/index.js +2 -0
  150. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  151. package/build/isolated-event-container/index.js +4 -0
  152. package/build/isolated-event-container/index.js.map +1 -1
  153. package/build/item-group/styles.js +10 -10
  154. package/build/item-group/styles.js.map +1 -1
  155. package/build/mobile/bottom-sheet/index.native.js +3 -6
  156. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  157. package/build/mobile/global-styles-context/utils.native.js +4 -2
  158. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  159. package/build/mobile/image/index.native.js +6 -26
  160. package/build/mobile/image/index.native.js.map +1 -1
  161. package/build/mobile/picker/index.android.js +3 -3
  162. package/build/mobile/picker/index.android.js.map +1 -1
  163. package/build/modal/index.js +1 -3
  164. package/build/modal/index.js.map +1 -1
  165. package/build/navigable-container/container.js +9 -8
  166. package/build/navigable-container/container.js.map +1 -1
  167. package/build/navigable-container/menu.js +3 -9
  168. package/build/navigable-container/menu.js.map +1 -1
  169. package/build/navigation/menu/menu-title-search.js +1 -3
  170. package/build/navigation/menu/menu-title-search.js.map +1 -1
  171. package/build/navigator/navigator-back-button/hook.js +0 -4
  172. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  173. package/build/navigator/navigator-button/hook.js +0 -4
  174. package/build/navigator/navigator-button/hook.js.map +1 -1
  175. package/build/notice/list.js +10 -6
  176. package/build/notice/list.js.map +1 -1
  177. package/build/palette-edit/index.js +7 -2
  178. package/build/palette-edit/index.js.map +1 -1
  179. package/build/palette-edit/styles.js +10 -10
  180. package/build/palette-edit/styles.js.map +1 -1
  181. package/build/popover/index.js +93 -110
  182. package/build/popover/index.js.map +1 -1
  183. package/build/popover/utils.js +178 -0
  184. package/build/popover/utils.js.map +1 -0
  185. package/build/range-control/index.js +3 -0
  186. package/build/range-control/index.js.map +1 -1
  187. package/build/range-control/styles/range-control-styles.js +43 -37
  188. package/build/range-control/styles/range-control-styles.js.map +1 -1
  189. package/build/select-control/chevron-down.js +30 -0
  190. package/build/select-control/chevron-down.js.map +1 -0
  191. package/build/select-control/index.js +7 -7
  192. package/build/select-control/index.js.map +1 -1
  193. package/build/select-control/styles/select-control-styles.js +30 -15
  194. package/build/select-control/styles/select-control-styles.js.map +1 -1
  195. package/build/snackbar/list.js +5 -3
  196. package/build/snackbar/list.js.map +1 -1
  197. package/build/spinner/index.js +2 -0
  198. package/build/spinner/index.js.map +1 -1
  199. package/build/text/styles.js +7 -7
  200. package/build/text/styles.js.map +1 -1
  201. package/build/text-highlight/index.js +4 -4
  202. package/build/text-highlight/index.js.map +1 -1
  203. package/build/toggle-group-control/toggle-group-control/component.js +17 -9
  204. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  205. package/build/toggle-group-control/toggle-group-control/styles.js +24 -7
  206. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  207. package/build/toggle-group-control/toggle-group-control-option/component.js +15 -5
  208. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  209. package/build/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  210. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  211. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +20 -7
  212. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  213. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +26 -7
  214. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  215. package/build/tools-panel/styles.js +11 -11
  216. package/build/tools-panel/styles.js.map +1 -1
  217. package/build/tooltip/index.js +1 -7
  218. package/build/tooltip/index.js.map +1 -1
  219. package/build/tree-grid/index.js +4 -10
  220. package/build/tree-grid/index.js.map +1 -1
  221. package/build/ui/context/context-connect.js +1 -3
  222. package/build/ui/context/context-connect.js.map +1 -1
  223. package/build/unit-control/index.js +2 -3
  224. package/build/unit-control/index.js.map +1 -1
  225. package/build/utils/colors-values.js +52 -142
  226. package/build/utils/colors-values.js.map +1 -1
  227. package/build/utils/config-values.js +1 -1
  228. package/build/utils/config-values.js.map +1 -1
  229. package/build/utils/input/input-control.js +1 -1
  230. package/build/utils/input/input-control.js.map +1 -1
  231. package/build/utils/rtl.js +6 -5
  232. package/build/utils/rtl.js.map +1 -1
  233. package/build/utils/strings.js +63 -0
  234. package/build/utils/strings.js.map +1 -0
  235. package/build-module/alignment-matrix-control/index.js +1 -1
  236. package/build-module/alignment-matrix-control/index.js.map +1 -1
  237. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +13 -13
  238. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  239. package/build-module/angle-picker-control/index.js +3 -0
  240. package/build-module/angle-picker-control/index.js.map +1 -1
  241. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -4
  242. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  243. package/build-module/autocomplete/get-default-use-items.js +6 -1
  244. package/build-module/autocomplete/get-default-use-items.js.map +1 -1
  245. package/build-module/autocomplete/index.js +11 -11
  246. package/build-module/autocomplete/index.js.map +1 -1
  247. package/build-module/base-control/styles/base-control-styles.js +8 -8
  248. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  249. package/build-module/base-field/styles.js +5 -5
  250. package/build-module/base-field/styles.js.map +1 -1
  251. package/build-module/box-control/styles/box-control-visualizer-styles.js +8 -8
  252. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  253. package/build-module/card/card/component.js +5 -10
  254. package/build-module/card/card/component.js.map +1 -1
  255. package/build-module/card/card/hook.js +0 -9
  256. package/build-module/card/card/hook.js.map +1 -1
  257. package/build-module/card/card/index.js.map +1 -1
  258. package/build-module/card/card-body/component.js +7 -8
  259. package/build-module/card/card-body/component.js.map +1 -1
  260. package/build-module/card/card-body/hook.js +0 -4
  261. package/build-module/card/card-body/hook.js.map +1 -1
  262. package/build-module/card/card-body/index.js.map +1 -1
  263. package/build-module/card/card-divider/component.js +7 -8
  264. package/build-module/card/card-divider/component.js.map +1 -1
  265. package/build-module/card/card-divider/hook.js +0 -4
  266. package/build-module/card/card-divider/hook.js.map +1 -1
  267. package/build-module/card/card-divider/index.js.map +1 -1
  268. package/build-module/card/card-footer/component.js +7 -8
  269. package/build-module/card/card-footer/component.js.map +1 -1
  270. package/build-module/card/card-footer/hook.js +0 -4
  271. package/build-module/card/card-footer/hook.js.map +1 -1
  272. package/build-module/card/card-footer/index.js.map +1 -1
  273. package/build-module/card/card-header/component.js +7 -8
  274. package/build-module/card/card-header/component.js.map +1 -1
  275. package/build-module/card/card-header/hook.js +0 -4
  276. package/build-module/card/card-header/hook.js.map +1 -1
  277. package/build-module/card/card-header/index.js.map +1 -1
  278. package/build-module/card/card-media/component.js +7 -7
  279. package/build-module/card/card-media/component.js.map +1 -1
  280. package/build-module/card/card-media/hook.js +0 -4
  281. package/build-module/card/card-media/hook.js.map +1 -1
  282. package/build-module/card/card-media/index.js.map +1 -1
  283. package/build-module/card/context.js.map +1 -1
  284. package/build-module/card/index.js.map +1 -1
  285. package/build-module/card/styles.js +17 -17
  286. package/build-module/card/styles.js.map +1 -1
  287. package/build-module/clipboard-button/index.js +17 -1
  288. package/build-module/clipboard-button/index.js.map +1 -1
  289. package/build-module/color-list-picker/index.js +13 -5
  290. package/build-module/color-list-picker/index.js.map +1 -1
  291. package/build-module/color-palette/index.js +27 -13
  292. package/build-module/color-palette/index.js.map +1 -1
  293. package/build-module/color-palette/index.native.js +4 -4
  294. package/build-module/color-palette/index.native.js.map +1 -1
  295. package/build-module/combobox-control/index.js +6 -3
  296. package/build-module/combobox-control/index.js.map +1 -1
  297. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  298. package/build-module/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  299. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  300. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  301. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  302. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  303. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  304. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  305. package/build-module/custom-gradient-picker/index.js +26 -3
  306. package/build-module/custom-gradient-picker/index.js.map +1 -1
  307. package/build-module/custom-select-control/index.js +20 -12
  308. package/build-module/custom-select-control/index.js.map +1 -1
  309. package/build-module/custom-select-control/styles.js +22 -0
  310. package/build-module/custom-select-control/styles.js.map +1 -0
  311. package/build-module/date-time/constants.js +2 -0
  312. package/build-module/date-time/constants.js.map +1 -0
  313. package/build-module/date-time/date/index.js +199 -186
  314. package/build-module/date-time/date/index.js.map +1 -1
  315. package/build-module/date-time/date/styles.js +61 -36
  316. package/build-module/date-time/date/styles.js.map +1 -1
  317. package/build-module/date-time/date-time/index.js +4 -3
  318. package/build-module/date-time/date-time/index.js.map +1 -1
  319. package/build-module/date-time/date-time/styles.js +20 -1
  320. package/build-module/date-time/date-time/styles.js.map +1 -1
  321. package/build-module/date-time/time/index.js +20 -16
  322. package/build-module/date-time/time/index.js.map +1 -1
  323. package/build-module/date-time/time/styles.js +12 -12
  324. package/build-module/date-time/time/styles.js.map +1 -1
  325. package/build-module/date-time/utils.js +19 -0
  326. package/build-module/date-time/utils.js.map +1 -0
  327. package/build-module/dimension-control/index.js +1 -5
  328. package/build-module/dimension-control/index.js.map +1 -1
  329. package/build-module/disabled/index.js +28 -11
  330. package/build-module/disabled/index.js.map +1 -1
  331. package/build-module/disabled/styles/disabled-styles.js +3 -3
  332. package/build-module/disabled/styles/disabled-styles.js.map +1 -1
  333. package/build-module/{swatch → disabled}/types.js +0 -0
  334. package/build-module/{swatch → disabled}/types.js.map +0 -0
  335. package/build-module/drop-zone/index.js +2 -3
  336. package/build-module/drop-zone/index.js.map +1 -1
  337. package/build-module/dropdown/index.js +5 -6
  338. package/build-module/dropdown/index.js.map +1 -1
  339. package/build-module/dropdown-menu/index.js +1 -2
  340. package/build-module/dropdown-menu/index.js.map +1 -1
  341. package/build-module/dropdown-menu/index.native.js +0 -16
  342. package/build-module/dropdown-menu/index.native.js.map +1 -1
  343. package/build-module/duotone-picker/custom-duotone-bar.js +1 -1
  344. package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
  345. package/build-module/duotone-picker/duotone-picker.js +7 -1
  346. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  347. package/build-module/duotone-picker/duotone-swatch.js +11 -3
  348. package/build-module/duotone-picker/duotone-swatch.js.map +1 -1
  349. package/build-module/focal-point-picker/controls.js +4 -4
  350. package/build-module/focal-point-picker/controls.js.map +1 -1
  351. package/build-module/focal-point-picker/focal-point.js +4 -6
  352. package/build-module/focal-point-picker/focal-point.js.map +1 -1
  353. package/build-module/focal-point-picker/grid.js +6 -34
  354. package/build-module/focal-point-picker/grid.js.map +1 -1
  355. package/build-module/focal-point-picker/index.js +162 -330
  356. package/build-module/focal-point-picker/index.js.map +1 -1
  357. package/build-module/focal-point-picker/media.js +4 -36
  358. package/build-module/focal-point-picker/media.js.map +1 -1
  359. package/build-module/focal-point-picker/styles/focal-point-picker-style.js +13 -14
  360. package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  361. package/build-module/focal-point-picker/styles/focal-point-style.js +4 -4
  362. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  363. package/build-module/focal-point-picker/utils.js +2 -6
  364. package/build-module/focal-point-picker/utils.js.map +1 -1
  365. package/build-module/focusable-iframe/index.js +6 -0
  366. package/build-module/focusable-iframe/index.js.map +1 -1
  367. package/build-module/font-size-picker/index.js +39 -14
  368. package/build-module/font-size-picker/index.js.map +1 -1
  369. package/build-module/font-size-picker/utils.js +31 -23
  370. package/build-module/font-size-picker/utils.js.map +1 -1
  371. package/build-module/form-token-field/index.js +30 -20
  372. package/build-module/form-token-field/index.js.map +1 -1
  373. package/build-module/gradient-picker/index.js +23 -2
  374. package/build-module/gradient-picker/index.js.map +1 -1
  375. package/build-module/guide/index.js +13 -8
  376. package/build-module/guide/index.js.map +1 -1
  377. package/build-module/guide/page-control.js +3 -6
  378. package/build-module/guide/page-control.js.map +1 -1
  379. package/build-module/higher-order/with-constrained-tabbing/index.js +1 -1
  380. package/build-module/higher-order/with-constrained-tabbing/index.js.map +1 -1
  381. package/build-module/higher-order/with-spoken-messages/index.js +2 -0
  382. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  383. package/build-module/isolated-event-container/index.js +3 -0
  384. package/build-module/isolated-event-container/index.js.map +1 -1
  385. package/build-module/item-group/styles.js +10 -10
  386. package/build-module/item-group/styles.js.map +1 -1
  387. package/build-module/mobile/bottom-sheet/index.native.js +3 -5
  388. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  389. package/build-module/mobile/global-styles-context/utils.native.js +3 -2
  390. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  391. package/build-module/mobile/image/index.native.js +8 -28
  392. package/build-module/mobile/image/index.native.js.map +1 -1
  393. package/build-module/mobile/picker/index.android.js +3 -3
  394. package/build-module/mobile/picker/index.android.js.map +1 -1
  395. package/build-module/modal/index.js +1 -2
  396. package/build-module/modal/index.js.map +1 -1
  397. package/build-module/navigable-container/container.js +9 -7
  398. package/build-module/navigable-container/container.js.map +1 -1
  399. package/build-module/navigable-container/menu.js +3 -8
  400. package/build-module/navigable-container/menu.js.map +1 -1
  401. package/build-module/navigation/menu/menu-title-search.js +1 -2
  402. package/build-module/navigation/menu/menu-title-search.js.map +1 -1
  403. package/build-module/navigator/navigator-back-button/hook.js +0 -4
  404. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  405. package/build-module/navigator/navigator-button/hook.js +0 -4
  406. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  407. package/build-module/notice/list.js +10 -5
  408. package/build-module/notice/list.js.map +1 -1
  409. package/build-module/palette-edit/index.js +7 -2
  410. package/build-module/palette-edit/index.js.map +1 -1
  411. package/build-module/palette-edit/styles.js +10 -10
  412. package/build-module/palette-edit/styles.js.map +1 -1
  413. package/build-module/popover/index.js +93 -111
  414. package/build-module/popover/index.js.map +1 -1
  415. package/build-module/popover/utils.js +164 -0
  416. package/build-module/popover/utils.js.map +1 -0
  417. package/build-module/range-control/index.js +3 -0
  418. package/build-module/range-control/index.js.map +1 -1
  419. package/build-module/range-control/styles/range-control-styles.js +43 -37
  420. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  421. package/build-module/select-control/chevron-down.js +21 -0
  422. package/build-module/select-control/chevron-down.js.map +1 -0
  423. package/build-module/select-control/index.js +7 -7
  424. package/build-module/select-control/index.js.map +1 -1
  425. package/build-module/select-control/styles/select-control-styles.js +24 -13
  426. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  427. package/build-module/snackbar/list.js +5 -2
  428. package/build-module/snackbar/list.js.map +1 -1
  429. package/build-module/spinner/index.js +2 -0
  430. package/build-module/spinner/index.js.map +1 -1
  431. package/build-module/text/styles.js +7 -7
  432. package/build-module/text/styles.js.map +1 -1
  433. package/build-module/text-highlight/index.js +2 -5
  434. package/build-module/text-highlight/index.js.map +1 -1
  435. package/build-module/toggle-group-control/toggle-group-control/component.js +16 -8
  436. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  437. package/build-module/toggle-group-control/toggle-group-control/styles.js +20 -5
  438. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  439. package/build-module/toggle-group-control/toggle-group-control-option/component.js +17 -3
  440. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  441. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  442. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  443. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +16 -6
  444. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  445. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +27 -5
  446. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  447. package/build-module/tools-panel/styles.js +11 -11
  448. package/build-module/tools-panel/styles.js.map +1 -1
  449. package/build-module/tooltip/index.js +1 -6
  450. package/build-module/tooltip/index.js.map +1 -1
  451. package/build-module/tree-grid/index.js +4 -9
  452. package/build-module/tree-grid/index.js.map +1 -1
  453. package/build-module/ui/context/context-connect.js +1 -2
  454. package/build-module/ui/context/context-connect.js.map +1 -1
  455. package/build-module/unit-control/index.js +2 -2
  456. package/build-module/unit-control/index.js.map +1 -1
  457. package/build-module/utils/colors-values.js +52 -141
  458. package/build-module/utils/colors-values.js.map +1 -1
  459. package/build-module/utils/config-values.js +1 -1
  460. package/build-module/utils/config-values.js.map +1 -1
  461. package/build-module/utils/input/input-control.js +1 -1
  462. package/build-module/utils/input/input-control.js.map +1 -1
  463. package/build-module/utils/rtl.js +6 -4
  464. package/build-module/utils/rtl.js.map +1 -1
  465. package/build-module/utils/strings.js +48 -0
  466. package/build-module/utils/strings.js.map +1 -0
  467. package/build-style/style-rtl.css +202 -1272
  468. package/build-style/style.css +202 -1275
  469. package/build-types/animation/index.d.ts +2 -0
  470. package/build-types/{flyout → animation}/index.d.ts.map +1 -1
  471. package/build-types/card/card/component.d.ts +3 -3
  472. package/build-types/card/card/component.d.ts.map +1 -1
  473. package/build-types/card/card/hook.d.ts +7 -2
  474. package/build-types/card/card/hook.d.ts.map +1 -1
  475. package/build-types/card/card/index.d.ts +2 -2
  476. package/build-types/card/card/index.d.ts.map +1 -1
  477. package/build-types/card/card-body/component.d.ts +3 -3
  478. package/build-types/card/card-body/component.d.ts.map +1 -1
  479. package/build-types/card/card-body/hook.d.ts +5 -2
  480. package/build-types/card/card-body/hook.d.ts.map +1 -1
  481. package/build-types/card/card-body/index.d.ts +2 -2
  482. package/build-types/card/card-body/index.d.ts.map +1 -1
  483. package/build-types/card/card-divider/component.d.ts +3 -3
  484. package/build-types/card/card-divider/component.d.ts.map +1 -1
  485. package/build-types/card/card-divider/hook.d.ts +5 -2
  486. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  487. package/build-types/card/card-divider/index.d.ts +2 -2
  488. package/build-types/card/card-divider/index.d.ts.map +1 -1
  489. package/build-types/card/card-footer/component.d.ts +3 -3
  490. package/build-types/card/card-footer/component.d.ts.map +1 -1
  491. package/build-types/card/card-footer/hook.d.ts +5 -2
  492. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  493. package/build-types/card/card-footer/index.d.ts +2 -2
  494. package/build-types/card/card-footer/index.d.ts.map +1 -1
  495. package/build-types/card/card-header/component.d.ts +3 -3
  496. package/build-types/card/card-header/component.d.ts.map +1 -1
  497. package/build-types/card/card-header/hook.d.ts +5 -2
  498. package/build-types/card/card-header/hook.d.ts.map +1 -1
  499. package/build-types/card/card-header/index.d.ts +2 -2
  500. package/build-types/card/card-header/index.d.ts.map +1 -1
  501. package/build-types/card/card-media/component.d.ts +3 -4
  502. package/build-types/card/card-media/component.d.ts.map +1 -1
  503. package/build-types/card/card-media/hook.d.ts +6 -5
  504. package/build-types/card/card-media/hook.d.ts.map +1 -1
  505. package/build-types/card/card-media/index.d.ts +2 -2
  506. package/build-types/card/card-media/index.d.ts.map +1 -1
  507. package/build-types/card/context.d.ts +3 -2
  508. package/build-types/card/context.d.ts.map +1 -1
  509. package/build-types/card/index.d.ts +6 -6
  510. package/build-types/card/index.d.ts.map +1 -1
  511. package/build-types/card/stories/index.d.ts +12 -0
  512. package/build-types/card/stories/index.d.ts.map +1 -0
  513. package/build-types/card/styles.d.ts +20 -22
  514. package/build-types/card/styles.d.ts.map +1 -1
  515. package/build-types/card/test/index.d.ts +2 -0
  516. package/build-types/{flyout/flyout → card/test}/index.d.ts.map +1 -1
  517. package/build-types/card/types.d.ts +7 -1
  518. package/build-types/card/types.d.ts.map +1 -1
  519. package/build-types/clipboard-button/index.d.ts +16 -0
  520. package/build-types/clipboard-button/index.d.ts.map +1 -0
  521. package/build-types/color-palette/index.d.ts +2 -1
  522. package/build-types/color-palette/index.d.ts.map +1 -1
  523. package/build-types/color-picker/styles.d.ts +2 -2
  524. package/build-types/composite/index.d.ts +2 -0
  525. package/build-types/composite/index.d.ts.map +1 -0
  526. package/build-types/date-time/constants.d.ts +2 -0
  527. package/build-types/date-time/constants.d.ts.map +1 -0
  528. package/build-types/date-time/date/index.d.ts +4 -2
  529. package/build-types/date-time/date/index.d.ts.map +1 -1
  530. package/build-types/date-time/date/styles.d.ts +26 -8
  531. package/build-types/date-time/date/styles.d.ts.map +1 -1
  532. package/build-types/date-time/date/test/index.d.ts +1 -1
  533. package/build-types/date-time/date/test/index.d.ts.map +1 -1
  534. package/build-types/date-time/date-time/styles.d.ts +13 -0
  535. package/build-types/date-time/date-time/styles.d.ts.map +1 -1
  536. package/build-types/date-time/time/index.d.ts.map +1 -1
  537. package/build-types/date-time/time/styles.d.ts.map +1 -1
  538. package/build-types/date-time/utils.d.ts +8 -0
  539. package/build-types/date-time/utils.d.ts.map +1 -0
  540. package/build-types/disabled/index.d.ts +35 -28
  541. package/build-types/disabled/index.d.ts.map +1 -1
  542. package/build-types/disabled/stories/index.d.ts +13 -0
  543. package/build-types/disabled/stories/index.d.ts.map +1 -0
  544. package/build-types/disabled/styles/disabled-styles.d.ts +2 -1
  545. package/build-types/disabled/styles/disabled-styles.d.ts.map +1 -1
  546. package/build-types/disabled/test/index.d.ts +2 -0
  547. package/build-types/disabled/test/index.d.ts.map +1 -0
  548. package/build-types/disabled/types.d.ts +14 -0
  549. package/build-types/disabled/types.d.ts.map +1 -0
  550. package/build-types/disclosure/index.d.ts +2 -0
  551. package/build-types/disclosure/index.d.ts.map +1 -0
  552. package/build-types/dropdown/index.d.ts.map +1 -1
  553. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  554. package/build-types/focusable-iframe/index.d.ts +8 -0
  555. package/build-types/focusable-iframe/index.d.ts.map +1 -0
  556. package/build-types/form-token-field/index.d.ts.map +1 -1
  557. package/build-types/form-token-field/stories/index.d.ts +1 -0
  558. package/build-types/form-token-field/stories/index.d.ts.map +1 -1
  559. package/build-types/form-token-field/test/index.d.ts +2 -0
  560. package/build-types/form-token-field/test/index.d.ts.map +1 -0
  561. package/build-types/form-token-field/types.d.ts +7 -0
  562. package/build-types/form-token-field/types.d.ts.map +1 -1
  563. package/build-types/higher-order/with-constrained-tabbing/index.d.ts +3 -0
  564. package/build-types/higher-order/with-constrained-tabbing/index.d.ts.map +1 -0
  565. package/build-types/higher-order/with-spoken-messages/index.d.ts +4 -0
  566. package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -0
  567. package/build-types/isolated-event-container/index.d.ts +3 -0
  568. package/build-types/isolated-event-container/index.d.ts.map +1 -0
  569. package/build-types/mobile/inserter-button/sparkles.d.ts +3 -0
  570. package/build-types/mobile/inserter-button/sparkles.d.ts.map +1 -0
  571. package/build-types/navigable-container/menu.d.ts.map +1 -1
  572. package/build-types/navigator/navigator-back-button/hook.d.ts +0 -3
  573. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  574. package/build-types/navigator/navigator-button/hook.d.ts +0 -3
  575. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  576. package/build-types/placeholder/test/index.d.ts +2 -0
  577. package/build-types/placeholder/test/index.d.ts.map +1 -0
  578. package/build-types/popover/index.d.ts +1 -2
  579. package/build-types/popover/index.d.ts.map +1 -1
  580. package/build-types/popover/utils.d.ts +26 -69
  581. package/build-types/popover/utils.d.ts.map +1 -1
  582. package/build-types/radio-context/index.d.ts +6 -0
  583. package/build-types/radio-context/index.d.ts.map +1 -0
  584. package/build-types/range-control/index.d.ts +2 -2
  585. package/build-types/range-control/index.d.ts.map +1 -1
  586. package/build-types/range-control/styles/range-control-styles.d.ts +5 -2
  587. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  588. package/build-types/range-control/types.d.ts +2 -2
  589. package/build-types/range-control/types.d.ts.map +1 -1
  590. package/build-types/select-control/chevron-down.d.ts +4 -0
  591. package/build-types/select-control/chevron-down.d.ts.map +1 -0
  592. package/build-types/select-control/index.d.ts.map +1 -1
  593. package/build-types/select-control/styles/select-control-styles.d.ts +8 -0
  594. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  595. package/build-types/spinner/index.d.ts.map +1 -1
  596. package/build-types/text-highlight/index.d.ts +0 -3
  597. package/build-types/text-highlight/index.d.ts.map +1 -1
  598. package/build-types/toggle-group-control/stories/index.d.ts +25 -0
  599. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -0
  600. package/build-types/toggle-group-control/test/index.d.ts +2 -0
  601. package/build-types/toggle-group-control/test/index.d.ts.map +1 -0
  602. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +6 -3
  603. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  604. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
  605. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  606. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -7
  607. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  608. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  609. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +4 -0
  610. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  611. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +11 -9
  612. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  613. package/build-types/toggle-group-control/types.d.ts +23 -10
  614. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  615. package/build-types/tooltip/index.d.ts.map +1 -1
  616. package/build-types/ui/context/context-connect.d.ts +3 -0
  617. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  618. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  619. package/build-types/unit-control/index.d.ts +2 -1
  620. package/build-types/unit-control/index.d.ts.map +1 -1
  621. package/build-types/unit-control/types.d.ts +5 -1
  622. package/build-types/unit-control/types.d.ts.map +1 -1
  623. package/build-types/utils/colors-values.d.ts +18 -97
  624. package/build-types/utils/colors-values.d.ts.map +1 -1
  625. package/build-types/utils/rtl.d.ts.map +1 -1
  626. package/build-types/utils/strings.d.ts +10 -0
  627. package/build-types/utils/strings.d.ts.map +1 -0
  628. package/package.json +22 -21
  629. package/src/alignment-matrix-control/index.js +1 -1
  630. package/src/alignment-matrix-control/stories/index.js +49 -24
  631. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +2 -3
  632. package/src/angle-picker-control/index.js +7 -1
  633. package/src/angle-picker-control/stories/index.js +8 -5
  634. package/src/angle-picker-control/styles/angle-picker-control-styles.js +12 -3
  635. package/src/autocomplete/get-default-use-items.js +6 -1
  636. package/src/autocomplete/index.js +11 -19
  637. package/src/base-control/styles/base-control-styles.ts +1 -1
  638. package/src/base-field/styles.js +1 -1
  639. package/src/base-field/test/__snapshots__/index.js.snap +2 -2
  640. package/src/box-control/styles/box-control-visualizer-styles.js +0 -1
  641. package/src/box-control/test/index.js +8 -8
  642. package/src/button/test/index.js +188 -146
  643. package/src/card/card/{component.js → component.tsx} +13 -9
  644. package/src/card/card/{hook.js → hook.ts} +11 -11
  645. package/src/card/card/{index.js → index.ts} +0 -0
  646. package/src/card/card-body/{component.js → component.tsx} +13 -9
  647. package/src/card/card-body/{hook.js → hook.ts} +5 -5
  648. package/src/card/card-body/{index.js → index.ts} +0 -0
  649. package/src/card/card-divider/{component.js → component.tsx} +16 -10
  650. package/src/card/card-divider/{hook.js → hook.ts} +5 -5
  651. package/src/card/card-divider/{index.js → index.ts} +0 -0
  652. package/src/card/card-footer/{component.js → component.tsx} +13 -9
  653. package/src/card/card-footer/{hook.js → hook.ts} +5 -5
  654. package/src/card/card-footer/{index.js → index.ts} +0 -0
  655. package/src/card/card-header/{component.js → component.tsx} +13 -9
  656. package/src/card/card-header/{hook.js → hook.ts} +5 -5
  657. package/src/card/card-header/{index.js → index.ts} +0 -0
  658. package/src/card/card-media/{component.js → component.tsx} +13 -8
  659. package/src/card/card-media/{hook.js → hook.ts} +5 -5
  660. package/src/card/card-media/{index.js → index.ts} +0 -0
  661. package/src/card/{context.js → context.ts} +0 -0
  662. package/src/card/{index.js → index.ts} +0 -0
  663. package/src/card/stories/index.tsx +75 -0
  664. package/src/card/{styles.js → styles.ts} +0 -0
  665. package/src/card/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  666. package/src/card/test/{index.js → index.tsx} +3 -3
  667. package/src/card/types.ts +8 -1
  668. package/src/clipboard-button/index.js +13 -0
  669. package/src/color-list-picker/index.js +15 -3
  670. package/src/color-list-picker/style.scss +11 -0
  671. package/src/color-palette/index.js +40 -21
  672. package/src/color-palette/index.native.js +10 -6
  673. package/src/color-palette/stories/index.js +1 -1
  674. package/src/color-palette/style.scss +0 -14
  675. package/src/color-palette/test/__snapshots__/index.js.snap +28 -7
  676. package/src/combobox-control/index.js +6 -5
  677. package/src/combobox-control/stories/index.js +9 -3
  678. package/src/combobox-control/style.scss +0 -1
  679. package/src/confirm-dialog/test/index.js +85 -62
  680. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  681. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +54 -50
  682. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -3
  683. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/test/utils.js +0 -0
  684. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  685. package/src/custom-gradient-picker/index.js +30 -3
  686. package/src/custom-gradient-picker/stories/index.js +6 -2
  687. package/src/custom-gradient-picker/style.scss +30 -27
  688. package/src/custom-select-control/README.md +10 -0
  689. package/src/custom-select-control/index.js +22 -16
  690. package/src/custom-select-control/stories/index.js +1 -1
  691. package/src/custom-select-control/style.scss +0 -12
  692. package/src/custom-select-control/styles.ts +28 -0
  693. package/src/custom-select-control/test/index.js +4 -1
  694. package/src/date-time/constants.ts +1 -0
  695. package/src/date-time/date/index.tsx +310 -185
  696. package/src/date-time/date/styles.ts +92 -27
  697. package/src/date-time/date/test/index.tsx +24 -30
  698. package/src/date-time/date-time/index.tsx +3 -3
  699. package/src/date-time/date-time/styles.ts +9 -0
  700. package/src/date-time/time/index.tsx +23 -19
  701. package/src/date-time/time/styles.ts +1 -0
  702. package/src/date-time/utils.ts +17 -0
  703. package/src/dimension-control/index.js +1 -5
  704. package/src/disabled/index.tsx +80 -0
  705. package/src/disabled/stories/index.tsx +87 -0
  706. package/src/disabled/styles/{disabled-styles.js → disabled-styles.tsx} +0 -0
  707. package/src/disabled/test/index.tsx +174 -0
  708. package/src/disabled/types.ts +13 -0
  709. package/src/drop-zone/index.js +2 -3
  710. package/src/dropdown/index.js +3 -5
  711. package/src/dropdown-menu/index.js +1 -2
  712. package/src/dropdown-menu/index.native.js +0 -13
  713. package/src/dropdown-menu/stories/index.js +13 -2
  714. package/src/dropdown-menu/test/index.js +54 -58
  715. package/src/duotone-picker/custom-duotone-bar.js +1 -1
  716. package/src/duotone-picker/duotone-picker.js +34 -26
  717. package/src/duotone-picker/duotone-swatch.js +12 -5
  718. package/src/duotone-picker/stories/duotone-picker.js +66 -0
  719. package/src/duotone-picker/stories/duotone-swatch.js +32 -0
  720. package/src/focal-point-picker/README.md +3 -6
  721. package/src/focal-point-picker/controls.js +4 -4
  722. package/src/focal-point-picker/focal-point.js +2 -8
  723. package/src/focal-point-picker/grid.js +5 -41
  724. package/src/focal-point-picker/index.js +171 -308
  725. package/src/focal-point-picker/media.js +4 -28
  726. package/src/focal-point-picker/styles/focal-point-picker-style.js +5 -8
  727. package/src/focal-point-picker/styles/focal-point-style.js +0 -1
  728. package/src/focal-point-picker/test/index.js +79 -46
  729. package/src/focal-point-picker/utils.js +2 -6
  730. package/src/focusable-iframe/index.js +5 -0
  731. package/src/font-size-picker/index.js +161 -144
  732. package/src/font-size-picker/stories/index.js +1 -0
  733. package/src/font-size-picker/style.scss +8 -5
  734. package/src/font-size-picker/test/index.js +13 -6
  735. package/src/font-size-picker/test/{util.js → utils.js} +77 -1
  736. package/src/font-size-picker/utils.js +38 -23
  737. package/src/form-token-field/README.md +1 -0
  738. package/src/form-token-field/index.tsx +41 -33
  739. package/src/form-token-field/stories/index.tsx +8 -0
  740. package/src/form-token-field/test/index.tsx +2106 -0
  741. package/src/form-token-field/types.ts +7 -0
  742. package/src/gradient-picker/README.md +9 -0
  743. package/src/gradient-picker/index.js +31 -7
  744. package/src/gradient-picker/stories/index.js +57 -81
  745. package/src/guide/index.js +9 -4
  746. package/src/guide/page-control.js +1 -6
  747. package/src/guide/stories/index.js +12 -11
  748. package/src/guide/test/index.js +191 -37
  749. package/src/higher-order/with-constrained-tabbing/index.js +1 -1
  750. package/src/higher-order/with-notices/test/index.js +4 -2
  751. package/src/higher-order/with-spoken-messages/index.js +2 -0
  752. package/src/higher-order/with-spoken-messages/test/index.js +1 -1
  753. package/src/isolated-event-container/index.js +3 -0
  754. package/src/item-group/styles.ts +3 -3
  755. package/src/menu-group/test/index.js +18 -7
  756. package/src/mobile/bottom-sheet/index.native.js +2 -4
  757. package/src/mobile/global-styles-context/utils.native.js +8 -2
  758. package/src/mobile/image/index.native.js +9 -30
  759. package/src/mobile/picker/index.android.js +10 -4
  760. package/src/mobile/picker/styles.native.scss +4 -4
  761. package/src/modal/index.js +1 -2
  762. package/src/modal/test/index.js +11 -9
  763. package/src/navigable-container/container.js +12 -18
  764. package/src/navigable-container/menu.js +3 -7
  765. package/src/navigable-container/test/menu.js +14 -11
  766. package/src/navigation/menu/menu-title-search.js +1 -2
  767. package/src/navigator/navigator-back-button/hook.ts +0 -3
  768. package/src/navigator/navigator-button/hook.ts +0 -3
  769. package/src/notice/list.js +12 -10
  770. package/src/palette-edit/index.js +15 -10
  771. package/src/palette-edit/style.scss +3 -11
  772. package/src/palette-edit/styles.js +6 -5
  773. package/src/placeholder/README.md +1 -1
  774. package/src/placeholder/style.scss +62 -20
  775. package/src/placeholder/test/index.tsx +174 -0
  776. package/src/popover/index.js +129 -126
  777. package/src/popover/stories/index.js +17 -4
  778. package/src/popover/test/__snapshots__/index.js.snap +6 -6
  779. package/src/popover/test/index.js +129 -36
  780. package/src/popover/utils.js +107 -0
  781. package/src/range-control/index.tsx +3 -0
  782. package/src/range-control/styles/range-control-styles.ts +9 -4
  783. package/src/range-control/types.ts +5 -2
  784. package/src/select-control/chevron-down.tsx +25 -0
  785. package/src/select-control/index.tsx +6 -9
  786. package/src/select-control/styles/select-control-styles.ts +23 -14
  787. package/src/slot-fill/test/slot.js +5 -5
  788. package/src/snackbar/list.js +3 -2
  789. package/src/spinner/index.tsx +2 -0
  790. package/src/style.scss +0 -2
  791. package/src/text/styles.js +1 -1
  792. package/src/text/test/index.tsx +1 -1
  793. package/src/text-highlight/index.tsx +1 -5
  794. package/src/toggle-group-control/stories/index.tsx +127 -0
  795. package/src/toggle-group-control/test/__snapshots__/{index.js.snap → index.tsx.snap} +81 -57
  796. package/src/toggle-group-control/test/{index.js → index.tsx} +2 -4
  797. package/src/toggle-group-control/toggle-group-control/README.md +2 -0
  798. package/src/toggle-group-control/toggle-group-control/component.tsx +21 -11
  799. package/src/toggle-group-control/toggle-group-control/styles.ts +14 -6
  800. package/src/toggle-group-control/toggle-group-control-option/component.tsx +19 -3
  801. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +3 -0
  802. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +18 -0
  803. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +6 -8
  804. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +30 -7
  805. package/src/toggle-group-control/types.ts +74 -59
  806. package/src/toolbar/test/index.js +4 -4
  807. package/src/toolbar-group/test/index.js +9 -15
  808. package/src/tools-panel/styles.ts +2 -2
  809. package/src/tools-panel/test/index.js +3 -2
  810. package/src/tooltip/index.js +1 -5
  811. package/src/tooltip/test/index.js +188 -172
  812. package/src/tree-grid/index.js +4 -9
  813. package/src/ui/context/context-connect.ts +3 -2
  814. package/src/unit-control/index.tsx +2 -2
  815. package/src/unit-control/types.ts +10 -1
  816. package/src/utils/colors-values.js +42 -137
  817. package/src/utils/config-values.js +1 -1
  818. package/src/utils/input/input-control.js +6 -6
  819. package/src/utils/rtl.js +6 -2
  820. package/src/utils/strings.ts +83 -0
  821. package/src/utils/test/strings.js +15 -0
  822. package/tsconfig.json +45 -77
  823. package/tsconfig.tsbuildinfo +1 -1
  824. package/build/custom-gradient-bar/constants.js.map +0 -1
  825. package/build/custom-gradient-bar/control-points.js.map +0 -1
  826. package/build/custom-gradient-bar/index.js.map +0 -1
  827. package/build/custom-gradient-bar/utils.js.map +0 -1
  828. package/build/date-time/date/utils.js +0 -34
  829. package/build/date-time/date/utils.js.map +0 -1
  830. package/build/swatch/index.js +0 -41
  831. package/build/swatch/index.js.map +0 -1
  832. package/build/ui/__storybook-utils/example-grid.js +0 -88
  833. package/build/ui/__storybook-utils/example-grid.js.map +0 -1
  834. package/build/ui/__storybook-utils/index.js +0 -19
  835. package/build/ui/__storybook-utils/index.js.map +0 -1
  836. package/build/ui/__storybook-utils/page.js +0 -43
  837. package/build/ui/__storybook-utils/page.js.map +0 -1
  838. package/build/utils/keyboard.js +0 -41
  839. package/build/utils/keyboard.js.map +0 -1
  840. package/build-module/custom-gradient-bar/constants.js.map +0 -1
  841. package/build-module/custom-gradient-bar/control-points.js.map +0 -1
  842. package/build-module/custom-gradient-bar/index.js.map +0 -1
  843. package/build-module/custom-gradient-bar/utils.js.map +0 -1
  844. package/build-module/date-time/date/utils.js +0 -22
  845. package/build-module/date-time/date/utils.js.map +0 -1
  846. package/build-module/swatch/index.js +0 -30
  847. package/build-module/swatch/index.js.map +0 -1
  848. package/build-module/ui/__storybook-utils/example-grid.js +0 -69
  849. package/build-module/ui/__storybook-utils/example-grid.js.map +0 -1
  850. package/build-module/ui/__storybook-utils/index.js +0 -2
  851. package/build-module/ui/__storybook-utils/index.js.map +0 -1
  852. package/build-module/ui/__storybook-utils/page.js +0 -32
  853. package/build-module/ui/__storybook-utils/page.js.map +0 -1
  854. package/build-module/utils/keyboard.js +0 -33
  855. package/build-module/utils/keyboard.js.map +0 -1
  856. package/build-types/color-picker/color-display.d.ts +0 -13
  857. package/build-types/color-picker/color-display.d.ts.map +0 -1
  858. package/build-types/date-time/date/test/utils.d.ts +0 -2
  859. package/build-types/date-time/date/test/utils.d.ts.map +0 -1
  860. package/build-types/date-time/date/utils.d.ts +0 -15
  861. package/build-types/date-time/date/utils.d.ts.map +0 -1
  862. package/build-types/flyout/context.d.ts +0 -6
  863. package/build-types/flyout/context.d.ts.map +0 -1
  864. package/build-types/flyout/flyout/component.d.ts +0 -21
  865. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  866. package/build-types/flyout/flyout/hook.d.ts +0 -270
  867. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  868. package/build-types/flyout/flyout/index.d.ts +0 -3
  869. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  870. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  871. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  872. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  873. package/build-types/flyout/index.d.ts +0 -2
  874. package/build-types/flyout/styles.d.ts +0 -22
  875. package/build-types/flyout/styles.d.ts.map +0 -1
  876. package/build-types/flyout/types.d.ts +0 -80
  877. package/build-types/flyout/types.d.ts.map +0 -1
  878. package/build-types/flyout/utils.d.ts +0 -8
  879. package/build-types/flyout/utils.d.ts.map +0 -1
  880. package/build-types/form-token-field/test/lib/fixtures.d.ts +0 -26
  881. package/build-types/form-token-field/test/lib/fixtures.d.ts.map +0 -1
  882. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts +0 -21
  883. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts.map +0 -1
  884. package/build-types/swatch/index.d.ts +0 -5
  885. package/build-types/swatch/index.d.ts.map +0 -1
  886. package/build-types/swatch/types.d.ts +0 -11
  887. package/build-types/swatch/types.d.ts.map +0 -1
  888. package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
  889. package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
  890. package/build-types/utils/keyboard.d.ts +0 -12
  891. package/build-types/utils/keyboard.d.ts.map +0 -1
  892. package/src/card/stories/index.js +0 -209
  893. package/src/date-time/date/datepicker.scss +0 -863
  894. package/src/date-time/date/style.scss +0 -85
  895. package/src/date-time/date/test/utils.ts +0 -32
  896. package/src/date-time/date/utils.ts +0 -20
  897. package/src/date-time/style.scss +0 -1
  898. package/src/disabled/index.js +0 -55
  899. package/src/disabled/stories/index.js +0 -61
  900. package/src/disabled/test/index.js +0 -240
  901. package/src/form-token-field/test/index.js +0 -411
  902. package/src/form-token-field/test/lib/fixtures.js +0 -89
  903. package/src/form-token-field/test/lib/token-field-wrapper.tsx +0 -71
  904. package/src/guide/test/page-control.js +0 -43
  905. package/src/menu-group/test/__snapshots__/index.js.snap +0 -23
  906. package/src/placeholder/test/index.js +0 -163
  907. package/src/swatch/index.tsx +0 -22
  908. package/src/swatch/style.scss +0 -21
  909. package/src/swatch/types.ts +0 -11
  910. package/src/toggle-group-control/stories/index.js +0 -203
  911. package/src/tools-panel/test/__snapshots__/index.js.snap +0 -210
  912. package/src/ui/__storybook-utils/example-grid.js +0 -61
  913. package/src/ui/__storybook-utils/index.js +0 -1
  914. package/src/ui/__storybook-utils/page.js +0 -29
  915. package/src/utils/keyboard.js +0 -28
  916. package/src/utils/test/keyboard.js +0 -34
@@ -5,18 +5,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.FocalPointPicker = void 0;
8
+ exports.default = FocalPointPicker;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
12
14
  var _classnames = _interopRequireDefault(require("classnames"));
13
15
 
14
16
  var _i18n = require("@wordpress/i18n");
15
17
 
16
18
  var _compose = require("@wordpress/compose");
17
19
 
18
- var _keycodes = require("@wordpress/keycodes");
19
-
20
20
  var _baseControl = _interopRequireDefault(require("../base-control"));
21
21
 
22
22
  var _controls = _interopRequireDefault(require("./controls"));
@@ -29,10 +29,10 @@ var _media = _interopRequireDefault(require("./media"));
29
29
 
30
30
  var _focalPointPickerStyle = require("./styles/focal-point-picker-style");
31
31
 
32
- var _math = require("../utils/math");
33
-
34
32
  var _utils = require("./utils");
35
33
 
34
+ var _hooks = require("../utils/hooks");
35
+
36
36
  /**
37
37
  * External dependencies
38
38
  */
@@ -44,357 +44,185 @@ var _utils = require("./utils");
44
44
  /**
45
45
  * Internal dependencies
46
46
  */
47
- class FocalPointPicker extends _element.Component {
48
- constructor(props) {
49
- super(...arguments);
50
- this.state = {
51
- isDragging: false,
52
- bounds: _utils.INITIAL_BOUNDS,
53
- percentages: props.value
54
- };
55
- this.containerRef = (0, _element.createRef)();
56
- this.mediaRef = (0, _element.createRef)();
57
- this.onMouseDown = this.startDrag.bind(this);
58
- this.onMouseUp = this.stopDrag.bind(this);
59
- this.onKeyDown = this.onKeyDown.bind(this);
60
- this.onMouseMove = this.doDrag.bind(this);
61
-
62
- this.ifDraggingStop = () => {
63
- if (this.state.isDragging) {
64
- this.stopDrag();
65
- }
66
- };
67
-
68
- this.onChangeAtControls = value => {
69
- this.updateValue(value, () => {
70
- this.props.onChange(this.state.percentages);
71
- });
72
- };
73
-
74
- this.updateBounds = this.updateBounds.bind(this);
75
- this.updateValue = this.updateValue.bind(this);
76
- }
77
-
78
- componentDidMount() {
79
- const {
80
- defaultView
81
- } = this.containerRef.current.ownerDocument;
82
- defaultView.addEventListener('resize', this.updateBounds);
83
- /*
84
- * Set initial bound values.
85
- *
86
- * This is necessary for Safari:
87
- * https://github.com/WordPress/gutenberg/issues/25814
88
- */
89
-
90
- this.updateBounds();
91
- }
92
-
93
- componentDidUpdate(prevProps) {
94
- if (prevProps.url !== this.props.url) {
95
- this.ifDraggingStop();
47
+ const GRID_OVERLAY_TIMEOUT = 600;
48
+
49
+ function FocalPointPicker(_ref) {
50
+ let {
51
+ autoPlay = true,
52
+ className,
53
+ help,
54
+ label,
55
+ onChange,
56
+ onDrag,
57
+ onDragEnd,
58
+ onDragStart,
59
+ resolvePoint,
60
+ url,
61
+ value: valueProp = {
62
+ x: 0.5,
63
+ y: 0.5
96
64
  }
97
- /*
98
- * Handles cases where the incoming value changes.
99
- * An example is the values resetting based on an UNDO action.
100
- */
101
-
102
-
103
- const {
104
- isDragging,
105
- percentages: {
106
- x,
107
- y
108
- }
109
- } = this.state;
110
- const {
111
- value
112
- } = this.props;
113
-
114
- if (!isDragging && (value.x !== x || value.y !== y)) {
115
- this.setState({
116
- percentages: this.props.value
117
- });
65
+ } = _ref;
66
+ const [point, setPoint] = (0, _element.useState)(valueProp);
67
+ const [showGridOverlay, setShowGridOverlay] = (0, _element.useState)(false);
68
+ const {
69
+ startDrag,
70
+ endDrag,
71
+ isDragging
72
+ } = (0, _compose.__experimentalUseDragging)({
73
+ onDragStart: event => {
74
+ dragAreaRef.current.focus();
75
+ const value = getValueWithinDragArea(event);
76
+ onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(value, event);
77
+ setPoint(value);
78
+ },
79
+ onDragMove: event => {
80
+ // Prevents text-selection when dragging.
81
+ event.preventDefault();
82
+ const value = getValueWithinDragArea(event);
83
+ onDrag === null || onDrag === void 0 ? void 0 : onDrag(value, event);
84
+ setPoint(value);
85
+ },
86
+ onDragEnd: event => {
87
+ onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event);
88
+ onChange === null || onChange === void 0 ? void 0 : onChange(point);
118
89
  }
119
- }
90
+ }); // Uses the internal point while dragging or else the value from props.
91
+
92
+ const {
93
+ x,
94
+ y
95
+ } = isDragging ? point : valueProp;
96
+ const dragAreaRef = (0, _element.useRef)();
97
+ const [bounds, setBounds] = (0, _element.useState)(_utils.INITIAL_BOUNDS);
98
+ const refUpdateBounds = (0, _element.useRef)(() => {
99
+ const {
100
+ clientWidth: width,
101
+ clientHeight: height
102
+ } = dragAreaRef.current; // Falls back to initial bounds if the ref has no size. Since styles
103
+ // give the drag area dimensions even when the media has not loaded
104
+ // this should only happen in unit tests (jsdom).
120
105
 
121
- componentWillUnmount() {
106
+ setBounds(width > 0 && height > 0 ? {
107
+ width,
108
+ height
109
+ } : { ..._utils.INITIAL_BOUNDS
110
+ });
111
+ });
112
+ (0, _element.useEffect)(() => {
113
+ const updateBounds = refUpdateBounds.current;
122
114
  const {
123
115
  defaultView
124
- } = this.containerRef.current.ownerDocument;
125
- defaultView.removeEventListener('resize', this.updateBounds);
126
- this.ifDraggingStop();
127
- }
116
+ } = dragAreaRef.current.ownerDocument;
117
+ defaultView.addEventListener('resize', updateBounds);
118
+ return () => defaultView.removeEventListener('resize', updateBounds);
119
+ }, []); // Updates the bounds to cover cases of unspecified media or load failures.
128
120
 
129
- calculateBounds() {
130
- const bounds = _utils.INITIAL_BOUNDS;
121
+ (0, _compose.useIsomorphicLayoutEffect)(() => void refUpdateBounds.current(), []);
131
122
 
132
- if (!this.mediaRef.current) {
133
- return bounds;
134
- } // Prevent division by zero when updateBounds runs in componentDidMount
135
-
136
-
137
- if (this.mediaRef.current.clientWidth === 0 || this.mediaRef.current.clientHeight === 0) {
138
- return bounds;
139
- }
140
-
141
- const dimensions = {
142
- width: this.mediaRef.current.clientWidth,
143
- height: this.mediaRef.current.clientHeight
144
- };
145
- const pickerDimensions = this.pickerDimensions();
146
- const widthRatio = pickerDimensions.width / dimensions.width;
147
- const heightRatio = pickerDimensions.height / dimensions.height;
148
-
149
- if (heightRatio >= widthRatio) {
150
- bounds.width = bounds.right = pickerDimensions.width;
151
- bounds.height = dimensions.height * widthRatio;
152
- bounds.top = (pickerDimensions.height - bounds.height) / 2;
153
- bounds.bottom = bounds.top + bounds.height;
154
- } else {
155
- bounds.height = bounds.bottom = pickerDimensions.height;
156
- bounds.width = dimensions.width * heightRatio;
157
- bounds.left = (pickerDimensions.width - bounds.width) / 2;
158
- bounds.right = bounds.left + bounds.width;
159
- }
160
-
161
- return bounds;
162
- }
163
-
164
- updateValue() {
165
- var _this$props$resolvePo, _this$props$resolvePo2, _this$props;
166
-
167
- let nextValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
168
- let callback = arguments.length > 1 ? arguments[1] : undefined;
169
- const resolvedValue = (_this$props$resolvePo = (_this$props$resolvePo2 = (_this$props = this.props).resolvePoint) === null || _this$props$resolvePo2 === void 0 ? void 0 : _this$props$resolvePo2.call(_this$props, nextValue)) !== null && _this$props$resolvePo !== void 0 ? _this$props$resolvePo : nextValue;
123
+ const getValueWithinDragArea = _ref2 => {
124
+ let {
125
+ clientX,
126
+ clientY,
127
+ shiftKey
128
+ } = _ref2;
170
129
  const {
171
- x,
172
- y
173
- } = resolvedValue;
174
- const nextPercentage = {
175
- x: parseFloat(x).toFixed(2),
176
- y: parseFloat(y).toFixed(2)
177
- };
178
- this.setState({
179
- percentages: nextPercentage
180
- }, callback);
181
- }
182
-
183
- updateBounds() {
184
- this.setState({
185
- bounds: this.calculateBounds()
186
- });
187
- }
130
+ top,
131
+ left
132
+ } = dragAreaRef.current.getBoundingClientRect();
133
+ let nextX = (clientX - left) / bounds.width;
134
+ let nextY = (clientY - top) / bounds.height; // Enables holding shift to jump values by 10%.
188
135
 
189
- startDrag(event) {
190
- var _this$props$onDragSta, _this$props2;
136
+ if (shiftKey) {
137
+ nextX = Math.round(nextX / 0.1) * 0.1;
138
+ nextY = Math.round(nextY / 0.1) * 0.1;
139
+ }
191
140
 
192
- event.persist();
193
- this.containerRef.current.focus();
194
- this.setState({
195
- isDragging: true
141
+ return getFinalValue({
142
+ x: nextX,
143
+ y: nextY
196
144
  });
197
- const {
198
- ownerDocument
199
- } = this.containerRef.current;
200
- ownerDocument.addEventListener('mouseup', this.onMouseUp);
201
- ownerDocument.addEventListener('mousemove', this.onMouseMove);
202
- const value = this.getValueFromPoint({
203
- x: event.pageX,
204
- y: event.pageY
205
- }, event.shiftKey);
206
- this.updateValue(value);
207
- (_this$props$onDragSta = (_this$props2 = this.props).onDragStart) === null || _this$props$onDragSta === void 0 ? void 0 : _this$props$onDragSta.call(_this$props2, value, event);
208
- }
145
+ };
209
146
 
210
- stopDrag(event) {
211
- var _this$props$onDragEnd, _this$props3;
147
+ const getFinalValue = value => {
148
+ var _resolvePoint;
212
149
 
213
- const {
214
- ownerDocument
215
- } = this.containerRef.current;
216
- ownerDocument.removeEventListener('mouseup', this.onMouseUp);
217
- ownerDocument.removeEventListener('mousemove', this.onMouseMove);
218
- this.setState({
219
- isDragging: false
220
- }, () => {
221
- this.props.onChange(this.state.percentages);
222
- });
223
- (_this$props$onDragEnd = (_this$props3 = this.props).onDragEnd) === null || _this$props$onDragEnd === void 0 ? void 0 : _this$props$onDragEnd.call(_this$props3, event);
224
- }
150
+ const resolvedValue = (_resolvePoint = resolvePoint === null || resolvePoint === void 0 ? void 0 : resolvePoint(value)) !== null && _resolvePoint !== void 0 ? _resolvePoint : value;
151
+ resolvedValue.x = Math.max(0, Math.min(resolvedValue.x, 1));
152
+ resolvedValue.y = Math.max(0, Math.min(resolvedValue.y, 1));
153
+ return {
154
+ x: parseFloat(resolvedValue.x).toFixed(2),
155
+ y: parseFloat(resolvedValue.y).toFixed(2)
156
+ };
157
+ };
225
158
 
226
- onKeyDown(event) {
159
+ const arrowKeyStep = event => {
227
160
  const {
228
- keyCode,
161
+ code,
229
162
  shiftKey
230
163
  } = event;
231
- if (![_keycodes.UP, _keycodes.DOWN, _keycodes.LEFT, _keycodes.RIGHT].includes(keyCode)) return;
164
+ if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(code)) return;
232
165
  event.preventDefault();
233
- const next = { ...this.state.percentages
166
+ const value = {
167
+ x,
168
+ y
234
169
  };
235
170
  const step = shiftKey ? 0.1 : 0.01;
236
- const delta = keyCode === _keycodes.UP || keyCode === _keycodes.LEFT ? -1 * step : step;
237
- const axis = keyCode === _keycodes.UP || keyCode === _keycodes.DOWN ? 'y' : 'x';
238
- const value = parseFloat(next[axis]) + delta;
239
- next[axis] = (0, _math.roundClamp)(value, 0, 1, step);
240
- this.updateValue(next, () => {
241
- this.props.onChange(this.state.percentages);
242
- });
243
- }
244
-
245
- doDrag(event) {
246
- var _this$props$onDrag, _this$props4;
247
-
248
- // Prevents text-selection when dragging.
249
- event.preventDefault();
250
- const value = this.getValueFromPoint({
251
- x: event.pageX,
252
- y: event.pageY
253
- }, event.shiftKey);
254
- this.updateValue(value);
255
- (_this$props$onDrag = (_this$props4 = this.props).onDrag) === null || _this$props$onDrag === void 0 ? void 0 : _this$props$onDrag.call(_this$props4, value, event);
256
- }
257
-
258
- getValueFromPoint(point, byTenths) {
259
- const {
260
- bounds
261
- } = this.state;
262
- const pickerDimensions = this.pickerDimensions();
263
- const relativePoint = {
264
- left: point.x - pickerDimensions.left,
265
- top: point.y - pickerDimensions.top
266
- };
267
- const left = Math.max(bounds.left, Math.min(relativePoint.left, bounds.right));
268
- const top = Math.max(bounds.top, Math.min(relativePoint.top, bounds.bottom));
269
- let nextX = (left - bounds.left) / (pickerDimensions.width - bounds.left * 2);
270
- let nextY = (top - bounds.top) / (pickerDimensions.height - bounds.top * 2); // Enables holding shift to jump values by 10%
271
-
272
- const step = byTenths ? 0.1 : 0.01;
273
- nextX = (0, _math.roundClamp)(nextX, 0, 1, step);
274
- nextY = (0, _math.roundClamp)(nextY, 0, 1, step);
275
- return {
276
- x: nextX,
277
- y: nextY
278
- };
279
- }
280
-
281
- pickerDimensions() {
282
- const containerNode = this.containerRef.current;
283
-
284
- if (!containerNode) {
285
- return {
286
- width: 0,
287
- height: 0,
288
- left: 0,
289
- top: 0
290
- };
291
- }
292
-
293
- const {
294
- clientHeight,
295
- clientWidth
296
- } = containerNode;
297
- const {
298
- top,
299
- left
300
- } = containerNode.getBoundingClientRect();
301
- return {
302
- width: clientWidth,
303
- height: clientHeight,
304
- top: top + document.body.scrollTop,
305
- left
306
- };
307
- }
308
-
309
- iconCoordinates() {
310
- const {
311
- bounds,
312
- percentages: {
313
- x,
314
- y
315
- }
316
- } = this.state;
317
-
318
- if (bounds.left === undefined || bounds.top === undefined) {
319
- return {
320
- left: '50%',
321
- top: '50%'
322
- };
171
+ const delta = code === 'ArrowUp' || code === 'ArrowLeft' ? -1 * step : step;
172
+ const axis = code === 'ArrowUp' || code === 'ArrowDown' ? 'y' : 'x';
173
+ value[axis] = parseFloat(value[axis]) + delta;
174
+ onChange === null || onChange === void 0 ? void 0 : onChange(getFinalValue(value));
175
+ };
176
+
177
+ const focalPointPosition = {
178
+ left: x * bounds.width,
179
+ top: y * bounds.height
180
+ };
181
+ const classes = (0, _classnames.default)('components-focal-point-picker-control', className);
182
+ const instanceId = (0, _compose.useInstanceId)(FocalPointPicker);
183
+ const id = `inspector-focal-point-picker-control-${instanceId}`;
184
+ (0, _hooks.useUpdateEffect)(() => {
185
+ setShowGridOverlay(true);
186
+ const timeout = window.setTimeout(() => {
187
+ setShowGridOverlay(false);
188
+ }, GRID_OVERLAY_TIMEOUT);
189
+ return () => window.clearTimeout(timeout);
190
+ }, [x, y]);
191
+ return (0, _element.createElement)(_baseControl.default, {
192
+ label: label,
193
+ id: id,
194
+ help: help,
195
+ className: classes
196
+ }, (0, _element.createElement)(_focalPointPickerStyle.MediaWrapper, {
197
+ className: "components-focal-point-picker-wrapper"
198
+ }, (0, _element.createElement)(_focalPointPickerStyle.MediaContainer, {
199
+ className: "components-focal-point-picker",
200
+ onKeyDown: arrowKeyStep,
201
+ onMouseDown: startDrag,
202
+ onBlur: () => {
203
+ if (isDragging) endDrag();
204
+ },
205
+ ref: dragAreaRef,
206
+ role: "button",
207
+ tabIndex: "-1"
208
+ }, (0, _element.createElement)(_grid.default, {
209
+ bounds: bounds,
210
+ showOverlay: showGridOverlay
211
+ }), (0, _element.createElement)(_media.default, {
212
+ alt: (0, _i18n.__)('Media preview'),
213
+ autoPlay: autoPlay,
214
+ onLoad: refUpdateBounds.current,
215
+ src: url
216
+ }), (0, _element.createElement)(_focalPoint.default, (0, _extends2.default)({}, focalPointPosition, {
217
+ isDragging: isDragging
218
+ })))), (0, _element.createElement)(_controls.default, {
219
+ point: {
220
+ x,
221
+ y
222
+ },
223
+ onChange: value => {
224
+ onChange === null || onChange === void 0 ? void 0 : onChange(getFinalValue(value));
323
225
  }
324
-
325
- const {
326
- width,
327
- height
328
- } = this.pickerDimensions();
329
- return {
330
- left: x * (width - bounds.left * 2) + bounds.left,
331
- top: y * (height - bounds.top * 2) + bounds.top
332
- };
333
- }
334
-
335
- render() {
336
- const {
337
- autoPlay,
338
- className,
339
- help,
340
- instanceId,
341
- label,
342
- url
343
- } = this.props;
344
- const {
345
- bounds,
346
- isDragging,
347
- percentages
348
- } = this.state;
349
- const iconCoordinates = this.iconCoordinates();
350
- const classes = (0, _classnames.default)('components-focal-point-picker-control', className);
351
- const id = `inspector-focal-point-picker-control-${instanceId}`;
352
- return (0, _element.createElement)(_baseControl.default, {
353
- label: label,
354
- id: id,
355
- help: help,
356
- className: classes
357
- }, (0, _element.createElement)(_focalPointPickerStyle.MediaWrapper, {
358
- className: "components-focal-point-picker-wrapper"
359
- }, (0, _element.createElement)(_focalPointPickerStyle.MediaContainer, {
360
- className: "components-focal-point-picker",
361
- onKeyDown: this.onKeyDown,
362
- onMouseDown: this.onMouseDown,
363
- onBlur: this.ifDraggingStop,
364
- ref: this.containerRef,
365
- role: "button",
366
- tabIndex: "-1"
367
- }, (0, _element.createElement)(_grid.default, {
368
- bounds: bounds,
369
- value: percentages.x + percentages.y
370
- }), (0, _element.createElement)(_media.default, {
371
- alt: (0, _i18n.__)('Media preview'),
372
- autoPlay: autoPlay,
373
- mediaRef: this.mediaRef,
374
- onLoad: this.updateBounds,
375
- src: url
376
- }), (0, _element.createElement)(_focalPoint.default, {
377
- coordinates: iconCoordinates,
378
- isDragging: isDragging
379
- }))), (0, _element.createElement)(_controls.default, {
380
- percentages: percentages,
381
- onChange: this.onChangeAtControls
382
- }));
383
- }
384
-
226
+ }));
385
227
  }
386
-
387
- exports.FocalPointPicker = FocalPointPicker;
388
- FocalPointPicker.defaultProps = {
389
- autoPlay: true,
390
- value: {
391
- x: 0.5,
392
- y: 0.5
393
- },
394
- url: null
395
- };
396
-
397
- var _default = (0, _compose.withInstanceId)(FocalPointPicker);
398
-
399
- exports.default = _default;
400
228
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/focal-point-picker/index.js"],"names":["FocalPointPicker","Component","constructor","props","arguments","state","isDragging","bounds","INITIAL_BOUNDS","percentages","value","containerRef","mediaRef","onMouseDown","startDrag","bind","onMouseUp","stopDrag","onKeyDown","onMouseMove","doDrag","ifDraggingStop","onChangeAtControls","updateValue","onChange","updateBounds","componentDidMount","defaultView","current","ownerDocument","addEventListener","componentDidUpdate","prevProps","url","x","y","setState","componentWillUnmount","removeEventListener","calculateBounds","clientWidth","clientHeight","dimensions","width","height","pickerDimensions","widthRatio","heightRatio","right","top","bottom","left","nextValue","callback","resolvedValue","resolvePoint","nextPercentage","parseFloat","toFixed","event","persist","focus","getValueFromPoint","pageX","pageY","shiftKey","onDragStart","onDragEnd","keyCode","UP","DOWN","LEFT","RIGHT","includes","preventDefault","next","step","delta","axis","onDrag","point","byTenths","relativePoint","Math","max","min","nextX","nextY","containerNode","getBoundingClientRect","document","body","scrollTop","iconCoordinates","undefined","render","autoPlay","className","help","instanceId","label","classes","id","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\nimport { UP, DOWN, LEFT, RIGHT } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport Controls from './controls';\nimport FocalPoint from './focal-point';\nimport Grid from './grid';\nimport Media from './media';\nimport {\n\tMediaWrapper,\n\tMediaContainer,\n} from './styles/focal-point-picker-style';\nimport { roundClamp } from '../utils/math';\nimport { INITIAL_BOUNDS } from './utils';\n\nexport class FocalPointPicker extends Component {\n\tconstructor( props ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = {\n\t\t\tisDragging: false,\n\t\t\tbounds: INITIAL_BOUNDS,\n\t\t\tpercentages: props.value,\n\t\t};\n\n\t\tthis.containerRef = createRef();\n\t\tthis.mediaRef = createRef();\n\n\t\tthis.onMouseDown = this.startDrag.bind( this );\n\t\tthis.onMouseUp = this.stopDrag.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.onMouseMove = this.doDrag.bind( this );\n\t\tthis.ifDraggingStop = () => {\n\t\t\tif ( this.state.isDragging ) {\n\t\t\t\tthis.stopDrag();\n\t\t\t}\n\t\t};\n\t\tthis.onChangeAtControls = ( value ) => {\n\t\t\tthis.updateValue( value, () => {\n\t\t\t\tthis.props.onChange( this.state.percentages );\n\t\t\t} );\n\t\t};\n\n\t\tthis.updateBounds = this.updateBounds.bind( this );\n\t\tthis.updateValue = this.updateValue.bind( this );\n\t}\n\tcomponentDidMount() {\n\t\tconst { defaultView } = this.containerRef.current.ownerDocument;\n\t\tdefaultView.addEventListener( 'resize', this.updateBounds );\n\n\t\t/*\n\t\t * Set initial bound values.\n\t\t *\n\t\t * This is necessary for Safari:\n\t\t * https://github.com/WordPress/gutenberg/issues/25814\n\t\t */\n\t\tthis.updateBounds();\n\t}\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( prevProps.url !== this.props.url ) {\n\t\t\tthis.ifDraggingStop();\n\t\t}\n\t\t/*\n\t\t * Handles cases where the incoming value changes.\n\t\t * An example is the values resetting based on an UNDO action.\n\t\t */\n\t\tconst {\n\t\t\tisDragging,\n\t\t\tpercentages: { x, y },\n\t\t} = this.state;\n\t\tconst { value } = this.props;\n\t\tif ( ! isDragging && ( value.x !== x || value.y !== y ) ) {\n\t\t\tthis.setState( { percentages: this.props.value } );\n\t\t}\n\t}\n\tcomponentWillUnmount() {\n\t\tconst { defaultView } = this.containerRef.current.ownerDocument;\n\t\tdefaultView.removeEventListener( 'resize', this.updateBounds );\n\t\tthis.ifDraggingStop();\n\t}\n\tcalculateBounds() {\n\t\tconst bounds = INITIAL_BOUNDS;\n\n\t\tif ( ! this.mediaRef.current ) {\n\t\t\treturn bounds;\n\t\t}\n\n\t\t// Prevent division by zero when updateBounds runs in componentDidMount\n\t\tif (\n\t\t\tthis.mediaRef.current.clientWidth === 0 ||\n\t\t\tthis.mediaRef.current.clientHeight === 0\n\t\t) {\n\t\t\treturn bounds;\n\t\t}\n\n\t\tconst dimensions = {\n\t\t\twidth: this.mediaRef.current.clientWidth,\n\t\t\theight: this.mediaRef.current.clientHeight,\n\t\t};\n\n\t\tconst pickerDimensions = this.pickerDimensions();\n\n\t\tconst widthRatio = pickerDimensions.width / dimensions.width;\n\t\tconst heightRatio = pickerDimensions.height / dimensions.height;\n\n\t\tif ( heightRatio >= widthRatio ) {\n\t\t\tbounds.width = bounds.right = pickerDimensions.width;\n\t\t\tbounds.height = dimensions.height * widthRatio;\n\t\t\tbounds.top = ( pickerDimensions.height - bounds.height ) / 2;\n\t\t\tbounds.bottom = bounds.top + bounds.height;\n\t\t} else {\n\t\t\tbounds.height = bounds.bottom = pickerDimensions.height;\n\t\t\tbounds.width = dimensions.width * heightRatio;\n\t\t\tbounds.left = ( pickerDimensions.width - bounds.width ) / 2;\n\t\t\tbounds.right = bounds.left + bounds.width;\n\t\t}\n\t\treturn bounds;\n\t}\n\tupdateValue( nextValue = {}, callback ) {\n\t\tconst resolvedValue =\n\t\t\tthis.props.resolvePoint?.( nextValue ) ?? nextValue;\n\n\t\tconst { x, y } = resolvedValue;\n\n\t\tconst nextPercentage = {\n\t\t\tx: parseFloat( x ).toFixed( 2 ),\n\t\t\ty: parseFloat( y ).toFixed( 2 ),\n\t\t};\n\n\t\tthis.setState( { percentages: nextPercentage }, callback );\n\t}\n\tupdateBounds() {\n\t\tthis.setState( {\n\t\t\tbounds: this.calculateBounds(),\n\t\t} );\n\t}\n\tstartDrag( event ) {\n\t\tevent.persist();\n\t\tthis.containerRef.current.focus();\n\t\tthis.setState( { isDragging: true } );\n\t\tconst { ownerDocument } = this.containerRef.current;\n\t\townerDocument.addEventListener( 'mouseup', this.onMouseUp );\n\t\townerDocument.addEventListener( 'mousemove', this.onMouseMove );\n\t\tconst value = this.getValueFromPoint(\n\t\t\t{ x: event.pageX, y: event.pageY },\n\t\t\tevent.shiftKey\n\t\t);\n\t\tthis.updateValue( value );\n\t\tthis.props.onDragStart?.( value, event );\n\t}\n\tstopDrag( event ) {\n\t\tconst { ownerDocument } = this.containerRef.current;\n\t\townerDocument.removeEventListener( 'mouseup', this.onMouseUp );\n\t\townerDocument.removeEventListener( 'mousemove', this.onMouseMove );\n\t\tthis.setState( { isDragging: false }, () => {\n\t\t\tthis.props.onChange( this.state.percentages );\n\t\t} );\n\t\tthis.props.onDragEnd?.( event );\n\t}\n\tonKeyDown( event ) {\n\t\tconst { keyCode, shiftKey } = event;\n\t\tif ( ! [ UP, DOWN, LEFT, RIGHT ].includes( keyCode ) ) return;\n\n\t\tevent.preventDefault();\n\n\t\tconst next = { ...this.state.percentages };\n\t\tconst step = shiftKey ? 0.1 : 0.01;\n\t\tconst delta = keyCode === UP || keyCode === LEFT ? -1 * step : step;\n\t\tconst axis = keyCode === UP || keyCode === DOWN ? 'y' : 'x';\n\t\tconst value = parseFloat( next[ axis ] ) + delta;\n\n\t\tnext[ axis ] = roundClamp( value, 0, 1, step );\n\n\t\tthis.updateValue( next, () => {\n\t\t\tthis.props.onChange( this.state.percentages );\n\t\t} );\n\t}\n\tdoDrag( event ) {\n\t\t// Prevents text-selection when dragging.\n\t\tevent.preventDefault();\n\t\tconst value = this.getValueFromPoint(\n\t\t\t{ x: event.pageX, y: event.pageY },\n\t\t\tevent.shiftKey\n\t\t);\n\t\tthis.updateValue( value );\n\t\tthis.props.onDrag?.( value, event );\n\t}\n\tgetValueFromPoint( point, byTenths ) {\n\t\tconst { bounds } = this.state;\n\n\t\tconst pickerDimensions = this.pickerDimensions();\n\t\tconst relativePoint = {\n\t\t\tleft: point.x - pickerDimensions.left,\n\t\t\ttop: point.y - pickerDimensions.top,\n\t\t};\n\n\t\tconst left = Math.max(\n\t\t\tbounds.left,\n\t\t\tMath.min( relativePoint.left, bounds.right )\n\t\t);\n\t\tconst top = Math.max(\n\t\t\tbounds.top,\n\t\t\tMath.min( relativePoint.top, bounds.bottom )\n\t\t);\n\n\t\tlet nextX =\n\t\t\t( left - bounds.left ) /\n\t\t\t( pickerDimensions.width - bounds.left * 2 );\n\t\tlet nextY =\n\t\t\t( top - bounds.top ) / ( pickerDimensions.height - bounds.top * 2 );\n\n\t\t// Enables holding shift to jump values by 10%\n\t\tconst step = byTenths ? 0.1 : 0.01;\n\n\t\tnextX = roundClamp( nextX, 0, 1, step );\n\t\tnextY = roundClamp( nextY, 0, 1, step );\n\n\t\treturn { x: nextX, y: nextY };\n\t}\n\tpickerDimensions() {\n\t\tconst containerNode = this.containerRef.current;\n\n\t\tif ( ! containerNode ) {\n\t\t\treturn {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t};\n\t\t}\n\n\t\tconst { clientHeight, clientWidth } = containerNode;\n\t\tconst { top, left } = containerNode.getBoundingClientRect();\n\n\t\treturn {\n\t\t\twidth: clientWidth,\n\t\t\theight: clientHeight,\n\t\t\ttop: top + document.body.scrollTop,\n\t\t\tleft,\n\t\t};\n\t}\n\ticonCoordinates() {\n\t\tconst {\n\t\t\tbounds,\n\t\t\tpercentages: { x, y },\n\t\t} = this.state;\n\n\t\tif ( bounds.left === undefined || bounds.top === undefined ) {\n\t\t\treturn {\n\t\t\t\tleft: '50%',\n\t\t\t\ttop: '50%',\n\t\t\t};\n\t\t}\n\n\t\tconst { width, height } = this.pickerDimensions();\n\t\treturn {\n\t\t\tleft: x * ( width - bounds.left * 2 ) + bounds.left,\n\t\t\ttop: y * ( height - bounds.top * 2 ) + bounds.top,\n\t\t};\n\t}\n\trender() {\n\t\tconst { autoPlay, className, help, instanceId, label, url } =\n\t\t\tthis.props;\n\t\tconst { bounds, isDragging, percentages } = this.state;\n\t\tconst iconCoordinates = this.iconCoordinates();\n\n\t\tconst classes = classnames(\n\t\t\t'components-focal-point-picker-control',\n\t\t\tclassName\n\t\t);\n\n\t\tconst id = `inspector-focal-point-picker-control-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<BaseControl\n\t\t\t\tlabel={ label }\n\t\t\t\tid={ id }\n\t\t\t\thelp={ help }\n\t\t\t\tclassName={ classes }\n\t\t\t>\n\t\t\t\t<MediaWrapper className=\"components-focal-point-picker-wrapper\">\n\t\t\t\t\t<MediaContainer\n\t\t\t\t\t\tclassName=\"components-focal-point-picker\"\n\t\t\t\t\t\tonKeyDown={ this.onKeyDown }\n\t\t\t\t\t\tonMouseDown={ this.onMouseDown }\n\t\t\t\t\t\tonBlur={ this.ifDraggingStop }\n\t\t\t\t\t\tref={ this.containerRef }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\tbounds={ bounds }\n\t\t\t\t\t\t\tvalue={ percentages.x + percentages.y }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Media\n\t\t\t\t\t\t\talt={ __( 'Media preview' ) }\n\t\t\t\t\t\t\tautoPlay={ autoPlay }\n\t\t\t\t\t\t\tmediaRef={ this.mediaRef }\n\t\t\t\t\t\t\tonLoad={ this.updateBounds }\n\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<FocalPoint\n\t\t\t\t\t\t\tcoordinates={ iconCoordinates }\n\t\t\t\t\t\t\tisDragging={ isDragging }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MediaContainer>\n\t\t\t\t</MediaWrapper>\n\t\t\t\t<Controls\n\t\t\t\t\tpercentages={ percentages }\n\t\t\t\t\tonChange={ this.onChangeAtControls }\n\t\t\t\t/>\n\t\t\t</BaseControl>\n\t\t);\n\t}\n}\n\nFocalPointPicker.defaultProps = {\n\tautoPlay: true,\n\tvalue: {\n\t\tx: 0.5,\n\t\ty: 0.5,\n\t},\n\turl: null,\n};\n\nexport default withInstanceId( FocalPointPicker );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/focal-point-picker/index.js"],"names":["GRID_OVERLAY_TIMEOUT","FocalPointPicker","autoPlay","className","help","label","onChange","onDrag","onDragEnd","onDragStart","resolvePoint","url","value","valueProp","x","y","point","setPoint","showGridOverlay","setShowGridOverlay","startDrag","endDrag","isDragging","event","dragAreaRef","current","focus","getValueWithinDragArea","onDragMove","preventDefault","bounds","setBounds","INITIAL_BOUNDS","refUpdateBounds","clientWidth","width","clientHeight","height","updateBounds","defaultView","ownerDocument","addEventListener","removeEventListener","clientX","clientY","shiftKey","top","left","getBoundingClientRect","nextX","nextY","Math","round","getFinalValue","resolvedValue","max","min","parseFloat","toFixed","arrowKeyStep","code","includes","step","delta","axis","focalPointPosition","classes","instanceId","id","timeout","window","setTimeout","clearTimeout"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\t__experimentalUseDragging as useDragging,\n\tuseInstanceId,\n\tuseIsomorphicLayoutEffect,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport Controls from './controls';\nimport FocalPoint from './focal-point';\nimport Grid from './grid';\nimport Media from './media';\nimport {\n\tMediaWrapper,\n\tMediaContainer,\n} from './styles/focal-point-picker-style';\nimport { INITIAL_BOUNDS } from './utils';\nimport { useUpdateEffect } from '../utils/hooks';\n\nconst GRID_OVERLAY_TIMEOUT = 600;\n\nexport default function FocalPointPicker( {\n\tautoPlay = true,\n\tclassName,\n\thelp,\n\tlabel,\n\tonChange,\n\tonDrag,\n\tonDragEnd,\n\tonDragStart,\n\tresolvePoint,\n\turl,\n\tvalue: valueProp = {\n\t\tx: 0.5,\n\t\ty: 0.5,\n\t},\n} ) {\n\tconst [ point, setPoint ] = useState( valueProp );\n\tconst [ showGridOverlay, setShowGridOverlay ] = useState( false );\n\n\tconst { startDrag, endDrag, isDragging } = useDragging( {\n\t\tonDragStart: ( event ) => {\n\t\t\tdragAreaRef.current.focus();\n\t\t\tconst value = getValueWithinDragArea( event );\n\t\t\tonDragStart?.( value, event );\n\t\t\tsetPoint( value );\n\t\t},\n\t\tonDragMove: ( event ) => {\n\t\t\t// Prevents text-selection when dragging.\n\t\t\tevent.preventDefault();\n\t\t\tconst value = getValueWithinDragArea( event );\n\t\t\tonDrag?.( value, event );\n\t\t\tsetPoint( value );\n\t\t},\n\t\tonDragEnd: ( event ) => {\n\t\t\tonDragEnd?.( event );\n\t\t\tonChange?.( point );\n\t\t},\n\t} );\n\n\t// Uses the internal point while dragging or else the value from props.\n\tconst { x, y } = isDragging ? point : valueProp;\n\n\tconst dragAreaRef = useRef();\n\tconst [ bounds, setBounds ] = useState( INITIAL_BOUNDS );\n\tconst refUpdateBounds = useRef( () => {\n\t\tconst { clientWidth: width, clientHeight: height } =\n\t\t\tdragAreaRef.current;\n\t\t// Falls back to initial bounds if the ref has no size. Since styles\n\t\t// give the drag area dimensions even when the media has not loaded\n\t\t// this should only happen in unit tests (jsdom).\n\t\tsetBounds(\n\t\t\twidth > 0 && height > 0 ? { width, height } : { ...INITIAL_BOUNDS }\n\t\t);\n\t} );\n\n\tuseEffect( () => {\n\t\tconst updateBounds = refUpdateBounds.current;\n\t\tconst { defaultView } = dragAreaRef.current.ownerDocument;\n\t\tdefaultView.addEventListener( 'resize', updateBounds );\n\t\treturn () => defaultView.removeEventListener( 'resize', updateBounds );\n\t}, [] );\n\n\t// Updates the bounds to cover cases of unspecified media or load failures.\n\tuseIsomorphicLayoutEffect( () => void refUpdateBounds.current(), [] );\n\n\tconst getValueWithinDragArea = ( { clientX, clientY, shiftKey } ) => {\n\t\tconst { top, left } = dragAreaRef.current.getBoundingClientRect();\n\t\tlet nextX = ( clientX - left ) / bounds.width;\n\t\tlet nextY = ( clientY - top ) / bounds.height;\n\t\t// Enables holding shift to jump values by 10%.\n\t\tif ( shiftKey ) {\n\t\t\tnextX = Math.round( nextX / 0.1 ) * 0.1;\n\t\t\tnextY = Math.round( nextY / 0.1 ) * 0.1;\n\t\t}\n\t\treturn getFinalValue( { x: nextX, y: nextY } );\n\t};\n\n\tconst getFinalValue = ( value ) => {\n\t\tconst resolvedValue = resolvePoint?.( value ) ?? value;\n\t\tresolvedValue.x = Math.max( 0, Math.min( resolvedValue.x, 1 ) );\n\t\tresolvedValue.y = Math.max( 0, Math.min( resolvedValue.y, 1 ) );\n\t\treturn {\n\t\t\tx: parseFloat( resolvedValue.x ).toFixed( 2 ),\n\t\t\ty: parseFloat( resolvedValue.y ).toFixed( 2 ),\n\t\t};\n\t};\n\n\tconst arrowKeyStep = ( event ) => {\n\t\tconst { code, shiftKey } = event;\n\t\tif (\n\t\t\t! [ 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight' ].includes(\n\t\t\t\tcode\n\t\t\t)\n\t\t)\n\t\t\treturn;\n\n\t\tevent.preventDefault();\n\t\tconst value = { x, y };\n\t\tconst step = shiftKey ? 0.1 : 0.01;\n\t\tconst delta =\n\t\t\tcode === 'ArrowUp' || code === 'ArrowLeft' ? -1 * step : step;\n\t\tconst axis = code === 'ArrowUp' || code === 'ArrowDown' ? 'y' : 'x';\n\t\tvalue[ axis ] = parseFloat( value[ axis ] ) + delta;\n\t\tonChange?.( getFinalValue( value ) );\n\t};\n\n\tconst focalPointPosition = {\n\t\tleft: x * bounds.width,\n\t\ttop: y * bounds.height,\n\t};\n\n\tconst classes = classnames(\n\t\t'components-focal-point-picker-control',\n\t\tclassName\n\t);\n\n\tconst instanceId = useInstanceId( FocalPointPicker );\n\tconst id = `inspector-focal-point-picker-control-${ instanceId }`;\n\n\tuseUpdateEffect( () => {\n\t\tsetShowGridOverlay( true );\n\t\tconst timeout = window.setTimeout( () => {\n\t\t\tsetShowGridOverlay( false );\n\t\t}, GRID_OVERLAY_TIMEOUT );\n\n\t\treturn () => window.clearTimeout( timeout );\n\t}, [ x, y ] );\n\n\treturn (\n\t\t<BaseControl\n\t\t\tlabel={ label }\n\t\t\tid={ id }\n\t\t\thelp={ help }\n\t\t\tclassName={ classes }\n\t\t>\n\t\t\t<MediaWrapper className=\"components-focal-point-picker-wrapper\">\n\t\t\t\t<MediaContainer\n\t\t\t\t\tclassName=\"components-focal-point-picker\"\n\t\t\t\t\tonKeyDown={ arrowKeyStep }\n\t\t\t\t\tonMouseDown={ startDrag }\n\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\tif ( isDragging ) endDrag();\n\t\t\t\t\t} }\n\t\t\t\t\tref={ dragAreaRef }\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t>\n\t\t\t\t\t<Grid bounds={ bounds } showOverlay={ showGridOverlay } />\n\t\t\t\t\t<Media\n\t\t\t\t\t\talt={ __( 'Media preview' ) }\n\t\t\t\t\t\tautoPlay={ autoPlay }\n\t\t\t\t\t\tonLoad={ refUpdateBounds.current }\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t/>\n\t\t\t\t\t<FocalPoint\n\t\t\t\t\t\t{ ...focalPointPosition }\n\t\t\t\t\t\tisDragging={ isDragging }\n\t\t\t\t\t/>\n\t\t\t\t</MediaContainer>\n\t\t\t</MediaWrapper>\n\t\t\t<Controls\n\t\t\t\tpoint={ { x, y } }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tonChange?.( getFinalValue( value ) );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</BaseControl>\n\t);\n}\n"]}