@wordpress/components 33.0.1-next.v.202604201441.0 → 33.1.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 (870) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/build/alignment-matrix-control/cell.cjs +79 -5
  3. package/build/alignment-matrix-control/cell.cjs.map +3 -3
  4. package/build/alignment-matrix-control/index.cjs +79 -5
  5. package/build/alignment-matrix-control/index.cjs.map +3 -3
  6. package/build/angle-picker-control/angle-circle.cjs +79 -5
  7. package/build/angle-picker-control/angle-circle.cjs.map +3 -3
  8. package/build/autocomplete/autocompleter-ui.cjs.map +2 -2
  9. package/build/color-palette/index.cjs +14 -8
  10. package/build/color-palette/index.cjs.map +2 -2
  11. package/build/color-palette/utils.cjs +9 -2
  12. package/build/color-palette/utils.cjs.map +2 -2
  13. package/build/color-picker/hex-input.cjs +1 -1
  14. package/build/color-picker/hex-input.cjs.map +2 -2
  15. package/build/custom-gradient-picker/index.cjs.map +2 -2
  16. package/build/focal-point-picker/index.cjs.map +2 -2
  17. package/build/form-token-field/index.cjs +22 -6
  18. package/build/form-token-field/index.cjs.map +3 -3
  19. package/build/form-token-field/token-input.cjs +1 -1
  20. package/build/form-token-field/token-input.cjs.map +2 -2
  21. package/build/menu/popover.cjs +7 -3
  22. package/build/menu/popover.cjs.map +2 -2
  23. package/build/menu/styles.cjs +39 -16
  24. package/build/menu/styles.cjs.map +2 -2
  25. package/build/modal/index.cjs +1 -5
  26. package/build/modal/index.cjs.map +2 -2
  27. package/build/modal/use-modal-exit-animation.cjs +52 -41
  28. package/build/modal/use-modal-exit-animation.cjs.map +2 -2
  29. package/build/palette-edit/index.cjs.map +2 -2
  30. package/build/slot-fill/fill.cjs +2 -2
  31. package/build/slot-fill/fill.cjs.map +2 -2
  32. package/build/style-provider/index.cjs +82 -3
  33. package/build/style-provider/index.cjs.map +4 -4
  34. package/build/text/styles.cjs +7 -7
  35. package/build/text/styles.cjs.map +2 -2
  36. package/build/utils/breakpoint.cjs.map +1 -1
  37. package/build/utils/config-values.cjs +3 -0
  38. package/build/utils/config-values.cjs.map +2 -2
  39. package/build/utils/dropdown-motion.cjs +2 -2
  40. package/build/utils/dropdown-motion.cjs.map +2 -2
  41. package/build/utils/font.cjs.map +1 -1
  42. package/build/visually-hidden/component.cjs +1 -0
  43. package/build/visually-hidden/component.cjs.map +2 -2
  44. package/build-module/alignment-matrix-control/cell.mjs +79 -5
  45. package/build-module/alignment-matrix-control/cell.mjs.map +3 -3
  46. package/build-module/alignment-matrix-control/index.mjs +79 -5
  47. package/build-module/alignment-matrix-control/index.mjs.map +3 -3
  48. package/build-module/angle-picker-control/angle-circle.mjs +79 -5
  49. package/build-module/angle-picker-control/angle-circle.mjs.map +3 -3
  50. package/build-module/autocomplete/autocompleter-ui.mjs.map +2 -2
  51. package/build-module/color-palette/index.mjs +14 -8
  52. package/build-module/color-palette/index.mjs.map +2 -2
  53. package/build-module/color-palette/utils.mjs +9 -2
  54. package/build-module/color-palette/utils.mjs.map +2 -2
  55. package/build-module/color-picker/hex-input.mjs +1 -1
  56. package/build-module/color-picker/hex-input.mjs.map +2 -2
  57. package/build-module/custom-gradient-picker/index.mjs.map +2 -2
  58. package/build-module/focal-point-picker/index.mjs.map +2 -2
  59. package/build-module/form-token-field/index.mjs +22 -6
  60. package/build-module/form-token-field/index.mjs.map +2 -2
  61. package/build-module/form-token-field/token-input.mjs +1 -1
  62. package/build-module/form-token-field/token-input.mjs.map +2 -2
  63. package/build-module/menu/popover.mjs +7 -3
  64. package/build-module/menu/popover.mjs.map +2 -2
  65. package/build-module/menu/styles.mjs +37 -16
  66. package/build-module/menu/styles.mjs.map +2 -2
  67. package/build-module/modal/index.mjs +1 -5
  68. package/build-module/modal/index.mjs.map +2 -2
  69. package/build-module/modal/use-modal-exit-animation.mjs +52 -41
  70. package/build-module/modal/use-modal-exit-animation.mjs.map +2 -2
  71. package/build-module/palette-edit/index.mjs.map +2 -2
  72. package/build-module/slot-fill/fill.mjs +2 -2
  73. package/build-module/slot-fill/fill.mjs.map +2 -2
  74. package/build-module/style-provider/index.mjs +82 -3
  75. package/build-module/style-provider/index.mjs.map +4 -4
  76. package/build-module/text/styles.mjs +7 -7
  77. package/build-module/text/styles.mjs.map +2 -2
  78. package/build-module/utils/breakpoint.mjs.map +1 -1
  79. package/build-module/utils/config-values.mjs +3 -0
  80. package/build-module/utils/config-values.mjs.map +2 -2
  81. package/build-module/utils/dropdown-motion.mjs +2 -2
  82. package/build-module/utils/dropdown-motion.mjs.map +2 -2
  83. package/build-module/utils/font.mjs.map +1 -1
  84. package/build-module/visually-hidden/component.mjs +1 -0
  85. package/build-module/visually-hidden/component.mjs.map +2 -2
  86. package/build-style/style-rtl.css +90 -34
  87. package/build-style/style.css +90 -34
  88. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
  89. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  90. package/build-types/alignment-matrix-control/stories/index.story.d.ts +1 -1
  91. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  92. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  93. package/build-types/angle-picker-control/index.d.ts +1 -1
  94. package/build-types/angle-picker-control/index.d.ts.map +1 -1
  95. package/build-types/angle-picker-control/stories/index.story.d.ts +1 -1
  96. package/build-types/angle-picker-control/stories/index.story.d.ts.map +1 -1
  97. package/build-types/animate/index.d.ts.map +1 -1
  98. package/build-types/animate/stories/index.story.d.ts.map +1 -1
  99. package/build-types/autocomplete/autocompleter-ui.d.ts +1 -1
  100. package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
  101. package/build-types/autocomplete/get-default-use-items.d.ts.map +1 -1
  102. package/build-types/autocomplete/index.d.ts +3 -3
  103. package/build-types/autocomplete/index.d.ts.map +1 -1
  104. package/build-types/badge/index.d.ts.map +1 -1
  105. package/build-types/badge/stories/index.story.d.ts.map +1 -1
  106. package/build-types/base-control/hooks.d.ts +4 -4
  107. package/build-types/base-control/index.d.ts +2 -2
  108. package/build-types/base-control/index.d.ts.map +1 -1
  109. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  110. package/build-types/border-box-control/border-box-control/component.d.ts +4 -4
  111. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  112. package/build-types/border-box-control/border-box-control/hook.d.ts +124 -124
  113. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  114. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
  115. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +117 -117
  116. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -4
  117. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  118. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +116 -116
  119. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
  120. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +106 -106
  121. package/build-types/border-box-control/stories/index.story.d.ts +5 -5
  122. package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
  123. package/build-types/border-box-control/styles.d.ts +3 -3
  124. package/build-types/border-box-control/styles.d.ts.map +1 -1
  125. package/build-types/border-box-control/utils.d.ts.map +1 -1
  126. package/build-types/border-control/border-control/component.d.ts +5 -5
  127. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  128. package/build-types/border-control/border-control/hook.d.ts +129 -129
  129. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  130. package/build-types/border-control/border-control-dropdown/component.d.ts +3 -3
  131. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  132. package/build-types/border-control/border-control-dropdown/hook.d.ts +122 -122
  133. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  134. package/build-types/border-control/border-control-style-picker/component.d.ts +1 -1
  135. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -1
  136. package/build-types/border-control/stories/index.story.d.ts +30 -30
  137. package/build-types/border-control/stories/index.story.d.ts.map +1 -1
  138. package/build-types/border-control/styles.d.ts +2 -2
  139. package/build-types/border-control/styles.d.ts.map +1 -1
  140. package/build-types/box-control/index.d.ts +1 -1
  141. package/build-types/box-control/index.d.ts.map +1 -1
  142. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  143. package/build-types/box-control/styles/box-control-styles.d.ts +15 -15
  144. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
  145. package/build-types/box-control/utils.d.ts +2 -2
  146. package/build-types/box-control/utils.d.ts.map +1 -1
  147. package/build-types/button/deprecated.d.ts +34 -34
  148. package/build-types/button/deprecated.d.ts.map +1 -1
  149. package/build-types/button/index.d.ts.map +1 -1
  150. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  151. package/build-types/button/stories/index.story.d.ts.map +1 -1
  152. package/build-types/button-group/index.d.ts.map +1 -1
  153. package/build-types/button-group/stories/index.story.d.ts.map +1 -1
  154. package/build-types/calendar/date-calendar/index.d.ts.map +1 -1
  155. package/build-types/calendar/date-range-calendar/index.d.ts +1 -1
  156. package/build-types/calendar/date-range-calendar/index.d.ts.map +1 -1
  157. package/build-types/calendar/stories/date-calendar.story.d.ts.map +1 -1
  158. package/build-types/calendar/stories/date-range-calendar.story.d.ts.map +1 -1
  159. package/build-types/calendar/test/__utils__/index.d.ts.map +1 -1
  160. package/build-types/calendar/utils/constants.d.ts +2 -2
  161. package/build-types/calendar/utils/constants.d.ts.map +1 -1
  162. package/build-types/calendar/utils/use-localization-props.d.ts +3 -3
  163. package/build-types/calendar/utils/use-localization-props.d.ts.map +1 -1
  164. package/build-types/card/card/component.d.ts.map +1 -1
  165. package/build-types/card/card/hook.d.ts +110 -110
  166. package/build-types/card/card-body/component.d.ts.map +1 -1
  167. package/build-types/card/card-body/hook.d.ts +107 -107
  168. package/build-types/card/card-divider/component.d.ts +2 -2
  169. package/build-types/card/card-divider/component.d.ts.map +1 -1
  170. package/build-types/card/card-divider/hook.d.ts +108 -108
  171. package/build-types/card/card-footer/component.d.ts.map +1 -1
  172. package/build-types/card/card-footer/hook.d.ts +113 -113
  173. package/build-types/card/card-header/component.d.ts.map +1 -1
  174. package/build-types/card/card-header/hook.d.ts +113 -113
  175. package/build-types/card/card-media/component.d.ts.map +1 -1
  176. package/build-types/card/card-media/hook.d.ts +106 -106
  177. package/build-types/card/get-padding-by-size.d.ts +1 -1
  178. package/build-types/card/get-padding-by-size.d.ts.map +1 -1
  179. package/build-types/card/stories/index.story.d.ts +0 -6
  180. package/build-types/card/stories/index.story.d.ts.map +1 -1
  181. package/build-types/checkbox-control/index.d.ts.map +1 -1
  182. package/build-types/checkbox-control/stories/index.story.d.ts.map +1 -1
  183. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts +1 -1
  184. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -1
  185. package/build-types/circular-option-picker/circular-option-picker.d.ts +8 -0
  186. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  187. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  188. package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
  189. package/build-types/color-indicator/index.d.ts +1 -1
  190. package/build-types/color-indicator/index.d.ts.map +1 -1
  191. package/build-types/color-indicator/stories/index.story.d.ts.map +1 -1
  192. package/build-types/color-palette/index.d.ts.map +1 -1
  193. package/build-types/color-palette/stories/index.story.d.ts +1 -0
  194. package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
  195. package/build-types/color-palette/styles.d.ts +5 -5
  196. package/build-types/color-palette/types.d.ts +16 -2
  197. package/build-types/color-palette/types.d.ts.map +1 -1
  198. package/build-types/color-palette/utils.d.ts +1 -1
  199. package/build-types/color-palette/utils.d.ts.map +1 -1
  200. package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
  201. package/build-types/color-picker/color-input.d.ts.map +1 -1
  202. package/build-types/color-picker/component.d.ts +1 -1
  203. package/build-types/color-picker/component.d.ts.map +1 -1
  204. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  205. package/build-types/color-picker/hsl-input.d.ts.map +1 -1
  206. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  207. package/build-types/color-picker/legacy-adapter.d.ts.map +1 -1
  208. package/build-types/color-picker/picker.d.ts.map +1 -1
  209. package/build-types/color-picker/rgb-input.d.ts.map +1 -1
  210. package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
  211. package/build-types/color-picker/styles.d.ts +20 -20
  212. package/build-types/color-picker/styles.d.ts.map +1 -1
  213. package/build-types/combobox-control/index.d.ts.map +1 -1
  214. package/build-types/combobox-control/stories/index.story.d.ts +8 -8
  215. package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
  216. package/build-types/combobox-control/styles.d.ts +1 -1
  217. package/build-types/composite/index.d.ts +25 -25
  218. package/build-types/composite/legacy/stories/index.story.d.ts.map +1 -1
  219. package/build-types/composite/legacy/stories/utils.d.ts.map +1 -1
  220. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  221. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  222. package/build-types/confirm-dialog/stories/index.story.d.ts +2 -2
  223. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
  224. package/build-types/context/constants.d.ts +3 -3
  225. package/build-types/context/constants.d.ts.map +1 -1
  226. package/build-types/context/context-system-provider.d.ts +4 -4
  227. package/build-types/context/context-system-provider.d.ts.map +1 -1
  228. package/build-types/context/use-context-system.d.ts +4 -4
  229. package/build-types/context/use-context-system.d.ts.map +1 -1
  230. package/build-types/context/utils.d.ts +2 -2
  231. package/build-types/context/utils.d.ts.map +1 -1
  232. package/build-types/custom-gradient-picker/constants.d.ts +2 -2
  233. package/build-types/custom-gradient-picker/constants.d.ts.map +1 -1
  234. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts +1 -1
  235. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
  236. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts +1 -1
  237. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  238. package/build-types/custom-gradient-picker/index.d.ts +1 -1
  239. package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
  240. package/build-types/custom-gradient-picker/serializer.d.ts +3 -3
  241. package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -1
  242. package/build-types/custom-gradient-picker/stories/index.story.d.ts.map +1 -1
  243. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +2 -2
  244. package/build-types/custom-select-control/index.d.ts.map +1 -1
  245. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
  246. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  247. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  248. package/build-types/custom-select-control-v2/item.d.ts.map +1 -1
  249. package/build-types/custom-select-control-v2/stories/index.story.d.ts +6 -6
  250. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  251. package/build-types/custom-select-control-v2/styles.d.ts +6 -6
  252. package/build-types/dashicon/index.d.ts.map +1 -1
  253. package/build-types/date-time/date-picker/index.d.ts +1 -1
  254. package/build-types/date-time/date-picker/index.d.ts.map +1 -1
  255. package/build-types/date-time/date-picker/styles.d.ts +9 -9
  256. package/build-types/date-time/date-picker/use-lilius/index.d.ts.map +1 -1
  257. package/build-types/date-time/date-time/index.d.ts +1 -1
  258. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  259. package/build-types/date-time/date-time/styles.d.ts +4 -4
  260. package/build-types/date-time/index.d.ts.map +1 -1
  261. package/build-types/date-time/stories/date-time.story.d.ts.map +1 -1
  262. package/build-types/date-time/stories/date.story.d.ts.map +1 -1
  263. package/build-types/date-time/stories/time.story.d.ts.map +1 -1
  264. package/build-types/date-time/time-picker/index.d.ts +1 -1
  265. package/build-types/date-time/time-picker/index.d.ts.map +1 -1
  266. package/build-types/date-time/time-picker/styles.d.ts +28 -28
  267. package/build-types/date-time/time-picker/time-input/index.d.ts +1 -1
  268. package/build-types/date-time/time-picker/time-input/index.d.ts.map +1 -1
  269. package/build-types/date-time/time-picker/timezone.d.ts.map +1 -1
  270. package/build-types/date-time/utils.d.ts.map +1 -1
  271. package/build-types/disabled/context.d.ts.map +1 -1
  272. package/build-types/disabled/index.d.ts +2 -0
  273. package/build-types/disabled/index.d.ts.map +1 -1
  274. package/build-types/disabled/stories/index.story.d.ts.map +1 -1
  275. package/build-types/disclosure/index.d.ts.map +1 -1
  276. package/build-types/divider/component.d.ts +2 -2
  277. package/build-types/divider/component.d.ts.map +1 -1
  278. package/build-types/divider/stories/index.story.d.ts.map +1 -1
  279. package/build-types/divider/styles.d.ts +2 -2
  280. package/build-types/draggable/index.d.ts +1 -1
  281. package/build-types/draggable/index.d.ts.map +1 -1
  282. package/build-types/draggable/stories/index.story.d.ts.map +1 -1
  283. package/build-types/drop-zone/index.d.ts.map +1 -1
  284. package/build-types/drop-zone/provider.d.ts +1 -1
  285. package/build-types/drop-zone/provider.d.ts.map +1 -1
  286. package/build-types/drop-zone/stories/index.story.d.ts +1 -1
  287. package/build-types/drop-zone/stories/index.story.d.ts.map +1 -1
  288. package/build-types/dropdown/dropdown-content-wrapper.d.ts.map +1 -1
  289. package/build-types/dropdown/index.d.ts.map +1 -1
  290. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  291. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  292. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  293. package/build-types/duotone-picker/color-list-picker/index.d.ts +1 -1
  294. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
  295. package/build-types/duotone-picker/custom-duotone-bar.d.ts +1 -1
  296. package/build-types/duotone-picker/custom-duotone-bar.d.ts.map +1 -1
  297. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  298. package/build-types/duotone-picker/duotone-swatch.d.ts.map +1 -1
  299. package/build-types/duotone-picker/stories/duotone-picker.story.d.ts.map +1 -1
  300. package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts.map +1 -1
  301. package/build-types/elevation/component.d.ts.map +1 -1
  302. package/build-types/elevation/hook.d.ts +105 -105
  303. package/build-types/elevation/stories/index.story.d.ts.map +1 -1
  304. package/build-types/external-link/index.d.ts.map +1 -1
  305. package/build-types/external-link/stories/index.story.d.ts.map +1 -1
  306. package/build-types/flex/context.d.ts +2 -2
  307. package/build-types/flex/flex/component.d.ts.map +1 -1
  308. package/build-types/flex/flex/hook.d.ts +108 -108
  309. package/build-types/flex/flex-block/component.d.ts.map +1 -1
  310. package/build-types/flex/flex-block/hook.d.ts +106 -106
  311. package/build-types/flex/flex-item/component.d.ts.map +1 -1
  312. package/build-types/flex/flex-item/hook.d.ts +106 -106
  313. package/build-types/flex/stories/index.story.d.ts.map +1 -1
  314. package/build-types/focal-point-picker/controls.d.ts +1 -1
  315. package/build-types/focal-point-picker/controls.d.ts.map +1 -1
  316. package/build-types/focal-point-picker/index.d.ts +16 -11
  317. package/build-types/focal-point-picker/index.d.ts.map +1 -1
  318. package/build-types/focal-point-picker/stories/index.story.d.ts +16 -16
  319. package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
  320. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +254 -254
  321. package/build-types/focal-point-picker/utils.d.ts.map +1 -1
  322. package/build-types/font-size-picker/constants.d.ts +2 -2
  323. package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -1
  324. package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -1
  325. package/build-types/font-size-picker/index.d.ts.map +1 -1
  326. package/build-types/font-size-picker/stories/e2e/index.story.d.ts.map +1 -1
  327. package/build-types/font-size-picker/stories/index.story.d.ts.map +1 -1
  328. package/build-types/font-size-picker/styles.d.ts +5 -5
  329. package/build-types/form-file-upload/index.d.ts.map +1 -1
  330. package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
  331. package/build-types/form-toggle/index.d.ts +1 -1
  332. package/build-types/form-toggle/index.d.ts.map +1 -1
  333. package/build-types/form-toggle/stories/index.story.d.ts.map +1 -1
  334. package/build-types/form-token-field/index.d.ts.map +1 -1
  335. package/build-types/form-token-field/stories/index.story.d.ts.map +1 -1
  336. package/build-types/form-token-field/styles.d.ts +1 -1
  337. package/build-types/form-token-field/suggestions-list.d.ts +1 -1
  338. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
  339. package/build-types/form-token-field/token-input.d.ts +1 -1
  340. package/build-types/form-token-field/token-input.d.ts.map +1 -1
  341. package/build-types/form-token-field/token.d.ts +1 -1
  342. package/build-types/form-token-field/token.d.ts.map +1 -1
  343. package/build-types/form-token-field/types.d.ts +16 -2
  344. package/build-types/form-token-field/types.d.ts.map +1 -1
  345. package/build-types/gradient-picker/index.d.ts.map +1 -1
  346. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  347. package/build-types/grid/component.d.ts.map +1 -1
  348. package/build-types/grid/hook.d.ts +106 -106
  349. package/build-types/grid/stories/index.story.d.ts.map +1 -1
  350. package/build-types/grid/utils.d.ts.map +1 -1
  351. package/build-types/guide/index.d.ts +1 -1
  352. package/build-types/guide/index.d.ts.map +1 -1
  353. package/build-types/guide/page-control.d.ts +1 -1
  354. package/build-types/guide/page-control.d.ts.map +1 -1
  355. package/build-types/guide/stories/index.story.d.ts.map +1 -1
  356. package/build-types/h-stack/component.d.ts +3 -3
  357. package/build-types/h-stack/component.d.ts.map +1 -1
  358. package/build-types/h-stack/hook.d.ts +107 -107
  359. package/build-types/h-stack/stories/e2e/index.story.d.ts.map +1 -1
  360. package/build-types/h-stack/stories/index.story.d.ts.map +1 -1
  361. package/build-types/heading/component.d.ts +4 -4
  362. package/build-types/heading/component.d.ts.map +1 -1
  363. package/build-types/heading/hook.d.ts +107 -107
  364. package/build-types/heading/stories/index.story.d.ts.map +1 -1
  365. package/build-types/higher-order/navigate-regions/index.d.ts.map +1 -1
  366. package/build-types/higher-order/with-constrained-tabbing/index.d.ts.map +1 -1
  367. package/build-types/higher-order/with-fallback-styles/index.d.ts +1 -1
  368. package/build-types/higher-order/with-fallback-styles/index.d.ts.map +1 -1
  369. package/build-types/higher-order/with-filters/index.d.ts +2 -2
  370. package/build-types/higher-order/with-focus-outside/index.d.ts.map +1 -1
  371. package/build-types/higher-order/with-focus-return/index.d.ts.map +1 -1
  372. package/build-types/higher-order/with-notices/index.d.ts +3 -3
  373. package/build-types/higher-order/with-notices/index.d.ts.map +1 -1
  374. package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
  375. package/build-types/icon/index.d.ts.map +1 -1
  376. package/build-types/icon/stories/index.story.d.ts.map +1 -1
  377. package/build-types/input-control/backdrop.d.ts.map +1 -1
  378. package/build-types/input-control/index.d.ts.map +1 -1
  379. package/build-types/input-control/input-base.d.ts.map +1 -1
  380. package/build-types/input-control/input-field.d.ts +1 -1
  381. package/build-types/input-control/input-field.d.ts.map +1 -1
  382. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  383. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  384. package/build-types/input-control/reducer/reducer.d.ts +9 -9
  385. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  386. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  387. package/build-types/input-control/styles/input-control-styles.d.ts +3 -3
  388. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  389. package/build-types/isolated-event-container/index.d.ts.map +1 -1
  390. package/build-types/item-group/item/component.d.ts.map +1 -1
  391. package/build-types/item-group/item/hook.d.ts +104 -104
  392. package/build-types/item-group/item-group/component.d.ts.map +1 -1
  393. package/build-types/item-group/item-group/hook.d.ts +105 -105
  394. package/build-types/item-group/stories/index.story.d.ts.map +1 -1
  395. package/build-types/item-group/styles.d.ts +1 -1
  396. package/build-types/item-group/styles.d.ts.map +1 -1
  397. package/build-types/keyboard-shortcuts/index.d.ts +1 -1
  398. package/build-types/keyboard-shortcuts/index.d.ts.map +1 -1
  399. package/build-types/keyboard-shortcuts/stories/index.story.d.ts.map +1 -1
  400. package/build-types/lock-unlock.d.ts +1 -2
  401. package/build-types/lock-unlock.d.ts.map +1 -1
  402. package/build-types/menu/group-label.d.ts +1 -1
  403. package/build-types/menu/group.d.ts +1 -1
  404. package/build-types/menu/index.d.ts +5 -5
  405. package/build-types/menu/index.d.ts.map +1 -1
  406. package/build-types/menu/item-help-text.d.ts +1 -1
  407. package/build-types/menu/item-label.d.ts +1 -1
  408. package/build-types/menu/popover.d.ts.map +1 -1
  409. package/build-types/menu/separator.d.ts +1 -1
  410. package/build-types/menu/stories/index.story.d.ts.map +1 -1
  411. package/build-types/menu/styles.d.ts +23 -8
  412. package/build-types/menu/styles.d.ts.map +1 -1
  413. package/build-types/menu-group/index.d.ts.map +1 -1
  414. package/build-types/menu-group/stories/index.story.d.ts.map +1 -1
  415. package/build-types/menu-item/index.d.ts +2 -2
  416. package/build-types/menu-item/index.d.ts.map +1 -1
  417. package/build-types/menu-item/stories/index.story.d.ts +8 -8
  418. package/build-types/menu-item/stories/index.story.d.ts.map +1 -1
  419. package/build-types/menu-items-choice/index.d.ts +1 -1
  420. package/build-types/menu-items-choice/index.d.ts.map +1 -1
  421. package/build-types/menu-items-choice/stories/index.story.d.ts.map +1 -1
  422. package/build-types/mobile/image/constants.d.ts +4 -4
  423. package/build-types/mobile/image/constants.d.ts.map +1 -1
  424. package/build-types/modal/index.d.ts.map +1 -1
  425. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  426. package/build-types/modal/use-modal-exit-animation.d.ts +0 -3
  427. package/build-types/modal/use-modal-exit-animation.d.ts.map +1 -1
  428. package/build-types/navigable-container/container.d.ts +2 -2
  429. package/build-types/navigable-container/container.d.ts.map +1 -1
  430. package/build-types/navigable-container/menu.d.ts +1 -1
  431. package/build-types/navigable-container/menu.d.ts.map +1 -1
  432. package/build-types/navigable-container/stories/navigable-menu.story.d.ts.map +1 -1
  433. package/build-types/navigable-container/stories/tabbable-container.story.d.ts.map +1 -1
  434. package/build-types/navigable-container/tabbable.d.ts +2 -2
  435. package/build-types/navigable-container/tabbable.d.ts.map +1 -1
  436. package/build-types/navigation/back-button/index.d.ts.map +1 -1
  437. package/build-types/navigation/group/index.d.ts +1 -1
  438. package/build-types/navigation/group/index.d.ts.map +1 -1
  439. package/build-types/navigation/index.d.ts +1 -1
  440. package/build-types/navigation/index.d.ts.map +1 -1
  441. package/build-types/navigation/item/index.d.ts.map +1 -1
  442. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -1
  443. package/build-types/navigation/menu/index.d.ts.map +1 -1
  444. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -1
  445. package/build-types/navigation/menu/menu-title.d.ts +1 -1
  446. package/build-types/navigation/menu/menu-title.d.ts.map +1 -1
  447. package/build-types/navigation/menu/search-no-results-found.d.ts +1 -1
  448. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -1
  449. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -1
  450. package/build-types/navigation/stories/index.story.d.ts.map +1 -1
  451. package/build-types/navigation/styles/navigation-styles.d.ts +6 -6
  452. package/build-types/navigation/utils.d.ts.map +1 -1
  453. package/build-types/navigator/index.d.ts +12 -12
  454. package/build-types/navigator/legacy.d.ts +18 -18
  455. package/build-types/navigator/navigator-back-button/component.d.ts +6 -6
  456. package/build-types/navigator/navigator-back-button/hook.d.ts +136 -136
  457. package/build-types/navigator/navigator-button/component.d.ts +6 -6
  458. package/build-types/navigator/navigator-button/hook.d.ts +136 -136
  459. package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts +1 -1
  460. package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts.map +1 -1
  461. package/build-types/navigator/navigator-to-parent-button/component.d.ts +6 -6
  462. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  463. package/build-types/navigator/styles.d.ts.map +1 -1
  464. package/build-types/notice/index.d.ts +1 -1
  465. package/build-types/notice/index.d.ts.map +1 -1
  466. package/build-types/notice/list.d.ts +1 -1
  467. package/build-types/notice/list.d.ts.map +1 -1
  468. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  469. package/build-types/number-control/index.d.ts +7 -7
  470. package/build-types/number-control/index.d.ts.map +1 -1
  471. package/build-types/number-control/stories/index.story.d.ts +7 -7
  472. package/build-types/number-control/stories/index.story.d.ts.map +1 -1
  473. package/build-types/palette-edit/index.d.ts +1 -1
  474. package/build-types/palette-edit/index.d.ts.map +1 -1
  475. package/build-types/palette-edit/stories/index.story.d.ts.map +1 -1
  476. package/build-types/palette-edit/styles.d.ts +759 -759
  477. package/build-types/panel/body.d.ts.map +1 -1
  478. package/build-types/panel/header.d.ts.map +1 -1
  479. package/build-types/panel/index.d.ts.map +1 -1
  480. package/build-types/panel/row.d.ts.map +1 -1
  481. package/build-types/panel/stories/index.story.d.ts.map +1 -1
  482. package/build-types/placeholder/index.d.ts.map +1 -1
  483. package/build-types/placeholder/stories/index.story.d.ts.map +1 -1
  484. package/build-types/popover/index.d.ts +1 -1
  485. package/build-types/popover/index.d.ts.map +1 -1
  486. package/build-types/popover/overlay-middlewares.d.ts +2 -2
  487. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  488. package/build-types/popover/stories/e2e/index.story.d.ts.map +1 -1
  489. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  490. package/build-types/popover/test/utils/index.d.ts.map +1 -1
  491. package/build-types/popover/utils.d.ts +3 -3
  492. package/build-types/popover/utils.d.ts.map +1 -1
  493. package/build-types/progress-bar/index.d.ts +1 -1
  494. package/build-types/progress-bar/index.d.ts.map +1 -1
  495. package/build-types/progress-bar/stories/index.story.d.ts +1 -1
  496. package/build-types/progress-bar/stories/index.story.d.ts.map +1 -1
  497. package/build-types/query-controls/author-select.d.ts +1 -1
  498. package/build-types/query-controls/author-select.d.ts.map +1 -1
  499. package/build-types/query-controls/index.d.ts.map +1 -1
  500. package/build-types/query-controls/stories/index.story.d.ts.map +1 -1
  501. package/build-types/radio-control/index.d.ts.map +1 -1
  502. package/build-types/radio-control/stories/index.story.d.ts.map +1 -1
  503. package/build-types/radio-group/index.d.ts.map +1 -1
  504. package/build-types/radio-group/radio.d.ts +1 -1
  505. package/build-types/radio-group/radio.d.ts.map +1 -1
  506. package/build-types/radio-group/stories/index.story.d.ts.map +1 -1
  507. package/build-types/range-control/index.d.ts +8 -8
  508. package/build-types/range-control/index.d.ts.map +1 -1
  509. package/build-types/range-control/input-range.d.ts +1 -1
  510. package/build-types/range-control/input-range.d.ts.map +1 -1
  511. package/build-types/range-control/stories/index.story.d.ts.map +1 -1
  512. package/build-types/range-control/styles/range-control-styles.d.ts +9 -9
  513. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  514. package/build-types/range-control/utils.d.ts +1 -1
  515. package/build-types/range-control/utils.d.ts.map +1 -1
  516. package/build-types/resizable-box/index.d.ts.map +1 -1
  517. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  518. package/build-types/resizable-box/resize-tooltip/label.d.ts.map +1 -1
  519. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts +1 -1
  520. package/build-types/resizable-box/resize-tooltip/utils.d.ts +3 -3
  521. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  522. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  523. package/build-types/resizable-box/stories/index.story.d.ts.map +1 -1
  524. package/build-types/responsive-wrapper/index.d.ts +1 -1
  525. package/build-types/responsive-wrapper/index.d.ts.map +1 -1
  526. package/build-types/responsive-wrapper/stories/index.story.d.ts.map +1 -1
  527. package/build-types/sandbox/index.d.ts.map +1 -1
  528. package/build-types/sandbox/stories/index.story.d.ts.map +1 -1
  529. package/build-types/scroll-lock/index.d.ts.map +1 -1
  530. package/build-types/scroll-lock/stories/index.story.d.ts.map +1 -1
  531. package/build-types/scrollable/component.d.ts.map +1 -1
  532. package/build-types/scrollable/hook.d.ts +106 -106
  533. package/build-types/scrollable/stories/index.story.d.ts.map +1 -1
  534. package/build-types/search-control/index.d.ts +9 -9
  535. package/build-types/search-control/index.d.ts.map +1 -1
  536. package/build-types/search-control/stories/index.story.d.ts +9 -9
  537. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  538. package/build-types/select-control/chevron-down.d.ts.map +1 -1
  539. package/build-types/select-control/index.d.ts +1 -1
  540. package/build-types/select-control/index.d.ts.map +1 -1
  541. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  542. package/build-types/select-control/styles/select-control-styles.d.ts +2 -2
  543. package/build-types/shortcut/index.d.ts.map +1 -1
  544. package/build-types/shortcut/stories/index.story.d.ts.map +1 -1
  545. package/build-types/slot-fill/bubbles-virtually/slot.d.ts +1 -1
  546. package/build-types/slot-fill/bubbles-virtually/slot.d.ts.map +1 -1
  547. package/build-types/slot-fill/context.d.ts.map +1 -1
  548. package/build-types/slot-fill/index.d.ts +2 -2
  549. package/build-types/slot-fill/index.d.ts.map +1 -1
  550. package/build-types/slot-fill/provider.d.ts.map +1 -1
  551. package/build-types/slot-fill/slot.d.ts.map +1 -1
  552. package/build-types/slot-fill/stories/index.story.d.ts.map +1 -1
  553. package/build-types/snackbar/index.d.ts +3 -3
  554. package/build-types/snackbar/index.d.ts.map +1 -1
  555. package/build-types/snackbar/list.d.ts +1 -1
  556. package/build-types/snackbar/list.d.ts.map +1 -1
  557. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  558. package/build-types/snackbar/stories/list.story.d.ts.map +1 -1
  559. package/build-types/spacer/component.d.ts.map +1 -1
  560. package/build-types/spacer/hook.d.ts +106 -106
  561. package/build-types/spacer/stories/index.story.d.ts.map +1 -1
  562. package/build-types/spinner/index.d.ts.map +1 -1
  563. package/build-types/spinner/stories/index.story.d.ts.map +1 -1
  564. package/build-types/style-provider/index.d.ts +0 -3
  565. package/build-types/style-provider/index.d.ts.map +1 -1
  566. package/build-types/style-provider/test/index.d.ts.map +1 -0
  567. package/build-types/surface/component.d.ts.map +1 -1
  568. package/build-types/surface/hook.d.ts +106 -106
  569. package/build-types/surface/stories/index.story.d.ts.map +1 -1
  570. package/build-types/surface/styles.d.ts +1 -1
  571. package/build-types/surface/styles.d.ts.map +1 -1
  572. package/build-types/tab-panel/index.d.ts.map +1 -1
  573. package/build-types/tab-panel/stories/index.story.d.ts.map +1 -1
  574. package/build-types/tabs/index.d.ts +1 -1
  575. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  576. package/build-types/tabs/styles.d.ts +3 -3
  577. package/build-types/tabs/tablist.d.ts +1 -1
  578. package/build-types/text/component.d.ts.map +1 -1
  579. package/build-types/text/hook.d.ts +106 -106
  580. package/build-types/text/stories/index.story.d.ts +3 -3
  581. package/build-types/text/stories/index.story.d.ts.map +1 -1
  582. package/build-types/text/utils.d.ts +1 -1
  583. package/build-types/text/utils.d.ts.map +1 -1
  584. package/build-types/text-control/index.d.ts +3 -3
  585. package/build-types/text-control/index.d.ts.map +1 -1
  586. package/build-types/text-control/stories/index.story.d.ts.map +1 -1
  587. package/build-types/text-highlight/index.d.ts +4 -19
  588. package/build-types/text-highlight/index.d.ts.map +1 -1
  589. package/build-types/text-highlight/stories/index.story.d.ts.map +1 -1
  590. package/build-types/textarea-control/index.d.ts +3 -3
  591. package/build-types/textarea-control/index.d.ts.map +1 -1
  592. package/build-types/textarea-control/stories/index.story.d.ts.map +1 -1
  593. package/build-types/theme/color-algorithms.d.ts +1 -1
  594. package/build-types/theme/color-algorithms.d.ts.map +1 -1
  595. package/build-types/theme/index.d.ts.map +1 -1
  596. package/build-types/theme/stories/index.story.d.ts +1 -1
  597. package/build-types/theme/stories/index.story.d.ts.map +1 -1
  598. package/build-types/theme/styles.d.ts.map +1 -1
  599. package/build-types/tip/index.d.ts.map +1 -1
  600. package/build-types/tip/stories/index.story.d.ts.map +1 -1
  601. package/build-types/toggle-control/index.d.ts +2 -2
  602. package/build-types/toggle-control/index.d.ts.map +1 -1
  603. package/build-types/toggle-control/stories/index.story.d.ts +4 -4
  604. package/build-types/toggle-control/stories/index.story.d.ts.map +1 -1
  605. package/build-types/toggle-group-control/context.d.ts.map +1 -1
  606. package/build-types/toggle-group-control/stories/index.story.d.ts.map +1 -1
  607. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
  608. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
  609. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +2 -2
  610. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  611. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +3 -3
  612. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  613. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +2 -2
  614. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  615. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
  616. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  617. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +1 -1
  618. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  619. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  620. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  621. package/build-types/toolbar/index.d.ts +6 -6
  622. package/build-types/toolbar/index.d.ts.map +1 -1
  623. package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
  624. package/build-types/toolbar/toolbar/index.d.ts.map +1 -1
  625. package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -1
  626. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  627. package/build-types/toolbar/toolbar-button/toolbar-button-container.d.ts.map +1 -1
  628. package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -1
  629. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -1
  630. package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -1
  631. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -1
  632. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +1 -1
  633. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -1
  634. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
  635. package/build-types/tools-panel/stories/index.story.d.ts.map +1 -1
  636. package/build-types/tools-panel/styles.d.ts.map +1 -1
  637. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  638. package/build-types/tools-panel/tools-panel/hook.d.ts +128 -128
  639. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  640. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  641. package/build-types/tools-panel/tools-panel-header/hook.d.ts +116 -116
  642. package/build-types/tools-panel/tools-panel-item/component.d.ts.map +1 -1
  643. package/build-types/tools-panel/tools-panel-item/hook.d.ts +108 -108
  644. package/build-types/tooltip/index.d.ts.map +1 -1
  645. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  646. package/build-types/tree-grid/cell.d.ts.map +1 -1
  647. package/build-types/tree-grid/index.d.ts.map +1 -1
  648. package/build-types/tree-grid/item.d.ts.map +1 -1
  649. package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -1
  650. package/build-types/tree-grid/roving-tab-index.d.ts +1 -1
  651. package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -1
  652. package/build-types/tree-grid/row.d.ts.map +1 -1
  653. package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
  654. package/build-types/tree-select/index.d.ts.map +1 -1
  655. package/build-types/tree-select/stories/index.story.d.ts.map +1 -1
  656. package/build-types/truncate/component.d.ts.map +1 -1
  657. package/build-types/truncate/hook.d.ts +106 -106
  658. package/build-types/truncate/stories/index.story.d.ts.map +1 -1
  659. package/build-types/truncate/utils.d.ts +5 -5
  660. package/build-types/truncate/utils.d.ts.map +1 -1
  661. package/build-types/unit-control/index.d.ts +2 -2
  662. package/build-types/unit-control/index.d.ts.map +1 -1
  663. package/build-types/unit-control/stories/index.story.d.ts.map +1 -1
  664. package/build-types/unit-control/styles/unit-control-styles.d.ts +7 -7
  665. package/build-types/unit-control/unit-select-control.d.ts +1 -1
  666. package/build-types/unit-control/unit-select-control.d.ts.map +1 -1
  667. package/build-types/unit-control/utils.d.ts.map +1 -1
  668. package/build-types/utils/breakpoint-values.d.ts.map +1 -1
  669. package/build-types/utils/breakpoint.d.ts +9 -1
  670. package/build-types/utils/breakpoint.d.ts.map +1 -1
  671. package/build-types/utils/colors-values.d.ts +1 -1
  672. package/build-types/utils/colors-values.d.ts.map +1 -1
  673. package/build-types/utils/colors.d.ts +3 -3
  674. package/build-types/utils/colors.d.ts.map +1 -1
  675. package/build-types/utils/deprecated-36px-size.d.ts +1 -1
  676. package/build-types/utils/deprecated-36px-size.d.ts.map +1 -1
  677. package/build-types/utils/dropdown-motion.d.ts +3 -3
  678. package/build-types/utils/dropdown-motion.d.ts.map +1 -1
  679. package/build-types/utils/font-values.d.ts.map +1 -1
  680. package/build-types/utils/font.d.ts +6 -2
  681. package/build-types/utils/font.d.ts.map +1 -1
  682. package/build-types/utils/get-node-text.d.ts.map +1 -1
  683. package/build-types/utils/hooks/index.d.ts +4 -4
  684. package/build-types/utils/hooks/index.d.ts.map +1 -1
  685. package/build-types/utils/hooks/use-animated-offset-rect.d.ts +1 -1
  686. package/build-types/utils/hooks/use-animated-offset-rect.d.ts.map +1 -1
  687. package/build-types/utils/hooks/use-controlled-state.d.ts +2 -8
  688. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  689. package/build-types/utils/hooks/use-controlled-value.d.ts +1 -1
  690. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  691. package/build-types/utils/hooks/use-update-effect.d.ts +1 -1
  692. package/build-types/utils/hooks/use-update-effect.d.ts.map +1 -1
  693. package/build-types/utils/index.d.ts +2 -2
  694. package/build-types/utils/index.d.ts.map +1 -1
  695. package/build-types/utils/math.d.ts +5 -5
  696. package/build-types/utils/math.d.ts.map +1 -1
  697. package/build-types/utils/rtl.d.ts +11 -16
  698. package/build-types/utils/rtl.d.ts.map +1 -1
  699. package/build-types/utils/strings.d.ts.map +1 -1
  700. package/build-types/utils/style-mixins.d.ts +9 -9
  701. package/build-types/utils/style-mixins.d.ts.map +1 -1
  702. package/build-types/utils/use-responsive-value.d.ts.map +1 -1
  703. package/build-types/utils/values.d.ts +19 -5
  704. package/build-types/utils/values.d.ts.map +1 -1
  705. package/build-types/utils/with-ignore-ime-events.d.ts.map +1 -1
  706. package/build-types/v-stack/component.d.ts +3 -3
  707. package/build-types/v-stack/component.d.ts.map +1 -1
  708. package/build-types/v-stack/hook.d.ts +107 -107
  709. package/build-types/v-stack/stories/e2e/index.story.d.ts.map +1 -1
  710. package/build-types/v-stack/stories/index.story.d.ts +4 -4
  711. package/build-types/v-stack/stories/index.story.d.ts.map +1 -1
  712. package/build-types/validated-form-controls/components/checkbox-control.d.ts +2 -2
  713. package/build-types/validated-form-controls/components/combobox-control.d.ts +2 -2
  714. package/build-types/validated-form-controls/components/number-control.d.ts +7 -7
  715. package/build-types/validated-form-controls/components/radio-control.d.ts +2 -2
  716. package/build-types/validated-form-controls/components/radio-control.d.ts.map +1 -1
  717. package/build-types/validated-form-controls/components/range-control.d.ts +8 -8
  718. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
  719. package/build-types/validated-form-controls/components/select-control.d.ts +1 -1
  720. package/build-types/validated-form-controls/components/stories/checkbox-control.story.d.ts.map +1 -1
  721. package/build-types/validated-form-controls/components/stories/combobox-control.story.d.ts.map +1 -1
  722. package/build-types/validated-form-controls/components/stories/custom-select-control.story.d.ts.map +1 -1
  723. package/build-types/validated-form-controls/components/stories/form-token-field.story.d.ts.map +1 -1
  724. package/build-types/validated-form-controls/components/stories/input-control.story.d.ts.map +1 -1
  725. package/build-types/validated-form-controls/components/stories/number-control.story.d.ts.map +1 -1
  726. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
  727. package/build-types/validated-form-controls/components/stories/radio-control.story.d.ts.map +1 -1
  728. package/build-types/validated-form-controls/components/stories/range-control.story.d.ts.map +1 -1
  729. package/build-types/validated-form-controls/components/stories/select-control.story.d.ts.map +1 -1
  730. package/build-types/validated-form-controls/components/stories/text-control.story.d.ts.map +1 -1
  731. package/build-types/validated-form-controls/components/stories/textarea-control.story.d.ts.map +1 -1
  732. package/build-types/validated-form-controls/components/stories/toggle-control.story.d.ts.map +1 -1
  733. package/build-types/validated-form-controls/components/stories/toggle-group-control.story.d.ts.map +1 -1
  734. package/build-types/validated-form-controls/components/text-control.d.ts +3 -3
  735. package/build-types/validated-form-controls/components/textarea-control.d.ts +3 -3
  736. package/build-types/validated-form-controls/components/toggle-control.d.ts +2 -2
  737. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +3 -3
  738. package/build-types/validated-form-controls/control-with-error.d.ts +1 -1
  739. package/build-types/validated-form-controls/validity-indicator.d.ts +1 -1
  740. package/build-types/validated-form-controls/validity-indicator.d.ts.map +1 -1
  741. package/build-types/view/component.d.ts +251 -251
  742. package/build-types/view/component.d.ts.map +1 -1
  743. package/build-types/view/stories/index.story.d.ts.map +1 -1
  744. package/build-types/visually-hidden/component.d.ts.map +1 -1
  745. package/build-types/visually-hidden/stories/index.story.d.ts +0 -6
  746. package/build-types/visually-hidden/stories/index.story.d.ts.map +1 -1
  747. package/build-types/z-stack/component.d.ts.map +1 -1
  748. package/build-types/z-stack/stories/index.story.d.ts.map +1 -1
  749. package/package.json +24 -23
  750. package/src/alignment-matrix-control/stories/index.story.tsx +1 -1
  751. package/src/angle-picker-control/stories/index.story.tsx +1 -1
  752. package/src/autocomplete/autocompleter-ui.tsx +0 -1
  753. package/src/base-control/stories/index.story.tsx +1 -1
  754. package/src/border-box-control/stories/index.story.tsx +1 -1
  755. package/src/border-control/stories/index.story.tsx +1 -1
  756. package/src/button/stories/index.story.tsx +1 -1
  757. package/src/button/style.scss +2 -0
  758. package/src/button-group/style.scss +1 -2
  759. package/src/card/stories/index.story.tsx +2 -9
  760. package/src/checkbox-control/stories/index.story.tsx +1 -1
  761. package/src/circular-option-picker/style.scss +8 -6
  762. package/src/color-indicator/stories/index.story.tsx +1 -1
  763. package/src/color-palette/index.tsx +25 -9
  764. package/src/color-palette/stories/index.story.tsx +21 -3
  765. package/src/color-palette/test/index.tsx +152 -1
  766. package/src/color-palette/test/utils.ts +18 -0
  767. package/src/color-palette/types.ts +19 -2
  768. package/src/color-palette/utils.ts +14 -2
  769. package/src/color-picker/hex-input.tsx +1 -1
  770. package/src/color-picker/stories/index.story.tsx +1 -1
  771. package/src/color-picker/test/index.tsx +24 -2
  772. package/src/combobox-control/stories/index.story.tsx +1 -1
  773. package/src/composite/legacy/test/index.tsx +13 -13
  774. package/src/composite/stories/index.story.tsx +1 -1
  775. package/src/confirm-dialog/stories/index.story.tsx +1 -1
  776. package/src/custom-gradient-picker/index.tsx +0 -1
  777. package/src/custom-select-control/stories/index.story.tsx +1 -1
  778. package/src/disabled/stories/index.story.tsx +1 -1
  779. package/src/drop-zone/stories/index.story.tsx +1 -1
  780. package/src/dropdown/stories/index.story.tsx +1 -1
  781. package/src/duotone-picker/stories/duotone-picker.story.tsx +1 -1
  782. package/src/duotone-picker/stories/duotone-swatch.story.tsx +1 -1
  783. package/src/external-link/stories/index.story.tsx +2 -2
  784. package/src/external-link/style.scss +34 -2
  785. package/src/focal-point-picker/README.md +12 -8
  786. package/src/focal-point-picker/index.tsx +16 -11
  787. package/src/focal-point-picker/stories/index.story.tsx +1 -1
  788. package/src/font-size-picker/stories/index.story.tsx +1 -1
  789. package/src/form-file-upload/stories/index.story.tsx +1 -1
  790. package/src/form-toggle/stories/index.story.tsx +1 -1
  791. package/src/form-toggle/style.scss +3 -2
  792. package/src/form-token-field/README.md +2 -1
  793. package/src/form-token-field/index.tsx +39 -9
  794. package/src/form-token-field/stories/index.story.tsx +2 -1
  795. package/src/form-token-field/test/index.tsx +70 -10
  796. package/src/form-token-field/token-input.tsx +1 -6
  797. package/src/form-token-field/types.ts +16 -2
  798. package/src/gradient-picker/stories/index.story.tsx +1 -1
  799. package/src/guide/stories/index.story.tsx +1 -1
  800. package/src/higher-order/with-notices/test/index.tsx +12 -10
  801. package/src/icon/stories/index.story.tsx +1 -1
  802. package/src/input-control/stories/index.story.tsx +1 -1
  803. package/src/item-group/stories/index.story.tsx +1 -1
  804. package/src/keyboard-shortcuts/stories/index.story.tsx +1 -1
  805. package/src/menu/popover.tsx +15 -8
  806. package/src/menu/stories/index.story.tsx +1 -1
  807. package/src/menu/styles.ts +25 -15
  808. package/src/menu/test/index.tsx +28 -37
  809. package/src/menu-group/stories/index.story.tsx +1 -1
  810. package/src/menu-item/stories/index.story.tsx +1 -1
  811. package/src/menu-items-choice/stories/index.story.tsx +1 -1
  812. package/src/modal/index.tsx +2 -7
  813. package/src/modal/stories/index.story.tsx +1 -1
  814. package/src/modal/style.scss +68 -24
  815. package/src/modal/use-modal-exit-animation.ts +10 -7
  816. package/src/navigator/stories/index.story.tsx +1 -1
  817. package/src/notice/stories/index.story.tsx +1 -1
  818. package/src/notice/test/__snapshots__/index.tsx.snap +1 -0
  819. package/src/number-control/stories/index.story.tsx +1 -1
  820. package/src/palette-edit/index.tsx +0 -1
  821. package/src/palette-edit/stories/index.story.tsx +1 -1
  822. package/src/panel/stories/index.story.tsx +1 -1
  823. package/src/placeholder/stories/index.story.tsx +1 -1
  824. package/src/popover/stories/index.story.tsx +1 -1
  825. package/src/popover/style.scss +0 -4
  826. package/src/progress-bar/stories/index.story.tsx +1 -1
  827. package/src/query-controls/stories/index.story.tsx +1 -1
  828. package/src/radio-control/stories/index.story.tsx +1 -1
  829. package/src/range-control/stories/index.story.tsx +1 -1
  830. package/src/resizable-box/stories/index.story.tsx +1 -1
  831. package/src/resizable-box/style.scss +4 -5
  832. package/src/sandbox/stories/index.story.tsx +1 -1
  833. package/src/scroll-lock/stories/index.story.tsx +1 -1
  834. package/src/search-control/stories/index.story.tsx +1 -1
  835. package/src/select-control/stories/index.story.tsx +1 -1
  836. package/src/shortcut/stories/index.story.tsx +1 -1
  837. package/src/slot-fill/fill.tsx +2 -2
  838. package/src/slot-fill/stories/index.story.tsx +1 -1
  839. package/src/snackbar/stories/index.story.tsx +1 -1
  840. package/src/spinner/stories/index.story.tsx +1 -1
  841. package/src/style-provider/index.tsx +10 -7
  842. package/src/style-provider/test/index.tsx +38 -0
  843. package/src/tab-panel/style.scss +2 -2
  844. package/src/tabs/stories/index.story.tsx +1 -1
  845. package/src/text/styles.ts +1 -1
  846. package/src/text/test/index.tsx +1 -1
  847. package/src/text-control/stories/index.story.tsx +1 -1
  848. package/src/text-highlight/stories/index.story.tsx +1 -1
  849. package/src/textarea-control/stories/index.story.tsx +1 -1
  850. package/src/toggle-control/stories/index.story.tsx +1 -1
  851. package/src/toggle-group-control/stories/index.story.tsx +1 -1
  852. package/src/toolbar/stories/index.story.tsx +1 -1
  853. package/src/toolbar/toolbar-group/index.tsx +2 -2
  854. package/src/tools-panel/stories/index.story.tsx +1 -1
  855. package/src/tooltip/stories/index.story.tsx +1 -1
  856. package/src/tooltip/test/index.tsx +3 -2
  857. package/src/tree-grid/stories/index.story.tsx +1 -1
  858. package/src/tree-select/stories/index.story.tsx +1 -1
  859. package/src/truncate/stories/index.story.tsx +1 -1
  860. package/src/unit-control/stories/index.story.tsx +1 -1
  861. package/src/utils/breakpoint.js +1 -1
  862. package/src/utils/config-values.js +3 -0
  863. package/src/utils/dropdown-motion.ts +6 -2
  864. package/src/utils/font.js +1 -1
  865. package/src/visually-hidden/component.tsx +1 -0
  866. package/src/visually-hidden/stories/index.story.tsx +2 -9
  867. package/build-types/visually-hidden/test/index.d.ts.map +0 -1
  868. package/src/visually-hidden/test/__snapshots__/index.tsx.snap +0 -12
  869. package/src/visually-hidden/test/index.tsx +0 -17
  870. /package/build-types/{visually-hidden → style-provider}/test/index.d.ts +0 -0
