@wordpress/components 25.7.0 → 25.8.1

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 (630) hide show
  1. package/CHANGELOG.md +66 -1
  2. package/build/animation/index.js +6 -0
  3. package/build/animation/index.js.map +1 -1
  4. package/build/border-control/border-control-dropdown/component.js +1 -1
  5. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  6. package/build/border-control/styles.js +20 -20
  7. package/build/border-control/styles.js.map +1 -1
  8. package/build/box-control/unit-control.js +1 -1
  9. package/build/box-control/unit-control.js.map +1 -1
  10. package/build/button/index.js +9 -1
  11. package/build/button/index.js.map +1 -1
  12. package/build/button/types.js.map +1 -1
  13. package/build/circular-option-picker/circular-option-picker-actions.js +53 -0
  14. package/build/circular-option-picker/circular-option-picker-actions.js.map +1 -0
  15. package/build/circular-option-picker/circular-option-picker-context.js +14 -0
  16. package/build/circular-option-picker/circular-option-picker-context.js.map +1 -0
  17. package/build/circular-option-picker/circular-option-picker-option-group.js +26 -0
  18. package/build/circular-option-picker/circular-option-picker-option-group.js.map +1 -0
  19. package/build/circular-option-picker/circular-option-picker-option.js +122 -0
  20. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -0
  21. package/build/circular-option-picker/circular-option-picker.js +172 -0
  22. package/build/circular-option-picker/circular-option-picker.js.map +1 -0
  23. package/build/circular-option-picker/index.js +29 -137
  24. package/build/circular-option-picker/index.js.map +1 -1
  25. package/build/circular-option-picker/types.js.map +1 -1
  26. package/build/color-palette/index.js +58 -19
  27. package/build/color-palette/index.js.map +1 -1
  28. package/build/color-palette/types.js.map +1 -1
  29. package/build/combobox-control/index.js +0 -3
  30. package/build/combobox-control/index.js.map +1 -1
  31. package/build/composite/index.js.map +1 -1
  32. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  33. package/build/date-time/time/index.js +6 -1
  34. package/build/date-time/time/index.js.map +1 -1
  35. package/build/date-time/time/timezone.js +1 -1
  36. package/build/date-time/time/timezone.js.map +1 -1
  37. package/build/dropdown/index.js +11 -23
  38. package/build/dropdown/index.js.map +1 -1
  39. package/build/dropdown/types.js.map +1 -1
  40. package/build/dropdown-menu/index.js +7 -1
  41. package/build/dropdown-menu/index.js.map +1 -1
  42. package/build/dropdown-menu/types.js.map +1 -1
  43. package/build/dropdown-menu-v2/styles.js +16 -16
  44. package/build/dropdown-menu-v2/styles.js.map +1 -1
  45. package/build/duotone-picker/color-list-picker/index.js +18 -3
  46. package/build/duotone-picker/color-list-picker/index.js.map +1 -1
  47. package/build/duotone-picker/duotone-picker.js +33 -1
  48. package/build/duotone-picker/duotone-picker.js.map +1 -1
  49. package/build/duotone-picker/types.js.map +1 -1
  50. package/build/focusable-iframe/index.js +0 -4
  51. package/build/focusable-iframe/index.js.map +1 -1
  52. package/build/focusable-iframe/types.js +6 -0
  53. package/build/focusable-iframe/types.js.map +1 -0
  54. package/build/form-token-field/index.js +6 -2
  55. package/build/form-token-field/index.js.map +1 -1
  56. package/build/form-token-field/types.js.map +1 -1
  57. package/build/gradient-picker/index.js +57 -15
  58. package/build/gradient-picker/index.js.map +1 -1
  59. package/build/gradient-picker/types.js.map +1 -1
  60. package/build/higher-order/navigate-regions/index.js.map +1 -1
  61. package/build/higher-order/with-focus-outside/index.js +1 -2
  62. package/build/higher-order/with-focus-outside/index.js.map +1 -1
  63. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  64. package/build/index.js +6 -0
  65. package/build/index.js.map +1 -1
  66. package/build/input-control/styles/input-control-styles.js +22 -22
  67. package/build/input-control/styles/input-control-styles.js.map +1 -1
  68. package/build/mobile/bottom-sheet/index.native.js +1 -0
  69. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  70. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  71. package/build/modal/index.js +12 -3
  72. package/build/modal/index.js.map +1 -1
  73. package/build/modal/types.js.map +1 -1
  74. package/build/navigation/use-navigation-tree-nodes.js.map +1 -1
  75. package/build/notice/index.js +19 -7
  76. package/build/notice/index.js.map +1 -1
  77. package/build/palette-edit/styles.js +10 -10
  78. package/build/palette-edit/styles.js.map +1 -1
  79. package/build/placeholder/index.js +10 -4
  80. package/build/placeholder/index.js.map +1 -1
  81. package/build/popover/index.js +37 -83
  82. package/build/popover/index.js.map +1 -1
  83. package/build/popover/types.js.map +1 -1
  84. package/build/popover/utils.js +9 -41
  85. package/build/popover/utils.js.map +1 -1
  86. package/build/search-control/index.js +12 -3
  87. package/build/search-control/index.js.map +1 -1
  88. package/build/search-control/types.js.map +1 -1
  89. package/build/text/styles.js +7 -7
  90. package/build/text/styles.js.map +1 -1
  91. package/build/toggle-group-control/toggle-group-control/as-button-group.js +30 -45
  92. package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
  93. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +40 -41
  94. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  95. package/build/toggle-group-control/toggle-group-control/component.js +10 -5
  96. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  97. package/build/toggle-group-control/toggle-group-control/styles.js +9 -16
  98. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  99. package/build/toggle-group-control/toggle-group-control/utils.js +44 -0
  100. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -0
  101. package/build/toggle-group-control/toggle-group-control-option-base/component.js +36 -17
  102. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  103. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +10 -8
  104. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  105. package/build/toggle-group-control/types.js.map +1 -1
  106. package/build/toolbar/toolbar/index.js +7 -1
  107. package/build/toolbar/toolbar/index.js.map +1 -1
  108. package/build/toolbar/toolbar-dropdown-menu/index.js +1 -3
  109. package/build/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  110. package/build/toolbar/toolbar-group/index.js +16 -12
  111. package/build/toolbar/toolbar-group/index.js.map +1 -1
  112. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js +0 -2
  113. package/build/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  114. package/build/toolbar/toolbar-group/toolbar-group-container.js +3 -1
  115. package/build/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  116. package/build/toolbar/toolbar-group/types.js +6 -0
  117. package/build/toolbar/toolbar-group/types.js.map +1 -0
  118. package/build/toolbar/toolbar-item/index.js +1 -1
  119. package/build/toolbar/toolbar-item/index.js.map +1 -1
  120. package/build/tooltip/index.js +51 -225
  121. package/build/tooltip/index.js.map +1 -1
  122. package/build/tooltip/types.js +6 -0
  123. package/build/tooltip/types.js.map +1 -0
  124. package/build/ui/context/context-connect.js.map +1 -1
  125. package/build/ui/context/wordpress-component.js.map +1 -1
  126. package/build/unit-control/index.js.map +1 -1
  127. package/build/unit-control/styles/unit-control-styles.js +7 -7
  128. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  129. package/build/utils/colors-values.js +1 -1
  130. package/build/utils/colors-values.js.map +1 -1
  131. package/build/utils/use-deprecated-props.js.map +1 -1
  132. package/build-module/animation/index.js +1 -1
  133. package/build-module/animation/index.js.map +1 -1
  134. package/build-module/border-control/border-control-dropdown/component.js +1 -1
  135. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  136. package/build-module/border-control/styles.js +20 -20
  137. package/build-module/border-control/styles.js.map +1 -1
  138. package/build-module/box-control/unit-control.js +1 -1
  139. package/build-module/box-control/unit-control.js.map +1 -1
  140. package/build-module/button/index.js +9 -1
  141. package/build-module/button/index.js.map +1 -1
  142. package/build-module/button/types.js.map +1 -1
  143. package/build-module/circular-option-picker/circular-option-picker-actions.js +44 -0
  144. package/build-module/circular-option-picker/circular-option-picker-actions.js.map +1 -0
  145. package/build-module/circular-option-picker/circular-option-picker-context.js +11 -0
  146. package/build-module/circular-option-picker/circular-option-picker-context.js.map +1 -0
  147. package/build-module/circular-option-picker/circular-option-picker-option-group.js +23 -0
  148. package/build-module/circular-option-picker/circular-option-picker-option-group.js.map +1 -0
  149. package/build-module/circular-option-picker/circular-option-picker-option.js +114 -0
  150. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -0
  151. package/build-module/circular-option-picker/circular-option-picker.js +165 -0
  152. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -0
  153. package/build-module/circular-option-picker/index.js +4 -132
  154. package/build-module/circular-option-picker/index.js.map +1 -1
  155. package/build-module/circular-option-picker/types.js.map +1 -1
  156. package/build-module/color-palette/index.js +58 -19
  157. package/build-module/color-palette/index.js.map +1 -1
  158. package/build-module/color-palette/types.js.map +1 -1
  159. package/build-module/combobox-control/index.js +0 -3
  160. package/build-module/combobox-control/index.js.map +1 -1
  161. package/build-module/composite/index.js +2 -0
  162. package/build-module/composite/index.js.map +1 -1
  163. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  164. package/build-module/date-time/time/index.js +6 -1
  165. package/build-module/date-time/time/index.js.map +1 -1
  166. package/build-module/date-time/time/timezone.js +1 -1
  167. package/build-module/date-time/time/timezone.js.map +1 -1
  168. package/build-module/dropdown/index.js +12 -24
  169. package/build-module/dropdown/index.js.map +1 -1
  170. package/build-module/dropdown/types.js.map +1 -1
  171. package/build-module/dropdown-menu/index.js +7 -1
  172. package/build-module/dropdown-menu/index.js.map +1 -1
  173. package/build-module/dropdown-menu/types.js.map +1 -1
  174. package/build-module/dropdown-menu-v2/styles.js +16 -16
  175. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  176. package/build-module/duotone-picker/color-list-picker/index.js +18 -3
  177. package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
  178. package/build-module/duotone-picker/duotone-picker.js +33 -1
  179. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  180. package/build-module/duotone-picker/types.js.map +1 -1
  181. package/build-module/focusable-iframe/index.js +2 -3
  182. package/build-module/focusable-iframe/index.js.map +1 -1
  183. package/build-module/focusable-iframe/types.js +2 -0
  184. package/build-module/focusable-iframe/types.js.map +1 -0
  185. package/build-module/form-token-field/index.js +6 -2
  186. package/build-module/form-token-field/index.js.map +1 -1
  187. package/build-module/form-token-field/types.js.map +1 -1
  188. package/build-module/gradient-picker/index.js +57 -15
  189. package/build-module/gradient-picker/index.js.map +1 -1
  190. package/build-module/gradient-picker/types.js.map +1 -1
  191. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  192. package/build-module/higher-order/with-focus-outside/index.js +1 -3
  193. package/build-module/higher-order/with-focus-outside/index.js.map +1 -1
  194. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  195. package/build-module/index.js +1 -1
  196. package/build-module/index.js.map +1 -1
  197. package/build-module/input-control/styles/input-control-styles.js +23 -23
  198. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  199. package/build-module/mobile/bottom-sheet/index.native.js +1 -0
  200. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  201. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  202. package/build-module/modal/index.js +12 -3
  203. package/build-module/modal/index.js.map +1 -1
  204. package/build-module/modal/types.js.map +1 -1
  205. package/build-module/navigation/use-navigation-tree-nodes.js.map +1 -1
  206. package/build-module/notice/index.js +19 -7
  207. package/build-module/notice/index.js.map +1 -1
  208. package/build-module/palette-edit/styles.js +10 -10
  209. package/build-module/palette-edit/styles.js.map +1 -1
  210. package/build-module/placeholder/index.js +11 -4
  211. package/build-module/placeholder/index.js.map +1 -1
  212. package/build-module/popover/index.js +38 -84
  213. package/build-module/popover/index.js.map +1 -1
  214. package/build-module/popover/types.js.map +1 -1
  215. package/build-module/popover/utils.js +8 -39
  216. package/build-module/popover/utils.js.map +1 -1
  217. package/build-module/search-control/index.js +12 -3
  218. package/build-module/search-control/index.js.map +1 -1
  219. package/build-module/search-control/types.js.map +1 -1
  220. package/build-module/text/styles.js +7 -7
  221. package/build-module/text/styles.js.map +1 -1
  222. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js +32 -47
  223. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -1
  224. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +41 -42
  225. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  226. package/build-module/toggle-group-control/toggle-group-control/component.js +10 -6
  227. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  228. package/build-module/toggle-group-control/toggle-group-control/styles.js +8 -14
  229. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  230. package/build-module/toggle-group-control/toggle-group-control/utils.js +42 -0
  231. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -0
  232. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +35 -16
  233. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  234. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +8 -7
  235. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  236. package/build-module/toggle-group-control/types.js.map +1 -1
  237. package/build-module/toolbar/toolbar/index.js +7 -1
  238. package/build-module/toolbar/toolbar/index.js.map +1 -1
  239. package/build-module/toolbar/toolbar-dropdown-menu/index.js +5 -3
  240. package/build-module/toolbar/toolbar-dropdown-menu/index.js.map +1 -1
  241. package/build-module/toolbar/toolbar-group/index.js +15 -12
  242. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  243. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js +0 -2
  244. package/build-module/toolbar/toolbar-group/toolbar-group-collapsed.js.map +1 -1
  245. package/build-module/toolbar/toolbar-group/toolbar-group-container.js +3 -1
  246. package/build-module/toolbar/toolbar-group/toolbar-group-container.js.map +1 -1
  247. package/build-module/toolbar/toolbar-group/types.js +2 -0
  248. package/build-module/toolbar/toolbar-group/types.js.map +1 -0
  249. package/build-module/toolbar/toolbar-item/index.js +1 -1
  250. package/build-module/toolbar/toolbar-item/index.js.map +1 -1
  251. package/build-module/tooltip/index.js +53 -224
  252. package/build-module/tooltip/index.js.map +1 -1
  253. package/build-module/tooltip/types.js +2 -0
  254. package/build-module/tooltip/types.js.map +1 -0
  255. package/build-module/ui/context/context-connect.js.map +1 -1
  256. package/build-module/ui/context/wordpress-component.js.map +1 -1
  257. package/build-module/unit-control/index.js.map +1 -1
  258. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  259. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  260. package/build-module/utils/colors-values.js +1 -1
  261. package/build-module/utils/colors-values.js.map +1 -1
  262. package/build-module/utils/use-deprecated-props.js.map +1 -1
  263. package/build-style/style-rtl.css +35 -73
  264. package/build-style/style.css +35 -73
  265. package/build-types/animation/index.d.ts +1 -1
  266. package/build-types/animation/index.d.ts.map +1 -1
  267. package/build-types/base-control/hooks.d.ts +1 -1
  268. package/build-types/border-box-control/border-box-control/component.d.ts +1 -1
  269. package/build-types/border-box-control/border-box-control/hook.d.ts +46 -46
  270. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +51 -51
  271. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +1 -1
  272. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +46 -46
  273. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +46 -46
  274. package/build-types/border-box-control/stories/index.story.d.ts +2 -2
  275. package/build-types/border-control/border-control/hook.d.ts +45 -45
  276. package/build-types/border-control/border-control-dropdown/hook.d.ts +45 -45
  277. package/build-types/border-control/border-control-style-picker/hook.d.ts +45 -45
  278. package/build-types/border-control/stories/index.story.d.ts +6 -6
  279. package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
  280. package/build-types/button/deprecated.d.ts +16 -22
  281. package/build-types/button/deprecated.d.ts.map +1 -1
  282. package/build-types/button/index.d.ts.map +1 -1
  283. package/build-types/button/types.d.ts +0 -4
  284. package/build-types/button/types.d.ts.map +1 -1
  285. package/build-types/card/card/hook.d.ts +46 -46
  286. package/build-types/card/card-body/hook.d.ts +46 -46
  287. package/build-types/card/card-divider/hook.d.ts +47 -47
  288. package/build-types/card/card-footer/hook.d.ts +46 -46
  289. package/build-types/card/card-header/hook.d.ts +46 -46
  290. package/build-types/card/card-media/hook.d.ts +46 -46
  291. package/build-types/card/stories/index.story.d.ts +2 -2
  292. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts +7 -0
  293. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -0
  294. package/build-types/circular-option-picker/circular-option-picker-context.d.ts +7 -0
  295. package/build-types/circular-option-picker/circular-option-picker-context.d.ts.map +1 -0
  296. package/build-types/circular-option-picker/circular-option-picker-option-group.d.ts +7 -0
  297. package/build-types/circular-option-picker/circular-option-picker-option-group.d.ts.map +1 -0
  298. package/build-types/circular-option-picker/circular-option-picker-option.d.ts +4 -0
  299. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -0
  300. package/build-types/circular-option-picker/circular-option-picker.d.ts +11 -0
  301. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -0
  302. package/build-types/circular-option-picker/index.d.ts +5 -56
  303. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  304. package/build-types/circular-option-picker/stories/index.story.d.ts +3 -1
  305. package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
  306. package/build-types/circular-option-picker/test/index.d.ts +2 -0
  307. package/build-types/circular-option-picker/test/index.d.ts.map +1 -0
  308. package/build-types/circular-option-picker/types.d.ts +53 -1
  309. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  310. package/build-types/color-palette/index.d.ts +3 -19
  311. package/build-types/color-palette/index.d.ts.map +1 -1
  312. package/build-types/color-palette/stories/index.story.d.ts +3 -36
  313. package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
  314. package/build-types/color-palette/styles.d.ts +1 -1
  315. package/build-types/color-palette/types.d.ts +31 -1
  316. package/build-types/color-palette/types.d.ts.map +1 -1
  317. package/build-types/color-picker/component.d.ts +1 -1
  318. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  319. package/build-types/color-picker/styles.d.ts +6 -6
  320. package/build-types/combobox-control/index.d.ts.map +1 -1
  321. package/build-types/combobox-control/stories/index.story.d.ts +2 -2
  322. package/build-types/composite/index.d.ts +14 -1
  323. package/build-types/composite/index.d.ts.map +1 -1
  324. package/build-types/custom-gradient-picker/styles/custom-gradient-picker-styles.d.ts +2 -2
  325. package/build-types/date-time/date/styles.d.ts +3 -3
  326. package/build-types/date-time/date-time/styles.d.ts +2 -2
  327. package/build-types/date-time/time/index.d.ts.map +1 -1
  328. package/build-types/date-time/time/styles.d.ts +12 -12
  329. package/build-types/dropdown/index.d.ts.map +1 -1
  330. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  331. package/build-types/dropdown/types.d.ts +12 -4
  332. package/build-types/dropdown/types.d.ts.map +1 -1
  333. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  334. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  335. package/build-types/dropdown-menu/types.d.ts +22 -5
  336. package/build-types/dropdown-menu/types.d.ts.map +1 -1
  337. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
  338. package/build-types/duotone-picker/duotone-picker.d.ts +1 -1
  339. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  340. package/build-types/duotone-picker/types.d.ts +31 -1
  341. package/build-types/duotone-picker/types.d.ts.map +1 -1
  342. package/build-types/elevation/hook.d.ts +46 -46
  343. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  344. package/build-types/flex/flex/hook.d.ts +46 -46
  345. package/build-types/flex/flex-block/hook.d.ts +46 -46
  346. package/build-types/flex/flex-item/hook.d.ts +46 -46
  347. package/build-types/focal-point-picker/stories/index.story.d.ts +8 -8
  348. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  349. package/build-types/focusable-iframe/index.d.ts +4 -5
  350. package/build-types/focusable-iframe/index.d.ts.map +1 -1
  351. package/build-types/focusable-iframe/types.d.ts +8 -0
  352. package/build-types/focusable-iframe/types.d.ts.map +1 -0
  353. package/build-types/font-size-picker/styles.d.ts +2 -2
  354. package/build-types/form-token-field/index.d.ts.map +1 -1
  355. package/build-types/form-token-field/types.d.ts +6 -0
  356. package/build-types/form-token-field/types.d.ts.map +1 -1
  357. package/build-types/gradient-picker/index.d.ts +1 -1
  358. package/build-types/gradient-picker/index.d.ts.map +1 -1
  359. package/build-types/gradient-picker/stories/index.story.d.ts +3 -36
  360. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  361. package/build-types/gradient-picker/types.d.ts +31 -1
  362. package/build-types/gradient-picker/types.d.ts.map +1 -1
  363. package/build-types/grid/hook.d.ts +46 -46
  364. package/build-types/h-stack/component.d.ts +1 -1
  365. package/build-types/h-stack/hook.d.ts +46 -46
  366. package/build-types/heading/hook.d.ts +45 -45
  367. package/build-types/higher-order/navigate-regions/index.d.ts.map +1 -1
  368. package/build-types/higher-order/with-focus-outside/index.d.ts +1 -0
  369. package/build-types/higher-order/with-focus-outside/index.d.ts.map +1 -1
  370. package/build-types/higher-order/with-focus-outside/test/index.d.ts +2 -0
  371. package/build-types/higher-order/with-focus-outside/test/index.d.ts.map +1 -0
  372. package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
  373. package/build-types/index.d.ts +1 -1
  374. package/build-types/index.d.ts.map +1 -1
  375. package/build-types/isolated-event-container/test/index.d.ts +2 -0
  376. package/build-types/isolated-event-container/test/index.d.ts.map +1 -0
  377. package/build-types/item-group/item/hook.d.ts +46 -46
  378. package/build-types/item-group/item-group/hook.d.ts +46 -46
  379. package/build-types/menu-item/index.d.ts +1 -1
  380. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  381. package/build-types/modal/index.d.ts.map +1 -1
  382. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  383. package/build-types/modal/types.d.ts +1 -1
  384. package/build-types/modal/types.d.ts.map +1 -1
  385. package/build-types/navigable-container/menu.d.ts +1 -1
  386. package/build-types/navigation/back-button/index.d.ts +1 -1
  387. package/build-types/navigation/styles/navigation-styles.d.ts +5 -3
  388. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  389. package/build-types/navigator/navigator-back-button/component.d.ts +2 -3
  390. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  391. package/build-types/navigator/navigator-back-button/hook.d.ts +53 -54
  392. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  393. package/build-types/navigator/navigator-button/component.d.ts +2 -3
  394. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  395. package/build-types/navigator/navigator-button/hook.d.ts +53 -54
  396. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  397. package/build-types/navigator/navigator-to-parent-button/component.d.ts +2 -3
  398. package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
  399. package/build-types/notice/index.d.ts.map +1 -1
  400. package/build-types/number-control/index.d.ts +3 -3
  401. package/build-types/number-control/stories/index.story.d.ts +3 -3
  402. package/build-types/palette-edit/styles.d.ts +4 -4
  403. package/build-types/palette-edit/styles.d.ts.map +1 -1
  404. package/build-types/placeholder/index.d.ts.map +1 -1
  405. package/build-types/popover/index.d.ts +1 -1
  406. package/build-types/popover/index.d.ts.map +1 -1
  407. package/build-types/popover/overlay-middlewares.d.ts +1 -1
  408. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  409. package/build-types/popover/types.d.ts +0 -4
  410. package/build-types/popover/types.d.ts.map +1 -1
  411. package/build-types/popover/utils.d.ts +2 -6
  412. package/build-types/popover/utils.d.ts.map +1 -1
  413. package/build-types/range-control/index.d.ts +1 -1
  414. package/build-types/range-control/styles/range-control-styles.d.ts +3 -3
  415. package/build-types/resizable-box/index.d.ts +1 -1
  416. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  417. package/build-types/resizable-box/resize-tooltip/label.d.ts +1 -1
  418. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  419. package/build-types/scrollable/hook.d.ts +46 -46
  420. package/build-types/search-control/index.d.ts +4 -2
  421. package/build-types/search-control/index.d.ts.map +1 -1
  422. package/build-types/search-control/stories/index.story.d.ts +8 -4
  423. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  424. package/build-types/search-control/types.d.ts +12 -0
  425. package/build-types/search-control/types.d.ts.map +1 -1
  426. package/build-types/spacer/hook.d.ts +46 -46
  427. package/build-types/spinner/index.d.ts +1 -1
  428. package/build-types/surface/hook.d.ts +46 -46
  429. package/build-types/text/hook.d.ts +46 -46
  430. package/build-types/text/styles.d.ts.map +1 -1
  431. package/build-types/text-control/index.d.ts +3 -3
  432. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  433. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -4
  434. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
  435. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -4
  436. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  437. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +2 -2
  438. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  439. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -5
  440. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  441. package/build-types/toggle-group-control/toggle-group-control/utils.d.ts +18 -0
  442. package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -0
  443. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  444. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +5 -1
  445. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  446. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +1 -0
  447. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  448. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  449. package/build-types/toggle-group-control/types.d.ts +13 -24
  450. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  451. package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
  452. package/build-types/toolbar/toolbar/index.d.ts.map +1 -1
  453. package/build-types/toolbar/toolbar-button/index.d.ts +16 -22
  454. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  455. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts +3 -1
  456. package/build-types/toolbar/toolbar-dropdown-menu/index.d.ts.map +1 -1
  457. package/build-types/toolbar/toolbar-group/index.d.ts +10 -14
  458. package/build-types/toolbar/toolbar-group/index.d.ts.map +1 -1
  459. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts +3 -5
  460. package/build-types/toolbar/toolbar-group/toolbar-group-collapsed.d.ts.map +1 -1
  461. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts +7 -5
  462. package/build-types/toolbar/toolbar-group/toolbar-group-container.d.ts.map +1 -1
  463. package/build-types/toolbar/toolbar-group/types.d.ts +77 -0
  464. package/build-types/toolbar/toolbar-group/types.d.ts.map +1 -0
  465. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
  466. package/build-types/tools-panel/tools-panel/hook.d.ts +46 -46
  467. package/build-types/tools-panel/tools-panel-header/hook.d.ts +46 -46
  468. package/build-types/tools-panel/tools-panel-item/hook.d.ts +46 -46
  469. package/build-types/tooltip/index.d.ts +8 -5
  470. package/build-types/tooltip/index.d.ts.map +1 -1
  471. package/build-types/tooltip/stories/index.story.d.ts +13 -0
  472. package/build-types/tooltip/stories/index.story.d.ts.map +1 -0
  473. package/build-types/tooltip/test/index.d.ts +2 -0
  474. package/build-types/tooltip/test/index.d.ts.map +1 -0
  475. package/build-types/tooltip/test/utils/index.d.ts +11 -0
  476. package/build-types/tooltip/test/utils/index.d.ts.map +1 -0
  477. package/build-types/tooltip/types.d.ts +61 -0
  478. package/build-types/tooltip/types.d.ts.map +1 -0
  479. package/build-types/truncate/hook.d.ts +46 -46
  480. package/build-types/ui/tooltip/content.d.ts +1 -1
  481. package/build-types/unit-control/index.d.ts +1 -1
  482. package/build-types/unit-control/index.d.ts.map +1 -1
  483. package/build-types/unit-control/styles/unit-control-styles.d.ts +3 -3
  484. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  485. package/build-types/unit-control/unit-select-control.d.ts +1 -1
  486. package/build-types/utils/use-deprecated-props.d.ts +1 -1
  487. package/build-types/v-stack/component.d.ts +1 -1
  488. package/build-types/v-stack/hook.d.ts +46 -46
  489. package/build-types/v-stack/stories/index.story.d.ts +2 -2
  490. package/package.json +20 -20
  491. package/src/animation/index.tsx +1 -0
  492. package/src/border-control/border-control/README.md +2 -2
  493. package/src/border-control/border-control-dropdown/component.tsx +1 -1
  494. package/src/border-control/styles.ts +7 -7
  495. package/src/border-control/test/index.js +79 -69
  496. package/src/box-control/unit-control.tsx +1 -1
  497. package/src/button/README.md +0 -6
  498. package/src/button/index.tsx +9 -1
  499. package/src/button/test/index.tsx +19 -0
  500. package/src/button/types.ts +0 -4
  501. package/src/circular-option-picker/README.md +14 -0
  502. package/src/circular-option-picker/circular-option-picker-actions.tsx +60 -0
  503. package/src/circular-option-picker/circular-option-picker-context.tsx +12 -0
  504. package/src/circular-option-picker/circular-option-picker-option-group.tsx +34 -0
  505. package/src/circular-option-picker/circular-option-picker-option.tsx +139 -0
  506. package/src/circular-option-picker/circular-option-picker.tsx +202 -0
  507. package/src/circular-option-picker/index.tsx +7 -174
  508. package/src/circular-option-picker/stories/index.story.tsx +34 -9
  509. package/src/circular-option-picker/style.scss +11 -7
  510. package/src/circular-option-picker/test/index.tsx +133 -0
  511. package/src/circular-option-picker/types.ts +64 -1
  512. package/src/color-palette/README.md +14 -0
  513. package/src/color-palette/index.tsx +69 -28
  514. package/src/color-palette/stories/index.story.tsx +16 -2
  515. package/src/color-palette/test/index.tsx +32 -30
  516. package/src/color-palette/types.ts +34 -1
  517. package/src/combobox-control/index.tsx +7 -5
  518. package/src/composite/{index.js → index.ts} +3 -0
  519. package/src/confirm-dialog/stories/index.story.js +13 -14
  520. package/src/confirm-dialog/test/index.js +10 -18
  521. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +1 -1
  522. package/src/custom-gradient-picker/gradient-bar/test/utils.ts +5 -5
  523. package/src/date-time/time/index.tsx +8 -1
  524. package/src/date-time/time/timezone.tsx +1 -1
  525. package/src/dropdown/README.md +13 -3
  526. package/src/dropdown/index.tsx +16 -34
  527. package/src/dropdown/stories/index.story.tsx +10 -7
  528. package/src/dropdown/types.ts +12 -4
  529. package/src/dropdown-menu/README.md +18 -0
  530. package/src/dropdown-menu/index.tsx +8 -1
  531. package/src/dropdown-menu/stories/index.story.tsx +5 -0
  532. package/src/dropdown-menu/types.ts +23 -6
  533. package/src/dropdown-menu-v2/styles.ts +1 -1
  534. package/src/duotone-picker/README.md +14 -0
  535. package/src/duotone-picker/color-list-picker/index.tsx +28 -12
  536. package/src/duotone-picker/duotone-picker.tsx +33 -0
  537. package/src/duotone-picker/types.ts +34 -1
  538. package/src/focusable-iframe/{index.js → index.tsx} +7 -4
  539. package/src/focusable-iframe/types.ts +9 -0
  540. package/src/form-token-field/README.md +1 -0
  541. package/src/form-token-field/index.tsx +5 -1
  542. package/src/form-token-field/style.scss +5 -9
  543. package/src/form-token-field/test/index.tsx +36 -1
  544. package/src/form-token-field/types.ts +7 -1
  545. package/src/gradient-picker/README.md +14 -0
  546. package/src/gradient-picker/index.tsx +60 -11
  547. package/src/gradient-picker/types.ts +34 -1
  548. package/src/higher-order/navigate-regions/index.tsx +5 -6
  549. package/src/higher-order/with-filters/test/index.tsx +36 -43
  550. package/src/higher-order/with-focus-outside/{index.js → index.tsx} +8 -5
  551. package/src/higher-order/with-focus-outside/test/{index.js → index.tsx} +13 -11
  552. package/src/higher-order/with-notices/test/index.tsx +1 -1
  553. package/src/higher-order/with-spoken-messages/index.tsx +7 -8
  554. package/src/index.ts +5 -1
  555. package/src/input-control/styles/input-control-styles.tsx +2 -2
  556. package/src/isolated-event-container/test/{index.js → index.tsx} +1 -1
  557. package/src/mobile/bottom-sheet/index.native.js +1 -0
  558. package/src/mobile/global-styles-context/index.native.js +7 -8
  559. package/src/modal/README.md +7 -1
  560. package/src/modal/index.tsx +27 -3
  561. package/src/modal/stories/index.story.tsx +2 -1
  562. package/src/modal/test/index.tsx +231 -0
  563. package/src/modal/types.ts +3 -1
  564. package/src/navigation/use-navigation-tree-nodes.tsx +1 -1
  565. package/src/notice/index.tsx +18 -6
  566. package/src/notice/style.scss +0 -1
  567. package/src/notice/test/__snapshots__/index.tsx.snap +9 -1
  568. package/src/palette-edit/styles.js +2 -1
  569. package/src/placeholder/index.tsx +16 -8
  570. package/src/placeholder/style.scss +2 -16
  571. package/src/placeholder/test/index.tsx +34 -15
  572. package/src/popover/index.tsx +47 -110
  573. package/src/popover/test/index.tsx +3 -3
  574. package/src/popover/types.ts +0 -5
  575. package/src/popover/utils.ts +19 -67
  576. package/src/search-control/README.md +7 -0
  577. package/src/search-control/index.tsx +10 -1
  578. package/src/search-control/style.scss +14 -7
  579. package/src/search-control/types.ts +12 -0
  580. package/src/tab-panel/test/index.tsx +5 -0
  581. package/src/text/styles.js +2 -1
  582. package/src/theme/README.md +5 -5
  583. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +567 -59
  584. package/src/toggle-group-control/test/index.tsx +110 -56
  585. package/src/toggle-group-control/toggle-group-control/README.md +0 -1
  586. package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +39 -57
  587. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +52 -48
  588. package/src/toggle-group-control/toggle-group-control/component.tsx +12 -6
  589. package/src/toggle-group-control/toggle-group-control/styles.ts +2 -19
  590. package/src/toggle-group-control/toggle-group-control/utils.ts +50 -0
  591. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +70 -20
  592. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +17 -3
  593. package/src/toggle-group-control/types.ts +14 -32
  594. package/src/toolbar/stories/index.story.tsx +3 -5
  595. package/src/toolbar/test/toolbar-group.tsx +13 -7
  596. package/src/toolbar/toolbar/index.tsx +9 -1
  597. package/src/toolbar/toolbar-dropdown-menu/{index.js → index.tsx} +11 -4
  598. package/src/toolbar/toolbar-group/README.md +2 -2
  599. package/src/toolbar/toolbar-group/{index.js → index.tsx} +19 -14
  600. package/src/toolbar/toolbar-group/{toolbar-group-collapsed.js → toolbar-group-collapsed.tsx} +10 -4
  601. package/src/toolbar/toolbar-group/toolbar-group-container.tsx +16 -0
  602. package/src/toolbar/toolbar-group/types.ts +92 -0
  603. package/src/toolbar/toolbar-item/index.tsx +3 -1
  604. package/src/tooltip/README.md +31 -28
  605. package/src/tooltip/index.tsx +106 -0
  606. package/src/tooltip/stories/index.story.tsx +59 -0
  607. package/src/tooltip/style.scss +2 -27
  608. package/src/tooltip/test/index.tsx +335 -0
  609. package/src/tooltip/test/utils/index.tsx +20 -0
  610. package/src/tooltip/types.ts +61 -0
  611. package/src/ui/context/context-connect.ts +3 -3
  612. package/src/ui/context/wordpress-component.ts +4 -4
  613. package/src/unit-control/index.tsx +9 -4
  614. package/src/unit-control/styles/unit-control-styles.ts +3 -1
  615. package/src/unit-control/test/utils.ts +1 -1
  616. package/src/utils/colors-values.js +1 -1
  617. package/src/utils/use-deprecated-props.ts +1 -1
  618. package/tsconfig.tsbuildinfo +1 -1
  619. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +0 -78
  620. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +0 -1
  621. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +0 -76
  622. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +0 -1
  623. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +0 -9
  624. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +0 -1
  625. package/src/color-palette/test/__snapshots__/index.tsx.snap +0 -288
  626. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +0 -84
  627. package/src/toolbar/toolbar-group/toolbar-group-container.js +0 -8
  628. package/src/tooltip/index.js +0 -293
  629. package/src/tooltip/stories/index.story.js +0 -85
  630. package/src/tooltip/test/index.js +0 -323