@@ -3,12 +3,86 @@ import clsx from "clsx";
3
3
  import { useEffect, useRef } from "@wordpress/element";
4
4
  import { __experimentalUseDragging as useDragging } from "@wordpress/compose";
5
5
 
6
+ // packages/style-runtime/src/index.ts
7
+ var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
8
+ function getRuntime() {
9
+ const globalScope = globalThis;
10
+ if (globalScope.__wpStyleRuntime) {
11
+ return globalScope.__wpStyleRuntime;
12
+ }
13
+ globalScope.__wpStyleRuntime = {
14
+ documents: /* @__PURE__ */ new Map(),
15
+ styles: /* @__PURE__ */ new Map(),
16
+ injectedStyles: /* @__PURE__ */ new WeakMap()
17
+ };
18
+ if (typeof document !== "undefined") {
19
+ registerDocument(document);
20
+ }
21
+ return globalScope.__wpStyleRuntime;
22
+ }
23
+ function documentContainsStyleHash(targetDocument, hash) {
24
+ if (!targetDocument.head) {
25
+ return false;
26
+ }
27
+ for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {
28
+ if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
29
+ return true;
30
+ }
31
+ }
32
+ return false;
33
+ }
34
+ function injectStyle(targetDocument, hash, css) {
35
+ if (!targetDocument.head) {
36
+ return;
37
+ }
38
+ const runtime = getRuntime();
39
+ let injectedStyles = runtime.injectedStyles.get(targetDocument);
40
+ if (!injectedStyles) {
41
+ injectedStyles = /* @__PURE__ */ new Set();
42
+ runtime.injectedStyles.set(targetDocument, injectedStyles);
43
+ }
44
+ if (injectedStyles.has(hash)) {
45
+ return;
46
+ }
47
+ if (documentContainsStyleHash(targetDocument, hash)) {
48
+ injectedStyles.add(hash);
49
+ return;
50
+ }
51
+ const style = targetDocument.createElement("style");
52
+ style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
53
+ style.appendChild(targetDocument.createTextNode(css));
54
+ targetDocument.head.appendChild(style);
55
+ injectedStyles.add(hash);
56
+ }
57
+ function registerDocument(targetDocument) {
58
+ const runtime = getRuntime();
59
+ runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);
60
+ for (const [hash, css] of runtime.styles) {
61
+ injectStyle(targetDocument, hash, css);
62
+ }
63
+ return () => {
64
+ const count = runtime.documents.get(targetDocument);
65
+ if (count === void 0) {
66
+ return;
67
+ }
68
+ if (count <= 1) {
69
+ runtime.documents.delete(targetDocument);
70
+ return;
71
+ }
72
+ runtime.documents.set(targetDocument, count - 1);
73
+ };
74
+ }
75
+ function registerStyle(hash, css) {
76
+ const runtime = getRuntime();
77
+ runtime.styles.set(hash, css);
78
+ for (const targetDocument of runtime.documents.keys()) {
79
+ injectStyle(targetDocument, hash, css);
80
+ }
81
+ }
82
+
6
83
  // packages/components/src/angle-picker-control/style.module.scss
7
- if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='e91ec3f005']")) {
8
- const style = document.createElement("style");
9
- style.setAttribute("data-wp-hash", "e91ec3f005");
10
- style.appendChild(document.createTextNode("._8f57b8d483c51fbe__circle-root{border:1px solid var(--wp-components-color-gray-600,#949494);border-radius:50%;box-sizing:border-box;cursor:grab;height:32px;overflow:hidden;width:32px}._8f57b8d483c51fbe__circle-root:active{cursor:grabbing}.b1bae984ac10fcc3__circle-indicator-wrapper{box-sizing:border-box;height:100%;position:relative;width:100%}.b1bae984ac10fcc3__circle-indicator-wrapper:focus-visible{outline:none}._6d2fe0a2cbb31bf0__circle-indicator{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:50%;box-sizing:border-box;display:block;height:6px;left:50%;position:absolute;top:4px;transform:translateX(-50%);width:6px}"));
11
- document.head.appendChild(style);
84
+ if (typeof process === "undefined" || process.env.NODE_ENV !== "test") {
85
+ registerStyle("e91ec3f005", "._8f57b8d483c51fbe__circle-root{border:1px solid var(--wp-components-color-gray-600,#949494);border-radius:50%;box-sizing:border-box;cursor:grab;height:32px;overflow:hidden;width:32px}._8f57b8d483c51fbe__circle-root:active{cursor:grabbing}.b1bae984ac10fcc3__circle-indicator-wrapper{box-sizing:border-box;height:100%;position:relative;width:100%}.b1bae984ac10fcc3__circle-indicator-wrapper:focus-visible{outline:none}._6d2fe0a2cbb31bf0__circle-indicator{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:50%;box-sizing:border-box;display:block;height:6px;left:50%;position:absolute;top:4px;transform:translateX(-50%);width:6px}");
12
86
  }
13
87
  var style_module_default = { "circle-root": "_8f57b8d483c51fbe__circle-root", "circle-indicator-wrapper": "b1bae984ac10fcc3__circle-indicator-wrapper", "circle-indicator": "_6d2fe0a2cbb31bf0__circle-indicator" };