@@ -1,137 +1,9 @@
1
- import { createElement } from "@wordpress/element";
2
- /**
3
- * External dependencies
4
- */
5
- import classnames from 'classnames';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { Icon, check } from '@wordpress/icons';
11
-
12
1
  /**
13
2
  * Internal dependencies
14
3
  */
15
- import Button from '../button';
16
- import Dropdown from '../dropdown';
17
- import Tooltip from '../tooltip';
18
- export function Option({
19
- className,
20
- isSelected,
21
- selectedIconProps,
22
- tooltipText,
23
- ...additionalProps
24
- }) {
25
- const optionButton = createElement(Button, {
26
- isPressed: isSelected,
27
- className: "components-circular-option-picker__option",
28
- ...additionalProps
29
- });
30
- return createElement("div", {
31
- className: classnames(className, 'components-circular-option-picker__option-wrapper')
32
- }, tooltipText ? createElement(Tooltip, {
33
- text: tooltipText
34
- }, optionButton) : optionButton, isSelected && createElement(Icon, {
35
- icon: check,
36
- ...(selectedIconProps ? selectedIconProps : {})
37
- }));
38
- }
39
- export function DropdownLinkAction({
40
- buttonProps,
41
- className,
42
- dropdownProps,
43
- linkText
44
- }) {
45
- return createElement(Dropdown, {
46
- className: classnames('components-circular-option-picker__dropdown-link-action', className),
47
- renderToggle: ({
48
- isOpen,
49
- onToggle
50
- }) => createElement(Button, {
51
- "aria-expanded": isOpen,
52
- "aria-haspopup": "true",
53
- onClick: onToggle,
54
- variant: "link",
55
- ...buttonProps
56
- }, linkText),
57
- ...dropdownProps
58
- });
59
- }
60
- export function ButtonAction({
61
- className,
62
- children,
63
- ...additionalProps
64
- }) {
65
- return createElement(Button, {
66
- className: classnames('components-circular-option-picker__clear', className),
67
- variant: "tertiary",
68
- ...additionalProps
69
- }, children);
70
- }
71
-
72
- /**
73
- *`CircularOptionPicker` is a component that displays a set of options as circular buttons.
74
- *
75
- * ```jsx
76
- * import { CircularOptionPicker } from '../circular-option-picker';
77
- * import { useState } from '@wordpress/element';
78
- *
79
- * const Example = () => {
80
- * const [ currentColor, setCurrentColor ] = useState();
81
- * const colors = [
82
- * { color: '#f00', name: 'Red' },
83
- * { color: '#0f0', name: 'Green' },
84
- * { color: '#00f', name: 'Blue' },
85
- * ];
86
- * const colorOptions = (
87
- * <>
88
- * { colors.map( ( { color, name }, index ) => {
89
- * return (
90
- * <CircularOptionPicker.Option
91
- * key={ `${ color }-${ index }` }
92
- * tooltipText={ name }
93
- * style={ { backgroundColor: color, color } }
94
- * isSelected={ index === currentColor }
95
- * onClick={ () => setCurrentColor( index ) }
96
- * aria-label={ name }
97
- * />
98
- * );
99
- * } ) }
100
- * </>
101
- * );
102
- * return (
103
- * <CircularOptionPicker
104
- * options={ colorOptions }
105
- * actions={
106
- * <CircularOptionPicker.ButtonAction
107
- * onClick={ () => setCurrentColor( undefined ) }
108
- * >
109
- * { 'Clear' }
110
- * </CircularOptionPicker.ButtonAction>
111
- * }
112
- * />
113
- * );
114
- * };
115
- * ```
116
- */
117
-
118
- function CircularOptionPicker(props) {
119
- const {
120
- actions,
121
- className,
122
- options,
123
- children
124
- } = props;
125
- return createElement("div", {
126
- className: classnames('components-circular-option-picker', className)
127
- }, createElement("div", {
128
- className: "components-circular-option-picker__swatches"
129
- }, options), children, actions && createElement("div", {
130
- className: "components-circular-option-picker__custom-clear-wrapper"
131
- }, actions));
132
- }
133
- CircularOptionPicker.Option = Option;
134
- CircularOptionPicker.ButtonAction = ButtonAction;
135
- CircularOptionPicker.DropdownLinkAction = DropdownLinkAction;
4
+ import CircularOptionPicker from './circular-option-picker';
5
+ export { Option } from './circular-option-picker-option';
6
+ export { OptionGroup } from './circular-option-picker-option-group';
7
+ export { ButtonAction, DropdownLinkAction } from './circular-option-picker-actions';
136
8
  export default CircularOptionPicker;