14
88
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/angle-picker-control/angle-circle.tsx", "../../src/angle-picker-control/style.module.scss"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { __experimentalUseDragging as useDragging } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.module.scss';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction AngleCircle({\n value,\n onChange,\n className,\n ...props\n}) {\n const angleCircleRef = useRef(null);\n const angleCircleCenterRef = useRef(undefined);\n const previousCursorValueRef = useRef(undefined);\n const setAngleCircleCenter = () => {\n if (angleCircleRef.current === null) {\n return;\n }\n const rect = angleCircleRef.current.getBoundingClientRect();\n angleCircleCenterRef.current = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2\n };\n };\n const changeAngleToPosition = event => {\n if (event === undefined) {\n return;\n }\n\n // Prevent (drag) mouse events from selecting and accidentally\n // triggering actions from other elements.\n event.preventDefault();\n // Input control needs to lose focus and by preventDefault above, it doesn't.\n event.target?.focus();\n if (angleCircleCenterRef.current !== undefined && onChange !== undefined) {\n const {\n x: centerX,\n y: centerY\n } = angleCircleCenterRef.current;\n onChange(getAngle(centerX, centerY, event.clientX, event.clientY));\n }\n };\n const {\n startDrag,\n isDragging\n } = useDragging({\n onDragStart: event => {\n setAngleCircleCenter();\n changeAngleToPosition(event);\n },\n onDragMove: changeAngleToPosition,\n onDragEnd: changeAngleToPosition\n });\n useEffect(() => {\n if (isDragging) {\n if (previousCursorValueRef.current === undefined) {\n previousCursorValueRef.current = document.body.style.cursor;\n }\n document.body.style.cursor = 'grabbing';\n } else {\n document.body.style.cursor = previousCursorValueRef.current || '';\n previousCursorValueRef.current = undefined;\n }\n }, [isDragging]);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _jsx(\"div\", {\n ref: angleCircleRef,\n onMouseDown: startDrag,\n className: clsx('components-angle-picker-control__angle-circle', styles['circle-root'], className),\n ...props,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: value ? {\n transform: `rotate(${value}deg)`\n } : undefined,\n className: clsx('components-angle-picker-control__angle-circle-indicator-wrapper', styles['circle-indicator-wrapper']),\n tabIndex: -1,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx('components-angle-picker-control__angle-circle-indicator', styles['circle-indicator'])\n })\n })\n })\n );\n}\nfunction getAngle(centerX, centerY, pointX, pointY) {\n const y = pointY - centerY;\n const x = pointX - centerX;\n const angleInRadians = Math.atan2(y, x);\n const angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;\n if (angleInDeg < 0) {\n return 360 + angleInDeg;\n }\n return angleInDeg;\n}\nexport default AngleCircle;", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='e91ec3f005']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"e91ec3f005\");\n\tstyle.appendChild(document.createTextNode(\"._8f57b8d483c51fbe__circle-root{border:1px solid var(--wp-components-color-gray-600,#949494);border-radius:50%;box-sizing:border-box;cursor:grab;height:32px;overflow:hidden;width:32px}._8f57b8d483c51fbe__circle-root:active{cursor:grabbing}.b1bae984ac10fcc3__circle-indicator-wrapper{box-sizing:border-box;height:100%;position:relative;width:100%}.b1bae984ac10fcc3__circle-indicator-wrapper:focus-visible{outline:none}._6d2fe0a2cbb31bf0__circle-indicator{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:50%;box-sizing:border-box;display:block;height:6px;left:50%;position:absolute;top:4px;transform:translateX(-50%);width:6px}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"circle-root\":\"_8f57b8d483c51fbe__circle-root\",\"circle-indicator-wrapper\":\"b1bae984ac10fcc3__circle-indicator-wrapper\",\"circle-indicator\":\"_6d2fe0a2cbb31bf0__circle-indicator\"};\n"],
5
- "mappings": "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",
3
+ "sources": ["../../src/angle-picker-control/angle-circle.tsx", "../../../style-runtime/src/index.ts", "../../src/angle-picker-control/style.module.scss"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { __experimentalUseDragging as useDragging } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.module.scss';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction AngleCircle({\n value,\n onChange,\n className,\n ...props\n}) {\n const angleCircleRef = useRef(null);\n const angleCircleCenterRef = useRef(undefined);\n const previousCursorValueRef = useRef(undefined);\n const setAngleCircleCenter = () => {\n if (angleCircleRef.current === null) {\n return;\n }\n const rect = angleCircleRef.current.getBoundingClientRect();\n angleCircleCenterRef.current = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2\n };\n };\n const changeAngleToPosition = event => {\n if (event === undefined) {\n return;\n }\n\n // Prevent (drag) mouse events from selecting and accidentally\n // triggering actions from other elements.\n event.preventDefault();\n // Input control needs to lose focus and by preventDefault above, it doesn't.\n event.target?.focus();\n if (angleCircleCenterRef.current !== undefined && onChange !== undefined) {\n const {\n x: centerX,\n y: centerY\n } = angleCircleCenterRef.current;\n onChange(getAngle(centerX, centerY, event.clientX, event.clientY));\n }\n };\n const {\n startDrag,\n isDragging\n } = useDragging({\n onDragStart: event => {\n setAngleCircleCenter();\n changeAngleToPosition(event);\n },\n onDragMove: changeAngleToPosition,\n onDragEnd: changeAngleToPosition\n });\n useEffect(() => {\n if (isDragging) {\n if (previousCursorValueRef.current === undefined) {\n previousCursorValueRef.current = document.body.style.cursor;\n }\n document.body.style.cursor = 'grabbing';\n } else {\n document.body.style.cursor = previousCursorValueRef.current || '';\n previousCursorValueRef.current = undefined;\n }\n }, [isDragging]);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _jsx(\"div\", {\n ref: angleCircleRef,\n onMouseDown: startDrag,\n className: clsx('components-angle-picker-control__angle-circle', styles['circle-root'], className),\n ...props,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: value ? {\n transform: `rotate(${value}deg)`\n } : undefined,\n className: clsx('components-angle-picker-control__angle-circle-indicator-wrapper', styles['circle-indicator-wrapper']),\n tabIndex: -1,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx('components-angle-picker-control__angle-circle-indicator', styles['circle-indicator'])\n })\n })\n })\n );\n}\nfunction getAngle(centerX, centerY, pointX, pointY) {\n const y = pointY - centerY;\n const x = pointX - centerX;\n const angleInRadians = Math.atan2(y, x);\n const angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;\n if (angleInDeg < 0) {\n return 360 + angleInDeg;\n }\n return angleInDeg;\n}\nexport default AngleCircle;", "const STYLE_HASH_ATTRIBUTE = 'data-wp-hash';\n\n/**\n * Returns the shared style runtime registry.\n *\n * The registry is stored on `globalThis` so separately bundled copies of this\n * package can coordinate through the same document and style maps.\n *\n * @return The shared runtime registry.\n */\nfunction getRuntime() {\n const globalScope = globalThis;\n if (globalScope.__wpStyleRuntime) {\n return globalScope.__wpStyleRuntime;\n }\n globalScope.__wpStyleRuntime = {\n documents: new Map(),\n styles: new Map(),\n injectedStyles: new WeakMap()\n };\n if (typeof document !== 'undefined') {\n registerDocument(document);\n }\n return globalScope.__wpStyleRuntime;\n}\n\n/**\n * Checks whether a document already contains a style tag for a hash.\n *\n * @param targetDocument Document to inspect.\n * @param hash Stable hash for the transformed CSS.\n *\n * @return Whether the style hash already exists in the document.\n */\nfunction documentContainsStyleHash(targetDocument, hash) {\n if (!targetDocument.head) {\n return false;\n }\n for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {\n if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Injects a registered style into a document, unless that document already\n * contains a style tag for the same hash.\n *\n * @param targetDocument Document to inject the style into.\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nfunction injectStyle(targetDocument, hash, css) {\n if (!targetDocument.head) {\n return;\n }\n const runtime = getRuntime();\n let injectedStyles = runtime.injectedStyles.get(targetDocument);\n if (!injectedStyles) {\n injectedStyles = new Set();\n runtime.injectedStyles.set(targetDocument, injectedStyles);\n }\n if (injectedStyles.has(hash)) {\n return;\n }\n\n // Older generated CSS module output can still inject matching style tags\n // after this document's cache is created, so keep the DOM as the fallback\n // source of truth on cache misses.\n if (documentContainsStyleHash(targetDocument, hash)) {\n injectedStyles.add(hash);\n return;\n }\n const style = targetDocument.createElement('style');\n style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);\n style.appendChild(targetDocument.createTextNode(css));\n targetDocument.head.appendChild(style);\n injectedStyles.add(hash);\n}\n\n/**\n * Registers a document as a style injection target.\n *\n * Existing registered styles are replayed into the document immediately.\n * Documents are reference-counted so multiple providers can safely register the\n * same document without one cleanup removing it while another registration is\n * still active.\n *\n * @param targetDocument Document to receive registered styles.\n * @return Cleanup function that unregisters this document registration.\n */\nexport function registerDocument(targetDocument) {\n const runtime = getRuntime();\n runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);\n for (const [hash, css] of runtime.styles) {\n injectStyle(targetDocument, hash, css);\n }\n return () => {\n const count = runtime.documents.get(targetDocument);\n if (count === undefined) {\n return;\n }\n if (count <= 1) {\n runtime.documents.delete(targetDocument);\n return;\n }\n runtime.documents.set(targetDocument, count - 1);\n };\n}\n\n/**\n * Registers a style and injects it into all registered documents.\n *\n * The hash is used as the deduplication key, so calling this repeatedly with\n * the same hash will not add duplicate style tags to a document.\n * Registered styles are retained for the lifetime of the page so they can be\n * replayed into documents that are registered later.\n *\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nexport function registerStyle(hash, css) {\n const runtime = getRuntime();\n runtime.styles.set(hash, css);\n for (const targetDocument of runtime.documents.keys()) {\n injectStyle(targetDocument, hash, css);\n }\n}", "import { registerStyle } from '@wordpress/style-runtime';\nif (typeof process === 'undefined' || process.env.NODE_ENV !== 'test') {\n\tregisterStyle(\"e91ec3f005\", \"._8f57b8d483c51fbe__circle-root{border:1px solid var(--wp-components-color-gray-600,#949494);border-radius:50%;box-sizing:border-box;cursor:grab;height:32px;overflow:hidden;width:32px}._8f57b8d483c51fbe__circle-root:active{cursor:grabbing}.b1bae984ac10fcc3__circle-indicator-wrapper{box-sizing:border-box;height:100%;position:relative;width:100%}.b1bae984ac10fcc3__circle-indicator-wrapper:focus-visible{outline:none}._6d2fe0a2cbb31bf0__circle-indicator{background:var(--wp-components-color-accent,var(--wp-admin-theme-color,#3858e9));border-radius:50%;box-sizing:border-box;display:block;height:6px;left:50%;position:absolute;top:4px;transform:translateX(-50%);width:6px}\");\n}\nexport default {\"circle-root\":\"_8f57b8d483c51fbe__circle-root\",\"circle-indicator-wrapper\":\"b1bae984ac10fcc3__circle-indicator-wrapper\",\"circle-indicator\":\"_6d2fe0a2cbb31bf0__circle-indicator\"};\n"],
5
+ "mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,WAAW,cAAc;AAClC,SAAS,6BAA6B,mBAAmB;;;ACTzD,IAAM,uBAAuB;AAU7B,SAAS,aAAa;AACpB,QAAM,cAAc;AACpB,MAAI,YAAY,kBAAkB;AAChC,WAAO,YAAY;AAAA,EACrB;AACA,cAAY,mBAAmB;AAAA,IAC7B,WAAW,oBAAI,IAAI;AAAA,IACnB,QAAQ,oBAAI,IAAI;AAAA,IAChB,gBAAgB,oBAAI,QAAQ;AAAA,EAC9B;AACA,MAAI,OAAO,aAAa,aAAa;AACnC,qBAAiB,QAAQ;AAAA,EAC3B;AACA,SAAO,YAAY;AACrB;AAUA,SAAS,0BAA0B,gBAAgB,MAAM;AACvD,MAAI,CAAC,eAAe,MAAM;AACxB,WAAO;AAAA,EACT;AACA,aAAW,SAAS,eAAe,KAAK,iBAAiB,SAAS,oBAAoB,GAAG,GAAG;AAC1F,QAAI,MAAM,aAAa,oBAAoB,MAAM,MAAM;AACrD,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAUA,SAAS,YAAY,gBAAgB,MAAM,KAAK;AAC9C,MAAI,CAAC,eAAe,MAAM;AACxB;AAAA,EACF;AACA,QAAM,UAAU,WAAW;AAC3B,MAAI,iBAAiB,QAAQ,eAAe,IAAI,cAAc;AAC9D,MAAI,CAAC,gBAAgB;AACnB,qBAAiB,oBAAI,IAAI;AACzB,YAAQ,eAAe,IAAI,gBAAgB,cAAc;AAAA,EAC3D;AACA,MAAI,eAAe,IAAI,IAAI,GAAG;AAC5B;AAAA,EACF;AAKA,MAAI,0BAA0B,gBAAgB,IAAI,GAAG;AACnD,mBAAe,IAAI,IAAI;AACvB;AAAA,EACF;AACA,QAAM,QAAQ,eAAe,cAAc,OAAO;AAClD,QAAM,aAAa,sBAAsB,IAAI;AAC7C,QAAM,YAAY,eAAe,eAAe,GAAG,CAAC;AACpD,iBAAe,KAAK,YAAY,KAAK;AACrC,iBAAe,IAAI,IAAI;AACzB;AAaO,SAAS,iBAAiB,gBAAgB;AAC/C,QAAM,UAAU,WAAW;AAC3B,UAAQ,UAAU,IAAI,iBAAiB,QAAQ,UAAU,IAAI,cAAc,KAAK,KAAK,CAAC;AACtF,aAAW,CAAC,MAAM,GAAG,KAAK,QAAQ,QAAQ;AACxC,gBAAY,gBAAgB,MAAM,GAAG;AAAA,EACvC;AACA,SAAO,MAAM;AACX,UAAM,QAAQ,QAAQ,UAAU,IAAI,cAAc;AAClD,QAAI,UAAU,QAAW;AACvB;AAAA,IACF;AACA,QAAI,SAAS,GAAG;AACd,cAAQ,UAAU,OAAO,cAAc;AACvC;AAAA,IACF;AACA,YAAQ,UAAU,IAAI,gBAAgB,QAAQ,CAAC;AAAA,EACjD;AACF;AAaO,SAAS,cAAc,MAAM,KAAK;AACvC,QAAM,UAAU,WAAW;AAC3B,UAAQ,OAAO,IAAI,MAAM,GAAG;AAC5B,aAAW,kBAAkB,QAAQ,UAAU,KAAK,GAAG;AACrD,gBAAY,gBAAgB,MAAM,GAAG;AAAA,EACvC;AACF;;;AChIA,IAAI,OAAO,YAAY,eAAe,QAAQ,IAAI,aAAa,QAAQ;AACtE,gBAAc,cAAc,kqBAAkqB;AAC/rB;AACA,IAAO,uBAAQ,EAAC,eAAc,kCAAiC,4BAA2B,8CAA6C,oBAAmB,sCAAqC;;;AFW/L,SAAS,OAAO,YAAY;AAC5B,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,iBAAiB,OAAO,IAAI;AAClC,QAAM,uBAAuB,OAAO,MAAS;AAC7C,QAAM,yBAAyB,OAAO,MAAS;AAC/C,QAAM,uBAAuB,MAAM;AACjC,QAAI,eAAe,YAAY,MAAM;AACnC;AAAA,IACF;AACA,UAAM,OAAO,eAAe,QAAQ,sBAAsB;AAC1D,yBAAqB,UAAU;AAAA,MAC7B,GAAG,KAAK,IAAI,KAAK,QAAQ;AAAA,MACzB,GAAG,KAAK,IAAI,KAAK,SAAS;AAAA,IAC5B;AAAA,EACF;AACA,QAAM,wBAAwB,WAAS;AACrC,QAAI,UAAU,QAAW;AACvB;AAAA,IACF;AAIA,UAAM,eAAe;AAErB,UAAM,QAAQ,MAAM;AACpB,QAAI,qBAAqB,YAAY,UAAa,aAAa,QAAW;AACxE,YAAM;AAAA,QACJ,GAAG;AAAA,QACH,GAAG;AAAA,MACL,IAAI,qBAAqB;AACzB,eAAS,SAAS,SAAS,SAAS,MAAM,SAAS,MAAM,OAAO,CAAC;AAAA,IACnE;AAAA,EACF;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAAA,IACd,aAAa,WAAS;AACpB,2BAAqB;AACrB,4BAAsB,KAAK;AAAA,IAC7B;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,CAAC;AACD,YAAU,MAAM;AACd,QAAI,YAAY;AACd,UAAI,uBAAuB,YAAY,QAAW;AAChD,+BAAuB,UAAU,SAAS,KAAK,MAAM;AAAA,MACvD;AACA,eAAS,KAAK,MAAM,SAAS;AAAA,IAC/B,OAAO;AACL,eAAS,KAAK,MAAM,SAAS,uBAAuB,WAAW;AAC/D,6BAAuB,UAAU;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AACf;AAAA;AAAA,IAGE,qBAAK,OAAO;AAAA,MACV,KAAK;AAAA,MACL,aAAa;AAAA,MACb,WAAW,KAAK,iDAAiD,qBAAO,aAAa,GAAG,SAAS;AAAA,MACjG,GAAG;AAAA,MACH,UAAuB,qBAAK,OAAO;AAAA,QACjC,OAAO,QAAQ;AAAA,UACb,WAAW,UAAU,KAAK;AAAA,QAC5B,IAAI;AAAA,QACJ,WAAW,KAAK,mEAAmE,qBAAO,0BAA0B,CAAC;AAAA,QACrH,UAAU;AAAA,QACV,UAAuB,qBAAK,OAAO;AAAA,UACjC,WAAW,KAAK,2DAA2D,qBAAO,kBAAkB,CAAC;AAAA,QACvG,CAAC;AAAA,MACH,CAAC;AAAA,IACH,CAAC;AAAA;AAEL;AACA,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ;AAClD,QAAM,IAAI,SAAS;AACnB,QAAM,IAAI,SAAS;AACnB,QAAM,iBAAiB,KAAK,MAAM,GAAG,CAAC;AACtC,QAAM,aAAa,KAAK,MAAM,kBAAkB,MAAM,KAAK,GAAG,IAAI;AAClE,MAAI,aAAa,GAAG;AAClB,WAAO,MAAM;AAAA,EACf;AACA,SAAO;AACT;AACA,IAAO,uBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/autocomplete/autocompleter-ui.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport { createPortal } from 'react-dom';\n\n/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useRef, useEffect, useState } from '@wordpress/element';\nimport { useAnchor } from '@wordpress/rich-text';\nimport { useDebounce, useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { __, _n, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport getDefaultUseItems from './get-default-use-items';\nimport Button from '../button';\nimport Popover from '../popover';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction ListBox({\n items,\n onSelect,\n selectedIndex,\n instanceId,\n listBoxId,\n className,\n Component = 'div'\n}) {\n return /*#__PURE__*/_jsx(Component, {\n id: listBoxId,\n role: \"listbox\",\n className: \"components-autocomplete__results\",\n children: items.map((option, index) => /*#__PURE__*/_jsx(Button, {\n id: `components-autocomplete-item-${instanceId}-${option.key}`,\n role: \"option\",\n __next40pxDefaultSize: true,\n \"aria-selected\": index === selectedIndex,\n accessibleWhenDisabled: true,\n disabled: option.isDisabled,\n className: clsx('components-autocomplete__result', className, {\n // Unused, for backwards compatibility.\n 'is-selected': index === selectedIndex\n }),\n variant: index === selectedIndex ? 'primary' : undefined,\n onClick: () => onSelect(option),\n children: option.label\n }, option.key))\n });\n}\nexport function AutocompleterUI({\n autocompleter,\n filterValue,\n instanceId,\n listBoxId,\n className,\n selectedIndex,\n onChangeOptions,\n onSelect,\n reset,\n contentRef\n}) {\n // The useItems hook is derived from the autocompleter prop. This is safe\n // because the parent renders this component with key={autocompleter.name},\n // ensuring a fresh mount (and stable hook identity) when the completer changes.\n const useItems = autocompleter.useItems ?? getDefaultUseItems(autocompleter);\n // eslint-disable-next-line react-compiler/react-compiler\n const [items] = useItems(filterValue);\n const popoverAnchor = useAnchor({\n editableContentElement: contentRef.current\n });\n const [needsA11yCompat, setNeedsA11yCompat] = useState(false);\n const popoverRef = useRef(null);\n const popoverRefs = useMergeRefs([popoverRef, useRefEffect(node => {\n if (!contentRef.current) {\n return;\n }\n\n // If the popover is rendered in a different document than\n // the content, we need to duplicate the options list in the\n // content document so that it's available to the screen\n // readers, which check the DOM ID based aria-* attributes.\n setNeedsA11yCompat(node.ownerDocument !== contentRef.current.ownerDocument);\n }, [contentRef])]);\n useOnClickOutside(popoverRef, reset);\n const debouncedSpeak = useDebounce(speak, 500);\n function announce(options) {\n if (!debouncedSpeak) {\n return;\n }\n if (!!options.length) {\n if (filterValue) {\n debouncedSpeak(sprintf(/* translators: %d: number of results. */\n _n('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', options.length), options.length), 'assertive');\n } else {\n debouncedSpeak(sprintf(/* translators: %d: number of results. */\n _n('Initial %d result loaded. Type to filter all available results. Use up and down arrow keys to navigate.', 'Initial %d results loaded. Type to filter all available results. Use up and down arrow keys to navigate.', options.length), options.length), 'assertive');\n }\n } else {\n debouncedSpeak(__('No results.'), 'assertive');\n }\n }\n useLayoutEffect(() => {\n onChangeOptions(items);\n announce(items);\n // We want to avoid introducing unexpected side effects.\n // See https://github.com/WordPress/gutenberg/pull/41820\n }, [items]);\n if (items.length === 0) {\n return null;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Popover, {\n offset: 8,\n focusOnMount: false,\n placement: \"top-start\",\n className: \"components-autocomplete__popover\",\n anchor: popoverAnchor,\n ref: popoverRefs,\n children: /*#__PURE__*/_jsx(ListBox, {\n items: items,\n onSelect: onSelect,\n selectedIndex: selectedIndex,\n instanceId: instanceId,\n listBoxId: listBoxId,\n className: className\n })\n }), contentRef.current && needsA11yCompat && createPortal(/*#__PURE__*/_jsx(ListBox, {\n items: items,\n onSelect: onSelect,\n selectedIndex: selectedIndex,\n instanceId: instanceId,\n listBoxId: listBoxId,\n className: className,\n Component: VisuallyHidden\n }), contentRef.current.ownerDocument.body)]\n });\n}\nfunction useOnClickOutside(ref, handler) {\n useEffect(() => {\n const listener = event => {\n // Do nothing if clicking ref's element or descendent elements, or if the ref is not referencing an element\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [handler, ref]);\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport { createPortal } from 'react-dom';\n\n/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useRef, useEffect, useState } from '@wordpress/element';\nimport { useAnchor } from '@wordpress/rich-text';\nimport { useDebounce, useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { __, _n, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport getDefaultUseItems from './get-default-use-items';\nimport Button from '../button';\nimport Popover from '../popover';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction ListBox({\n items,\n onSelect,\n selectedIndex,\n instanceId,\n listBoxId,\n className,\n Component = 'div'\n}) {\n return /*#__PURE__*/_jsx(Component, {\n id: listBoxId,\n role: \"listbox\",\n className: \"components-autocomplete__results\",\n children: items.map((option, index) => /*#__PURE__*/_jsx(Button, {\n id: `components-autocomplete-item-${instanceId}-${option.key}`,\n role: \"option\",\n __next40pxDefaultSize: true,\n \"aria-selected\": index === selectedIndex,\n accessibleWhenDisabled: true,\n disabled: option.isDisabled,\n className: clsx('components-autocomplete__result', className, {\n // Unused, for backwards compatibility.\n 'is-selected': index === selectedIndex\n }),\n variant: index === selectedIndex ? 'primary' : undefined,\n onClick: () => onSelect(option),\n children: option.label\n }, option.key))\n });\n}\nexport function AutocompleterUI({\n autocompleter,\n filterValue,\n instanceId,\n listBoxId,\n className,\n selectedIndex,\n onChangeOptions,\n onSelect,\n reset,\n contentRef\n}) {\n // The useItems hook is derived from the autocompleter prop. This is safe\n // because the parent renders this component with key={autocompleter.name},\n // ensuring a fresh mount (and stable hook identity) when the completer changes.\n const useItems = autocompleter.useItems ?? getDefaultUseItems(autocompleter);\n const [items] = useItems(filterValue);\n const popoverAnchor = useAnchor({\n editableContentElement: contentRef.current\n });\n const [needsA11yCompat, setNeedsA11yCompat] = useState(false);\n const popoverRef = useRef(null);\n const popoverRefs = useMergeRefs([popoverRef, useRefEffect(node => {\n if (!contentRef.current) {\n return;\n }\n\n // If the popover is rendered in a different document than\n // the content, we need to duplicate the options list in the\n // content document so that it's available to the screen\n // readers, which check the DOM ID based aria-* attributes.\n setNeedsA11yCompat(node.ownerDocument !== contentRef.current.ownerDocument);\n }, [contentRef])]);\n useOnClickOutside(popoverRef, reset);\n const debouncedSpeak = useDebounce(speak, 500);\n function announce(options) {\n if (!debouncedSpeak) {\n return;\n }\n if (!!options.length) {\n if (filterValue) {\n debouncedSpeak(sprintf(/* translators: %d: number of results. */\n _n('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', options.length), options.length), 'assertive');\n } else {\n debouncedSpeak(sprintf(/* translators: %d: number of results. */\n _n('Initial %d result loaded. Type to filter all available results. Use up and down arrow keys to navigate.', 'Initial %d results loaded. Type to filter all available results. Use up and down arrow keys to navigate.', options.length), options.length), 'assertive');\n }\n } else {\n debouncedSpeak(__('No results.'), 'assertive');\n }\n }\n useLayoutEffect(() => {\n onChangeOptions(items);\n announce(items);\n // We want to avoid introducing unexpected side effects.\n // See https://github.com/WordPress/gutenberg/pull/41820\n }, [items]);\n if (items.length === 0) {\n return null;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Popover, {\n offset: 8,\n focusOnMount: false,\n placement: \"top-start\",\n className: \"components-autocomplete__popover\",\n anchor: popoverAnchor,\n ref: popoverRefs,\n children: /*#__PURE__*/_jsx(ListBox, {\n items: items,\n onSelect: onSelect,\n selectedIndex: selectedIndex,\n instanceId: instanceId,\n listBoxId: listBoxId,\n className: className\n })\n }), contentRef.current && needsA11yCompat && createPortal(/*#__PURE__*/_jsx(ListBox, {\n items: items,\n onSelect: onSelect,\n selectedIndex: selectedIndex,\n instanceId: instanceId,\n listBoxId: listBoxId,\n className: className,\n Component: VisuallyHidden\n }), contentRef.current.ownerDocument.body)]\n });\n}\nfunction useOnClickOutside(ref, handler) {\n useEffect(() => {\n const listener = event => {\n // Do nothing if clicking ref's element or descendent elements, or if the ref is not referencing an element\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n handler(event);\n };\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [handler, ref]);\n}"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -22,15 +22,17 @@ function SinglePalette({
22
22
  colors,
23
23
  onChange,
24
24
  value,
25
+ selectedSlug,
25
26
  ...additionalProps
26
27
  }) {
27
28
  const colorOptions = useMemo(() => {
28
29
  return colors.map(({
29
30
  color,
30
- name
31
+ name,
32
+ slug
31
33
  }, index) => {
32
34
  const colordColor = colord(color);
33
- const isSelected = value === color;
35
+ const isSelected = selectedSlug ? slug === selectedSlug : value === color;
34
36
  return /* @__PURE__ */ _jsx(CircularOptionPicker.Option, {
35
37
  isSelected,
36
38
  selectedIconProps: isSelected ? {
@@ -42,10 +44,10 @@ function SinglePalette({
42
44
  backgroundColor: color,
43
45
  color
44
46
  },
45
- onClick: isSelected ? clearColor : () => onChange(color, index)
46
- }, `${color}-${index}`);
47
+ onClick: isSelected ? clearColor : () => onChange(color, index, slug)
48
+ }, slug ?? `${color}-${index}`);
47
49
  });
48
- }, [colors, value, onChange, clearColor]);
50
+ }, [colors, value, selectedSlug, onChange, clearColor]);
49
51
  return /* @__PURE__ */ _jsx(CircularOptionPicker.OptionGroup, {
50
52
  className,
51
53
  options: colorOptions,
@@ -58,6 +60,7 @@ function MultiplePalettes({
58
60
  colors,
59
61
  onChange,
60
62
  value,
63
+ selectedSlug,
61
64
  headingLevel
62
65
  }) {
63
66
  const instanceId = useInstanceId(MultiplePalettes, "color-palette");
@@ -81,8 +84,9 @@ function MultiplePalettes({
81
84
  }), /* @__PURE__ */ _jsx(SinglePalette, {
82
85
  clearColor,
83
86
  colors: colorPalette,
84
- onChange: (newColor) => onChange(newColor, index),
87
+ onChange: (newColor, _colorIndex, slug) => onChange(newColor, index, slug),
85
88
  value,
89
+ selectedSlug,
86
90
  "aria-labelledby": id
87
91
  })]
88
92
  }, index);