137
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","Icon","check","Button","Dropdown","Tooltip","Option","className","isSelected","selectedIconProps","tooltipText","additionalProps","optionButton","createElement","isPressed","text","icon","DropdownLinkAction","buttonProps","dropdownProps","linkText","renderToggle","isOpen","onToggle","onClick","variant","ButtonAction","children","CircularOptionPicker","props","actions","options"],"sources":["@wordpress/components/src/circular-option-picker/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport Tooltip from '../tooltip';\nimport type {\n\tCircularOptionPickerProps,\n\tDropdownLinkActionProps,\n\tOptionProps,\n} from './types';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type { ButtonAsButtonProps } from '../button/types';\n\nexport function Option( {\n\tclassName,\n\tisSelected,\n\tselectedIconProps,\n\ttooltipText,\n\t...additionalProps\n}: OptionProps ) {\n\tconst optionButton = (\n\t\t<Button\n\t\t\tisPressed={ isSelected }\n\t\t\tclassName=\"components-circular-option-picker__option\"\n\t\t\t{ ...additionalProps }\n\t\t/>\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\tclassName,\n\t\t\t\t'components-circular-option-picker__option-wrapper'\n\t\t\t) }\n\t\t>\n\t\t\t{ tooltipText ? (\n\t\t\t\t<Tooltip text={ tooltipText }>{ optionButton }</Tooltip>\n\t\t\t) : (\n\t\t\t\toptionButton\n\t\t\t) }\n\t\t\t{ isSelected && (\n\t\t\t\t<Icon\n\t\t\t\t\ticon={ check }\n\t\t\t\t\t{ ...( selectedIconProps ? selectedIconProps : {} ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport function DropdownLinkAction( {\n\tbuttonProps,\n\tclassName,\n\tdropdownProps,\n\tlinkText,\n}: DropdownLinkActionProps ) {\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-circular-option-picker__dropdown-link-action',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t{ ...buttonProps }\n\t\t\t\t>\n\t\t\t\t\t{ linkText }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ ...dropdownProps }\n\t\t/>\n\t);\n}\n\nexport function ButtonAction( {\n\tclassName,\n\tchildren,\n\t...additionalProps\n}: WordPressComponentProps< ButtonAsButtonProps, 'button', false > ) {\n\treturn (\n\t\t<Button\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-circular-option-picker__clear',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tvariant=\"tertiary\"\n\t\t\t{ ...additionalProps }\n\t\t>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\n/**\n *`CircularOptionPicker` is a component that displays a set of options as circular buttons.\n *\n * ```jsx\n * import { CircularOptionPicker } from '../circular-option-picker';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * \tconst [ currentColor, setCurrentColor ] = useState();\n * \tconst colors = [\n * \t\t{ color: '#f00', name: 'Red' },\n * \t\t{ color: '#0f0', name: 'Green' },\n * \t\t{ color: '#00f', name: 'Blue' },\n * \t];\n * \tconst colorOptions = (\n * \t\t<>\n * \t\t\t{ colors.map( ( { color, name }, index ) => {\n * \t\t\t\treturn (\n * \t\t\t\t\t<CircularOptionPicker.Option\n * \t\t\t\t\t\tkey={ `${ color }-${ index }` }\n * \t\t\t\t\t\ttooltipText={ name }\n * \t\t\t\t\t\tstyle={ { backgroundColor: color, color } }\n * \t\t\t\t\t\tisSelected={ index === currentColor }\n * \t\t\t\t\t\tonClick={ () => setCurrentColor( index ) }\n * \t\t\t\t\t\taria-label={ name }\n * \t\t\t\t\t/>\n * \t\t\t\t);\n * \t\t\t} ) }\n * \t\t</>\n * \t);\n * \treturn (\n * \t\t<CircularOptionPicker\n * \t\t\t\toptions={ colorOptions }\n * \t\t\t\tactions={\n * \t\t\t\t\t<CircularOptionPicker.ButtonAction\n * \t\t\t\t\t\tonClick={ () => setCurrentColor( undefined ) }\n * \t\t\t\t\t>\n * \t\t\t\t\t\t{ 'Clear' }\n * \t\t\t\t\t</CircularOptionPicker.ButtonAction>\n * \t\t\t\t}\n * \t\t\t/>\n * \t);\n * };\n * ```\n */\n\nfunction CircularOptionPicker( props: CircularOptionPickerProps ) {\n\tconst { actions, className, options, children } = props;\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-circular-option-picker',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<div className=\"components-circular-option-picker__swatches\">\n\t\t\t\t{ options }\n\t\t\t</div>\n\t\t\t{ children }\n\t\t\t{ actions && (\n\t\t\t\t<div className=\"components-circular-option-picker__custom-clear-wrapper\">\n\t\t\t\t\t{ actions }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nCircularOptionPicker.Option = Option;\nCircularOptionPicker.ButtonAction = ButtonAction;\nCircularOptionPicker.DropdownLinkAction = DropdownLinkAction;\n\nexport default CircularOptionPicker;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,IAAI,EAAEC,KAAK,QAAQ,kBAAkB;;AAE9C;AACA;AACA;AACA,OAAOC,MAAM,MAAM,WAAW;AAC9B,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,OAAO,MAAM,YAAY;AAShC,OAAO,SAASC,MAAMA,CAAE;EACvBC,SAAS;EACTC,UAAU;EACVC,iBAAiB;EACjBC,WAAW;EACX,GAAGC;AACS,CAAC,EAAG;EAChB,MAAMC,YAAY,GACjBC,aAAA,CAACV,MAAM;IACNW,SAAS,EAAGN,UAAY;IACxBD,SAAS,EAAC,2CAA2C;IAAA,GAChDI;EAAe,CACpB,CACD;EACD,OACCE,aAAA;IACCN,SAAS,EAAGP,UAAU,CACrBO,SAAS,EACT,mDACD;EAAG,GAEDG,WAAW,GACZG,aAAA,CAACR,OAAO;IAACU,IAAI,EAAGL;EAAa,GAAGE,YAAuB,CAAC,GAExDA,YACA,EACCJ,UAAU,IACXK,aAAA,CAACZ,IAAI;IACJe,IAAI,EAAGd,KAAO;IAAA,IACPO,iBAAiB,GAAGA,iBAAiB,GAAG,CAAC,CAAC;EAAA,CACjD,CAEE,CAAC;AAER;AAEA,OAAO,SAASQ,kBAAkBA,CAAE;EACnCC,WAAW;EACXX,SAAS;EACTY,aAAa;EACbC;AACwB,CAAC,EAAG;EAC5B,OACCP,aAAA,CAACT,QAAQ;IACRG,SAAS,EAAGP,UAAU,CACrB,yDAAyD,EACzDO,SACD,CAAG;IACHc,YAAY,EAAGA,CAAE;MAAEC,MAAM;MAAEC;IAAS,CAAC,KACpCV,aAAA,CAACV,MAAM;MACN,iBAAgBmB,MAAQ;MACxB,iBAAc,MAAM;MACpBE,OAAO,EAAGD,QAAU;MACpBE,OAAO,EAAC,MAAM;MAAA,GACTP;IAAW,GAEdE,QACK,CACN;IAAA,GACED;EAAa,CAClB,CAAC;AAEJ;AAEA,OAAO,SAASO,YAAYA,CAAE;EAC7BnB,SAAS;EACToB,QAAQ;EACR,GAAGhB;AAC6D,CAAC,EAAG;EACpE,OACCE,aAAA,CAACV,MAAM;IACNI,SAAS,EAAGP,UAAU,CACrB,0CAA0C,EAC1CO,SACD,CAAG;IACHkB,OAAO,EAAC,UAAU;IAAA,GACbd;EAAe,GAElBgB,QACK,CAAC;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASC,oBAAoBA,CAAEC,KAAgC,EAAG;EACjE,MAAM;IAAEC,OAAO;IAAEvB,SAAS;IAAEwB,OAAO;IAAEJ;EAAS,CAAC,GAAGE,KAAK;EACvD,OACChB,aAAA;IACCN,SAAS,EAAGP,UAAU,CACrB,mCAAmC,EACnCO,SACD;EAAG,GAEHM,aAAA;IAAKN,SAAS,EAAC;EAA6C,GACzDwB,OACE,CAAC,EACJJ,QAAQ,EACRG,OAAO,IACRjB,aAAA;IAAKN,SAAS,EAAC;EAAyD,GACrEuB,OACE,CAEF,CAAC;AAER;AAEAF,oBAAoB,CAACtB,MAAM,GAAGA,MAAM;AACpCsB,oBAAoB,CAACF,YAAY,GAAGA,YAAY;AAChDE,oBAAoB,CAACX,kBAAkB,GAAGA,kBAAkB;AAE5D,eAAeW,oBAAoB"}
1
+ {"version":3,"names":["CircularOptionPicker","Option","OptionGroup","ButtonAction","DropdownLinkAction"],"sources":["@wordpress/components/src/circular-option-picker/index.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport CircularOptionPicker from './circular-option-picker';\n\nexport { Option } from './circular-option-picker-option';\nexport { OptionGroup } from './circular-option-picker-option-group';\nexport {\n\tButtonAction,\n\tDropdownLinkAction,\n} from './circular-option-picker-actions';\n\nexport default CircularOptionPicker;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,oBAAoB,MAAM,0BAA0B;AAE3D,SAASC,MAAM,QAAQ,iCAAiC;AACxD,SAASC,WAAW,QAAQ,uCAAuC;AACnE,SACCC,YAAY,EACZC,kBAAkB,QACZ,kCAAkC;AAEzC,eAAeJ,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/circular-option-picker/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport type { Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { ButtonAsButtonProps } from '../button/types';\nimport type { DropdownProps } from '../dropdown/types';\nimport type { WordPressComponentProps } from '../ui/context';\n\nexport type CircularOptionPickerProps = {\n\t/**\n\t * A CSS class to apply to the wrapper element.\n\t */\n\tclassName?: string;\n\t/**\n\t * The action(s) to be rendered after the options,\n\t * such as a 'clear' button as seen in `ColorPalette`.\n\t * Usually a `CircularOptionPicker.ButtonAction` or\n\t * `CircularOptionPicker.DropdownLinkAction` component.\n\t */\n\tactions?: ReactNode;\n\t/**\n\t * The options to be rendered, such as color swatches.\n\t * Usually a `CircularOptionPicker.Option` component.\n\t */\n\toptions: ReactNode;\n\t/**\n\t * The child elements.\n\t */\n\tchildren?: ReactNode;\n};\n\nexport type DropdownLinkActionProps = {\n\tbuttonProps?: Omit<\n\t\tWordPressComponentProps< ButtonAsButtonProps, 'button', false >,\n\t\t'children'\n\t>;\n\tlinkText: string;\n\tdropdownProps: Omit< DropdownProps, 'className' | 'renderToggle' >;\n\tclassName?: string;\n};\n\nexport type OptionProps = Omit<\n\tWordPressComponentProps< ButtonAsButtonProps, 'button', false >,\n\t'isPressed' | 'className'\n> & {\n\tclassName?: string;\n\ttooltipText?: string;\n\tisSelected?: boolean;\n\t// `icon` is explicitly defined as 'check' by CircleOptionPicker.Option\n\t// and is not intended to be overridden.\n\t// `size` relies on the `Icon` component's default size of `24` to fit\n\t// `CircularOptionPicker`'s design, and should not be explicitly set.\n\tselectedIconProps?: Omit<\n\t\tReact.ComponentProps< typeof Icon >,\n\t\t'icon' | 'size'\n\t>;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/circular-option-picker/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport type { Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { ButtonAsButtonProps } from '../button/types';\nimport type { DropdownProps } from '../dropdown/types';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type { CompositeState } from '../composite';\n\ntype CommonCircularOptionPickerProps = {\n\t/**\n\t * An ID to apply to the component.\n\t */\n\tid?: string;\n\t/**\n\t * A CSS class to apply to the wrapper element.\n\t */\n\tclassName?: string;\n\t/**\n\t * The action(s) to be rendered after the options,\n\t * such as a 'clear' button as seen in `ColorPalette`.\n\t * Usually a `CircularOptionPicker.ButtonAction` or\n\t * `CircularOptionPicker.DropdownLinkAction` component.\n\t */\n\tactions?: ReactNode;\n\t/**\n\t * The options to be rendered, such as color swatches.\n\t * Usually a `CircularOptionPicker.Option` component.\n\t */\n\toptions: ReactNode;\n\t/**\n\t * The child elements.\n\t */\n\tchildren?: ReactNode;\n};\n\ntype WithBaseId = {\n\tbaseId: string;\n};\n\ntype FullListboxCircularOptionPickerProps = CommonCircularOptionPickerProps & {\n\t/**\n\t * Whether the control should present as a set of buttons,\n\t * each with its own tab stop.\n\t */\n\tasButtons?: false;\n\t/**\n\t * Prevents keyboard interaction from wrapping around.\n\t * Only used when `asButtons` is not true.\n\t *\n\t * @default true\n\t */\n\tloop?: boolean;\n} & (\n\t\t| {\n\t\t\t\t'aria-label': string;\n\t\t\t\t'aria-labelledby'?: never;\n\t\t }\n\t\t| {\n\t\t\t\t'aria-label'?: never;\n\t\t\t\t'aria-labelledby': string;\n\t\t }\n\t);\n\nexport type ListboxCircularOptionPickerProps = WithBaseId &\n\tOmit< FullListboxCircularOptionPickerProps, 'asButtons' >;\n\ntype FullButtonsCircularOptionPickerProps = CommonCircularOptionPickerProps & {\n\t/**\n\t * Whether the control should present as a set of buttons,\n\t * each with its own tab stop.\n\t *\n\t * @default false\n\t */\n\tasButtons: true;\n};\n\nexport type ButtonsCircularOptionPickerProps = WithBaseId &\n\tOmit< FullButtonsCircularOptionPickerProps, 'asButtons' >;\n\nexport type CircularOptionPickerProps =\n\t| FullListboxCircularOptionPickerProps\n\t| FullButtonsCircularOptionPickerProps;\n\nexport type DropdownLinkActionProps = {\n\tbuttonProps?: Omit<\n\t\tWordPressComponentProps< ButtonAsButtonProps, 'button', false >,\n\t\t'children'\n\t>;\n\tlinkText: string;\n\tdropdownProps: Omit< DropdownProps, 'className' | 'renderToggle' >;\n\tclassName?: string;\n};\n\nexport type OptionGroupProps = {\n\tclassName?: string;\n\toptions: ReactNode;\n};\n\nexport type OptionProps = Omit<\n\tWordPressComponentProps< ButtonAsButtonProps, 'button', false >,\n\t'isPressed' | 'className'\n> & {\n\tclassName?: string;\n\ttooltipText?: string;\n\tisSelected?: boolean;\n\t// `icon` is explicitly defined as 'check' by CircleOptionPicker.Option\n\t// and is not intended to be overridden.\n\t// `size` relies on the `Icon` component's default size of `24` to fit\n\t// `CircularOptionPicker`'s design, and should not be explicitly set.\n\tselectedIconProps?: Omit<\n\t\tReact.ComponentProps< typeof Icon >,\n\t\t'icon' | 'size'\n\t>;\n};\n\nexport type CircularOptionPickerCompositeState = CompositeState;\nexport type CircularOptionPickerContextProps =\n\t| { isComposite?: false; baseId?: string }\n\t| ( { isComposite: true } & CircularOptionPickerCompositeState );\n"],"mappings":""}
@@ -11,6 +11,7 @@ import classnames from 'classnames';
11
11
  /**
12
12
  * WordPress dependencies
13
13
  */
14
+ import { useInstanceId } from '@wordpress/compose';
14
15
  import { __, sprintf } from '@wordpress/i18n';
15
16
  import { useCallback, useMemo, useState, forwardRef } from '@wordpress/element';
16
17
 
@@ -32,7 +33,7 @@ function SinglePalette({
32
33
  colors,
33
34
  onChange,
34
35
  value,
35
- actions
36
+ ...additionalProps
36
37
  }) {
37
38
  const colorOptions = useMemo(() => {
38
39
  return colors.map(({
@@ -63,10 +64,10 @@ function SinglePalette({
63
64
  });
64
65
  });
65
66
  }, [colors, value, onChange, clearColor]);
66
- return createElement(CircularOptionPicker, {
67
+ return createElement(CircularOptionPicker.OptionGroup, {
67
68
  className: className,
68
69
  options: colorOptions,
69
- actions: actions
70
+ ...additionalProps
70
71
  });
71
72
  }
72
73
  function MultiplePalettes({
@@ -75,9 +76,9 @@ function MultiplePalettes({
75
76
  colors,
76
77
  onChange,
77
78
  value,
78
- actions,
79
79
  headingLevel
80
80
  }) {
81
+ const instanceId = useInstanceId(MultiplePalettes, 'color-palette');
81
82
  if (colors.length === 0) {
82
83
  return null;
83
84
  }
@@ -88,17 +89,19 @@ function MultiplePalettes({
88
89
  name,
89
90
  colors: colorPalette
90
91
  }, index) => {
92
+ const id = `${instanceId}-${index}`;
91
93
  return createElement(VStack, {
92
94
  spacing: 2,
93
95
  key: index
94
96
  }, createElement(ColorHeading, {
97
+ id: id,
95
98
  level: headingLevel
96
99
  }, name), createElement(SinglePalette, {
97
100
  clearColor: clearColor,
98
101
  colors: colorPalette,
99
102
  onChange: newColor => onChange(newColor, index),
100
103
  value: value,
101
- actions: colors.length === index + 1 ? actions : null
104
+ "aria-labelledby": id
102
105
  }));
103
106
  }));
104
107
  }
@@ -129,6 +132,8 @@ export function CustomColorPickerDropdown({
129
132
  }
130
133
  function UnforwardedColorPalette(props, forwardedRef) {
131
134
  const {
135
+ asButtons,
136
+ loop,
132
137
  clearable = true,
133
138
  colors = [],
134
139
  disableCustomColors = false,
@@ -137,7 +142,9 @@ function UnforwardedColorPalette(props, forwardedRef) {
137
142
  value,
138
143
  __experimentalIsRenderedInSidebar = false,
139
144
  headingLevel = 2,
140
- ...otherProps
145
+ 'aria-label': ariaLabel,
146
+ 'aria-labelledby': ariaLabelledby,
147
+ ...additionalProps
141
148
  } = props;
142
149
  const [normalizedColorValue, setNormalizedColorValue] = useState(value);
143
150
  const clearColor = useCallback(() => onChange(undefined), [onChange]);
@@ -161,19 +168,44 @@ function UnforwardedColorPalette(props, forwardedRef) {
161
168
  // translators: %1$s: The name of the color e.g: "vivid red". %2$s: The color's hex code e.g: "#f00".
162
169
  __('Custom color picker. The currently selected color is called "%1$s" and has a value of "%2$s".'), buttonLabelName, displayValue) : __('Custom color picker.');
163
170
  const paletteCommonProps = {
164
- clearable,
165
171
  clearColor,
166
172
  onChange,
167
- value,
168
- actions: !!clearable && createElement(CircularOptionPicker.ButtonAction, {
169
- onClick: clearColor
170
- }, __('Clear')),
171
- headingLevel
173
+ value
172
174
  };
175
+ const actions = !!clearable && createElement(CircularOptionPicker.ButtonAction, {
176
+ onClick: clearColor
177
+ }, __('Clear'));
178
+ let metaProps;
179
+ if (asButtons) {
180
+ metaProps = {
181
+ asButtons: true
182
+ };
183
+ } else {
184
+ const _metaProps = {
185
+ asButtons: false,
186
+ loop
187
+ };
188
+ if (ariaLabel) {
189
+ metaProps = {
190
+ ..._metaProps,
191
+ 'aria-label': ariaLabel
192
+ };
193
+ } else if (ariaLabelledby) {
194
+ metaProps = {
195
+ ..._metaProps,
196
+ 'aria-labelledby': ariaLabelledby
197
+ };
198
+ } else {
199
+ metaProps = {
200
+ ..._metaProps,
201
+ 'aria-label': __('Custom color picker.')
202
+ };
203
+ }
204
+ }
173
205
  return createElement(VStack, {
174
206
  spacing: 3,
175
207
  ref: forwardedRef,
176
- ...otherProps
208
+ ...additionalProps
177
209
  }, !disableCustomColors && createElement(CustomColorPickerDropdown, {
178
210
  isRenderedInSidebar: __experimentalIsRenderedInSidebar,
179
211
  renderContent: renderCustomColorPicker,
@@ -203,12 +235,19 @@ function UnforwardedColorPalette(props, forwardedRef) {
203
235
  'components-color-palette__custom-color-value--is-hex': isHex
204
236
  })
205
237
  }, displayValue)))
206
- }), hasMultipleColorOrigins ? createElement(MultiplePalettes, {
207
- ...paletteCommonProps,
208
- colors: colors
209
- }) : createElement(SinglePalette, {
210
- ...paletteCommonProps,
211
- colors: colors
238
+ }), createElement(CircularOptionPicker, {
239
+ ...metaProps,
240
+ actions: actions,
241
+ options: hasMultipleColorOrigins ? createElement(MultiplePalettes, {
242
+ ...paletteCommonProps,
243
+ headingLevel: headingLevel,
244
+ colors: colors,
245
+ value: value
246
+ }) : createElement(SinglePalette, {
247
+ ...paletteCommonProps,
248
+ colors: colors,
249
+ value: value
250
+ })
212
251
  }));
213
252
  }
214
253
 
@@ -1 +1 @@
1
- {"version":3,"names":["colord","extend","namesPlugin","a11yPlugin","classnames","__","sprintf","useCallback","useMemo","useState","forwardRef","Dropdown","ColorPicker","CircularOptionPicker","VStack","Truncate","ColorHeading","DropdownContentWrapper","extractColorNameFromCurrentValue","isMultiplePaletteArray","normalizeColorValue","SinglePalette","className","clearColor","colors","onChange","value","actions","colorOptions","map","color","name","index","colordColor","isSelected","createElement","Option","key","selectedIconProps","fill","contrast","tooltipText","style","backgroundColor","onClick","options","MultiplePalettes","headingLevel","length","spacing","colorPalette","level","newColor","CustomColorPickerDropdown","isRenderedInSidebar","popoverProps","receivedPopoverProps","props","shift","placement","offset","contentClassName","UnforwardedColorPalette","forwardedRef","clearable","disableCustomColors","enableAlpha","__experimentalIsRenderedInSidebar","otherProps","normalizedColorValue","setNormalizedColorValue","undefined","customColorPaletteCallbackRef","node","hasMultipleColorOrigins","buttonLabelName","renderCustomColorPicker","paddingSize","isHex","startsWith","displayValue","replace","customColorAccessibleLabel","paletteCommonProps","ButtonAction","ref","renderContent","renderToggle","isOpen","onToggle","background","ColorPalette"],"sources":["@wordpress/components/src/color-palette/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\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 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 type {\n\tColorObject,\n\tColorPaletteProps,\n\tCustomColorPickerDropdownProps,\n\tMultiplePalettesProps,\n\tPaletteObject,\n\tSinglePaletteProps,\n} from './types';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type { DropdownProps } from '../dropdown/types';\nimport {\n\textractColorNameFromCurrentValue,\n\tisMultiplePaletteArray,\n\tnormalizeColorValue,\n} from './utils';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction SinglePalette( {\n\tclassName,\n\tclearColor,\n\tcolors,\n\tonChange,\n\tvalue,\n\tactions,\n}: SinglePaletteProps ) {\n\tconst colorOptions = useMemo( () => {\n\t\treturn colors.map( ( { color, name }, index ) => {\n\t\t\tconst colordColor = colord( color );\n\t\t\tconst isSelected = value === color;\n\n\t\t\treturn (\n\t\t\t\t<CircularOptionPicker.Option\n\t\t\t\t\tkey={ `${ color }-${ index }` }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tselectedIconProps={\n\t\t\t\t\t\tisSelected\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tfill:\n\t\t\t\t\t\t\t\t\t\tcolordColor.contrast() >\n\t\t\t\t\t\t\t\t\t\tcolordColor.contrast( '#000' )\n\t\t\t\t\t\t\t\t\t\t\t? '#fff'\n\t\t\t\t\t\t\t\t\t\t\t: '#000',\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: {}\n\t\t\t\t\t}\n\t\t\t\t\ttooltipText={\n\t\t\t\t\t\tname ||\n\t\t\t\t\t\t// translators: %s: color hex code e.g: \"#f00\".\n\t\t\t\t\t\tsprintf( __( 'Color code: %s' ), color )\n\t\t\t\t\t}\n\t\t\t\t\tstyle={ { backgroundColor: color, color } }\n\t\t\t\t\tonClick={\n\t\t\t\t\t\tisSelected ? clearColor : () => onChange( color, index )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tname\n\t\t\t\t\t\t\t? // translators: %s: The name of the color e.g: \"vivid red\".\n\t\t\t\t\t\t\t sprintf( __( 'Color: %s' ), name )\n\t\t\t\t\t\t\t: // translators: %s: color hex code e.g: \"#f00\".\n\t\t\t\t\t\t\t sprintf( __( 'Color code: %s' ), color )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\t}, [ colors, value, onChange, clearColor ] );\n\n\treturn (\n\t\t<CircularOptionPicker\n\t\t\tclassName={ className }\n\t\t\toptions={ colorOptions }\n\t\t\tactions={ actions }\n\t\t/>\n\t);\n}\n\nfunction MultiplePalettes( {\n\tclassName,\n\tclearColor,\n\tcolors,\n\tonChange,\n\tvalue,\n\tactions,\n\theadingLevel,\n}: MultiplePalettesProps ) {\n\tif ( colors.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 } className={ className }>\n\t\t\t{ colors.map( ( { name, colors: colorPalette }, index ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 2 } key={ index }>\n\t\t\t\t\t\t<ColorHeading level={ headingLevel }>\n\t\t\t\t\t\t\t{ name }\n\t\t\t\t\t\t</ColorHeading>\n\t\t\t\t\t\t<SinglePalette\n\t\t\t\t\t\t\tclearColor={ clearColor }\n\t\t\t\t\t\t\tcolors={ colorPalette }\n\t\t\t\t\t\t\tonChange={ ( newColor ) =>\n\t\t\t\t\t\t\t\tonChange( newColor, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tactions={\n\t\t\t\t\t\t\t\tcolors.length === index + 1 ? actions : null\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n\nexport function CustomColorPickerDropdown( {\n\tisRenderedInSidebar,\n\tpopoverProps: receivedPopoverProps,\n\t...props\n}: CustomColorPickerDropdownProps ) {\n\tconst popoverProps = useMemo< DropdownProps[ 'popoverProps' ] >(\n\t\t() => ( {\n\t\t\tshift: true,\n\t\t\t...( isRenderedInSidebar\n\t\t\t\t? {\n\t\t\t\t\t\t// When in the sidebar: open to the left (stacking),\n\t\t\t\t\t\t// leaving the same gap as the parent popover.\n\t\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t\toffset: 34,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t// Default behavior: open below the anchor\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\toffset: 8,\n\t\t\t\t } ),\n\t\t\t...receivedPopoverProps,\n\t\t} ),\n\t\t[ isRenderedInSidebar, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"components-color-palette__custom-color-dropdown-content\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction UnforwardedColorPalette(\n\tprops: WordPressComponentProps< ColorPaletteProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\tclearable = true,\n\t\tcolors = [],\n\t\tdisableCustomColors = false,\n\t\tenableAlpha = false,\n\t\tonChange,\n\t\tvalue,\n\t\t__experimentalIsRenderedInSidebar = false,\n\t\theadingLevel = 2,\n\t\t...otherProps\n\t} = props;\n\tconst [ normalizedColorValue, setNormalizedColorValue ] = useState( value );\n\n\tconst clearColor = useCallback( () => onChange( undefined ), [ onChange ] );\n\n\tconst customColorPaletteCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tsetNormalizedColorValue( normalizeColorValue( value, node ) );\n\t\t},\n\t\t[ value ]\n\t);\n\n\tconst hasMultipleColorOrigins = isMultiplePaletteArray( colors );\n\tconst buttonLabelName = useMemo(\n\t\t() =>\n\t\t\textractColorNameFromCurrentValue(\n\t\t\t\tvalue,\n\t\t\t\tcolors,\n\t\t\t\thasMultipleColorOrigins\n\t\t\t),\n\t\t[ value, colors, hasMultipleColorOrigins ]\n\t);\n\n\tconst renderCustomColorPicker = () => (\n\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t<ColorPicker\n\t\t\t\tcolor={ normalizedColorValue }\n\t\t\t\tonChange={ ( color ) => onChange( color ) }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t/>\n\t\t</DropdownContentWrapper>\n\t);\n\tconst isHex = value?.startsWith( '#' );\n\n\t// Leave hex values as-is. Remove the `var()` wrapper from CSS vars.\n\tconst displayValue = value?.replace( /^var\\((.+)\\)$/, '$1' );\n\tconst customColorAccessibleLabel = !! displayValue\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: The name of the color e.g: \"vivid red\". %2$s: The color's hex code e.g: \"#f00\".\n\t\t\t\t__(\n\t\t\t\t\t'Custom color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".'\n\t\t\t\t),\n\t\t\t\tbuttonLabelName,\n\t\t\t\tdisplayValue\n\t\t )\n\t\t: __( 'Custom color picker.' );\n\n\tconst paletteCommonProps = {\n\t\tclearable,\n\t\tclearColor,\n\t\tonChange,\n\t\tvalue,\n\t\tactions: !! clearable && (\n\t\t\t<CircularOptionPicker.ButtonAction onClick={ clearColor }>\n\t\t\t\t{ __( 'Clear' ) }\n\t\t\t</CircularOptionPicker.ButtonAction>\n\t\t),\n\t\theadingLevel,\n\t};\n\n\treturn (\n\t\t<VStack spacing={ 3 } ref={ forwardedRef } { ...otherProps }>\n\t\t\t{ ! disableCustomColors && (\n\t\t\t\t<CustomColorPickerDropdown\n\t\t\t\t\tisRenderedInSidebar={ __experimentalIsRenderedInSidebar }\n\t\t\t\t\trenderContent={ renderCustomColorPicker }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\tclassName=\"components-color-palette__custom-color-wrapper\"\n\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tref={ customColorPaletteCallbackRef }\n\t\t\t\t\t\t\t\tclassName=\"components-color-palette__custom-color-button\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-label={ customColorAccessibleLabel }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackground: value,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\tclassName=\"components-color-palette__custom-color-text-wrapper\"\n\t\t\t\t\t\t\t\tspacing={ 0.5 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Truncate className=\"components-color-palette__custom-color-name\">\n\t\t\t\t\t\t\t\t\t{ value\n\t\t\t\t\t\t\t\t\t\t? buttonLabelName\n\t\t\t\t\t\t\t\t\t\t: 'No color selected' }\n\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\tThis `Truncate` is always rendered, even if\n\t\t\t\t\t\t\t\tthere is no `displayValue`, to ensure the layout\n\t\t\t\t\t\t\t\tdoes not shift\n\t\t\t\t\t\t\t\t*/ }\n\t\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-color-palette__custom-color-value',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'components-color-palette__custom-color-value--is-hex':\n\t\t\t\t\t\t\t\t\t\t\t\tisHex,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ displayValue }\n\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ hasMultipleColorOrigins ? (\n\t\t\t\t<MultiplePalettes\n\t\t\t\t\t{ ...paletteCommonProps }\n\t\t\t\t\tcolors={ colors as PaletteObject[] }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<SinglePalette\n\t\t\t\t\t{ ...paletteCommonProps }\n\t\t\t\t\tcolors={ colors as ColorObject[] }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\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 );\n\nexport default ColorPalette;\n"],"mappings":"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"}
1
+ {"version":3,"names":["colord","extend","namesPlugin","a11yPlugin","classnames","useInstanceId","__","sprintf","useCallback","useMemo","useState","forwardRef","Dropdown","ColorPicker","CircularOptionPicker","VStack","Truncate","ColorHeading","DropdownContentWrapper","extractColorNameFromCurrentValue","isMultiplePaletteArray","normalizeColorValue","SinglePalette","className","clearColor","colors","onChange","value","additionalProps","colorOptions","map","color","name","index","colordColor","isSelected","createElement","Option","key","selectedIconProps","fill","contrast","tooltipText","style","backgroundColor","onClick","OptionGroup","options","MultiplePalettes","headingLevel","instanceId","length","spacing","colorPalette","id","level","newColor","CustomColorPickerDropdown","isRenderedInSidebar","popoverProps","receivedPopoverProps","props","shift","placement","offset","contentClassName","UnforwardedColorPalette","forwardedRef","asButtons","loop","clearable","disableCustomColors","enableAlpha","__experimentalIsRenderedInSidebar","ariaLabel","ariaLabelledby","normalizedColorValue","setNormalizedColorValue","undefined","customColorPaletteCallbackRef","node","hasMultipleColorOrigins","buttonLabelName","renderCustomColorPicker","paddingSize","isHex","startsWith","displayValue","replace","customColorAccessibleLabel","paletteCommonProps","actions","ButtonAction","metaProps","_metaProps","ref","renderContent","renderToggle","isOpen","onToggle","background","ColorPalette"],"sources":["@wordpress/components/src/color-palette/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\nimport classnames from 'classnames';\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 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 type {\n\tColorObject,\n\tColorPaletteProps,\n\tCustomColorPickerDropdownProps,\n\tMultiplePalettesProps,\n\tPaletteObject,\n\tSinglePaletteProps,\n} from './types';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type { DropdownProps } from '../dropdown/types';\nimport {\n\textractColorNameFromCurrentValue,\n\tisMultiplePaletteArray,\n\tnormalizeColorValue,\n} from './utils';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nfunction SinglePalette( {\n\tclassName,\n\tclearColor,\n\tcolors,\n\tonChange,\n\tvalue,\n\t...additionalProps\n}: SinglePaletteProps ) {\n\tconst colorOptions = useMemo( () => {\n\t\treturn colors.map( ( { color, name }, index ) => {\n\t\t\tconst colordColor = colord( color );\n\t\t\tconst isSelected = value === color;\n\n\t\t\treturn (\n\t\t\t\t<CircularOptionPicker.Option\n\t\t\t\t\tkey={ `${ color }-${ index }` }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tselectedIconProps={\n\t\t\t\t\t\tisSelected\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tfill:\n\t\t\t\t\t\t\t\t\t\tcolordColor.contrast() >\n\t\t\t\t\t\t\t\t\t\tcolordColor.contrast( '#000' )\n\t\t\t\t\t\t\t\t\t\t\t? '#fff'\n\t\t\t\t\t\t\t\t\t\t\t: '#000',\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t: {}\n\t\t\t\t\t}\n\t\t\t\t\ttooltipText={\n\t\t\t\t\t\tname ||\n\t\t\t\t\t\t// translators: %s: color hex code e.g: \"#f00\".\n\t\t\t\t\t\tsprintf( __( 'Color code: %s' ), color )\n\t\t\t\t\t}\n\t\t\t\t\tstyle={ { backgroundColor: color, color } }\n\t\t\t\t\tonClick={\n\t\t\t\t\t\tisSelected ? clearColor : () => onChange( color, index )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tname\n\t\t\t\t\t\t\t? // translators: %s: The name of the color e.g: \"vivid red\".\n\t\t\t\t\t\t\t sprintf( __( 'Color: %s' ), name )\n\t\t\t\t\t\t\t: // translators: %s: color hex code e.g: \"#f00\".\n\t\t\t\t\t\t\t sprintf( __( 'Color code: %s' ), color )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t} );\n\t}, [ colors, value, onChange, clearColor ] );\n\n\treturn (\n\t\t<CircularOptionPicker.OptionGroup\n\t\t\tclassName={ className }\n\t\t\toptions={ colorOptions }\n\t\t\t{ ...additionalProps }\n\t\t/>\n\t);\n}\n\nfunction MultiplePalettes( {\n\tclassName,\n\tclearColor,\n\tcolors,\n\tonChange,\n\tvalue,\n\theadingLevel,\n}: MultiplePalettesProps ) {\n\tconst instanceId = useInstanceId( MultiplePalettes, 'color-palette' );\n\n\tif ( colors.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 } className={ className }>\n\t\t\t{ colors.map( ( { name, colors: colorPalette }, index ) => {\n\t\t\t\tconst id = `${ instanceId }-${ index }`;\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 2 } key={ index }>\n\t\t\t\t\t\t<ColorHeading id={ id } level={ headingLevel }>\n\t\t\t\t\t\t\t{ name }\n\t\t\t\t\t\t</ColorHeading>\n\t\t\t\t\t\t<SinglePalette\n\t\t\t\t\t\t\tclearColor={ clearColor }\n\t\t\t\t\t\t\tcolors={ colorPalette }\n\t\t\t\t\t\t\tonChange={ ( newColor ) =>\n\t\t\t\t\t\t\t\tonChange( newColor, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\taria-labelledby={ id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n\nexport function CustomColorPickerDropdown( {\n\tisRenderedInSidebar,\n\tpopoverProps: receivedPopoverProps,\n\t...props\n}: CustomColorPickerDropdownProps ) {\n\tconst popoverProps = useMemo< DropdownProps[ 'popoverProps' ] >(\n\t\t() => ( {\n\t\t\tshift: true,\n\t\t\t...( isRenderedInSidebar\n\t\t\t\t? {\n\t\t\t\t\t\t// When in the sidebar: open to the left (stacking),\n\t\t\t\t\t\t// leaving the same gap as the parent popover.\n\t\t\t\t\t\tplacement: 'left-start',\n\t\t\t\t\t\toffset: 34,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t// Default behavior: open below the anchor\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\toffset: 8,\n\t\t\t\t } ),\n\t\t\t...receivedPopoverProps,\n\t\t} ),\n\t\t[ isRenderedInSidebar, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"components-color-palette__custom-color-dropdown-content\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nfunction UnforwardedColorPalette(\n\tprops: WordPressComponentProps< ColorPaletteProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\tasButtons,\n\t\tloop,\n\t\tclearable = true,\n\t\tcolors = [],\n\t\tdisableCustomColors = false,\n\t\tenableAlpha = false,\n\t\tonChange,\n\t\tvalue,\n\t\t__experimentalIsRenderedInSidebar = false,\n\t\theadingLevel = 2,\n\t\t'aria-label': ariaLabel,\n\t\t'aria-labelledby': ariaLabelledby,\n\t\t...additionalProps\n\t} = props;\n\tconst [ normalizedColorValue, setNormalizedColorValue ] = useState( value );\n\n\tconst clearColor = useCallback( () => onChange( undefined ), [ onChange ] );\n\n\tconst customColorPaletteCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tsetNormalizedColorValue( normalizeColorValue( value, node ) );\n\t\t},\n\t\t[ value ]\n\t);\n\n\tconst hasMultipleColorOrigins = isMultiplePaletteArray( colors );\n\tconst buttonLabelName = useMemo(\n\t\t() =>\n\t\t\textractColorNameFromCurrentValue(\n\t\t\t\tvalue,\n\t\t\t\tcolors,\n\t\t\t\thasMultipleColorOrigins\n\t\t\t),\n\t\t[ value, colors, hasMultipleColorOrigins ]\n\t);\n\n\tconst renderCustomColorPicker = () => (\n\t\t<DropdownContentWrapper paddingSize=\"none\">\n\t\t\t<ColorPicker\n\t\t\t\tcolor={ normalizedColorValue }\n\t\t\t\tonChange={ ( color ) => onChange( color ) }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t/>\n\t\t</DropdownContentWrapper>\n\t);\n\tconst isHex = value?.startsWith( '#' );\n\n\t// Leave hex values as-is. Remove the `var()` wrapper from CSS vars.\n\tconst displayValue = value?.replace( /^var\\((.+)\\)$/, '$1' );\n\tconst customColorAccessibleLabel = !! displayValue\n\t\t? sprintf(\n\t\t\t\t// translators: %1$s: The name of the color e.g: \"vivid red\". %2$s: The color's hex code e.g: \"#f00\".\n\t\t\t\t__(\n\t\t\t\t\t'Custom color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".'\n\t\t\t\t),\n\t\t\t\tbuttonLabelName,\n\t\t\t\tdisplayValue\n\t\t )\n\t\t: __( 'Custom color picker.' );\n\n\tconst paletteCommonProps = {\n\t\tclearColor,\n\t\tonChange,\n\t\tvalue,\n\t};\n\n\tconst actions = !! clearable && (\n\t\t<CircularOptionPicker.ButtonAction onClick={ clearColor }>\n\t\t\t{ __( 'Clear' ) }\n\t\t</CircularOptionPicker.ButtonAction>\n\t);\n\n\tlet metaProps:\n\t\t| { asButtons: false; loop?: boolean; 'aria-label': string }\n\t\t| { asButtons: false; loop?: boolean; 'aria-labelledby': string }\n\t\t| { asButtons: true };\n\n\tif ( asButtons ) {\n\t\tmetaProps = { asButtons: true };\n\t} else {\n\t\tconst _metaProps: { asButtons: false; loop?: boolean } = {\n\t\t\tasButtons: false,\n\t\t\tloop,\n\t\t};\n\n\t\tif ( ariaLabel ) {\n\t\t\tmetaProps = { ..._metaProps, 'aria-label': ariaLabel };\n\t\t} else if ( ariaLabelledby ) {\n\t\t\tmetaProps = {\n\t\t\t\t..._metaProps,\n\t\t\t\t'aria-labelledby': ariaLabelledby,\n\t\t\t};\n\t\t} else {\n\t\t\tmetaProps = {\n\t\t\t\t..._metaProps,\n\t\t\t\t'aria-label': __( 'Custom color picker.' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 3 } ref={ forwardedRef } { ...additionalProps }>\n\t\t\t{ ! disableCustomColors && (\n\t\t\t\t<CustomColorPickerDropdown\n\t\t\t\t\tisRenderedInSidebar={ __experimentalIsRenderedInSidebar }\n\t\t\t\t\trenderContent={ renderCustomColorPicker }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\tclassName=\"components-color-palette__custom-color-wrapper\"\n\t\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tref={ customColorPaletteCallbackRef }\n\t\t\t\t\t\t\t\tclassName=\"components-color-palette__custom-color-button\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-label={ customColorAccessibleLabel }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackground: value,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<VStack\n\t\t\t\t\t\t\t\tclassName=\"components-color-palette__custom-color-text-wrapper\"\n\t\t\t\t\t\t\t\tspacing={ 0.5 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Truncate className=\"components-color-palette__custom-color-name\">\n\t\t\t\t\t\t\t\t\t{ value\n\t\t\t\t\t\t\t\t\t\t? buttonLabelName\n\t\t\t\t\t\t\t\t\t\t: 'No color selected' }\n\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\tThis `Truncate` is always rendered, even if\n\t\t\t\t\t\t\t\tthere is no `displayValue`, to ensure the layout\n\t\t\t\t\t\t\t\tdoes not shift\n\t\t\t\t\t\t\t\t*/ }\n\t\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-color-palette__custom-color-value',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'components-color-palette__custom-color-value--is-hex':\n\t\t\t\t\t\t\t\t\t\t\t\tisHex,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ displayValue }\n\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<CircularOptionPicker\n\t\t\t\t{ ...metaProps }\n\t\t\t\tactions={ actions }\n\t\t\t\toptions={\n\t\t\t\t\thasMultipleColorOrigins ? (\n\t\t\t\t\t\t<MultiplePalettes\n\t\t\t\t\t\t\t{ ...paletteCommonProps }\n\t\t\t\t\t\t\theadingLevel={ headingLevel }\n\t\t\t\t\t\t\tcolors={ colors as PaletteObject[] }\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<SinglePalette\n\t\t\t\t\t\t\t{ ...paletteCommonProps }\n\t\t\t\t\t\t\tcolors={ colors as ColorObject[] }\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t/>\n\t\t</VStack>\n\t);\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 );\n\nexport default ColorPalette;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/color-palette/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { DropdownProps } from '../dropdown/types';\nimport type { HeadingSize } from '../heading/types';\n\nexport type ColorObject = {\n\tname: string;\n\tcolor: NonNullable< CSSProperties[ 'color' ] >;\n};\n\nexport type PaletteObject = {\n\tname: string;\n\tcolors: ColorObject[];\n};\n\ntype PaletteProps = {\n\tclassName?: string;\n\tclearColor: () => void;\n\t/**\n\t * Callback called when a color is selected.\n\t */\n\tonChange: ( newColor?: string, index?: number ) => void;\n\tvalue?: string;\n\tactions?: ReactNode;\n\theadingLevel?: HeadingSize;\n};\n\nexport type SinglePaletteProps = PaletteProps & {\n\tcolors: ColorObject[];\n};\n\nexport type MultiplePalettesProps = PaletteProps & {\n\tcolors: PaletteObject[];\n};\n\nexport type CustomColorPickerDropdownProps = DropdownProps & {\n\tisRenderedInSidebar: boolean;\n};\n\nexport type ColorPaletteProps = Pick< PaletteProps, 'onChange' > & {\n\t/**\n\t * Whether the palette should have a clearing button.\n\t *\n\t * @default true\n\t */\n\tclearable?: boolean;\n\t/**\n\t * Array with the colors to be shown. When displaying multiple color palettes\n\t * to choose from, the format of the array changes from an array of colors\n\t * objects, to an array of color palettes.\n\t *\n\t * @default []\n\t */\n\tcolors?: PaletteObject[] | ColorObject[];\n\t/**\n\t * Whether to allow the user to pick a custom color on top of the predefined\n\t * choices (defined via the `colors` prop).\n\t *\n\t * @default false\n\t */\n\tdisableCustomColors?: boolean;\n\t/**\n\t * This controls whether the alpha channel will be offered when selecting\n\t * custom colors.\n\t *\n\t * @default false\n\t */\n\tenableAlpha?: boolean;\n\t/**\n\t * The heading level.\n\t *\n\t * @default 2\n\t */\n\theadingLevel?: HeadingSize;\n\t/**\n\t * Currently active value.\n\t */\n\tvalue?: string;\n\t/**\n\t * Whether this is rendered in the sidebar.\n\t *\n\t * @default false\n\t */\n\t__experimentalIsRenderedInSidebar?: boolean;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/color-palette/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { DropdownProps } from '../dropdown/types';\nimport type { HeadingSize } from '../heading/types';\n\nexport type ColorObject = {\n\tname: string;\n\tcolor: NonNullable< CSSProperties[ 'color' ] >;\n};\n\nexport type PaletteObject = {\n\tname: string;\n\tcolors: ColorObject[];\n};\n\ntype PaletteProps = {\n\tclassName?: string;\n\tclearColor: () => void;\n\t/**\n\t * Callback called when a color is selected.\n\t */\n\tonChange: ( newColor?: string, index?: number ) => void;\n\tvalue?: string;\n\tactions?: ReactNode;\n\theadingLevel?: HeadingSize;\n};\n\nexport type SinglePaletteProps = PaletteProps & {\n\tcolors: ColorObject[];\n};\n\nexport type MultiplePalettesProps = PaletteProps & {\n\tcolors: PaletteObject[];\n};\n\nexport type CustomColorPickerDropdownProps = DropdownProps & {\n\tisRenderedInSidebar: boolean;\n};\n\nexport type ColorPaletteProps = Pick< PaletteProps, 'onChange' > & {\n\t/**\n\t * Whether the palette should have a clearing button.\n\t *\n\t * @default true\n\t */\n\tclearable?: boolean;\n\t/**\n\t * Array with the colors to be shown. When displaying multiple color palettes\n\t * to choose from, the format of the array changes from an array of colors\n\t * objects, to an array of color palettes.\n\t *\n\t * @default []\n\t */\n\tcolors?: PaletteObject[] | ColorObject[];\n\t/**\n\t * Whether to allow the user to pick a custom color on top of the predefined\n\t * choices (defined via the `colors` prop).\n\t *\n\t * @default false\n\t */\n\tdisableCustomColors?: boolean;\n\t/**\n\t * This controls whether the alpha channel will be offered when selecting\n\t * custom colors.\n\t *\n\t * @default false\n\t */\n\tenableAlpha?: boolean;\n\t/**\n\t * The heading level.\n\t *\n\t * @default 2\n\t */\n\theadingLevel?: HeadingSize;\n\t/**\n\t * Currently active value.\n\t */\n\tvalue?: string;\n\t/**\n\t * Whether the control should present as a set of buttons,\n\t * each with its own tab stop.\n\t *\n\t * @default false\n\t */\n\tasButtons?: boolean;\n\t/**\n\t * Prevents keyboard interaction from wrapping around.\n\t * Only used when `asButtons` is not true.\n\t *\n\t * @default true\n\t */\n\tloop?: boolean;\n\t/**\n\t * Whether this is rendered in the sidebar.\n\t *\n\t * @default false\n\t */\n\t__experimentalIsRenderedInSidebar?: boolean;\n} & (\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * A label to identify the purpose of the control.\n\t\t\t\t *\n\t\t\t\t * @todo [#54055] Either this or `aria-labelledby` should be required\n\t\t\t\t */\n\t\t\t\t'aria-label'?: string;\n\t\t\t\t'aria-labelledby'?: never;\n\t\t }\n\t\t| {\n\t\t\t\t/**\n\t\t\t\t * An ID of an element to provide a label for the control.\n\t\t\t\t *\n\t\t\t\t * @todo [#54055] Either this or `aria-label` should be required\n\t\t\t\t */\n\t\t\t\t'aria-labelledby'?: string;\n\t\t\t\t'aria-label'?: never;\n\t\t }\n\t);\n"],"mappings":""}
@@ -28,13 +28,10 @@ import { normalizeTextString } from '../utils/strings';
28
28
  import { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';
29
29
  const noop = () => {};
30
30
  const DetectOutside = withFocusOutside(class extends Component {
31
- // @ts-expect-error - TODO: Should be resolved when `withFocusOutside` is refactored to TypeScript
32
31
  handleFocusOutside(event) {
33
- // @ts-expect-error - TODO: Should be resolved when `withFocusOutside` is refactored to TypeScript
34
32
  this.props.onFocusOutside(event);
35
33
  }
36
34
  render() {
37
- // @ts-expect-error - TODO: Should be resolved when `withFocusOutside` is refactored to TypeScript
38
35
  return this.props.children;
39
36
  }
40
37
  });
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","_n","sprintf","Component","useState","useMemo","useRef","useEffect","useInstanceId","speak","closeSmall","InputWrapperFlex","TokenInput","SuggestionsList","BaseControl","Button","FlexBlock","FlexItem","withFocusOutside","useControlledValue","normalizeTextString","useDeprecated36pxDefaultSizeProp","noop","DetectOutside","handleFocusOutside","event","props","onFocusOutside","render","children","getIndexOfMatchingSuggestion","selectedSuggestion","matchingSuggestions","indexOf","ComboboxControl","_currentOption$label","__nextHasNoMarginBottom","__next40pxDefaultSize","value","valueProp","label","options","onChange","onChangeProp","onFilterValueChange","hideLabelFromVision","help","allowReset","className","messages","selected","__experimentalRenderItem","setValue","currentOption","find","option","currentLabel","instanceId","setSelectedSuggestion","isExpanded","setIsExpanded","inputHasFocus","setInputHasFocus","inputValue","setInputValue","inputContainer","startsWithMatch","containsMatch","match","forEach","index","push","concat","onSuggestionSelected","newSelectedSuggestion","handleArrowNavigation","offset","nextIndex","length","onKeyDown","preventDefault","defaultPrevented","nativeEvent","isComposing","keyCode","code","onBlur","onFocus","onInputChange","text","handleOnReset","current","focus","hasMatchingSuggestions","hasSelectedMatchingSuggestions","message","createElement","id","tabIndex","ref","selectedSuggestionIndex","icon","disabled","onClick","displayTransform","suggestion","suggestions","selectedIndex","onHover","onSelect","scrollIntoView"],"sources":["@wordpress/components/src/combobox-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tuseState,\n\tuseMemo,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { InputWrapperFlex } from './styles';\nimport TokenInput from '../form-token-field/token-input';\nimport SuggestionsList from '../form-token-field/suggestions-list';\nimport BaseControl from '../base-control';\nimport Button from '../button';\nimport { FlexBlock, FlexItem } from '../flex';\nimport withFocusOutside from '../higher-order/with-focus-outside';\nimport { useControlledValue } from '../utils/hooks';\nimport { normalizeTextString } from '../utils/strings';\nimport type { ComboboxControlOption, ComboboxControlProps } from './types';\nimport type { TokenInputProps } from '../form-token-field/types';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\n\nconst noop = () => {};\n\nconst DetectOutside = withFocusOutside(\n\tclass extends Component {\n\t\t// @ts-expect-error - TODO: Should be resolved when `withFocusOutside` is refactored to TypeScript\n\t\thandleFocusOutside( event ) {\n\t\t\t// @ts-expect-error - TODO: Should be resolved when `withFocusOutside` is refactored to TypeScript\n\t\t\tthis.props.onFocusOutside( event );\n\t\t}\n\n\t\trender() {\n\t\t\t// @ts-expect-error - TODO: Should be resolved when `withFocusOutside` is refactored to TypeScript\n\t\t\treturn this.props.children;\n\t\t}\n\t}\n);\n\nconst getIndexOfMatchingSuggestion = (\n\tselectedSuggestion: ComboboxControlOption | null,\n\tmatchingSuggestions: ComboboxControlOption[]\n) =>\n\tselectedSuggestion === null\n\t\t? -1\n\t\t: matchingSuggestions.indexOf( selectedSuggestion );\n\n/**\n * `ComboboxControl` is an enhanced version of a [`SelectControl`](../select-control/README.md) with the addition of\n * being able to search for options using a search input.\n *\n * ```jsx\n * import { ComboboxControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const options = [\n * \t{\n * \t\tvalue: 'small',\n * \t\tlabel: 'Small',\n * \t},\n * \t{\n * \t\tvalue: 'normal',\n * \t\tlabel: 'Normal',\n * \t},\n * \t{\n * \t\tvalue: 'large',\n * \t\tlabel: 'Large',\n * \t},\n * ];\n *\n * function MyComboboxControl() {\n * \tconst [ fontSize, setFontSize ] = useState();\n * \tconst [ filteredOptions, setFilteredOptions ] = useState( options );\n * \treturn (\n * \t\t<ComboboxControl\n * \t\t\tlabel=\"Font Size\"\n * \t\t\tvalue={ fontSize }\n * \t\t\tonChange={ setFontSize }\n * \t\t\toptions={ filteredOptions }\n * \t\t\tonFilterValueChange={ ( inputValue ) =>\n * \t\t\t\tsetFilteredOptions(\n * \t\t\t\t\toptions.filter( ( option ) =>\n * \t\t\t\t\t\toption.label\n * \t\t\t\t\t\t\t.toLowerCase()\n * \t\t\t\t\t\t\t.startsWith( inputValue.toLowerCase() )\n * \t\t\t\t\t)\n * \t\t\t\t)\n * \t\t\t}\n * \t\t/>\n * \t);\n * }\n * ```\n */\nfunction ComboboxControl( props: ComboboxControlProps ) {\n\tconst {\n\t\t__nextHasNoMarginBottom = false,\n\t\t__next40pxDefaultSize = false,\n\t\tvalue: valueProp,\n\t\tlabel,\n\t\toptions,\n\t\tonChange: onChangeProp,\n\t\tonFilterValueChange = noop,\n\t\thideLabelFromVision,\n\t\thelp,\n\t\tallowReset = true,\n\t\tclassName,\n\t\tmessages = {\n\t\t\tselected: __( 'Item selected.' ),\n\t\t},\n\t\t__experimentalRenderItem,\n\t} = useDeprecated36pxDefaultSizeProp< ComboboxControlProps >(\n\t\tprops,\n\t\t'wp.components.ComboboxControl'\n\t);\n\n\tconst [ value, setValue ] = useControlledValue( {\n\t\tvalue: valueProp,\n\t\tonChange: onChangeProp,\n\t} );\n\n\tconst currentOption = options.find( ( option ) => option.value === value );\n\tconst currentLabel = currentOption?.label ?? '';\n\t// Use a custom prefix when generating the `instanceId` to avoid having\n\t// duplicate input IDs when rendering this component and `FormTokenField`\n\t// in the same page (see https://github.com/WordPress/gutenberg/issues/42112).\n\tconst instanceId = useInstanceId( ComboboxControl, 'combobox-control' );\n\tconst [ selectedSuggestion, setSelectedSuggestion ] = useState(\n\t\tcurrentOption || null\n\t);\n\tconst [ isExpanded, setIsExpanded ] = useState( false );\n\tconst [ inputHasFocus, setInputHasFocus ] = useState( false );\n\tconst [ inputValue, setInputValue ] = useState( '' );\n\tconst inputContainer = useRef< HTMLInputElement >( null );\n\n\tconst matchingSuggestions = useMemo( () => {\n\t\tconst startsWithMatch: ComboboxControlOption[] = [];\n\t\tconst containsMatch: ComboboxControlOption[] = [];\n\t\tconst match = normalizeTextString( inputValue );\n\t\toptions.forEach( ( option ) => {\n\t\t\tconst index = normalizeTextString( option.label ).indexOf( match );\n\t\t\tif ( index === 0 ) {\n\t\t\t\tstartsWithMatch.push( option );\n\t\t\t} else if ( index > 0 ) {\n\t\t\t\tcontainsMatch.push( option );\n\t\t\t}\n\t\t} );\n\n\t\treturn startsWithMatch.concat( containsMatch );\n\t}, [ inputValue, options ] );\n\n\tconst onSuggestionSelected = (\n\t\tnewSelectedSuggestion: ComboboxControlOption\n\t) => {\n\t\tsetValue( newSelectedSuggestion.value );\n\t\tspeak( messages.selected, 'assertive' );\n\t\tsetSelectedSuggestion( newSelectedSuggestion );\n\t\tsetInputValue( '' );\n\t\tsetIsExpanded( false );\n\t};\n\n\tconst handleArrowNavigation = ( offset = 1 ) => {\n\t\tconst index = getIndexOfMatchingSuggestion(\n\t\t\tselectedSuggestion,\n\t\t\tmatchingSuggestions\n\t\t);\n\t\tlet nextIndex = index + offset;\n\t\tif ( nextIndex < 0 ) {\n\t\t\tnextIndex = matchingSuggestions.length - 1;\n\t\t} else if ( nextIndex >= matchingSuggestions.length ) {\n\t\t\tnextIndex = 0;\n\t\t}\n\t\tsetSelectedSuggestion( matchingSuggestions[ nextIndex ] );\n\t\tsetIsExpanded( true );\n\t};\n\n\tconst onKeyDown: React.KeyboardEventHandler< HTMLDivElement > = (\n\t\tevent\n\t) => {\n\t\tlet preventDefault = false;\n\n\t\tif (\n\t\t\tevent.defaultPrevented ||\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( event.code ) {\n\t\t\tcase 'Enter':\n\t\t\t\tif ( selectedSuggestion ) {\n\t\t\t\t\tonSuggestionSelected( selectedSuggestion );\n\t\t\t\t\tpreventDefault = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\thandleArrowNavigation( -1 );\n\t\t\t\tpreventDefault = true;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\thandleArrowNavigation( 1 );\n\t\t\t\tpreventDefault = true;\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\t\tsetIsExpanded( false );\n\t\t\t\tsetSelectedSuggestion( null );\n\t\t\t\tpreventDefault = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst onBlur = () => {\n\t\tsetInputHasFocus( false );\n\t};\n\n\tconst onFocus = () => {\n\t\tsetInputHasFocus( true );\n\t\tsetIsExpanded( true );\n\t\tonFilterValueChange( '' );\n\t\tsetInputValue( '' );\n\t};\n\n\tconst onFocusOutside = () => {\n\t\tsetIsExpanded( false );\n\t};\n\n\tconst onInputChange: TokenInputProps[ 'onChange' ] = ( event ) => {\n\t\tconst text = event.value;\n\t\tsetInputValue( text );\n\t\tonFilterValueChange( text );\n\t\tif ( inputHasFocus ) {\n\t\t\tsetIsExpanded( true );\n\t\t}\n\t};\n\n\tconst handleOnReset = () => {\n\t\tsetValue( null );\n\t\tinputContainer.current?.focus();\n\t};\n\n\t// Update current selections when the filter input changes.\n\tuseEffect( () => {\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\t\tconst hasSelectedMatchingSuggestions =\n\t\t\tgetIndexOfMatchingSuggestion(\n\t\t\t\tselectedSuggestion,\n\t\t\t\tmatchingSuggestions\n\t\t\t) > 0;\n\n\t\tif ( hasMatchingSuggestions && ! hasSelectedMatchingSuggestions ) {\n\t\t\t// If the current selection isn't present in the list of suggestions, then automatically select the first item from the list of suggestions.\n\t\t\tsetSelectedSuggestion( matchingSuggestions[ 0 ] );\n\t\t}\n\t}, [ matchingSuggestions, selectedSuggestion ] );\n\n\t// Announcements.\n\tuseEffect( () => {\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\t\tif ( isExpanded ) {\n\t\t\tconst message = hasMatchingSuggestions\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t )\n\t\t\t\t: __( 'No results.' );\n\n\t\t\tspeak( message, 'polite' );\n\t\t}\n\t}, [ matchingSuggestions, isExpanded ] );\n\n\t// Disable reason: There is no appropriate role which describes the\n\t// input container intended accessible usability.\n\t// TODO: Refactor click detection to use blur to stop propagation.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<DetectOutside onFocusOutside={ onFocusOutside }>\n\t\t\t<BaseControl\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'components-combobox-control'\n\t\t\t\t) }\n\t\t\t\tlabel={ label }\n\t\t\t\tid={ `components-form-token-input-${ instanceId }` }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\thelp={ help }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-combobox-control__suggestions-container\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<InputWrapperFlex\n\t\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t<TokenInput\n\t\t\t\t\t\t\t\tclassName=\"components-combobox-control__input\"\n\t\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\t\tref={ inputContainer }\n\t\t\t\t\t\t\t\tvalue={ isExpanded ? inputValue : currentLabel }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tselectedSuggestionIndex={ getIndexOfMatchingSuggestion(\n\t\t\t\t\t\t\t\t\tselectedSuggestion,\n\t\t\t\t\t\t\t\t\tmatchingSuggestions\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ onInputChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t{ allowReset && (\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"components-combobox-control__reset\"\n\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\tdisabled={ ! value }\n\t\t\t\t\t\t\t\t\tonClick={ handleOnReset }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</InputWrapperFlex>\n\t\t\t\t\t{ isExpanded && (\n\t\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\t// The empty string for `value` here is not actually used, but is\n\t\t\t\t\t\t\t// just a quick way to satisfy the TypeScript requirements of SuggestionsList.\n\t\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/47581/files#r1091089330\n\t\t\t\t\t\t\tmatch={ { label: inputValue, value: '' } }\n\t\t\t\t\t\t\tdisplayTransform={ ( suggestion ) =>\n\t\t\t\t\t\t\t\tsuggestion.label\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\t\tselectedIndex={ getIndexOfMatchingSuggestion(\n\t\t\t\t\t\t\t\tselectedSuggestion,\n\t\t\t\t\t\t\t\tmatchingSuggestions\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonHover={ setSelectedSuggestion }\n\t\t\t\t\t\t\tonSelect={ onSuggestionSelected }\n\t\t\t\t\t\t\tscrollIntoView\n\t\t\t\t\t\t\t__experimentalRenderItem={\n\t\t\t\t\t\t\t\t__experimentalRenderItem\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</BaseControl>\n\t\t</DetectOutside>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n\nexport default ComboboxControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AACjD,SACCC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,SAAS,QACH,oBAAoB;AAC3B,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,UAAU,QAAQ,kBAAkB;;AAE7C;AACA;AACA;AACA,SAASC,gBAAgB,QAAQ,UAAU;AAC3C,OAAOC,UAAU,MAAM,iCAAiC;AACxD,OAAOC,eAAe,MAAM,sCAAsC;AAClE,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,SAAS,EAAEC,QAAQ,QAAQ,SAAS;AAC7C,OAAOC,gBAAgB,MAAM,oCAAoC;AACjE,SAASC,kBAAkB,QAAQ,gBAAgB;AACnD,SAASC,mBAAmB,QAAQ,kBAAkB;AAGtD,SAASC,gCAAgC,QAAQ,+BAA+B;AAEhF,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,MAAMC,aAAa,GAAGL,gBAAgB,CACrC,cAAcf,SAAS,CAAC;EACvB;EACAqB,kBAAkBA,CAAEC,KAAK,EAAG;IAC3B;IACA,IAAI,CAACC,KAAK,CAACC,cAAc,CAAEF,KAAM,CAAC;EACnC;EAEAG,MAAMA,CAAA,EAAG;IACR;IACA,OAAO,IAAI,CAACF,KAAK,CAACG,QAAQ;EAC3B;AACD,CACD,CAAC;AAED,MAAMC,4BAA4B,GAAGA,CACpCC,kBAAgD,EAChDC,mBAA4C,KAE5CD,kBAAkB,KAAK,IAAI,GACxB,CAAC,CAAC,GACFC,mBAAmB,CAACC,OAAO,CAAEF,kBAAmB,CAAC;;AAErD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,eAAeA,CAAER,KAA2B,EAAG;EAAA,IAAAS,oBAAA;EACvD,MAAM;IACLC,uBAAuB,GAAG,KAAK;IAC/BC,qBAAqB,GAAG,KAAK;IAC7BC,KAAK,EAAEC,SAAS;IAChBC,KAAK;IACLC,OAAO;IACPC,QAAQ,EAAEC,YAAY;IACtBC,mBAAmB,GAAGtB,IAAI;IAC1BuB,mBAAmB;IACnBC,IAAI;IACJC,UAAU,GAAG,IAAI;IACjBC,SAAS;IACTC,QAAQ,GAAG;MACVC,QAAQ,EAAElD,EAAE,CAAE,gBAAiB;IAChC,CAAC;IACDmD;EACD,CAAC,GAAG9B,gCAAgC,CACnCK,KAAK,EACL,+BACD,CAAC;EAED,MAAM,CAAEY,KAAK,EAAEc,QAAQ,CAAE,GAAGjC,kBAAkB,CAAE;IAC/CmB,KAAK,EAAEC,SAAS;IAChBG,QAAQ,EAAEC;EACX,CAAE,CAAC;EAEH,MAAMU,aAAa,GAAGZ,OAAO,CAACa,IAAI,CAAIC,MAAM,IAAMA,MAAM,CAACjB,KAAK,KAAKA,KAAM,CAAC;EAC1E,MAAMkB,YAAY,IAAArB,oBAAA,GAAGkB,aAAa,EAAEb,KAAK,cAAAL,oBAAA,cAAAA,oBAAA,GAAI,EAAE;EAC/C;EACA;EACA;EACA,MAAMsB,UAAU,GAAGjD,aAAa,CAAE0B,eAAe,EAAE,kBAAmB,CAAC;EACvE,MAAM,CAAEH,kBAAkB,EAAE2B,qBAAqB,CAAE,GAAGtD,QAAQ,CAC7DiD,aAAa,IAAI,IAClB,CAAC;EACD,MAAM,CAAEM,UAAU,EAAEC,aAAa,CAAE,GAAGxD,QAAQ,CAAE,KAAM,CAAC;EACvD,MAAM,CAAEyD,aAAa,EAAEC,gBAAgB,CAAE,GAAG1D,QAAQ,CAAE,KAAM,CAAC;EAC7D,MAAM,CAAE2D,UAAU,EAAEC,aAAa,CAAE,GAAG5D,QAAQ,CAAE,EAAG,CAAC;EACpD,MAAM6D,cAAc,GAAG3D,MAAM,CAAsB,IAAK,CAAC;EAEzD,MAAM0B,mBAAmB,GAAG3B,OAAO,CAAE,MAAM;IAC1C,MAAM6D,eAAwC,GAAG,EAAE;IACnD,MAAMC,aAAsC,GAAG,EAAE;IACjD,MAAMC,KAAK,GAAGhD,mBAAmB,CAAE2C,UAAW,CAAC;IAC/CtB,OAAO,CAAC4B,OAAO,CAAId,MAAM,IAAM;MAC9B,MAAMe,KAAK,GAAGlD,mBAAmB,CAAEmC,MAAM,CAACf,KAAM,CAAC,CAACP,OAAO,CAAEmC,KAAM,CAAC;MAClE,IAAKE,KAAK,KAAK,CAAC,EAAG;QAClBJ,eAAe,CAACK,IAAI,CAAEhB,MAAO,CAAC;MAC/B,CAAC,MAAM,IAAKe,KAAK,GAAG,CAAC,EAAG;QACvBH,aAAa,CAACI,IAAI,CAAEhB,MAAO,CAAC;MAC7B;IACD,CAAE,CAAC;IAEH,OAAOW,eAAe,CAACM,MAAM,CAAEL,aAAc,CAAC;EAC/C,CAAC,EAAE,CAAEJ,UAAU,EAAEtB,OAAO,CAAG,CAAC;EAE5B,MAAMgC,oBAAoB,GACzBC,qBAA4C,IACxC;IACJtB,QAAQ,CAAEsB,qBAAqB,CAACpC,KAAM,CAAC;IACvC7B,KAAK,CAAEwC,QAAQ,CAACC,QAAQ,EAAE,WAAY,CAAC;IACvCQ,qBAAqB,CAAEgB,qBAAsB,CAAC;IAC9CV,aAAa,CAAE,EAAG,CAAC;IACnBJ,aAAa,CAAE,KAAM,CAAC;EACvB,CAAC;EAED,MAAMe,qBAAqB,GAAGA,CAAEC,MAAM,GAAG,CAAC,KAAM;IAC/C,MAAMN,KAAK,GAAGxC,4BAA4B,CACzCC,kBAAkB,EAClBC,mBACD,CAAC;IACD,IAAI6C,SAAS,GAAGP,KAAK,GAAGM,MAAM;IAC9B,IAAKC,SAAS,GAAG,CAAC,EAAG;MACpBA,SAAS,GAAG7C,mBAAmB,CAAC8C,MAAM,GAAG,CAAC;IAC3C,CAAC,MAAM,IAAKD,SAAS,IAAI7C,mBAAmB,CAAC8C,MAAM,EAAG;MACrDD,SAAS,GAAG,CAAC;IACd;IACAnB,qBAAqB,CAAE1B,mBAAmB,CAAE6C,SAAS,CAAG,CAAC;IACzDjB,aAAa,CAAE,IAAK,CAAC;EACtB,CAAC;EAED,MAAMmB,SAAuD,GAC5DtD,KAAK,IACD;IACJ,IAAIuD,cAAc,GAAG,KAAK;IAE1B,IACCvD,KAAK,CAACwD,gBAAgB;IACtB;IACAxD,KAAK,CAACyD,WAAW,CAACC,WAAW;IAC7B;IACA;IACA;IACA1D,KAAK,CAAC2D,OAAO,KAAK,GAAG,EACpB;MACD;IACD;IAEA,QAAS3D,KAAK,CAAC4D,IAAI;MAClB,KAAK,OAAO;QACX,IAAKtD,kBAAkB,EAAG;UACzB0C,oBAAoB,CAAE1C,kBAAmB,CAAC;UAC1CiD,cAAc,GAAG,IAAI;QACtB;QACA;MACD,KAAK,SAAS;QACbL,qBAAqB,CAAE,CAAC,CAAE,CAAC;QAC3BK,cAAc,GAAG,IAAI;QACrB;MACD,KAAK,WAAW;QACfL,qBAAqB,CAAE,CAAE,CAAC;QAC1BK,cAAc,GAAG,IAAI;QACrB;MACD,KAAK,QAAQ;QACZpB,aAAa,CAAE,KAAM,CAAC;QACtBF,qBAAqB,CAAE,IAAK,CAAC;QAC7BsB,cAAc,GAAG,IAAI;QACrB;MACD;QACC;IACF;IAEA,IAAKA,cAAc,EAAG;MACrBvD,KAAK,CAACuD,cAAc,CAAC,CAAC;IACvB;EACD,CAAC;EAED,MAAMM,MAAM,GAAGA,CAAA,KAAM;IACpBxB,gBAAgB,CAAE,KAAM,CAAC;EAC1B,CAAC;EAED,MAAMyB,OAAO,GAAGA,CAAA,KAAM;IACrBzB,gBAAgB,CAAE,IAAK,CAAC;IACxBF,aAAa,CAAE,IAAK,CAAC;IACrBhB,mBAAmB,CAAE,EAAG,CAAC;IACzBoB,aAAa,CAAE,EAAG,CAAC;EACpB,CAAC;EAED,MAAMrC,cAAc,GAAGA,CAAA,KAAM;IAC5BiC,aAAa,CAAE,KAAM,CAAC;EACvB,CAAC;EAED,MAAM4B,aAA4C,GAAK/D,KAAK,IAAM;IACjE,MAAMgE,IAAI,GAAGhE,KAAK,CAACa,KAAK;IACxB0B,aAAa,CAAEyB,IAAK,CAAC;IACrB7C,mBAAmB,CAAE6C,IAAK,CAAC;IAC3B,IAAK5B,aAAa,EAAG;MACpBD,aAAa,CAAE,IAAK,CAAC;IACtB;EACD,CAAC;EAED,MAAM8B,aAAa,GAAGA,CAAA,KAAM;IAC3BtC,QAAQ,CAAE,IAAK,CAAC;IAChBa,cAAc,CAAC0B,OAAO,EAAEC,KAAK,CAAC,CAAC;EAChC,CAAC;;EAED;EACArF,SAAS,CAAE,MAAM;IAChB,MAAMsF,sBAAsB,GAAG7D,mBAAmB,CAAC8C,MAAM,GAAG,CAAC;IAC7D,MAAMgB,8BAA8B,GACnChE,4BAA4B,CAC3BC,kBAAkB,EAClBC,mBACD,CAAC,GAAG,CAAC;IAEN,IAAK6D,sBAAsB,IAAI,CAAEC,8BAA8B,EAAG;MACjE;MACApC,qBAAqB,CAAE1B,mBAAmB,CAAE,CAAC,CAAG,CAAC;IAClD;EACD,CAAC,EAAE,CAAEA,mBAAmB,EAAED,kBAAkB,CAAG,CAAC;;EAEhD;EACAxB,SAAS,CAAE,MAAM;IAChB,MAAMsF,sBAAsB,GAAG7D,mBAAmB,CAAC8C,MAAM,GAAG,CAAC;IAC7D,IAAKnB,UAAU,EAAG;MACjB,MAAMoC,OAAO,GAAGF,sBAAsB,GACnC3F,OAAO,EACP;MACAD,EAAE,CACD,0DAA0D,EAC1D,2DAA2D,EAC3D+B,mBAAmB,CAAC8C,MACrB,CAAC,EACD9C,mBAAmB,CAAC8C,MACpB,CAAC,GACD9E,EAAE,CAAE,aAAc,CAAC;MAEtBS,KAAK,CAAEsF,OAAO,EAAE,QAAS,CAAC;IAC3B;EACD,CAAC,EAAE,CAAE/D,mBAAmB,EAAE2B,UAAU,CAAG,CAAC;;EAExC;EACA;EACA;EACA;EACA,OACCqC,aAAA,CAACzE,aAAa;IAACI,cAAc,EAAGA;EAAgB,GAC/CqE,aAAA,CAAClF,WAAW;IACXsB,uBAAuB,EAAGA,uBAAyB;IACnDY,SAAS,EAAGjD,UAAU,CACrBiD,SAAS,EACT,6BACD,CAAG;IACHR,KAAK,EAAGA,KAAO;IACfyD,EAAE,EAAI,+BAA+BxC,UAAY,EAAG;IACpDZ,mBAAmB,EAAGA,mBAAqB;IAC3CC,IAAI,EAAGA;EAAM,GAEbkD,aAAA;IACChD,SAAS,EAAC,oDAAoD;IAC9DkD,QAAQ,EAAG,CAAC,CAAG;IACfnB,SAAS,EAAGA;EAAW,GAEvBiB,aAAA,CAACrF,gBAAgB;IAChB0B,qBAAqB,EAAGA;EAAuB,GAE/C2D,aAAA,CAAChF,SAAS,QACTgF,aAAA,CAACpF,UAAU;IACVoC,SAAS,EAAC,oCAAoC;IAC9CS,UAAU,EAAGA,UAAY;IACzB0C,GAAG,EAAGlC,cAAgB;IACtB3B,KAAK,EAAGqB,UAAU,GAAGI,UAAU,GAAGP,YAAc;IAChD+B,OAAO,EAAGA,OAAS;IACnBD,MAAM,EAAGA,MAAQ;IACjB3B,UAAU,EAAGA,UAAY;IACzByC,uBAAuB,EAAGtE,4BAA4B,CACrDC,kBAAkB,EAClBC,mBACD,CAAG;IACHU,QAAQ,EAAG8C;EAAe,CAC1B,CACS,CAAC,EACVzC,UAAU,IACXiD,aAAA,CAAC/E,QAAQ,QACR+E,aAAA,CAACjF,MAAM;IACNiC,SAAS,EAAC,oCAAoC;IAC9CqD,IAAI,EAAG3F,UAAY;IACnB4F,QAAQ,EAAG,CAAEhE,KAAO;IACpBiE,OAAO,EAAGb,aAAe;IACzBlD,KAAK,EAAGxC,EAAE,CAAE,OAAQ;EAAG,CACvB,CACQ,CAEM,CAAC,EACjB2D,UAAU,IACXqC,aAAA,CAACnF,eAAe;IACf4C,UAAU,EAAGA;IACb;IACA;IACA;IAAA;IACAW,KAAK,EAAG;MAAE5B,KAAK,EAAEuB,UAAU;MAAEzB,KAAK,EAAE;IAAG,CAAG;IAC1CkE,gBAAgB,EAAKC,UAAU,IAC9BA,UAAU,CAACjE,KACX;IACDkE,WAAW,EAAG1E,mBAAqB;IACnC2E,aAAa,EAAG7E,4BAA4B,CAC3CC,kBAAkB,EAClBC,mBACD,CAAG;IACH4E,OAAO,EAAGlD,qBAAuB;IACjCmD,QAAQ,EAAGpC,oBAAsB;IACjCqC,cAAc;IACd3D,wBAAwB,EACvBA;EACA,CACD,CAEE,CACO,CACC,CAAC;EAEjB;AACD;;AAEA,eAAejB,eAAe"}
1
+ {"version":3,"names":["classnames","__","_n","sprintf","Component","useState","useMemo","useRef","useEffect","useInstanceId","speak","closeSmall","InputWrapperFlex","TokenInput","SuggestionsList","BaseControl","Button","FlexBlock","FlexItem","withFocusOutside","useControlledValue","normalizeTextString","useDeprecated36pxDefaultSizeProp","noop","DetectOutside","handleFocusOutside","event","props","onFocusOutside","render","children","getIndexOfMatchingSuggestion","selectedSuggestion","matchingSuggestions","indexOf","ComboboxControl","_currentOption$label","__nextHasNoMarginBottom","__next40pxDefaultSize","value","valueProp","label","options","onChange","onChangeProp","onFilterValueChange","hideLabelFromVision","help","allowReset","className","messages","selected","__experimentalRenderItem","setValue","currentOption","find","option","currentLabel","instanceId","setSelectedSuggestion","isExpanded","setIsExpanded","inputHasFocus","setInputHasFocus","inputValue","setInputValue","inputContainer","startsWithMatch","containsMatch","match","forEach","index","push","concat","onSuggestionSelected","newSelectedSuggestion","handleArrowNavigation","offset","nextIndex","length","onKeyDown","preventDefault","defaultPrevented","nativeEvent","isComposing","keyCode","code","onBlur","onFocus","onInputChange","text","handleOnReset","current","focus","hasMatchingSuggestions","hasSelectedMatchingSuggestions","message","createElement","id","tabIndex","ref","selectedSuggestionIndex","icon","disabled","onClick","displayTransform","suggestion","suggestions","selectedIndex","onHover","onSelect","scrollIntoView"],"sources":["@wordpress/components/src/combobox-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tuseState,\n\tuseMemo,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { InputWrapperFlex } from './styles';\nimport TokenInput from '../form-token-field/token-input';\nimport SuggestionsList from '../form-token-field/suggestions-list';\nimport BaseControl from '../base-control';\nimport Button from '../button';\nimport { FlexBlock, FlexItem } from '../flex';\nimport withFocusOutside from '../higher-order/with-focus-outside';\nimport { useControlledValue } from '../utils/hooks';\nimport { normalizeTextString } from '../utils/strings';\nimport type { ComboboxControlOption, ComboboxControlProps } from './types';\nimport type { TokenInputProps } from '../form-token-field/types';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\n\nconst noop = () => {};\n\ninterface DetectOutsideComponentProps {\n\tonFocusOutside: ( event: React.FocusEvent ) => void;\n\tchildren?: React.ReactNode;\n}\n\nconst DetectOutside = withFocusOutside(\n\tclass extends Component< DetectOutsideComponentProps > {\n\t\thandleFocusOutside( event: React.FocusEvent ) {\n\t\t\tthis.props.onFocusOutside( event );\n\t\t}\n\n\t\trender() {\n\t\t\treturn this.props.children;\n\t\t}\n\t}\n);\n\nconst getIndexOfMatchingSuggestion = (\n\tselectedSuggestion: ComboboxControlOption | null,\n\tmatchingSuggestions: ComboboxControlOption[]\n) =>\n\tselectedSuggestion === null\n\t\t? -1\n\t\t: matchingSuggestions.indexOf( selectedSuggestion );\n\n/**\n * `ComboboxControl` is an enhanced version of a [`SelectControl`](../select-control/README.md) with the addition of\n * being able to search for options using a search input.\n *\n * ```jsx\n * import { ComboboxControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const options = [\n * \t{\n * \t\tvalue: 'small',\n * \t\tlabel: 'Small',\n * \t},\n * \t{\n * \t\tvalue: 'normal',\n * \t\tlabel: 'Normal',\n * \t},\n * \t{\n * \t\tvalue: 'large',\n * \t\tlabel: 'Large',\n * \t},\n * ];\n *\n * function MyComboboxControl() {\n * \tconst [ fontSize, setFontSize ] = useState();\n * \tconst [ filteredOptions, setFilteredOptions ] = useState( options );\n * \treturn (\n * \t\t<ComboboxControl\n * \t\t\tlabel=\"Font Size\"\n * \t\t\tvalue={ fontSize }\n * \t\t\tonChange={ setFontSize }\n * \t\t\toptions={ filteredOptions }\n * \t\t\tonFilterValueChange={ ( inputValue ) =>\n * \t\t\t\tsetFilteredOptions(\n * \t\t\t\t\toptions.filter( ( option ) =>\n * \t\t\t\t\t\toption.label\n * \t\t\t\t\t\t\t.toLowerCase()\n * \t\t\t\t\t\t\t.startsWith( inputValue.toLowerCase() )\n * \t\t\t\t\t)\n * \t\t\t\t)\n * \t\t\t}\n * \t\t/>\n * \t);\n * }\n * ```\n */\nfunction ComboboxControl( props: ComboboxControlProps ) {\n\tconst {\n\t\t__nextHasNoMarginBottom = false,\n\t\t__next40pxDefaultSize = false,\n\t\tvalue: valueProp,\n\t\tlabel,\n\t\toptions,\n\t\tonChange: onChangeProp,\n\t\tonFilterValueChange = noop,\n\t\thideLabelFromVision,\n\t\thelp,\n\t\tallowReset = true,\n\t\tclassName,\n\t\tmessages = {\n\t\t\tselected: __( 'Item selected.' ),\n\t\t},\n\t\t__experimentalRenderItem,\n\t} = useDeprecated36pxDefaultSizeProp< ComboboxControlProps >(\n\t\tprops,\n\t\t'wp.components.ComboboxControl'\n\t);\n\n\tconst [ value, setValue ] = useControlledValue( {\n\t\tvalue: valueProp,\n\t\tonChange: onChangeProp,\n\t} );\n\n\tconst currentOption = options.find( ( option ) => option.value === value );\n\tconst currentLabel = currentOption?.label ?? '';\n\t// Use a custom prefix when generating the `instanceId` to avoid having\n\t// duplicate input IDs when rendering this component and `FormTokenField`\n\t// in the same page (see https://github.com/WordPress/gutenberg/issues/42112).\n\tconst instanceId = useInstanceId( ComboboxControl, 'combobox-control' );\n\tconst [ selectedSuggestion, setSelectedSuggestion ] = useState(\n\t\tcurrentOption || null\n\t);\n\tconst [ isExpanded, setIsExpanded ] = useState( false );\n\tconst [ inputHasFocus, setInputHasFocus ] = useState( false );\n\tconst [ inputValue, setInputValue ] = useState( '' );\n\tconst inputContainer = useRef< HTMLInputElement >( null );\n\n\tconst matchingSuggestions = useMemo( () => {\n\t\tconst startsWithMatch: ComboboxControlOption[] = [];\n\t\tconst containsMatch: ComboboxControlOption[] = [];\n\t\tconst match = normalizeTextString( inputValue );\n\t\toptions.forEach( ( option ) => {\n\t\t\tconst index = normalizeTextString( option.label ).indexOf( match );\n\t\t\tif ( index === 0 ) {\n\t\t\t\tstartsWithMatch.push( option );\n\t\t\t} else if ( index > 0 ) {\n\t\t\t\tcontainsMatch.push( option );\n\t\t\t}\n\t\t} );\n\n\t\treturn startsWithMatch.concat( containsMatch );\n\t}, [ inputValue, options ] );\n\n\tconst onSuggestionSelected = (\n\t\tnewSelectedSuggestion: ComboboxControlOption\n\t) => {\n\t\tsetValue( newSelectedSuggestion.value );\n\t\tspeak( messages.selected, 'assertive' );\n\t\tsetSelectedSuggestion( newSelectedSuggestion );\n\t\tsetInputValue( '' );\n\t\tsetIsExpanded( false );\n\t};\n\n\tconst handleArrowNavigation = ( offset = 1 ) => {\n\t\tconst index = getIndexOfMatchingSuggestion(\n\t\t\tselectedSuggestion,\n\t\t\tmatchingSuggestions\n\t\t);\n\t\tlet nextIndex = index + offset;\n\t\tif ( nextIndex < 0 ) {\n\t\t\tnextIndex = matchingSuggestions.length - 1;\n\t\t} else if ( nextIndex >= matchingSuggestions.length ) {\n\t\t\tnextIndex = 0;\n\t\t}\n\t\tsetSelectedSuggestion( matchingSuggestions[ nextIndex ] );\n\t\tsetIsExpanded( true );\n\t};\n\n\tconst onKeyDown: React.KeyboardEventHandler< HTMLDivElement > = (\n\t\tevent\n\t) => {\n\t\tlet preventDefault = false;\n\n\t\tif (\n\t\t\tevent.defaultPrevented ||\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( event.code ) {\n\t\t\tcase 'Enter':\n\t\t\t\tif ( selectedSuggestion ) {\n\t\t\t\t\tonSuggestionSelected( selectedSuggestion );\n\t\t\t\t\tpreventDefault = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\thandleArrowNavigation( -1 );\n\t\t\t\tpreventDefault = true;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\thandleArrowNavigation( 1 );\n\t\t\t\tpreventDefault = true;\n\t\t\t\tbreak;\n\t\t\tcase 'Escape':\n\t\t\t\tsetIsExpanded( false );\n\t\t\t\tsetSelectedSuggestion( null );\n\t\t\t\tpreventDefault = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst onBlur = () => {\n\t\tsetInputHasFocus( false );\n\t};\n\n\tconst onFocus = () => {\n\t\tsetInputHasFocus( true );\n\t\tsetIsExpanded( true );\n\t\tonFilterValueChange( '' );\n\t\tsetInputValue( '' );\n\t};\n\n\tconst onFocusOutside = () => {\n\t\tsetIsExpanded( false );\n\t};\n\n\tconst onInputChange: TokenInputProps[ 'onChange' ] = ( event ) => {\n\t\tconst text = event.value;\n\t\tsetInputValue( text );\n\t\tonFilterValueChange( text );\n\t\tif ( inputHasFocus ) {\n\t\t\tsetIsExpanded( true );\n\t\t}\n\t};\n\n\tconst handleOnReset = () => {\n\t\tsetValue( null );\n\t\tinputContainer.current?.focus();\n\t};\n\n\t// Update current selections when the filter input changes.\n\tuseEffect( () => {\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\t\tconst hasSelectedMatchingSuggestions =\n\t\t\tgetIndexOfMatchingSuggestion(\n\t\t\t\tselectedSuggestion,\n\t\t\t\tmatchingSuggestions\n\t\t\t) > 0;\n\n\t\tif ( hasMatchingSuggestions && ! hasSelectedMatchingSuggestions ) {\n\t\t\t// If the current selection isn't present in the list of suggestions, then automatically select the first item from the list of suggestions.\n\t\t\tsetSelectedSuggestion( matchingSuggestions[ 0 ] );\n\t\t}\n\t}, [ matchingSuggestions, selectedSuggestion ] );\n\n\t// Announcements.\n\tuseEffect( () => {\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\t\tif ( isExpanded ) {\n\t\t\tconst message = hasMatchingSuggestions\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t )\n\t\t\t\t: __( 'No results.' );\n\n\t\t\tspeak( message, 'polite' );\n\t\t}\n\t}, [ matchingSuggestions, isExpanded ] );\n\n\t// Disable reason: There is no appropriate role which describes the\n\t// input container intended accessible usability.\n\t// TODO: Refactor click detection to use blur to stop propagation.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<DetectOutside onFocusOutside={ onFocusOutside }>\n\t\t\t<BaseControl\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\tclassName,\n\t\t\t\t\t'components-combobox-control'\n\t\t\t\t) }\n\t\t\t\tlabel={ label }\n\t\t\t\tid={ `components-form-token-input-${ instanceId }` }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\thelp={ help }\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-combobox-control__suggestions-container\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<InputWrapperFlex\n\t\t\t\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexBlock>\n\t\t\t\t\t\t\t<TokenInput\n\t\t\t\t\t\t\t\tclassName=\"components-combobox-control__input\"\n\t\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\t\tref={ inputContainer }\n\t\t\t\t\t\t\t\tvalue={ isExpanded ? inputValue : currentLabel }\n\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tselectedSuggestionIndex={ getIndexOfMatchingSuggestion(\n\t\t\t\t\t\t\t\t\tselectedSuggestion,\n\t\t\t\t\t\t\t\t\tmatchingSuggestions\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ onInputChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexBlock>\n\t\t\t\t\t\t{ allowReset && (\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"components-combobox-control__reset\"\n\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\tdisabled={ ! value }\n\t\t\t\t\t\t\t\t\tonClick={ handleOnReset }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</InputWrapperFlex>\n\t\t\t\t\t{ isExpanded && (\n\t\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\t// The empty string for `value` here is not actually used, but is\n\t\t\t\t\t\t\t// just a quick way to satisfy the TypeScript requirements of SuggestionsList.\n\t\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/47581/files#r1091089330\n\t\t\t\t\t\t\tmatch={ { label: inputValue, value: '' } }\n\t\t\t\t\t\t\tdisplayTransform={ ( suggestion ) =>\n\t\t\t\t\t\t\t\tsuggestion.label\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\t\tselectedIndex={ getIndexOfMatchingSuggestion(\n\t\t\t\t\t\t\t\tselectedSuggestion,\n\t\t\t\t\t\t\t\tmatchingSuggestions\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonHover={ setSelectedSuggestion }\n\t\t\t\t\t\t\tonSelect={ onSuggestionSelected }\n\t\t\t\t\t\t\tscrollIntoView\n\t\t\t\t\t\t\t__experimentalRenderItem={\n\t\t\t\t\t\t\t\t__experimentalRenderItem\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</BaseControl>\n\t\t</DetectOutside>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n\nexport default ComboboxControl;\n"],"mappings":"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"}
@@ -12,4 +12,6 @@
12
12
  */
13
13
  /* eslint-disable-next-line no-restricted-imports */
14
14
  export { Composite, CompositeGroup, CompositeItem, useCompositeState } from 'reakit';
15
+
16
+ /* eslint-disable-next-line no-restricted-imports */
15
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Composite","CompositeGroup","CompositeItem","useCompositeState"],"sources":["@wordpress/components/src/composite/index.js"],"sourcesContent":["/**\n * Composite is a component that may contain navigable items represented by\n * CompositeItem. It's inspired by the WAI-ARIA Composite Role and implements\n * all the keyboard navigation mechanisms to ensure that there's only one\n * tab stop for the whole Composite element. This means that it can behave as\n * a roving tabindex or aria-activedescendant container.\n *\n * @see https://reakit.io/docs/composite/\n *\n * The plan is to build own API that accounts for future breaking changes\n * in Reakit (https://github.com/WordPress/gutenberg/pull/28085).\n */\n/* eslint-disable-next-line no-restricted-imports */\nexport {\n\tComposite,\n\tCompositeGroup,\n\tCompositeItem,\n\tuseCompositeState,\n} from 'reakit';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACCA,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,iBAAiB,QACX,QAAQ"}
1
+ {"version":3,"names":["Composite","CompositeGroup","CompositeItem","useCompositeState"],"sources":["@wordpress/components/src/composite/index.ts"],"sourcesContent":["/**\n * Composite is a component that may contain navigable items represented by\n * CompositeItem. It's inspired by the WAI-ARIA Composite Role and implements\n * all the keyboard navigation mechanisms to ensure that there's only one\n * tab stop for the whole Composite element. This means that it can behave as\n * a roving tabindex or aria-activedescendant container.\n *\n * @see https://reakit.io/docs/composite/\n *\n * The plan is to build own API that accounts for future breaking changes\n * in Reakit (https://github.com/WordPress/gutenberg/pull/28085).\n */\n/* eslint-disable-next-line no-restricted-imports */\nexport {\n\tComposite,\n\tCompositeGroup,\n\tCompositeItem,\n\tuseCompositeState,\n} from 'reakit';\n\n/* eslint-disable-next-line no-restricted-imports */\nexport type { CompositeStateReturn as CompositeState } from 'reakit';\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACCA,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,iBAAiB,QACX,QAAQ;;AAEf"}