@@ -128,6 +132,7 @@ function UnforwardedColorPalette(props, forwardedRef) {
128
132
  enableAlpha = false,
129
133
  onChange,
130
134
  value,
135
+ selectedSlug,
131
136
  __experimentalIsRenderedInSidebar = false,
132
137
  headingLevel = 2,
133
138
  "aria-label": ariaLabel,
@@ -140,7 +145,7 @@ function UnforwardedColorPalette(props, forwardedRef) {
140
145
  setNormalizedColorValue(normalizeColorValue(value, node));
141
146
  }, [value]);
142
147
  const hasMultipleColorOrigins = isMultiplePaletteArray(colors);
143
- const buttonLabelName = useMemo(() => extractColorNameFromCurrentValue(value, colors, hasMultipleColorOrigins), [value, colors, hasMultipleColorOrigins]);
148
+ const buttonLabelName = useMemo(() => extractColorNameFromCurrentValue(value, colors, hasMultipleColorOrigins, selectedSlug), [value, colors, hasMultipleColorOrigins, selectedSlug]);
144
149
  const renderCustomColorPicker = () => /* @__PURE__ */ _jsx(DropdownContentWrapper, {
145
150
  paddingSize: "none",
146
151
  children: /* @__PURE__ */ _jsx(ColorPicker, {
@@ -160,7 +165,8 @@ function UnforwardedColorPalette(props, forwardedRef) {
160
165
  const paletteCommonProps = {
161
166
  clearColor,
162
167
  onChange,
163
- value
168
+ value,
169
+ selectedSlug
164
170
  };
165
171
  const actions = !!clearable && /* @__PURE__ */ _jsx(CircularOptionPicker.ButtonAction, {
166
172
  onClick: clearColor,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/color-palette/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useCallback, useMemo, useState, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Dropdown from '../dropdown';\nimport { ColorPicker } from '../color-picker';\nimport CircularOptionPicker, { getComputeCircularOptionPickerCommonProps } from '../circular-option-picker';\nimport { VStack } from '../v-stack';\nimport { Truncate } from '../truncate';\nimport { ColorHeading } from './styles';\nimport DropdownContentWrapper from '../dropdown/dropdown-content-wrapper';\nimport { extractColorNameFromCurrentValue, isMultiplePaletteArray, normalizeColorValue } from './utils';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nextend([namesPlugin, a11yPlugin]);\nfunction SinglePalette({\n className,\n clearColor,\n colors,\n onChange,\n value,\n ...additionalProps\n}) {\n const colorOptions = useMemo(() => {\n return colors.map(({\n color,\n name\n }, index) => {\n const colordColor = colord(color);\n const isSelected = value === color;\n return /*#__PURE__*/_jsx(CircularOptionPicker.Option, {\n isSelected: isSelected,\n selectedIconProps: isSelected ? {\n fill: colordColor.contrast() > colordColor.contrast('#000') ? '#fff' : '#000'\n } : {},\n tooltipText: name ||\n // translators: %s: color hex code e.g: \"#f00\".\n sprintf(__('Color code: %s'), color),\n style: {\n backgroundColor: color,\n color\n },\n onClick: isSelected ? clearColor : () => onChange(color, index)\n }, `${color}-${index}`);\n });\n }, [colors, value, onChange, clearColor]);\n return /*#__PURE__*/_jsx(CircularOptionPicker.OptionGroup, {\n className: className,\n options: colorOptions,\n ...additionalProps\n });\n}\nfunction MultiplePalettes({\n className,\n clearColor,\n colors,\n onChange,\n value,\n headingLevel\n}) {\n const instanceId = useInstanceId(MultiplePalettes, 'color-palette');\n if (colors.length === 0) {\n return null;\n }\n return /*#__PURE__*/_jsx(VStack, {\n spacing: 3,\n className: className,\n children: colors.map(({\n name,\n colors: colorPalette\n }, index) => {\n const id = `${instanceId}-${index}`;\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 2,\n children: [/*#__PURE__*/_jsx(ColorHeading, {\n id: id,\n level: headingLevel,\n children: name\n }), /*#__PURE__*/_jsx(SinglePalette, {\n clearColor: clearColor,\n colors: colorPalette,\n onChange: newColor => onChange(newColor, index),\n value: value,\n \"aria-labelledby\": id\n })]\n }, index);\n })\n });\n}\nexport function CustomColorPickerDropdown({\n isRenderedInSidebar,\n popoverProps: receivedPopoverProps,\n ...props\n}) {\n const popoverProps = useMemo(() => ({\n shift: true,\n // Disabling resize as it would otherwise cause the popover to show\n // scrollbars while dragging the color picker's handle close to the\n // popover edge.\n resize: false,\n ...(isRenderedInSidebar ? {\n // When in the sidebar: open to the left (stacking),\n // leaving the same gap as the parent popover.\n placement: 'left-start',\n offset: 34\n } : {\n // Default behavior: open below the anchor\n placement: 'bottom',\n offset: 8\n }),\n ...receivedPopoverProps\n }), [isRenderedInSidebar, receivedPopoverProps]);\n return /*#__PURE__*/_jsx(Dropdown, {\n contentClassName: \"components-color-palette__custom-color-dropdown-content\",\n popoverProps: popoverProps,\n ...props\n });\n}\nfunction UnforwardedColorPalette(props, forwardedRef) {\n const {\n asButtons,\n loop,\n clearable = true,\n colors = [],\n disableCustomColors = false,\n enableAlpha = false,\n onChange,\n value,\n __experimentalIsRenderedInSidebar = false,\n headingLevel = 2,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...additionalProps\n } = props;\n const [normalizedColorValue, setNormalizedColorValue] = useState(value);\n const clearColor = useCallback(() => onChange(undefined), [onChange]);\n const customColorPaletteCallbackRef = useCallback(node => {\n setNormalizedColorValue(normalizeColorValue(value, node));\n }, [value]);\n const hasMultipleColorOrigins = isMultiplePaletteArray(colors);\n const buttonLabelName = useMemo(() => extractColorNameFromCurrentValue(value, colors, hasMultipleColorOrigins), [value, colors, hasMultipleColorOrigins]);\n const renderCustomColorPicker = () => /*#__PURE__*/_jsx(DropdownContentWrapper, {\n paddingSize: \"none\",\n children: /*#__PURE__*/_jsx(ColorPicker, {\n color: normalizedColorValue,\n onChange: color => onChange(color),\n enableAlpha: enableAlpha\n })\n });\n const isHex = value?.startsWith('#');\n\n // Leave hex values as-is. Remove the `var()` wrapper from CSS vars.\n const displayValue = value?.replace(/^var\\((.+)\\)$/, '$1');\n const customColorAccessibleLabel = !!displayValue ? sprintf(\n // translators: 1: The name of the color e.g: \"vivid red\". 2: The color's hex code e.g: \"#f00\".\n __('Custom color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".'), buttonLabelName, displayValue) : __('Custom color picker');\n const paletteCommonProps = {\n clearColor,\n onChange,\n value\n };\n const actions = !!clearable && /*#__PURE__*/_jsx(CircularOptionPicker.ButtonAction, {\n onClick: clearColor,\n accessibleWhenDisabled: true,\n disabled: !value,\n children: __('Clear')\n });\n const {\n metaProps,\n labelProps\n } = getComputeCircularOptionPickerCommonProps(asButtons, loop, ariaLabel, ariaLabelledby);\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 3,\n ref: forwardedRef,\n ...additionalProps,\n children: [!disableCustomColors && /*#__PURE__*/_jsx(CustomColorPickerDropdown, {\n isRenderedInSidebar: __experimentalIsRenderedInSidebar,\n renderContent: renderCustomColorPicker,\n renderToggle: ({\n isOpen,\n onToggle\n }) => /*#__PURE__*/_jsxs(VStack, {\n className: \"components-color-palette__custom-color-wrapper\",\n spacing: 0,\n children: [/*#__PURE__*/_jsx(\"button\", {\n ref: customColorPaletteCallbackRef,\n className: \"components-color-palette__custom-color-button\",\n \"aria-expanded\": isOpen,\n \"aria-haspopup\": \"true\",\n onClick: onToggle,\n \"aria-label\": customColorAccessibleLabel,\n style: {\n background: value\n },\n type: \"button\"\n }), /*#__PURE__*/_jsxs(VStack, {\n className: \"components-color-palette__custom-color-text-wrapper\",\n spacing: 0.5,\n children: [/*#__PURE__*/_jsx(Truncate, {\n className: \"components-color-palette__custom-color-name\",\n children: value ? buttonLabelName : __('No color selected')\n }), /*#__PURE__*/_jsx(Truncate, {\n className: clsx('components-color-palette__custom-color-value', {\n 'components-color-palette__custom-color-value--is-hex': isHex\n }),\n children: displayValue\n })]\n })]\n })\n }), (colors.length > 0 || actions) && /*#__PURE__*/_jsx(CircularOptionPicker, {\n ...metaProps,\n ...labelProps,\n actions: actions,\n options: hasMultipleColorOrigins ? /*#__PURE__*/_jsx(MultiplePalettes, {\n ...paletteCommonProps,\n headingLevel: headingLevel,\n colors: colors,\n value: value\n }) : /*#__PURE__*/_jsx(SinglePalette, {\n ...paletteCommonProps,\n colors: colors,\n value: value\n })\n })]\n });\n}\n\n/**\n * Allows the user to pick a color from a list of pre-defined color entries.\n *\n * ```jsx\n * import { ColorPalette } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyColorPalette = () => {\n * const [ color, setColor ] = useState ( '#f00' )\n * const colors = [\n * { name: 'red', color: '#f00' },\n * { name: 'white', color: '#fff' },\n * { name: 'blue', color: '#00f' },\n * ];\n * return (\n * <ColorPalette\n * colors={ colors }\n * value={ color }\n * onChange={ ( color ) => setColor( color ) }\n * />\n * );\n * } );\n * ```\n */\nexport const ColorPalette = forwardRef(UnforwardedColorPalette);\nColorPalette.displayName = 'ColorPalette';\nexport default ColorPalette;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useCallback, useMemo, useState, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Dropdown from '../dropdown';\nimport { ColorPicker } from '../color-picker';\nimport CircularOptionPicker, { getComputeCircularOptionPickerCommonProps } from '../circular-option-picker';\nimport { VStack } from '../v-stack';\nimport { Truncate } from '../truncate';\nimport { ColorHeading } from './styles';\nimport DropdownContentWrapper from '../dropdown/dropdown-content-wrapper';\nimport { extractColorNameFromCurrentValue, isMultiplePaletteArray, normalizeColorValue } from './utils';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nextend([namesPlugin, a11yPlugin]);\nfunction SinglePalette({\n className,\n clearColor,\n colors,\n onChange,\n value,\n selectedSlug,\n ...additionalProps\n}) {\n const colorOptions = useMemo(() => {\n return colors.map(({\n color,\n name,\n slug\n }, index) => {\n const colordColor = colord(color);\n // When a non-empty selectedSlug is provided, selection is decided\n // strictly by slug \u2014 entries without a slug or with a different slug\n // are not selected, even when their color value matches `value`.\n // This correctly handles mixed palettes where some entries have slugs\n // and others don't. Fall back to color value matching otherwise\n // (including when selectedSlug is an empty string).\n const isSelected = selectedSlug ? slug === selectedSlug : value === color;\n return /*#__PURE__*/_jsx(CircularOptionPicker.Option, {\n isSelected: isSelected,\n selectedIconProps: isSelected ? {\n fill: colordColor.contrast() > colordColor.contrast('#000') ? '#fff' : '#000'\n } : {},\n tooltipText: name ||\n // translators: %s: color hex code e.g: \"#f00\".\n sprintf(__('Color code: %s'), color),\n style: {\n backgroundColor: color,\n color\n },\n onClick: isSelected ? clearColor : () => onChange(color, index, slug)\n }, slug ?? `${color}-${index}`);\n });\n }, [colors, value, selectedSlug, onChange, clearColor]);\n return /*#__PURE__*/_jsx(CircularOptionPicker.OptionGroup, {\n className: className,\n options: colorOptions,\n ...additionalProps\n });\n}\nfunction MultiplePalettes({\n className,\n clearColor,\n colors,\n onChange,\n value,\n selectedSlug,\n headingLevel\n}) {\n const instanceId = useInstanceId(MultiplePalettes, 'color-palette');\n if (colors.length === 0) {\n return null;\n }\n return /*#__PURE__*/_jsx(VStack, {\n spacing: 3,\n className: className,\n children: colors.map(({\n name,\n colors: colorPalette\n }, index) => {\n const id = `${instanceId}-${index}`;\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 2,\n children: [/*#__PURE__*/_jsx(ColorHeading, {\n id: id,\n level: headingLevel,\n children: name\n }), /*#__PURE__*/_jsx(SinglePalette, {\n clearColor: clearColor,\n colors: colorPalette,\n onChange: (newColor, _colorIndex, slug) => onChange(newColor, index, slug),\n value: value,\n selectedSlug: selectedSlug,\n \"aria-labelledby\": id\n })]\n }, index);\n })\n });\n}\nexport function CustomColorPickerDropdown({\n isRenderedInSidebar,\n popoverProps: receivedPopoverProps,\n ...props\n}) {\n const popoverProps = useMemo(() => ({\n shift: true,\n // Disabling resize as it would otherwise cause the popover to show\n // scrollbars while dragging the color picker's handle close to the\n // popover edge.\n resize: false,\n ...(isRenderedInSidebar ? {\n // When in the sidebar: open to the left (stacking),\n // leaving the same gap as the parent popover.\n placement: 'left-start',\n offset: 34\n } : {\n // Default behavior: open below the anchor\n placement: 'bottom',\n offset: 8\n }),\n ...receivedPopoverProps\n }), [isRenderedInSidebar, receivedPopoverProps]);\n return /*#__PURE__*/_jsx(Dropdown, {\n contentClassName: \"components-color-palette__custom-color-dropdown-content\",\n popoverProps: popoverProps,\n ...props\n });\n}\nfunction UnforwardedColorPalette(props, forwardedRef) {\n const {\n asButtons,\n loop,\n clearable = true,\n colors = [],\n disableCustomColors = false,\n enableAlpha = false,\n onChange,\n value,\n selectedSlug,\n __experimentalIsRenderedInSidebar = false,\n headingLevel = 2,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...additionalProps\n } = props;\n const [normalizedColorValue, setNormalizedColorValue] = useState(value);\n const clearColor = useCallback(() => onChange(undefined), [onChange]);\n const customColorPaletteCallbackRef = useCallback(node => {\n setNormalizedColorValue(normalizeColorValue(value, node));\n }, [value]);\n const hasMultipleColorOrigins = isMultiplePaletteArray(colors);\n const buttonLabelName = useMemo(() => extractColorNameFromCurrentValue(value, colors, hasMultipleColorOrigins, selectedSlug), [value, colors, hasMultipleColorOrigins, selectedSlug]);\n const renderCustomColorPicker = () => /*#__PURE__*/_jsx(DropdownContentWrapper, {\n paddingSize: \"none\",\n children: /*#__PURE__*/_jsx(ColorPicker, {\n color: normalizedColorValue,\n onChange: color => onChange(color),\n enableAlpha: enableAlpha\n })\n });\n const isHex = value?.startsWith('#');\n\n // Leave hex values as-is. Remove the `var()` wrapper from CSS vars.\n const displayValue = value?.replace(/^var\\((.+)\\)$/, '$1');\n const customColorAccessibleLabel = !!displayValue ? sprintf(\n // translators: 1: The name of the color e.g: \"vivid red\". 2: The color's hex code e.g: \"#f00\".\n __('Custom color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".'), buttonLabelName, displayValue) : __('Custom color picker');\n const paletteCommonProps = {\n clearColor,\n onChange,\n value,\n selectedSlug\n };\n const actions = !!clearable && /*#__PURE__*/_jsx(CircularOptionPicker.ButtonAction, {\n onClick: clearColor,\n accessibleWhenDisabled: true,\n disabled: !value,\n children: __('Clear')\n });\n const {\n metaProps,\n labelProps\n } = getComputeCircularOptionPickerCommonProps(asButtons, loop, ariaLabel, ariaLabelledby);\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 3,\n ref: forwardedRef,\n ...additionalProps,\n children: [!disableCustomColors && /*#__PURE__*/_jsx(CustomColorPickerDropdown, {\n isRenderedInSidebar: __experimentalIsRenderedInSidebar,\n renderContent: renderCustomColorPicker,\n renderToggle: ({\n isOpen,\n onToggle\n }) => /*#__PURE__*/_jsxs(VStack, {\n className: \"components-color-palette__custom-color-wrapper\",\n spacing: 0,\n children: [/*#__PURE__*/_jsx(\"button\", {\n ref: customColorPaletteCallbackRef,\n className: \"components-color-palette__custom-color-button\",\n \"aria-expanded\": isOpen,\n \"aria-haspopup\": \"true\",\n onClick: onToggle,\n \"aria-label\": customColorAccessibleLabel,\n style: {\n background: value\n },\n type: \"button\"\n }), /*#__PURE__*/_jsxs(VStack, {\n className: \"components-color-palette__custom-color-text-wrapper\",\n spacing: 0.5,\n children: [/*#__PURE__*/_jsx(Truncate, {\n className: \"components-color-palette__custom-color-name\",\n children: value ? buttonLabelName : __('No color selected')\n }), /*#__PURE__*/_jsx(Truncate, {\n className: clsx('components-color-palette__custom-color-value', {\n 'components-color-palette__custom-color-value--is-hex': isHex\n }),\n children: displayValue\n })]\n })]\n })\n }), (colors.length > 0 || actions) && /*#__PURE__*/_jsx(CircularOptionPicker, {\n ...metaProps,\n ...labelProps,\n actions: actions,\n options: hasMultipleColorOrigins ? /*#__PURE__*/_jsx(MultiplePalettes, {\n ...paletteCommonProps,\n headingLevel: headingLevel,\n colors: colors,\n value: value\n }) : /*#__PURE__*/_jsx(SinglePalette, {\n ...paletteCommonProps,\n colors: colors,\n value: value\n })\n })]\n });\n}\n\n/**\n * Allows the user to pick a color from a list of pre-defined color entries.\n *\n * ```jsx\n * import { ColorPalette } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyColorPalette = () => {\n * const [ color, setColor ] = useState ( '#f00' )\n * const colors = [\n * { name: 'red', color: '#f00' },\n * { name: 'white', color: '#fff' },\n * { name: 'blue', color: '#00f' },\n * ];\n * return (\n * <ColorPalette\n * colors={ colors }\n * value={ color }\n * onChange={ ( color ) => setColor( color ) }\n * />\n * );\n * } );\n * ```\n */\nexport const ColorPalette = forwardRef(UnforwardedColorPalette);\nColorPalette.displayName = 'ColorPalette';\nexport default ColorPalette;"],
5
+ "mappings": ";AAIA,SAAS,QAAQ,cAAc;AAC/B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AACvB,OAAO,UAAU;AAKjB,SAAS,qBAAqB;AAC9B,SAAS,IAAI,eAAe;AAC5B,SAAS,aAAa,SAAS,UAAU,kBAAkB;AAK3D,OAAO,cAAc;AACrB,SAAS,mBAAmB;AAC5B,OAAO,wBAAwB,iDAAiD;AAChF,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAC7B,OAAO,4BAA4B;AACnC,SAAS,kCAAkC,wBAAwB,2BAA2B;AAC9F,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,OAAO,CAAC,aAAa,UAAU,CAAC;AAChC,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAG;AACD,QAAM,eAAe,QAAQ,MAAM;AACjC,WAAO,OAAO,IAAI,CAAC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,IACF,GAAG,UAAU;AACX,YAAM,cAAc,OAAO,KAAK;AAOhC,YAAM,aAAa,eAAe,SAAS,eAAe,UAAU;AACpE,aAAoB,qBAAK,qBAAqB,QAAQ;AAAA,QACpD;AAAA,QACA,mBAAmB,aAAa;AAAA,UAC9B,MAAM,YAAY,SAAS,IAAI,YAAY,SAAS,MAAM,IAAI,SAAS;AAAA,QACzE,IAAI,CAAC;AAAA,QACL,aAAa;AAAA,QAEb,QAAQ,GAAG,gBAAgB,GAAG,KAAK;AAAA,QACnC,OAAO;AAAA,UACL,iBAAiB;AAAA,UACjB;AAAA,QACF;AAAA,QACA,SAAS,aAAa,aAAa,MAAM,SAAS,OAAO,OAAO,IAAI;AAAA,MACtE,GAAG,QAAQ,GAAG,KAAK,IAAI,KAAK,EAAE;AAAA,IAChC,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,OAAO,cAAc,UAAU,UAAU,CAAC;AACtD,SAAoB,qBAAK,qBAAqB,aAAa;AAAA,IACzD;AAAA,IACA,SAAS;AAAA,IACT,GAAG;AAAA,EACL,CAAC;AACH;AACA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAG;AACD,QAAM,aAAa,cAAc,kBAAkB,eAAe;AAClE,MAAI,OAAO,WAAW,GAAG;AACvB,WAAO;AAAA,EACT;AACA,SAAoB,qBAAK,QAAQ;AAAA,IAC/B,SAAS;AAAA,IACT;AAAA,IACA,UAAU,OAAO,IAAI,CAAC;AAAA,MACpB;AAAA,MACA,QAAQ;AAAA,IACV,GAAG,UAAU;AACX,YAAM,KAAK,GAAG,UAAU,IAAI,KAAK;AACjC,aAAoB,sBAAM,QAAQ;AAAA,QAChC,SAAS;AAAA,QACT,UAAU,CAAc,qBAAK,cAAc;AAAA,UACzC;AAAA,UACA,OAAO;AAAA,UACP,UAAU;AAAA,QACZ,CAAC,GAAgB,qBAAK,eAAe;AAAA,UACnC;AAAA,UACA,QAAQ;AAAA,UACR,UAAU,CAAC,UAAU,aAAa,SAAS,SAAS,UAAU,OAAO,IAAI;AAAA,UACzE;AAAA,UACA;AAAA,UACA,mBAAmB;AAAA,QACrB,CAAC,CAAC;AAAA,MACJ,GAAG,KAAK;AAAA,IACV,CAAC;AAAA,EACH,CAAC;AACH;AACO,SAAS,0BAA0B;AAAA,EACxC;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,GAAG;AACD,QAAM,eAAe,QAAQ,OAAO;AAAA,IAClC,OAAO;AAAA;AAAA;AAAA;AAAA,IAIP,QAAQ;AAAA,IACR,GAAI,sBAAsB;AAAA;AAAA;AAAA,MAGxB,WAAW;AAAA,MACX,QAAQ;AAAA,IACV,IAAI;AAAA;AAAA,MAEF,WAAW;AAAA,MACX,QAAQ;AAAA,IACV;AAAA,IACA,GAAG;AAAA,EACL,IAAI,CAAC,qBAAqB,oBAAoB,CAAC;AAC/C,SAAoB,qBAAK,UAAU;AAAA,IACjC,kBAAkB;AAAA,IAClB;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AACA,SAAS,wBAAwB,OAAO,cAAc;AACpD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,SAAS,CAAC;AAAA,IACV,sBAAsB;AAAA,IACtB,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA,oCAAoC;AAAA,IACpC,eAAe;AAAA,IACf,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,CAAC,sBAAsB,uBAAuB,IAAI,SAAS,KAAK;AACtE,QAAM,aAAa,YAAY,MAAM,SAAS,MAAS,GAAG,CAAC,QAAQ,CAAC;AACpE,QAAM,gCAAgC,YAAY,UAAQ;AACxD,4BAAwB,oBAAoB,OAAO,IAAI,CAAC;AAAA,EAC1D,GAAG,CAAC,KAAK,CAAC;AACV,QAAM,0BAA0B,uBAAuB,MAAM;AAC7D,QAAM,kBAAkB,QAAQ,MAAM,iCAAiC,OAAO,QAAQ,yBAAyB,YAAY,GAAG,CAAC,OAAO,QAAQ,yBAAyB,YAAY,CAAC;AACpL,QAAM,0BAA0B,MAAmB,qBAAK,wBAAwB;AAAA,IAC9E,aAAa;AAAA,IACb,UAAuB,qBAAK,aAAa;AAAA,MACvC,OAAO;AAAA,MACP,UAAU,WAAS,SAAS,KAAK;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACD,QAAM,QAAQ,OAAO,WAAW,GAAG;AAGnC,QAAM,eAAe,OAAO,QAAQ,iBAAiB,IAAI;AACzD,QAAM,6BAA6B,CAAC,CAAC,eAAe;AAAA;AAAA,IAEpD,GAAG,+FAA+F;AAAA,IAAG;AAAA,IAAiB;AAAA,EAAY,IAAI,GAAG,qBAAqB;AAC9J,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,UAAU,CAAC,CAAC,aAA0B,qBAAK,qBAAqB,cAAc;AAAA,IAClF,SAAS;AAAA,IACT,wBAAwB;AAAA,IACxB,UAAU,CAAC;AAAA,IACX,UAAU,GAAG,OAAO;AAAA,EACtB,CAAC;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,0CAA0C,WAAW,MAAM,WAAW,cAAc;AACxF,SAAoB,sBAAM,QAAQ;AAAA,IAChC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,GAAG;AAAA,IACH,UAAU,CAAC,CAAC,uBAAoC,qBAAK,2BAA2B;AAAA,MAC9E,qBAAqB;AAAA,MACrB,eAAe;AAAA,MACf,cAAc,CAAC;AAAA,QACb;AAAA,QACA;AAAA,MACF,MAAmB,sBAAM,QAAQ;AAAA,QAC/B,WAAW;AAAA,QACX,SAAS;AAAA,QACT,UAAU,CAAc,qBAAK,UAAU;AAAA,UACrC,KAAK;AAAA,UACL,WAAW;AAAA,UACX,iBAAiB;AAAA,UACjB,iBAAiB;AAAA,UACjB,SAAS;AAAA,UACT,cAAc;AAAA,UACd,OAAO;AAAA,YACL,YAAY;AAAA,UACd;AAAA,UACA,MAAM;AAAA,QACR,CAAC,GAAgB,sBAAM,QAAQ;AAAA,UAC7B,WAAW;AAAA,UACX,SAAS;AAAA,UACT,UAAU,CAAc,qBAAK,UAAU;AAAA,YACrC,WAAW;AAAA,YACX,UAAU,QAAQ,kBAAkB,GAAG,mBAAmB;AAAA,UAC5D,CAAC,GAAgB,qBAAK,UAAU;AAAA,YAC9B,WAAW,KAAK,gDAAgD;AAAA,cAC9D,wDAAwD;AAAA,YAC1D,CAAC;AAAA,YACD,UAAU;AAAA,UACZ,CAAC,CAAC;AAAA,QACJ,CAAC,CAAC;AAAA,MACJ,CAAC;AAAA,IACH,CAAC,IAAI,OAAO,SAAS,KAAK,YAAyB,qBAAK,sBAAsB;AAAA,MAC5E,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA,SAAS,0BAAuC,qBAAK,kBAAkB;AAAA,QACrE,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,IAAiB,qBAAK,eAAe;AAAA,QACpC,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AA0BO,IAAM,eAAe,WAAW,uBAAuB;AAC9D,aAAa,cAAc;AAC3B,IAAO,wBAAQ;",
6
6
  "names": []
7
7
  }
@@ -9,7 +9,7 @@ var isSimpleCSSColor = (value) => {
9
9
  const valueIsColorMix = /color-mix\(/.test(value ?? "");
10
10
  return !valueIsCssVariable && !valueIsColorMix;
11
11
  };
12
- var extractColorNameFromCurrentValue = (currentValue, colors = [], showMultiplePalettes = false) => {
12
+ var extractColorNameFromCurrentValue = (currentValue, colors = [], showMultiplePalettes = false, selectedSlug) => {
13
13
  if (!currentValue) {
14
14
  return "";
15
15
  }
@@ -23,8 +23,15 @@ var extractColorNameFromCurrentValue = (currentValue, colors = [], showMultipleP
23
23
  } of colorPalettes) {
24
24
  for (const {
25
25
  name: colorName,
26
- color: colorValue
26
+ color: colorValue,
27
+ slug
27
28
  } of paletteColors) {
29
+ if (selectedSlug) {
30
+ if (slug === selectedSlug) {
31
+ return colorName;
32
+ }
33
+ continue;
34
+ }
28
35
  const normalizedColorValue = currentValueIsSimpleColor ? colord(colorValue).toHex() : colorValue;
29
36
  if (normalizedCurrentValue === normalizedColorValue) {
30
37
  return colorName;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/color-palette/utils.ts"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n\nextend([namesPlugin, a11yPlugin]);\n\n/**\n * Checks if a color value is a simple CSS color.\n *\n * @param value The color value to check.\n * @return A boolean indicating whether the color value is a simple CSS color.\n */\nconst isSimpleCSSColor = value => {\n const valueIsCssVariable = /var\\(/.test(value ?? '');\n const valueIsColorMix = /color-mix\\(/.test(value ?? '');\n return !valueIsCssVariable && !valueIsColorMix;\n};\nexport const extractColorNameFromCurrentValue = (currentValue, colors = [], showMultiplePalettes = false) => {\n if (!currentValue) {\n return '';\n }\n const currentValueIsSimpleColor = currentValue ? isSimpleCSSColor(currentValue) : false;\n const normalizedCurrentValue = currentValueIsSimpleColor ? colord(currentValue).toHex() : currentValue;\n\n // Normalize format of `colors` to simplify the following loop\n\n const colorPalettes = showMultiplePalettes ? colors : [{\n colors: colors\n }];\n for (const {\n colors: paletteColors\n } of colorPalettes) {\n for (const {\n name: colorName,\n color: colorValue\n } of paletteColors) {\n const normalizedColorValue = currentValueIsSimpleColor ? colord(colorValue).toHex() : colorValue;\n if (normalizedCurrentValue === normalizedColorValue) {\n return colorName;\n }\n }\n }\n\n // translators: shown when the user has picked a custom color (i.e not in the palette of colors).\n return __('Custom');\n};\n\n// The PaletteObject type has a `colors` property (an array of ColorObject),\n// while the ColorObject type has a `color` property (the CSS color value).\nexport const isMultiplePaletteObject = obj => Array.isArray(obj.colors) && !('color' in obj);\nexport const isMultiplePaletteArray = arr => {\n return arr.length > 0 && arr.every(colorObj => isMultiplePaletteObject(colorObj));\n};\n\n/**\n * Transform a CSS variable used as background color into the color value itself.\n *\n * @param value The color value that may be a CSS variable.\n * @param element The element for which to get the computed style.\n * @return The background color value computed from a element.\n */\nexport const normalizeColorValue = (value, element) => {\n if (!value || !element || isSimpleCSSColor(value)) {\n return value;\n }\n const {\n ownerDocument\n } = element;\n const {\n defaultView\n } = ownerDocument;\n const computedBackgroundColor = defaultView?.getComputedStyle(element).backgroundColor;\n return computedBackgroundColor ? colord(computedBackgroundColor).toHex() : value;\n};"],
5
- "mappings": ";AAGA,SAAS,QAAQ,cAAc;AAC/B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAKvB,SAAS,UAAU;AAMnB,OAAO,CAAC,aAAa,UAAU,CAAC;AAQhC,IAAM,mBAAmB,WAAS;AAChC,QAAM,qBAAqB,QAAQ,KAAK,SAAS,EAAE;AACnD,QAAM,kBAAkB,cAAc,KAAK,SAAS,EAAE;AACtD,SAAO,CAAC,sBAAsB,CAAC;AACjC;AACO,IAAM,mCAAmC,CAAC,cAAc,SAAS,CAAC,GAAG,uBAAuB,UAAU;AAC3G,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AACA,QAAM,4BAA4B,eAAe,iBAAiB,YAAY,IAAI;AAClF,QAAM,yBAAyB,4BAA4B,OAAO,YAAY,EAAE,MAAM,IAAI;AAI1F,QAAM,gBAAgB,uBAAuB,SAAS,CAAC;AAAA,IACrD;AAAA,EACF,CAAC;AACD,aAAW;AAAA,IACT,QAAQ;AAAA,EACV,KAAK,eAAe;AAClB,eAAW;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACT,KAAK,eAAe;AAClB,YAAM,uBAAuB,4BAA4B,OAAO,UAAU,EAAE,MAAM,IAAI;AACtF,UAAI,2BAA2B,sBAAsB;AACnD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAGA,SAAO,GAAG,QAAQ;AACpB;AAIO,IAAM,0BAA0B,SAAO,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,WAAW;AACjF,IAAM,yBAAyB,SAAO;AAC3C,SAAO,IAAI,SAAS,KAAK,IAAI,MAAM,cAAY,wBAAwB,QAAQ,CAAC;AAClF;AASO,IAAM,sBAAsB,CAAC,OAAO,YAAY;AACrD,MAAI,CAAC,SAAS,CAAC,WAAW,iBAAiB,KAAK,GAAG;AACjD,WAAO;AAAA,EACT;AACA,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,0BAA0B,aAAa,iBAAiB,OAAO,EAAE;AACvE,SAAO,0BAA0B,OAAO,uBAAuB,EAAE,MAAM,IAAI;AAC7E;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\n\nextend([namesPlugin, a11yPlugin]);\n\n/**\n * Checks if a color value is a simple CSS color.\n *\n * @param value The color value to check.\n * @return A boolean indicating whether the color value is a simple CSS color.\n */\nconst isSimpleCSSColor = value => {\n const valueIsCssVariable = /var\\(/.test(value ?? '');\n const valueIsColorMix = /color-mix\\(/.test(value ?? '');\n return !valueIsCssVariable && !valueIsColorMix;\n};\nexport const extractColorNameFromCurrentValue = (currentValue, colors = [], showMultiplePalettes = false, selectedSlug) => {\n if (!currentValue) {\n return '';\n }\n const currentValueIsSimpleColor = currentValue ? isSimpleCSSColor(currentValue) : false;\n const normalizedCurrentValue = currentValueIsSimpleColor ? colord(currentValue).toHex() : currentValue;\n\n // Normalize format of `colors` to simplify the following loop\n\n const colorPalettes = showMultiplePalettes ? colors : [{\n colors: colors\n }];\n for (const {\n colors: paletteColors\n } of colorPalettes) {\n for (const {\n name: colorName,\n color: colorValue,\n slug\n } of paletteColors) {\n if (selectedSlug) {\n if (slug === selectedSlug) {\n return colorName;\n }\n continue;\n }\n const normalizedColorValue = currentValueIsSimpleColor ? colord(colorValue).toHex() : colorValue;\n if (normalizedCurrentValue === normalizedColorValue) {\n return colorName;\n }\n }\n }\n\n // translators: shown when the user has picked a custom color (i.e not in the palette of colors).\n return __('Custom');\n};\n\n// The PaletteObject type has a `colors` property (an array of ColorObject),\n// while the ColorObject type has a `color` property (the CSS color value).\nexport const isMultiplePaletteObject = obj => Array.isArray(obj.colors) && !('color' in obj);\nexport const isMultiplePaletteArray = arr => {\n return arr.length > 0 && arr.every(colorObj => isMultiplePaletteObject(colorObj));\n};\n\n/**\n * Transform a CSS variable used as background color into the color value itself.\n *\n * @param value The color value that may be a CSS variable.\n * @param element The element for which to get the computed style.\n * @return The background color value computed from a element.\n */\nexport const normalizeColorValue = (value, element) => {\n if (!value || !element || isSimpleCSSColor(value)) {\n return value;\n }\n const {\n ownerDocument\n } = element;\n const {\n defaultView\n } = ownerDocument;\n const computedBackgroundColor = defaultView?.getComputedStyle(element).backgroundColor;\n return computedBackgroundColor ? colord(computedBackgroundColor).toHex() : value;\n};"],
5
+ "mappings": ";AAGA,SAAS,QAAQ,cAAc;AAC/B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAKvB,SAAS,UAAU;AAMnB,OAAO,CAAC,aAAa,UAAU,CAAC;AAQhC,IAAM,mBAAmB,WAAS;AAChC,QAAM,qBAAqB,QAAQ,KAAK,SAAS,EAAE;AACnD,QAAM,kBAAkB,cAAc,KAAK,SAAS,EAAE;AACtD,SAAO,CAAC,sBAAsB,CAAC;AACjC;AACO,IAAM,mCAAmC,CAAC,cAAc,SAAS,CAAC,GAAG,uBAAuB,OAAO,iBAAiB;AACzH,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AACA,QAAM,4BAA4B,eAAe,iBAAiB,YAAY,IAAI;AAClF,QAAM,yBAAyB,4BAA4B,OAAO,YAAY,EAAE,MAAM,IAAI;AAI1F,QAAM,gBAAgB,uBAAuB,SAAS,CAAC;AAAA,IACrD;AAAA,EACF,CAAC;AACD,aAAW;AAAA,IACT,QAAQ;AAAA,EACV,KAAK,eAAe;AAClB,eAAW;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,IACF,KAAK,eAAe;AAClB,UAAI,cAAc;AAChB,YAAI,SAAS,cAAc;AACzB,iBAAO;AAAA,QACT;AACA;AAAA,MACF;AACA,YAAM,uBAAuB,4BAA4B,OAAO,UAAU,EAAE,MAAM,IAAI;AACtF,UAAI,2BAA2B,sBAAsB;AACnD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAGA,SAAO,GAAG,QAAQ;AACpB;AAIO,IAAM,0BAA0B,SAAO,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,WAAW;AACjF,IAAM,yBAAyB,SAAO;AAC3C,SAAO,IAAI,SAAS,KAAK,IAAI,MAAM,cAAY,wBAAwB,QAAQ,CAAC;AAClF;AASO,IAAM,sBAAsB,CAAC,OAAO,YAAY;AACrD,MAAI,CAAC,SAAS,CAAC,WAAW,iBAAiB,KAAK,GAAG;AACjD,WAAO;AAAA,EACT;AACA,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,0BAA0B,aAAa,iBAAiB,OAAO,EAAE;AACvE,SAAO,0BAA0B,OAAO,uBAAuB,EAAE,MAAM,IAAI;AAC7E;",
6
6
  "names": []
7
7
  }
@@ -12,7 +12,7 @@ var HexInput = ({
12
12
  enableAlpha
13
13
  }) => {
14
14
  const handleChange = (nextValue) => {
15
- if (!nextValue) {
15
+ if (nextValue === void 0) {
16
16
  return;
17
17
  }
18
18
  const hexValue = nextValue.startsWith("#") ? nextValue : "#" + nextValue;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/color-picker/hex-input.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport { colord } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { InputControl } from '../input-control';\nimport { Text } from '../text';\nimport { COLORS } from '../utils/colors-values';\nimport InputControlPrefixWrapper from '../input-control/input-prefix-wrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const HexInput = ({\n color,\n onChange,\n enableAlpha\n}) => {\n const handleChange = nextValue => {\n if (!nextValue) {\n return;\n }\n const hexValue = nextValue.startsWith('#') ? nextValue : '#' + nextValue;\n onChange(colord(hexValue));\n };\n const stateReducer = (state, action) => {\n const nativeEvent = action.payload?.event?.nativeEvent;\n if ('insertFromPaste' !== nativeEvent?.inputType) {\n return {\n ...state\n };\n }\n const value = state.value?.startsWith('#') ? state.value.slice(1).toUpperCase() : state.value?.toUpperCase();\n return {\n ...state,\n value\n };\n };\n return /*#__PURE__*/_jsx(InputControl, {\n prefix: /*#__PURE__*/_jsx(InputControlPrefixWrapper, {\n children: /*#__PURE__*/_jsx(Text, {\n color: COLORS.theme.accent,\n lineHeight: 1,\n children: \"#\"\n })\n }),\n value: color.toHex().slice(1).toUpperCase(),\n onChange: handleChange,\n maxLength: enableAlpha ? 9 : 7,\n label: __('Hex color'),\n hideLabelFromVision: true,\n size: \"__unstable-large\",\n __unstableStateReducer: stateReducer,\n __unstableInputWidth: \"9em\"\n });\n};"],
5
- "mappings": ";AAGA,SAAS,cAAc;AAKvB,SAAS,UAAU;AAKnB,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,OAAO,+BAA+B;AACtC,SAAS,OAAO,YAAY;AACrB,IAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,eAAe,eAAa;AAChC,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AACA,UAAM,WAAW,UAAU,WAAW,GAAG,IAAI,YAAY,MAAM;AAC/D,aAAS,OAAO,QAAQ,CAAC;AAAA,EAC3B;AACA,QAAM,eAAe,CAAC,OAAO,WAAW;AACtC,UAAM,cAAc,OAAO,SAAS,OAAO;AAC3C,QAAI,sBAAsB,aAAa,WAAW;AAChD,aAAO;AAAA,QACL,GAAG;AAAA,MACL;AAAA,IACF;AACA,UAAM,QAAQ,MAAM,OAAO,WAAW,GAAG,IAAI,MAAM,MAAM,MAAM,CAAC,EAAE,YAAY,IAAI,MAAM,OAAO,YAAY;AAC3G,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACA,SAAoB,qBAAK,cAAc;AAAA,IACrC,QAAqB,qBAAK,2BAA2B;AAAA,MACnD,UAAuB,qBAAK,MAAM;AAAA,QAChC,OAAO,OAAO,MAAM;AAAA,QACpB,YAAY;AAAA,QACZ,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,CAAC;AAAA,IACD,OAAO,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY;AAAA,IAC1C,UAAU;AAAA,IACV,WAAW,cAAc,IAAI;AAAA,IAC7B,OAAO,GAAG,WAAW;AAAA,IACrB,qBAAqB;AAAA,IACrB,MAAM;AAAA,IACN,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,EACxB,CAAC;AACH;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport { colord } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { InputControl } from '../input-control';\nimport { Text } from '../text';\nimport { COLORS } from '../utils/colors-values';\nimport InputControlPrefixWrapper from '../input-control/input-prefix-wrapper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const HexInput = ({\n color,\n onChange,\n enableAlpha\n}) => {\n const handleChange = nextValue => {\n if (nextValue === undefined) {\n return;\n }\n const hexValue = nextValue.startsWith('#') ? nextValue : '#' + nextValue;\n onChange(colord(hexValue));\n };\n const stateReducer = (state, action) => {\n const nativeEvent = action.payload?.event?.nativeEvent;\n if ('insertFromPaste' !== nativeEvent?.inputType) {\n return {\n ...state\n };\n }\n const value = state.value?.startsWith('#') ? state.value.slice(1).toUpperCase() : state.value?.toUpperCase();\n return {\n ...state,\n value\n };\n };\n return /*#__PURE__*/_jsx(InputControl, {\n prefix: /*#__PURE__*/_jsx(InputControlPrefixWrapper, {\n children: /*#__PURE__*/_jsx(Text, {\n color: COLORS.theme.accent,\n lineHeight: 1,\n children: \"#\"\n })\n }),\n value: color.toHex().slice(1).toUpperCase(),\n onChange: handleChange,\n maxLength: enableAlpha ? 9 : 7,\n label: __('Hex color'),\n hideLabelFromVision: true,\n size: \"__unstable-large\",\n __unstableStateReducer: stateReducer,\n __unstableInputWidth: \"9em\"\n });\n};"],
5
+ "mappings": ";AAGA,SAAS,cAAc;AAKvB,SAAS,UAAU;AAKnB,SAAS,oBAAoB;AAC7B,SAAS,YAAY;AACrB,SAAS,cAAc;AACvB,OAAO,+BAA+B;AACtC,SAAS,OAAO,YAAY;AACrB,IAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,eAAe,eAAa;AAChC,QAAI,cAAc,QAAW;AAC3B;AAAA,IACF;AACA,UAAM,WAAW,UAAU,WAAW,GAAG,IAAI,YAAY,MAAM;AAC/D,aAAS,OAAO,QAAQ,CAAC;AAAA,EAC3B;AACA,QAAM,eAAe,CAAC,OAAO,WAAW;AACtC,UAAM,cAAc,OAAO,SAAS,OAAO;AAC3C,QAAI,sBAAsB,aAAa,WAAW;AAChD,aAAO;AAAA,QACL,GAAG;AAAA,MACL;AAAA,IACF;AACA,UAAM,QAAQ,MAAM,OAAO,WAAW,GAAG,IAAI,MAAM,MAAM,MAAM,CAAC,EAAE,YAAY,IAAI,MAAM,OAAO,YAAY;AAC3G,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACA,SAAoB,qBAAK,cAAc;AAAA,IACrC,QAAqB,qBAAK,2BAA2B;AAAA,MACnD,UAAuB,qBAAK,MAAM;AAAA,QAChC,OAAO,OAAO,MAAM;AAAA,QACpB,YAAY;AAAA,QACZ,UAAU;AAAA,MACZ,CAAC;AAAA,IACH,CAAC;AAAA,IACD,OAAO,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY;AAAA,IAC1C,UAAU;AAAA,IACV,WAAW,cAAc,IAAI;AAAA,IAC7B,OAAO,GAAG,WAAW;AAAA,IACrB,qBAAqB;AAAA,IACrB,MAAM;AAAA,IACN,wBAAwB;AAAA,IACxB,sBAAsB;AAAA,EACxB,CAAC;AACH;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/custom-gradient-picker/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AnglePickerControl from '../angle-picker-control';\nimport CustomGradientBar from './gradient-bar';\nimport { Flex } from '../flex';\nimport SelectControl from '../select-control';\nimport { VStack } from '../v-stack';\nimport { getGradientAstWithDefault, getLinearGradientRepresentation, getGradientAstWithControlPoints, getStopCssColor } from './utils';\nimport { serializeGradient } from './serializer';\nimport { DEFAULT_LINEAR_GRADIENT_ANGLE, GRADIENT_OPTIONS, HORIZONTAL_GRADIENT_ORIENTATION } from './constants';\nimport { AccessoryWrapper, SelectWrapper } from './styles/custom-gradient-picker-styles';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GradientAnglePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const angle = gradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE;\n const onAngleChange = newAngle => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: {\n type: 'angular',\n value: `${newAngle}`\n }\n }));\n };\n return /*#__PURE__*/_jsx(AnglePickerControl, {\n onChange: onAngleChange,\n value: hasGradient ? angle : ''\n });\n};\nconst GradientTypePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const {\n type\n } = gradientAST;\n const lastLinearOrientationAngle = useRef(Number(HORIZONTAL_GRADIENT_ORIENTATION.value));\n if (type === 'linear-gradient' && gradientAST.orientation) {\n // eslint-disable-next-line react-compiler/react-compiler -- false positive, see https://github.com/facebook/react/issues/29196\n lastLinearOrientationAngle.current = Number(gradientAST.orientation.value);\n }\n const onSetLinearGradient = () => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: {\n type: 'angular',\n value: `${lastLinearOrientationAngle.current}`\n },\n type: 'linear-gradient'\n }));\n };\n const onSetRadialGradient = () => {\n const {\n orientation,\n ...restGradientAST\n } = gradientAST;\n onChange(serializeGradient({\n ...restGradientAST,\n type: 'radial-gradient'\n }));\n };\n const handleOnChange = next => {\n if (next === 'linear-gradient') {\n onSetLinearGradient();\n }\n if (next === 'radial-gradient') {\n onSetRadialGradient();\n }\n };\n return /*#__PURE__*/_jsx(SelectControl, {\n className: \"components-custom-gradient-picker__type-picker\",\n label: __('Type'),\n labelPosition: \"top\",\n onChange: handleOnChange,\n options: GRADIENT_OPTIONS,\n size: \"__unstable-large\",\n value: hasGradient ? type : undefined\n });\n};\n\n/**\n * CustomGradientPicker is a React component that renders a UI for specifying\n * linear or radial gradients. Radial gradients are displayed in the picker as\n * a slice of the gradient from the center to the outside.\n *\n * ```jsx\n * import { CustomGradientPicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyCustomGradientPicker = () => {\n * const [ gradient, setGradient ] = useState();\n *\n * return (\n * <CustomGradientPicker\n *\t\t\tvalue={ gradient }\n *\t\t\tonChange={ setGradient }\n * />\n * );\n * };\n * ```\n */\nexport function CustomGradientPicker({\n value,\n onChange,\n enableAlpha = true,\n __experimentalIsRenderedInSidebar = false\n}) {\n const {\n gradientAST,\n hasGradient\n } = getGradientAstWithDefault(value);\n\n // On radial gradients the bar should display a linear gradient.\n // On radial gradients the bar represents a slice of the gradient from the center until the outside.\n // On liner gradients the bar represents the color stops from left to right independently of the angle.\n const background = getLinearGradientRepresentation(gradientAST);\n\n // Control points color option may be hex from presets, custom colors will be rgb.\n // The position should always be a percentage.\n const controlPoints = gradientAST.colorStops.map(colorStop => {\n return {\n color: getStopCssColor(colorStop),\n // Although it's already been checked by `hasUnsupportedLength` in `getGradientAstWithDefault`,\n // TypeScript doesn't know that `colorStop.length` is not undefined here.\n // @ts-expect-error\n position: parseInt(colorStop.length.value)\n };\n });\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 4,\n className: \"components-custom-gradient-picker\",\n children: [/*#__PURE__*/_jsx(CustomGradientBar, {\n __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,\n disableAlpha: !enableAlpha,\n background: background,\n hasGradient: hasGradient,\n value: controlPoints,\n onChange: newControlPoints => {\n onChange(serializeGradient(getGradientAstWithControlPoints(gradientAST, newControlPoints)));\n }\n }), /*#__PURE__*/_jsxs(Flex, {\n gap: 3,\n className: \"components-custom-gradient-picker__ui-line\",\n children: [/*#__PURE__*/_jsx(SelectWrapper, {\n children: /*#__PURE__*/_jsx(GradientTypePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n }), /*#__PURE__*/_jsx(AccessoryWrapper, {\n children: gradientAST.type === 'linear-gradient' && /*#__PURE__*/_jsx(GradientAnglePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n })]\n })]\n });\n}\nexport default CustomGradientPicker;"],
5
- "mappings": ";AAOA,SAAS,UAAU;AACnB,SAAS,cAAc;AAKvB,OAAO,wBAAwB;AAC/B,OAAO,uBAAuB;AAC9B,SAAS,YAAY;AACrB,OAAO,mBAAmB;AAC1B,SAAS,cAAc;AACvB,SAAS,2BAA2B,iCAAiC,iCAAiC,uBAAuB;AAC7H,SAAS,yBAAyB;AAClC,SAAS,+BAA+B,kBAAkB,uCAAuC;AACjG,SAAS,kBAAkB,qBAAqB;AAChD,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,IAAM,sBAAsB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,aAAa,aAAa,SAAS;AACjD,QAAM,gBAAgB,cAAY;AAChC,aAAS,kBAAkB;AAAA,MACzB,GAAG;AAAA,MACH,aAAa;AAAA,QACX,MAAM;AAAA,QACN,OAAO,GAAG,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;AACA,SAAoB,qBAAK,oBAAoB;AAAA,IAC3C,UAAU;AAAA,IACV,OAAO,cAAc,QAAQ;AAAA,EAC/B,CAAC;AACH;AACA,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,6BAA6B,OAAO,OAAO,gCAAgC,KAAK,CAAC;AACvF,MAAI,SAAS,qBAAqB,YAAY,aAAa;AAEzD,+BAA2B,UAAU,OAAO,YAAY,YAAY,KAAK;AAAA,EAC3E;AACA,QAAM,sBAAsB,MAAM;AAChC,aAAS,kBAAkB;AAAA,MACzB,GAAG;AAAA,MACH,aAAa;AAAA,QACX,MAAM;AAAA,QACN,OAAO,GAAG,2BAA2B,OAAO;AAAA,MAC9C;AAAA,MACA,MAAM;AAAA,IACR,CAAC,CAAC;AAAA,EACJ;AACA,QAAM,sBAAsB,MAAM;AAChC,UAAM;AAAA,MACJ;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AACJ,aAAS,kBAAkB;AAAA,MACzB,GAAG;AAAA,MACH,MAAM;AAAA,IACR,CAAC,CAAC;AAAA,EACJ;AACA,QAAM,iBAAiB,UAAQ;AAC7B,QAAI,SAAS,mBAAmB;AAC9B,0BAAoB;AAAA,IACtB;AACA,QAAI,SAAS,mBAAmB;AAC9B,0BAAoB;AAAA,IACtB;AAAA,EACF;AACA,SAAoB,qBAAK,eAAe;AAAA,IACtC,WAAW;AAAA,IACX,OAAO,GAAG,MAAM;AAAA,IAChB,eAAe;AAAA,IACf,UAAU;AAAA,IACV,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO,cAAc,OAAO;AAAA,EAC9B,CAAC;AACH;AAuBO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,oCAAoC;AACtC,GAAG;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,KAAK;AAKnC,QAAM,aAAa,gCAAgC,WAAW;AAI9D,QAAM,gBAAgB,YAAY,WAAW,IAAI,eAAa;AAC5D,WAAO;AAAA,MACL,OAAO,gBAAgB,SAAS;AAAA;AAAA;AAAA;AAAA,MAIhC,UAAU,SAAS,UAAU,OAAO,KAAK;AAAA,IAC3C;AAAA,EACF,CAAC;AACD,SAAoB,sBAAM,QAAQ;AAAA,IAChC,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU,CAAc,qBAAK,mBAAmB;AAAA,MAC9C;AAAA,MACA,cAAc,CAAC;AAAA,MACf;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,UAAU,sBAAoB;AAC5B,iBAAS,kBAAkB,gCAAgC,aAAa,gBAAgB,CAAC,CAAC;AAAA,MAC5F;AAAA,IACF,CAAC,GAAgB,sBAAM,MAAM;AAAA,MAC3B,KAAK;AAAA,MACL,WAAW;AAAA,MACX,UAAU,CAAc,qBAAK,eAAe;AAAA,QAC1C,UAAuB,qBAAK,oBAAoB;AAAA,UAC9C;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,CAAC,GAAgB,qBAAK,kBAAkB;AAAA,QACtC,UAAU,YAAY,SAAS,qBAAkC,qBAAK,qBAAqB;AAAA,UACzF;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,CAAC,CAAC;AAAA,IACJ,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,IAAO,iCAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AnglePickerControl from '../angle-picker-control';\nimport CustomGradientBar from './gradient-bar';\nimport { Flex } from '../flex';\nimport SelectControl from '../select-control';\nimport { VStack } from '../v-stack';\nimport { getGradientAstWithDefault, getLinearGradientRepresentation, getGradientAstWithControlPoints, getStopCssColor } from './utils';\nimport { serializeGradient } from './serializer';\nimport { DEFAULT_LINEAR_GRADIENT_ANGLE, GRADIENT_OPTIONS, HORIZONTAL_GRADIENT_ORIENTATION } from './constants';\nimport { AccessoryWrapper, SelectWrapper } from './styles/custom-gradient-picker-styles';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GradientAnglePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const angle = gradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE;\n const onAngleChange = newAngle => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: {\n type: 'angular',\n value: `${newAngle}`\n }\n }));\n };\n return /*#__PURE__*/_jsx(AnglePickerControl, {\n onChange: onAngleChange,\n value: hasGradient ? angle : ''\n });\n};\nconst GradientTypePicker = ({\n gradientAST,\n hasGradient,\n onChange\n}) => {\n const {\n type\n } = gradientAST;\n const lastLinearOrientationAngle = useRef(Number(HORIZONTAL_GRADIENT_ORIENTATION.value));\n if (type === 'linear-gradient' && gradientAST.orientation) {\n lastLinearOrientationAngle.current = Number(gradientAST.orientation.value);\n }\n const onSetLinearGradient = () => {\n onChange(serializeGradient({\n ...gradientAST,\n orientation: {\n type: 'angular',\n value: `${lastLinearOrientationAngle.current}`\n },\n type: 'linear-gradient'\n }));\n };\n const onSetRadialGradient = () => {\n const {\n orientation,\n ...restGradientAST\n } = gradientAST;\n onChange(serializeGradient({\n ...restGradientAST,\n type: 'radial-gradient'\n }));\n };\n const handleOnChange = next => {\n if (next === 'linear-gradient') {\n onSetLinearGradient();\n }\n if (next === 'radial-gradient') {\n onSetRadialGradient();\n }\n };\n return /*#__PURE__*/_jsx(SelectControl, {\n className: \"components-custom-gradient-picker__type-picker\",\n label: __('Type'),\n labelPosition: \"top\",\n onChange: handleOnChange,\n options: GRADIENT_OPTIONS,\n size: \"__unstable-large\",\n value: hasGradient ? type : undefined\n });\n};\n\n/**\n * CustomGradientPicker is a React component that renders a UI for specifying\n * linear or radial gradients. Radial gradients are displayed in the picker as\n * a slice of the gradient from the center to the outside.\n *\n * ```jsx\n * import { CustomGradientPicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyCustomGradientPicker = () => {\n * const [ gradient, setGradient ] = useState();\n *\n * return (\n * <CustomGradientPicker\n *\t\t\tvalue={ gradient }\n *\t\t\tonChange={ setGradient }\n * />\n * );\n * };\n * ```\n */\nexport function CustomGradientPicker({\n value,\n onChange,\n enableAlpha = true,\n __experimentalIsRenderedInSidebar = false\n}) {\n const {\n gradientAST,\n hasGradient\n } = getGradientAstWithDefault(value);\n\n // On radial gradients the bar should display a linear gradient.\n // On radial gradients the bar represents a slice of the gradient from the center until the outside.\n // On liner gradients the bar represents the color stops from left to right independently of the angle.\n const background = getLinearGradientRepresentation(gradientAST);\n\n // Control points color option may be hex from presets, custom colors will be rgb.\n // The position should always be a percentage.\n const controlPoints = gradientAST.colorStops.map(colorStop => {\n return {\n color: getStopCssColor(colorStop),\n // Although it's already been checked by `hasUnsupportedLength` in `getGradientAstWithDefault`,\n // TypeScript doesn't know that `colorStop.length` is not undefined here.\n // @ts-expect-error\n position: parseInt(colorStop.length.value)\n };\n });\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 4,\n className: \"components-custom-gradient-picker\",\n children: [/*#__PURE__*/_jsx(CustomGradientBar, {\n __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,\n disableAlpha: !enableAlpha,\n background: background,\n hasGradient: hasGradient,\n value: controlPoints,\n onChange: newControlPoints => {\n onChange(serializeGradient(getGradientAstWithControlPoints(gradientAST, newControlPoints)));\n }\n }), /*#__PURE__*/_jsxs(Flex, {\n gap: 3,\n className: \"components-custom-gradient-picker__ui-line\",\n children: [/*#__PURE__*/_jsx(SelectWrapper, {\n children: /*#__PURE__*/_jsx(GradientTypePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n }), /*#__PURE__*/_jsx(AccessoryWrapper, {\n children: gradientAST.type === 'linear-gradient' && /*#__PURE__*/_jsx(GradientAnglePicker, {\n gradientAST: gradientAST,\n hasGradient: hasGradient,\n onChange: onChange\n })\n })]\n })]\n });\n}\nexport default CustomGradientPicker;"],
5
+ "mappings": ";AAOA,SAAS,UAAU;AACnB,SAAS,cAAc;AAKvB,OAAO,wBAAwB;AAC/B,OAAO,uBAAuB;AAC9B,SAAS,YAAY;AACrB,OAAO,mBAAmB;AAC1B,SAAS,cAAc;AACvB,SAAS,2BAA2B,iCAAiC,iCAAiC,uBAAuB;AAC7H,SAAS,yBAAyB;AAClC,SAAS,+BAA+B,kBAAkB,uCAAuC;AACjG,SAAS,kBAAkB,qBAAqB;AAChD,SAAS,OAAO,MAAM,QAAQ,aAAa;AAC3C,IAAM,sBAAsB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,aAAa,aAAa,SAAS;AACjD,QAAM,gBAAgB,cAAY;AAChC,aAAS,kBAAkB;AAAA,MACzB,GAAG;AAAA,MACH,aAAa;AAAA,QACX,MAAM;AAAA,QACN,OAAO,GAAG,QAAQ;AAAA,MACpB;AAAA,IACF,CAAC,CAAC;AAAA,EACJ;AACA,SAAoB,qBAAK,oBAAoB;AAAA,IAC3C,UAAU;AAAA,IACV,OAAO,cAAc,QAAQ;AAAA,EAC/B,CAAC;AACH;AACA,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM;AAAA,IACJ;AAAA,EACF,IAAI;AACJ,QAAM,6BAA6B,OAAO,OAAO,gCAAgC,KAAK,CAAC;AACvF,MAAI,SAAS,qBAAqB,YAAY,aAAa;AACzD,+BAA2B,UAAU,OAAO,YAAY,YAAY,KAAK;AAAA,EAC3E;AACA,QAAM,sBAAsB,MAAM;AAChC,aAAS,kBAAkB;AAAA,MACzB,GAAG;AAAA,MACH,aAAa;AAAA,QACX,MAAM;AAAA,QACN,OAAO,GAAG,2BAA2B,OAAO;AAAA,MAC9C;AAAA,MACA,MAAM;AAAA,IACR,CAAC,CAAC;AAAA,EACJ;AACA,QAAM,sBAAsB,MAAM;AAChC,UAAM;AAAA,MACJ;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AACJ,aAAS,kBAAkB;AAAA,MACzB,GAAG;AAAA,MACH,MAAM;AAAA,IACR,CAAC,CAAC;AAAA,EACJ;AACA,QAAM,iBAAiB,UAAQ;AAC7B,QAAI,SAAS,mBAAmB;AAC9B,0BAAoB;AAAA,IACtB;AACA,QAAI,SAAS,mBAAmB;AAC9B,0BAAoB;AAAA,IACtB;AAAA,EACF;AACA,SAAoB,qBAAK,eAAe;AAAA,IACtC,WAAW;AAAA,IACX,OAAO,GAAG,MAAM;AAAA,IAChB,eAAe;AAAA,IACf,UAAU;AAAA,IACV,SAAS;AAAA,IACT,MAAM;AAAA,IACN,OAAO,cAAc,OAAO;AAAA,EAC9B,CAAC;AACH;AAuBO,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,oCAAoC;AACtC,GAAG;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,IAAI,0BAA0B,KAAK;AAKnC,QAAM,aAAa,gCAAgC,WAAW;AAI9D,QAAM,gBAAgB,YAAY,WAAW,IAAI,eAAa;AAC5D,WAAO;AAAA,MACL,OAAO,gBAAgB,SAAS;AAAA;AAAA;AAAA;AAAA,MAIhC,UAAU,SAAS,UAAU,OAAO,KAAK;AAAA,IAC3C;AAAA,EACF,CAAC;AACD,SAAoB,sBAAM,QAAQ;AAAA,IAChC,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU,CAAc,qBAAK,mBAAmB;AAAA,MAC9C;AAAA,MACA,cAAc,CAAC;AAAA,MACf;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,UAAU,sBAAoB;AAC5B,iBAAS,kBAAkB,gCAAgC,aAAa,gBAAgB,CAAC,CAAC;AAAA,MAC5F;AAAA,IACF,CAAC,GAAgB,sBAAM,MAAM;AAAA,MAC3B,KAAK;AAAA,MACL,WAAW;AAAA,MACX,UAAU,CAAc,qBAAK,eAAe;AAAA,QAC1C,UAAuB,qBAAK,oBAAoB;AAAA,UAC9C;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,CAAC,GAAgB,qBAAK,kBAAkB;AAAA,QACtC,UAAU,YAAY,SAAS,qBAAkC,qBAAK,qBAAqB;AAAA,UACzF;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,CAAC,CAAC;AAAA,IACJ,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,IAAO,iCAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/focal-point-picker/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __experimentalUseDragging as useDragging, useIsomorphicLayoutEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\nimport FocalPoint from './focal-point';\nimport Grid from './grid';\nimport Media from './media';\nimport { Container, MediaWrapper, MediaContainer } from './styles/focal-point-picker-style';\nimport { INITIAL_BOUNDS } from './utils';\nimport { useUpdateEffect } from '../utils/hooks';\nimport { StyledLabel, StyledHelp } from '../base-control/styles/base-control-styles';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GRID_OVERLAY_TIMEOUT = 600;\n\n/**\n * Focal Point Picker is a component which creates a UI for identifying the most important visual point of an image.\n *\n * This component addresses a specific problem: with large background images it is common to see undesirable crops,\n * especially when viewing on smaller viewports such as mobile phones. This component allows the selection of\n * the point with the most important visual information and returns it as a pair of numbers between 0 and 1.\n * This value can be easily converted into the CSS `background-position` attribute, and will ensure that the\n * focal point is never cropped out, regardless of viewport.\n *\n * - Example focal point picker value: `{ x: 0.5, y: 0.1 }`\n * - Corresponding CSS: `background-position: 50% 10%;`\n *\n * ```jsx\n * import { FocalPointPicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * \tconst [ focalPoint, setFocalPoint ] = useState( {\n * \t\tx: 0.5,\n * \t\ty: 0.5,\n * \t} );\n *\n * \tconst url = '/path/to/image';\n *\n * \t// Example function to render the CSS styles based on Focal Point Picker value\n * \tconst style = {\n * \t\tbackgroundImage: `url(${ url })`,\n * \t\tbackgroundPosition: `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%`,\n * \t};\n *\n * \treturn (\n * \t\t<>\n * \t\t\t<FocalPointPicker\n * \t\t\t\turl={ url }\n * \t\t\t\tvalue={ focalPoint }\n * \t\t\t\tonDragStart={ setFocalPoint }\n * \t\t\t\tonDrag={ setFocalPoint }\n * \t\t\t\tonChange={ setFocalPoint }\n * \t\t\t/>\n * \t\t\t<div style={ style } />\n * \t\t</>\n * \t);\n * };\n * ```\n */\nexport function FocalPointPicker({\n // Prevent passing to internal component.\n __nextHasNoMarginBottom: _,\n autoPlay = true,\n className,\n help,\n hideLabelFromVision,\n label,\n onChange,\n onDrag,\n onDragEnd,\n onDragStart,\n resolvePoint,\n url,\n value: valueProp = {\n x: 0.5,\n y: 0.5\n },\n ...restProps\n}) {\n const [point, setPoint] = useState(valueProp);\n const [showGridOverlay, setShowGridOverlay] = useState(false);\n const {\n startDrag,\n endDrag,\n isDragging\n } = useDragging({\n onDragStart: event => {\n dragAreaRef.current?.focus();\n const value = getValueWithinDragArea(event);\n\n // `value` can technically be undefined if getValueWithinDragArea() is\n // called before dragAreaRef is set, but this shouldn't happen in reality.\n if (!value) {\n return;\n }\n onDragStart?.(value, event);\n setPoint(value);\n },\n onDragMove: event => {\n // Prevents text-selection when dragging.\n event.preventDefault();\n const value = getValueWithinDragArea(event);\n if (!value) {\n return;\n }\n onDrag?.(value, event);\n setPoint(value);\n },\n onDragEnd: () => {\n onDragEnd?.();\n onChange?.(point);\n }\n });\n\n // Uses the internal point while dragging or else the value from props.\n const {\n x,\n y\n } = isDragging ? point : valueProp;\n const dragAreaRef = useRef(null);\n const [bounds, setBounds] = useState(INITIAL_BOUNDS);\n const refUpdateBounds = useRef(() => {\n if (!dragAreaRef.current) {\n return;\n }\n const {\n clientWidth: width,\n clientHeight: height\n } = dragAreaRef.current;\n // Falls back to initial bounds if the ref has no size. Since styles\n // give the drag area dimensions even when the media has not loaded\n // this should only happen in unit tests (jsdom).\n setBounds(width > 0 && height > 0 ? {\n width,\n height\n } : {\n ...INITIAL_BOUNDS\n });\n });\n useEffect(() => {\n const updateBounds = refUpdateBounds.current;\n if (!dragAreaRef.current) {\n return;\n }\n const {\n defaultView\n } = dragAreaRef.current.ownerDocument;\n defaultView?.addEventListener('resize', updateBounds);\n return () => defaultView?.removeEventListener('resize', updateBounds);\n }, []);\n\n // Updates the bounds to cover cases of unspecified media or load failures.\n useIsomorphicLayoutEffect(() => void refUpdateBounds.current(), []);\n\n // TODO: Consider refactoring getValueWithinDragArea() into a pure function.\n // https://github.com/WordPress/gutenberg/pull/43872#discussion_r963455173\n const getValueWithinDragArea = ({\n clientX,\n clientY,\n shiftKey\n }) => {\n if (!dragAreaRef.current) {\n return;\n }\n const {\n top,\n left\n } = dragAreaRef.current.getBoundingClientRect();\n let nextX = (clientX - left) / bounds.width;\n let nextY = (clientY - top) / bounds.height;\n // Enables holding shift to jump values by 10%.\n if (shiftKey) {\n nextX = Math.round(nextX / 0.1) * 0.1;\n nextY = Math.round(nextY / 0.1) * 0.1;\n }\n return getFinalValue({\n x: nextX,\n y: nextY\n });\n };\n const getFinalValue = value => {\n const resolvedValue = resolvePoint?.(value) ?? value;\n resolvedValue.x = Math.max(0, Math.min(resolvedValue.x, 1));\n resolvedValue.y = Math.max(0, Math.min(resolvedValue.y, 1));\n const roundToTwoDecimalPlaces = n => Math.round(n * 1e2) / 1e2;\n return {\n x: roundToTwoDecimalPlaces(resolvedValue.x),\n y: roundToTwoDecimalPlaces(resolvedValue.y)\n };\n };\n const arrowKeyStep = event => {\n const {\n code,\n shiftKey\n } = event;\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(code)) {\n return;\n }\n event.preventDefault();\n const value = {\n x,\n y\n };\n const step = shiftKey ? 0.1 : 0.01;\n const delta = code === 'ArrowUp' || code === 'ArrowLeft' ? -1 * step : step;\n const axis = code === 'ArrowUp' || code === 'ArrowDown' ? 'y' : 'x';\n value[axis] = value[axis] + delta;\n onChange?.(getFinalValue(value));\n };\n const focalPointPosition = {\n left: x !== undefined ? x * bounds.width : 0.5 * bounds.width,\n top: y !== undefined ? y * bounds.height : 0.5 * bounds.height\n };\n const classes = clsx('components-focal-point-picker-control', className);\n const Label = hideLabelFromVision ? VisuallyHidden : StyledLabel;\n useUpdateEffect(() => {\n setShowGridOverlay(true);\n const timeout = window.setTimeout(() => {\n setShowGridOverlay(false);\n }, GRID_OVERLAY_TIMEOUT);\n return () => window.clearTimeout(timeout);\n }, [x, y]);\n return /*#__PURE__*/_jsxs(Container, {\n ...restProps,\n as: \"fieldset\",\n className: classes,\n children: [!!label && /*#__PURE__*/_jsx(Label, {\n as: \"legend\",\n children: label\n }), /*#__PURE__*/_jsx(MediaWrapper, {\n className: \"components-focal-point-picker-wrapper\",\n children: /*#__PURE__*/_jsxs(MediaContainer, {\n className: \"components-focal-point-picker\",\n onKeyDown: arrowKeyStep,\n onMouseDown: startDrag,\n onBlur: () => {\n if (isDragging) {\n endDrag();\n }\n },\n ref: dragAreaRef,\n role: \"button\",\n tabIndex: -1,\n children: [/*#__PURE__*/_jsx(Grid, {\n bounds: bounds,\n showOverlay: showGridOverlay\n }), /*#__PURE__*/_jsx(Media, {\n alt: __('Media preview'),\n autoPlay: autoPlay,\n onLoad: refUpdateBounds.current,\n src: url\n }), /*#__PURE__*/_jsx(FocalPoint, {\n ...focalPointPosition,\n isDragging: isDragging\n })]\n })\n }), /*#__PURE__*/_jsx(Controls, {\n hasHelpText: !!help,\n point: {\n x,\n y\n },\n onChange: value => {\n onChange?.(getFinalValue(value));\n }\n }), !!help && /*#__PURE__*/_jsx(StyledHelp, {\n children: help\n })]\n });\n}\nexport default FocalPointPicker;"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { __experimentalUseDragging as useDragging, useIsomorphicLayoutEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\nimport FocalPoint from './focal-point';\nimport Grid from './grid';\nimport Media from './media';\nimport { Container, MediaWrapper, MediaContainer } from './styles/focal-point-picker-style';\nimport { INITIAL_BOUNDS } from './utils';\nimport { useUpdateEffect } from '../utils/hooks';\nimport { StyledLabel, StyledHelp } from '../base-control/styles/base-control-styles';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst GRID_OVERLAY_TIMEOUT = 600;\n\n/**\n * Focal Point Picker is a component which creates a UI for identifying the most important visual point of an image.\n *\n * It addresses two common issues when displaying images in cropped containers. First, large\n * background images can be cropped in undesirable ways, especially on smaller viewports such as\n * mobile devices. Second, the CSS aspect-ratio property can inadvertently crop out the area of\n * highest visual interest. This component allows the selection of the point with the most\n * important visual information and returns it as a pair of numbers between 0 and 1.\n * The output value can be applied to either CSS `background-position` (for elements with\n * `background-image`) or `object-position` (for `<img>` / `<video>` elements rendered with\n * `object-fit: cover`).\n *\n * - Example focal point picker value: `{ x: 0.5, y: 0.1 }`;\n * - Corresponding CSS: `object-position: 50% 10%`;\n *\n * ```jsx\n * import { FocalPointPicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * \tconst [ focalPoint, setFocalPoint ] = useState( {\n * \t\tx: 0.5,\n * \t\ty: 0.1,\n * \t} );\n *\n * \tconst url = '/path/to/image';\n *\n * \t// Example function to render the CSS styles based on Focal Point Picker value\n * \tconst style = {\n * \t\twidth: '100%',\n * \t\taspectRatio: '16 / 9',\n * \t\tobjectFit: 'cover',\n * \t\tobjectPosition: `${ focalPoint.x * 100 }% ${ focalPoint.y * 100 }%`,\n * \t};\n *\n * \treturn (\n * \t\t<>\n * \t\t\t<FocalPointPicker\n * \t\t\t\turl={ url }\n * \t\t\t\tvalue={ focalPoint }\n * \t\t\t\tonDragStart={ setFocalPoint }\n * \t\t\t\tonDrag={ setFocalPoint }\n * \t\t\t\tonChange={ setFocalPoint }\n * \t\t\t/>\n * \t\t\t<img src={ url } alt=\"\" style={ style } />\n * \t\t</>\n * \t);\n * };\n * ```\n */\nexport function FocalPointPicker({\n // Prevent passing to internal component.\n __nextHasNoMarginBottom: _,\n autoPlay = true,\n className,\n help,\n hideLabelFromVision,\n label,\n onChange,\n onDrag,\n onDragEnd,\n onDragStart,\n resolvePoint,\n url,\n value: valueProp = {\n x: 0.5,\n y: 0.5\n },\n ...restProps\n}) {\n const [point, setPoint] = useState(valueProp);\n const [showGridOverlay, setShowGridOverlay] = useState(false);\n const {\n startDrag,\n endDrag,\n isDragging\n } = useDragging({\n onDragStart: event => {\n dragAreaRef.current?.focus();\n const value = getValueWithinDragArea(event);\n\n // `value` can technically be undefined if getValueWithinDragArea() is\n // called before dragAreaRef is set, but this shouldn't happen in reality.\n if (!value) {\n return;\n }\n onDragStart?.(value, event);\n setPoint(value);\n },\n onDragMove: event => {\n // Prevents text-selection when dragging.\n event.preventDefault();\n const value = getValueWithinDragArea(event);\n if (!value) {\n return;\n }\n onDrag?.(value, event);\n setPoint(value);\n },\n onDragEnd: () => {\n onDragEnd?.();\n onChange?.(point);\n }\n });\n\n // Uses the internal point while dragging or else the value from props.\n const {\n x,\n y\n } = isDragging ? point : valueProp;\n const dragAreaRef = useRef(null);\n const [bounds, setBounds] = useState(INITIAL_BOUNDS);\n const refUpdateBounds = useRef(() => {\n if (!dragAreaRef.current) {\n return;\n }\n const {\n clientWidth: width,\n clientHeight: height\n } = dragAreaRef.current;\n // Falls back to initial bounds if the ref has no size. Since styles\n // give the drag area dimensions even when the media has not loaded\n // this should only happen in unit tests (jsdom).\n setBounds(width > 0 && height > 0 ? {\n width,\n height\n } : {\n ...INITIAL_BOUNDS\n });\n });\n useEffect(() => {\n const updateBounds = refUpdateBounds.current;\n if (!dragAreaRef.current) {\n return;\n }\n const {\n defaultView\n } = dragAreaRef.current.ownerDocument;\n defaultView?.addEventListener('resize', updateBounds);\n return () => defaultView?.removeEventListener('resize', updateBounds);\n }, []);\n\n // Updates the bounds to cover cases of unspecified media or load failures.\n useIsomorphicLayoutEffect(() => void refUpdateBounds.current(), []);\n\n // TODO: Consider refactoring getValueWithinDragArea() into a pure function.\n // https://github.com/WordPress/gutenberg/pull/43872#discussion_r963455173\n const getValueWithinDragArea = ({\n clientX,\n clientY,\n shiftKey\n }) => {\n if (!dragAreaRef.current) {\n return;\n }\n const {\n top,\n left\n } = dragAreaRef.current.getBoundingClientRect();\n let nextX = (clientX - left) / bounds.width;\n let nextY = (clientY - top) / bounds.height;\n // Enables holding shift to jump values by 10%.\n if (shiftKey) {\n nextX = Math.round(nextX / 0.1) * 0.1;\n nextY = Math.round(nextY / 0.1) * 0.1;\n }\n return getFinalValue({\n x: nextX,\n y: nextY\n });\n };\n const getFinalValue = value => {\n const resolvedValue = resolvePoint?.(value) ?? value;\n resolvedValue.x = Math.max(0, Math.min(resolvedValue.x, 1));\n resolvedValue.y = Math.max(0, Math.min(resolvedValue.y, 1));\n const roundToTwoDecimalPlaces = n => Math.round(n * 1e2) / 1e2;\n return {\n x: roundToTwoDecimalPlaces(resolvedValue.x),\n y: roundToTwoDecimalPlaces(resolvedValue.y)\n };\n };\n const arrowKeyStep = event => {\n const {\n code,\n shiftKey\n } = event;\n if (!['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(code)) {\n return;\n }\n event.preventDefault();\n const value = {\n x,\n y\n };\n const step = shiftKey ? 0.1 : 0.01;\n const delta = code === 'ArrowUp' || code === 'ArrowLeft' ? -1 * step : step;\n const axis = code === 'ArrowUp' || code === 'ArrowDown' ? 'y' : 'x';\n value[axis] = value[axis] + delta;\n onChange?.(getFinalValue(value));\n };\n const focalPointPosition = {\n left: x !== undefined ? x * bounds.width : 0.5 * bounds.width,\n top: y !== undefined ? y * bounds.height : 0.5 * bounds.height\n };\n const classes = clsx('components-focal-point-picker-control', className);\n const Label = hideLabelFromVision ? VisuallyHidden : StyledLabel;\n useUpdateEffect(() => {\n setShowGridOverlay(true);\n const timeout = window.setTimeout(() => {\n setShowGridOverlay(false);\n }, GRID_OVERLAY_TIMEOUT);\n return () => window.clearTimeout(timeout);\n }, [x, y]);\n return /*#__PURE__*/_jsxs(Container, {\n ...restProps,\n as: \"fieldset\",\n className: classes,\n children: [!!label && /*#__PURE__*/_jsx(Label, {\n as: \"legend\",\n children: label\n }), /*#__PURE__*/_jsx(MediaWrapper, {\n className: \"components-focal-point-picker-wrapper\",\n children: /*#__PURE__*/_jsxs(MediaContainer, {\n className: \"components-focal-point-picker\",\n onKeyDown: arrowKeyStep,\n onMouseDown: startDrag,\n onBlur: () => {\n if (isDragging) {\n endDrag();\n }\n },\n ref: dragAreaRef,\n role: \"button\",\n tabIndex: -1,\n children: [/*#__PURE__*/_jsx(Grid, {\n bounds: bounds,\n showOverlay: showGridOverlay\n }), /*#__PURE__*/_jsx(Media, {\n alt: __('Media preview'),\n autoPlay: autoPlay,\n onLoad: refUpdateBounds.current,\n src: url\n }), /*#__PURE__*/_jsx(FocalPoint, {\n ...focalPointPosition,\n isDragging: isDragging\n })]\n })\n }), /*#__PURE__*/_jsx(Controls, {\n hasHelpText: !!help,\n point: {\n x,\n y\n },\n onChange: value => {\n onChange?.(getFinalValue(value));\n }\n }), !!help && /*#__PURE__*/_jsx(StyledHelp, {\n children: help\n })]\n });\n}\nexport default FocalPointPicker;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }