@wordpress/components 29.0.0 → 29.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/LICENSE.md +1 -1
  3. package/build/badge/index.js +64 -0
  4. package/build/badge/index.js.map +1 -0
  5. package/build/badge/types.js +6 -0
  6. package/build/badge/types.js.map +1 -0
  7. package/build/box-control/index.js +5 -1
  8. package/build/box-control/index.js.map +1 -1
  9. package/build/box-control/input-control.js +90 -29
  10. package/build/box-control/input-control.js.map +1 -1
  11. package/build/box-control/types.js.map +1 -1
  12. package/build/box-control/utils.js +50 -0
  13. package/build/box-control/utils.js.map +1 -1
  14. package/build/button-group/index.js +10 -0
  15. package/build/button-group/index.js.map +1 -1
  16. package/build/button-group/types.js.map +1 -1
  17. package/build/custom-select-control/index.js +3 -5
  18. package/build/custom-select-control/index.js.map +1 -1
  19. package/build/custom-select-control-v2/custom-select.js +2 -3
  20. package/build/custom-select-control-v2/custom-select.js.map +1 -1
  21. package/build/date-time/date/index.js +1 -0
  22. package/build/date-time/date/index.js.map +1 -1
  23. package/build/dimension-control/index.js +1 -0
  24. package/build/dimension-control/index.js.map +1 -1
  25. package/build/font-size-picker/styles.js +9 -9
  26. package/build/font-size-picker/styles.js.map +1 -1
  27. package/build/heading/hook.js +1 -1
  28. package/build/heading/hook.js.map +1 -1
  29. package/build/input-control/index.js +9 -0
  30. package/build/input-control/index.js.map +1 -1
  31. package/build/input-control/types.js.map +1 -1
  32. package/build/menu/checkbox-item.js +2 -0
  33. package/build/menu/checkbox-item.js.map +1 -1
  34. package/build/menu/index.js +25 -94
  35. package/build/menu/index.js.map +1 -1
  36. package/build/menu/item.js +10 -1
  37. package/build/menu/item.js.map +1 -1
  38. package/build/menu/popover.js +89 -0
  39. package/build/menu/popover.js.map +1 -0
  40. package/build/menu/radio-item.js +2 -0
  41. package/build/menu/radio-item.js.map +1 -1
  42. package/build/menu/submenu-trigger-item.js +58 -0
  43. package/build/menu/submenu-trigger-item.js.map +1 -0
  44. package/build/menu/trigger-button.js +45 -0
  45. package/build/menu/trigger-button.js.map +1 -0
  46. package/build/menu/types.js.map +1 -1
  47. package/build/navigation/back-button/index.js +1 -0
  48. package/build/navigation/back-button/index.js.map +1 -1
  49. package/build/navigation/index.js +6 -0
  50. package/build/navigation/index.js.map +1 -1
  51. package/build/navigation/item/index.js +1 -0
  52. package/build/navigation/item/index.js.map +1 -1
  53. package/build/number-control/index.js +1 -0
  54. package/build/number-control/index.js.map +1 -1
  55. package/build/palette-edit/index.js +1 -0
  56. package/build/palette-edit/index.js.map +1 -1
  57. package/build/private-apis.js +3 -1
  58. package/build/private-apis.js.map +1 -1
  59. package/build/radio-group/index.js +6 -0
  60. package/build/radio-group/index.js.map +1 -1
  61. package/build/radio-group/radio.js +2 -3
  62. package/build/radio-group/radio.js.map +1 -1
  63. package/build/range-control/styles/range-control-styles.js +28 -28
  64. package/build/range-control/styles/range-control-styles.js.map +1 -1
  65. package/build/select-control/index.js +9 -0
  66. package/build/select-control/index.js.map +1 -1
  67. package/build/select-control/types.js.map +1 -1
  68. package/build/slot-fill/context.js +4 -3
  69. package/build/slot-fill/context.js.map +1 -1
  70. package/build/slot-fill/fill.js +10 -15
  71. package/build/slot-fill/fill.js.map +1 -1
  72. package/build/slot-fill/provider.js +41 -55
  73. package/build/slot-fill/provider.js.map +1 -1
  74. package/build/slot-fill/slot.js +31 -23
  75. package/build/slot-fill/slot.js.map +1 -1
  76. package/build/slot-fill/types.js.map +1 -1
  77. package/build/tab-panel/index.js +2 -3
  78. package/build/tab-panel/index.js.map +1 -1
  79. package/build/tabs/index.js +21 -4
  80. package/build/tabs/index.js.map +1 -1
  81. package/build/tabs/types.js.map +1 -1
  82. package/build/text/hook.js +6 -6
  83. package/build/text/hook.js.map +1 -1
  84. package/build/text/styles.js +7 -7
  85. package/build/text/styles.js.map +1 -1
  86. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +2 -3
  87. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  88. package/build/tooltip/index.js +2 -3
  89. package/build/tooltip/index.js.map +1 -1
  90. package/build/tree-select/index.js +10 -2
  91. package/build/tree-select/index.js.map +1 -1
  92. package/build/tree-select/types.js.map +1 -1
  93. package/build-module/badge/index.js +57 -0
  94. package/build-module/badge/index.js.map +1 -0
  95. package/build-module/badge/types.js +2 -0
  96. package/build-module/badge/types.js.map +1 -0
  97. package/build-module/box-control/index.js +5 -1
  98. package/build-module/box-control/index.js.map +1 -1
  99. package/build-module/box-control/input-control.js +92 -31
  100. package/build-module/box-control/input-control.js.map +1 -1
  101. package/build-module/box-control/types.js.map +1 -1
  102. package/build-module/box-control/utils.js +47 -0
  103. package/build-module/box-control/utils.js.map +1 -1
  104. package/build-module/button-group/index.js +10 -0
  105. package/build-module/button-group/index.js.map +1 -1
  106. package/build-module/button-group/types.js.map +1 -1
  107. package/build-module/custom-select-control/index.js +3 -5
  108. package/build-module/custom-select-control/index.js.map +1 -1
  109. package/build-module/custom-select-control-v2/custom-select.js +1 -2
  110. package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
  111. package/build-module/date-time/date/index.js +1 -0
  112. package/build-module/date-time/date/index.js.map +1 -1
  113. package/build-module/dimension-control/index.js +1 -0
  114. package/build-module/dimension-control/index.js.map +1 -1
  115. package/build-module/font-size-picker/styles.js +9 -9
  116. package/build-module/font-size-picker/styles.js.map +1 -1
  117. package/build-module/heading/hook.js +1 -1
  118. package/build-module/heading/hook.js.map +1 -1
  119. package/build-module/input-control/index.js +9 -0
  120. package/build-module/input-control/index.js.map +1 -1
  121. package/build-module/input-control/types.js.map +1 -1
  122. package/build-module/menu/checkbox-item.js +2 -0
  123. package/build-module/menu/checkbox-item.js.map +1 -1
  124. package/build-module/menu/index.js +28 -97
  125. package/build-module/menu/index.js.map +1 -1
  126. package/build-module/menu/item.js +10 -1
  127. package/build-module/menu/item.js.map +1 -1
  128. package/build-module/menu/popover.js +81 -0
  129. package/build-module/menu/popover.js.map +1 -0
  130. package/build-module/menu/radio-item.js +2 -0
  131. package/build-module/menu/radio-item.js.map +1 -1
  132. package/build-module/menu/submenu-trigger-item.js +50 -0
  133. package/build-module/menu/submenu-trigger-item.js.map +1 -0
  134. package/build-module/menu/trigger-button.js +37 -0
  135. package/build-module/menu/trigger-button.js.map +1 -0
  136. package/build-module/menu/types.js.map +1 -1
  137. package/build-module/navigation/back-button/index.js +1 -0
  138. package/build-module/navigation/back-button/index.js.map +1 -1
  139. package/build-module/navigation/index.js +6 -0
  140. package/build-module/navigation/index.js.map +1 -1
  141. package/build-module/navigation/item/index.js +1 -0
  142. package/build-module/navigation/item/index.js.map +1 -1
  143. package/build-module/number-control/index.js +1 -0
  144. package/build-module/number-control/index.js.map +1 -1
  145. package/build-module/palette-edit/index.js +1 -0
  146. package/build-module/palette-edit/index.js.map +1 -1
  147. package/build-module/private-apis.js +3 -1
  148. package/build-module/private-apis.js.map +1 -1
  149. package/build-module/radio-group/index.js +6 -0
  150. package/build-module/radio-group/index.js.map +1 -1
  151. package/build-module/radio-group/radio.js +1 -2
  152. package/build-module/radio-group/radio.js.map +1 -1
  153. package/build-module/range-control/styles/range-control-styles.js +28 -28
  154. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  155. package/build-module/select-control/index.js +9 -0
  156. package/build-module/select-control/index.js.map +1 -1
  157. package/build-module/select-control/types.js.map +1 -1
  158. package/build-module/slot-fill/context.js +5 -3
  159. package/build-module/slot-fill/context.js.map +1 -1
  160. package/build-module/slot-fill/fill.js +10 -15
  161. package/build-module/slot-fill/fill.js.map +1 -1
  162. package/build-module/slot-fill/provider.js +41 -55
  163. package/build-module/slot-fill/provider.js.map +1 -1
  164. package/build-module/slot-fill/slot.js +32 -24
  165. package/build-module/slot-fill/slot.js.map +1 -1
  166. package/build-module/slot-fill/types.js.map +1 -1
  167. package/build-module/tab-panel/index.js +1 -2
  168. package/build-module/tab-panel/index.js.map +1 -1
  169. package/build-module/tabs/index.js +21 -4
  170. package/build-module/tabs/index.js.map +1 -1
  171. package/build-module/tabs/types.js.map +1 -1
  172. package/build-module/text/hook.js +6 -6
  173. package/build-module/text/hook.js.map +1 -1
  174. package/build-module/text/styles.js +7 -7
  175. package/build-module/text/styles.js.map +1 -1
  176. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +1 -2
  177. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  178. package/build-module/tooltip/index.js +1 -2
  179. package/build-module/tooltip/index.js.map +1 -1
  180. package/build-module/tree-select/index.js +10 -2
  181. package/build-module/tree-select/index.js.map +1 -1
  182. package/build-module/tree-select/types.js.map +1 -1
  183. package/build-style/style-rtl.css +60 -13
  184. package/build-style/style.css +60 -13
  185. package/build-types/alignment-matrix-control/stories/index.story.d.ts +1 -1
  186. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  187. package/build-types/angle-picker-control/stories/index.story.d.ts +1 -1
  188. package/build-types/animate/stories/index.story.d.ts +7 -7
  189. package/build-types/animate/stories/index.story.d.ts.map +1 -1
  190. package/build-types/badge/index.d.ts +8 -0
  191. package/build-types/badge/index.d.ts.map +1 -0
  192. package/build-types/badge/stories/index.story.d.ts +17 -0
  193. package/build-types/badge/stories/index.story.d.ts.map +1 -0
  194. package/build-types/badge/test/index.d.ts +2 -0
  195. package/build-types/badge/test/index.d.ts.map +1 -0
  196. package/build-types/badge/types.d.ts +13 -0
  197. package/build-types/badge/types.d.ts.map +1 -0
  198. package/build-types/base-control/stories/index.story.d.ts +1 -1
  199. package/build-types/border-box-control/stories/index.story.d.ts +1 -1
  200. package/build-types/border-control/stories/index.story.d.ts +5 -5
  201. package/build-types/box-control/index.d.ts +1 -1
  202. package/build-types/box-control/index.d.ts.map +1 -1
  203. package/build-types/box-control/input-control.d.ts +1 -1
  204. package/build-types/box-control/input-control.d.ts.map +1 -1
  205. package/build-types/box-control/stories/index.story.d.ts +356 -11
  206. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  207. package/build-types/box-control/styles/box-control-styles.d.ts +2 -2
  208. package/build-types/box-control/types.d.ts +17 -0
  209. package/build-types/box-control/types.d.ts.map +1 -1
  210. package/build-types/box-control/utils.d.ts +27 -1
  211. package/build-types/box-control/utils.d.ts.map +1 -1
  212. package/build-types/button/stories/e2e/index.story.d.ts +1 -1
  213. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  214. package/build-types/button/stories/index.story.d.ts +7 -7
  215. package/build-types/button/stories/index.story.d.ts.map +1 -1
  216. package/build-types/button-group/index.d.ts +3 -1
  217. package/build-types/button-group/index.d.ts.map +1 -1
  218. package/build-types/button-group/stories/index.story.d.ts +6 -0
  219. package/build-types/button-group/stories/index.story.d.ts.map +1 -1
  220. package/build-types/button-group/types.d.ts +7 -0
  221. package/build-types/button-group/types.d.ts.map +1 -1
  222. package/build-types/circular-option-picker/stories/index.story.d.ts +5 -5
  223. package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
  224. package/build-types/color-palette/stories/index.story.d.ts +3 -3
  225. package/build-types/color-palette/stories/index.story.d.ts.map +1 -1
  226. package/build-types/color-picker/styles.d.ts +2 -2
  227. package/build-types/color-picker/styles.d.ts.map +1 -1
  228. package/build-types/combobox-control/stories/index.story.d.ts +4 -4
  229. package/build-types/confirm-dialog/stories/index.story.d.ts +2 -2
  230. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
  231. package/build-types/custom-gradient-picker/stories/index.story.d.ts +1 -1
  232. package/build-types/custom-gradient-picker/stories/index.story.d.ts.map +1 -1
  233. package/build-types/custom-select-control/stories/index.story.d.ts +3 -3
  234. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
  235. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  236. package/build-types/custom-select-control-v2/stories/index.story.d.ts +3 -3
  237. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  238. package/build-types/date-time/date/index.d.ts.map +1 -1
  239. package/build-types/date-time/stories/time.story.d.ts +1 -1
  240. package/build-types/date-time/stories/time.story.d.ts.map +1 -1
  241. package/build-types/date-time/time/styles.d.ts +4 -4
  242. package/build-types/dimension-control/index.d.ts.map +1 -1
  243. package/build-types/dimension-control/stories/index.story.d.ts +1 -1
  244. package/build-types/disabled/stories/index.story.d.ts.map +1 -1
  245. package/build-types/drop-zone/stories/index.story.d.ts +1 -1
  246. package/build-types/drop-zone/stories/index.story.d.ts.map +1 -1
  247. package/build-types/duotone-picker/stories/duotone-picker.story.d.ts +1 -1
  248. package/build-types/duotone-picker/stories/duotone-picker.story.d.ts.map +1 -1
  249. package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts +3 -3
  250. package/build-types/duotone-picker/stories/duotone-swatch.story.d.ts.map +1 -1
  251. package/build-types/focal-point-picker/stories/index.story.d.ts +4 -4
  252. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  253. package/build-types/font-size-picker/styles.d.ts.map +1 -1
  254. package/build-types/form-file-upload/stories/index.story.d.ts +5 -5
  255. package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
  256. package/build-types/gradient-picker/stories/index.story.d.ts +3 -3
  257. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  258. package/build-types/guide/stories/index.story.d.ts +1 -1
  259. package/build-types/guide/stories/index.story.d.ts.map +1 -1
  260. package/build-types/icon/stories/index.story.d.ts +4 -4
  261. package/build-types/icon/stories/index.story.d.ts.map +1 -1
  262. package/build-types/input-control/index.d.ts +1 -0
  263. package/build-types/input-control/index.d.ts.map +1 -1
  264. package/build-types/input-control/stories/index.story.d.ts +7 -7
  265. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  266. package/build-types/input-control/types.d.ts +11 -2
  267. package/build-types/input-control/types.d.ts.map +1 -1
  268. package/build-types/keyboard-shortcuts/stories/index.story.d.ts +1 -1
  269. package/build-types/keyboard-shortcuts/stories/index.story.d.ts.map +1 -1
  270. package/build-types/menu/checkbox-item.d.ts.map +1 -1
  271. package/build-types/menu/index.d.ts +10 -1
  272. package/build-types/menu/index.d.ts.map +1 -1
  273. package/build-types/menu/item.d.ts.map +1 -1
  274. package/build-types/menu/popover.d.ts +3 -0
  275. package/build-types/menu/popover.d.ts.map +1 -0
  276. package/build-types/menu/radio-item.d.ts.map +1 -1
  277. package/build-types/menu/stories/index.story.d.ts +9 -9
  278. package/build-types/menu/stories/index.story.d.ts.map +1 -1
  279. package/build-types/menu/submenu-trigger-item.d.ts +3 -0
  280. package/build-types/menu/submenu-trigger-item.d.ts.map +1 -0
  281. package/build-types/menu/trigger-button.d.ts +3 -0
  282. package/build-types/menu/trigger-button.d.ts.map +1 -0
  283. package/build-types/menu/types.d.ts +208 -57
  284. package/build-types/menu/types.d.ts.map +1 -1
  285. package/build-types/menu-group/stories/index.story.d.ts +1 -1
  286. package/build-types/menu-group/stories/index.story.d.ts.map +1 -1
  287. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  288. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  289. package/build-types/navigation/back-button/index.d.ts.map +1 -1
  290. package/build-types/navigation/index.d.ts.map +1 -1
  291. package/build-types/navigation/item/index.d.ts.map +1 -1
  292. package/build-types/navigation/stories/index.story.d.ts +6 -6
  293. package/build-types/navigation/stories/index.story.d.ts.map +1 -1
  294. package/build-types/notice/stories/index.story.d.ts +4 -4
  295. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  296. package/build-types/number-control/index.d.ts +1 -1
  297. package/build-types/number-control/index.d.ts.map +1 -1
  298. package/build-types/number-control/stories/index.story.d.ts +2 -2
  299. package/build-types/palette-edit/index.d.ts.map +1 -1
  300. package/build-types/palette-edit/stories/index.story.d.ts +2 -2
  301. package/build-types/palette-edit/stories/index.story.d.ts.map +1 -1
  302. package/build-types/private-apis.d.ts.map +1 -1
  303. package/build-types/progress-bar/stories/index.story.d.ts +1 -1
  304. package/build-types/progress-bar/stories/index.story.d.ts.map +1 -1
  305. package/build-types/query-controls/stories/index.story.d.ts +1 -1
  306. package/build-types/query-controls/stories/index.story.d.ts.map +1 -1
  307. package/build-types/radio-group/index.d.ts.map +1 -1
  308. package/build-types/radio-group/radio.d.ts.map +1 -1
  309. package/build-types/range-control/index.d.ts +1 -1
  310. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  311. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  312. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  313. package/build-types/responsive-wrapper/stories/index.story.d.ts +1 -1
  314. package/build-types/responsive-wrapper/stories/index.story.d.ts.map +1 -1
  315. package/build-types/sandbox/stories/index.story.d.ts +1 -1
  316. package/build-types/sandbox/stories/index.story.d.ts.map +1 -1
  317. package/build-types/search-control/stories/index.story.d.ts +1 -1
  318. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  319. package/build-types/select-control/index.d.ts +1 -0
  320. package/build-types/select-control/index.d.ts.map +1 -1
  321. package/build-types/select-control/stories/index.story.d.ts +5 -5
  322. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  323. package/build-types/select-control/types.d.ts +1 -1
  324. package/build-types/select-control/types.d.ts.map +1 -1
  325. package/build-types/shortcut/stories/index.story.d.ts +1 -1
  326. package/build-types/shortcut/stories/index.story.d.ts.map +1 -1
  327. package/build-types/slot-fill/context.d.ts.map +1 -1
  328. package/build-types/slot-fill/fill.d.ts.map +1 -1
  329. package/build-types/slot-fill/provider.d.ts.map +1 -1
  330. package/build-types/slot-fill/slot.d.ts.map +1 -1
  331. package/build-types/slot-fill/types.d.ts +13 -11
  332. package/build-types/slot-fill/types.d.ts.map +1 -1
  333. package/build-types/tab-panel/index.d.ts.map +1 -1
  334. package/build-types/tab-panel/stories/index.story.d.ts +4 -4
  335. package/build-types/tab-panel/stories/index.story.d.ts.map +1 -1
  336. package/build-types/tabs/index.d.ts +21 -4
  337. package/build-types/tabs/index.d.ts.map +1 -1
  338. package/build-types/tabs/stories/index.story.d.ts +10 -10
  339. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  340. package/build-types/tabs/types.d.ts +13 -13
  341. package/build-types/tabs/types.d.ts.map +1 -1
  342. package/build-types/text/stories/index.story.d.ts +3 -3
  343. package/build-types/theme/stories/index.story.d.ts +1 -1
  344. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  345. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  346. package/build-types/toolbar/stories/index.story.d.ts +3 -3
  347. package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
  348. package/build-types/tooltip/index.d.ts.map +1 -1
  349. package/build-types/tooltip/stories/index.story.d.ts +1 -1
  350. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  351. package/build-types/tree-grid/stories/index.story.d.ts +1 -1
  352. package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
  353. package/build-types/tree-select/index.d.ts +3 -2
  354. package/build-types/tree-select/index.d.ts.map +1 -1
  355. package/build-types/tree-select/stories/index.story.d.ts +1 -1
  356. package/build-types/tree-select/stories/index.story.d.ts.map +1 -1
  357. package/build-types/tree-select/types.d.ts +5 -1
  358. package/build-types/tree-select/types.d.ts.map +1 -1
  359. package/build-types/unit-control/index.d.ts +1 -1
  360. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  361. package/build-types/v-stack/stories/index.story.d.ts +1 -1
  362. package/package.json +19 -19
  363. package/src/alignment-matrix-control/README.md +16 -15
  364. package/src/angle-picker-control/README.md +10 -9
  365. package/src/badge/README.md +24 -0
  366. package/src/badge/docs-manifest.json +5 -0
  367. package/src/badge/index.tsx +67 -0
  368. package/src/badge/stories/index.story.tsx +54 -0
  369. package/src/badge/styles.scss +49 -0
  370. package/src/badge/test/index.tsx +45 -0
  371. package/src/badge/types.ts +12 -0
  372. package/src/base-control/README.md +22 -21
  373. package/src/box-control/README.md +41 -24
  374. package/src/box-control/index.tsx +4 -0
  375. package/src/box-control/input-control.tsx +142 -40
  376. package/src/box-control/stories/index.story.tsx +12 -0
  377. package/src/box-control/types.ts +18 -0
  378. package/src/box-control/utils.ts +60 -0
  379. package/src/button/README.md +51 -50
  380. package/src/button/style.scss +9 -10
  381. package/src/button/test/index.tsx +9 -2
  382. package/src/button-group/README.md +4 -0
  383. package/src/button-group/index.tsx +11 -1
  384. package/src/button-group/stories/index.story.tsx +8 -1
  385. package/src/button-group/types.ts +7 -0
  386. package/src/custom-select-control/index.tsx +3 -3
  387. package/src/custom-select-control-v2/custom-select.tsx +1 -2
  388. package/src/custom-select-control-v2/stories/index.story.tsx +4 -0
  389. package/src/date-time/date/index.tsx +1 -0
  390. package/src/dimension-control/index.tsx +1 -0
  391. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  392. package/src/disabled/stories/index.story.tsx +1 -0
  393. package/src/drop-zone/stories/index.story.tsx +7 -1
  394. package/src/font-size-picker/styles.ts +1 -0
  395. package/src/form-file-upload/README.md +22 -21
  396. package/src/gradient-picker/README.md +36 -35
  397. package/src/heading/hook.ts +1 -1
  398. package/src/heading/test/__snapshots__/index.tsx.snap +4 -4
  399. package/src/icon/README.md +9 -8
  400. package/src/input-control/README.md +1 -0
  401. package/src/input-control/index.tsx +10 -0
  402. package/src/input-control/stories/index.story.tsx +6 -1
  403. package/src/input-control/test/index.js +9 -3
  404. package/src/input-control/types.ts +11 -2
  405. package/src/menu/checkbox-item.tsx +2 -1
  406. package/src/menu/index.tsx +61 -165
  407. package/src/menu/item.tsx +17 -2
  408. package/src/menu/popover.tsx +103 -0
  409. package/src/menu/radio-item.tsx +2 -1
  410. package/src/menu/stories/index.story.tsx +533 -381
  411. package/src/menu/submenu-trigger-item.tsx +61 -0
  412. package/src/menu/test/index.tsx +266 -182
  413. package/src/menu/trigger-button.tsx +46 -0
  414. package/src/menu/types.ts +210 -63
  415. package/src/modal/stories/index.story.tsx +4 -1
  416. package/src/navigation/back-button/index.tsx +1 -0
  417. package/src/navigation/index.tsx +7 -0
  418. package/src/navigation/item/index.tsx +2 -0
  419. package/src/navigation/test/index.tsx +4 -0
  420. package/src/navigator/test/index.tsx +4 -0
  421. package/src/number-control/index.tsx +1 -0
  422. package/src/palette-edit/index.tsx +1 -0
  423. package/src/panel/stories/index.story.tsx +3 -3
  424. package/src/private-apis.ts +2 -0
  425. package/src/radio-group/index.tsx +12 -1
  426. package/src/radio-group/radio.tsx +1 -2
  427. package/src/range-control/styles/range-control-styles.ts +8 -4
  428. package/src/select-control/README.md +3 -0
  429. package/src/select-control/index.tsx +10 -0
  430. package/src/select-control/stories/index.story.tsx +2 -0
  431. package/src/select-control/test/select-control.tsx +7 -1
  432. package/src/select-control/types.ts +1 -0
  433. package/src/slot-fill/context.ts +5 -3
  434. package/src/slot-fill/fill.ts +10 -15
  435. package/src/slot-fill/provider.tsx +63 -64
  436. package/src/slot-fill/slot.tsx +40 -27
  437. package/src/slot-fill/types.ts +23 -11
  438. package/src/style.scss +1 -0
  439. package/src/tab-panel/index.tsx +1 -2
  440. package/src/tab-panel/stories/index.story.tsx +4 -0
  441. package/src/tabs/README.md +151 -187
  442. package/src/tabs/docs-manifest.json +22 -0
  443. package/src/tabs/index.tsx +21 -4
  444. package/src/tabs/stories/best-practices.mdx +99 -0
  445. package/src/tabs/stories/index.story.tsx +5 -0
  446. package/src/tabs/types.ts +13 -14
  447. package/src/text/hook.ts +2 -2
  448. package/src/text/styles.ts +1 -1
  449. package/src/text/test/__snapshots__/index.tsx.snap +3 -3
  450. package/src/text/test/index.tsx +1 -1
  451. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +2 -2
  452. package/src/toggle-group-control/test/index.tsx +7 -1
  453. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +1 -2
  454. package/src/tooltip/index.tsx +1 -2
  455. package/src/tree-grid/stories/index.story.tsx +2 -0
  456. package/src/tree-select/README.md +144 -28
  457. package/src/tree-select/docs-manifest.json +5 -0
  458. package/src/tree-select/index.tsx +11 -2
  459. package/src/tree-select/stories/index.story.tsx +1 -0
  460. package/src/tree-select/types.ts +8 -1
  461. package/tsconfig.json +0 -3
  462. package/tsconfig.tsbuildinfo +1 -1
  463. package/build/slot-fill/use-slot.js +0 -32
  464. package/build/slot-fill/use-slot.js.map +0 -1
  465. package/build-module/slot-fill/use-slot.js +0 -24
  466. package/build-module/slot-fill/use-slot.js.map +0 -1
  467. package/build-types/slot-fill/use-slot.d.ts +0 -10
  468. package/build-types/slot-fill/use-slot.d.ts.map +0 -1
  469. package/src/slot-fill/use-slot.ts +0 -27
@@ -1 +1 @@
1
- {"version":3,"names":["Ariakit","forwardRef","useContext","Icon","MenuContext","Styled","SVG","Circle","jsx","_jsx","jsxs","_jsxs","radioCheck","xmlns","viewBox","children","cx","cy","r","MenuRadioItem","suffix","hideOnClick","props","ref","menuContext","store","Error","accessibleWhenDisabled","MenuItemCheck","render","ItemPrefixWrapper","style","width","height","icon","size","MenuItemContentWrapper","MenuItemChildrenWrapper","ItemSuffixWrapper"],"sources":["@wordpress/components/src/menu/radio-item.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\nimport { Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport { MenuContext } from './context';\nimport type { MenuRadioItemProps } from './types';\nimport * as Styled from './styles';\nimport { SVG, Circle } from '@wordpress/primitives';\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\nexport const MenuRadioItem = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< MenuRadioItemProps, 'div', false >\n>( function MenuRadioItem(\n\t{ suffix, children, hideOnClick = false, ...props },\n\tref\n) {\n\tconst menuContext = useContext( MenuContext );\n\n\tif ( ! menuContext?.store ) {\n\t\tthrow new Error(\n\t\t\t'Menu.RadioItem can only be rendered inside a Menu component'\n\t\t);\n\t}\n\n\treturn (\n\t\t<Styled.MenuRadioItem\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\taccessibleWhenDisabled\n\t\t\thideOnClick={ hideOnClick }\n\t\t\tstore={ menuContext.store }\n\t\t>\n\t\t\t<Ariakit.MenuItemCheck\n\t\t\t\tstore={ menuContext.store }\n\t\t\t\trender={ <Styled.ItemPrefixWrapper /> }\n\t\t\t\t// Override some ariakit inline styles\n\t\t\t\tstyle={ { width: 'auto', height: 'auto' } }\n\t\t\t>\n\t\t\t\t<Icon icon={ radioCheck } size={ 24 } />\n\t\t\t</Ariakit.MenuItemCheck>\n\n\t\t\t<Styled.MenuItemContentWrapper>\n\t\t\t\t<Styled.MenuItemChildrenWrapper>\n\t\t\t\t\t{ children }\n\t\t\t\t</Styled.MenuItemChildrenWrapper>\n\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<Styled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</Styled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</Styled.MenuItemContentWrapper>\n\t\t</Styled.MenuRadioItem>\n\t);\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;;AAEzC;AACA;AACA;AACA,SAASC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AAC3D,SAASC,IAAI,QAAQ,kBAAkB;;AAEvC;AACA;AACA;;AAEA,SAASC,WAAW,QAAQ,WAAW;AAEvC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,SAASC,GAAG,EAAEC,MAAM,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpD,MAAMC,UAAU,gBACfH,IAAA,CAACH,GAAG;EAACO,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC,WAAW;EAAAC,QAAA,eAC1DN,IAAA,CAACF,MAAM;IAACS,EAAE,EAAG,EAAI;IAACC,EAAE,EAAG,EAAI;IAACC,CAAC,EAAG;EAAG,CAAS;AAAC,CACzC,CACL;AAED,OAAO,MAAMC,aAAa,GAAGlB,UAAU,CAGpC,SAASkB,aAAaA,CACxB;EAAEC,MAAM;EAAEL,QAAQ;EAAEM,WAAW,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,EACnDC,GAAG,EACF;EACD,MAAMC,WAAW,GAAGtB,UAAU,CAAEE,WAAY,CAAC;EAE7C,IAAK,CAAEoB,WAAW,EAAEC,KAAK,EAAG;IAC3B,MAAM,IAAIC,KAAK,CACd,6DACD,CAAC;EACF;EAEA,oBACCf,KAAA,CAACN,MAAM,CAACc,aAAa;IACpBI,GAAG,EAAGA,GAAK;IAAA,GACND,KAAK;IACVK,sBAAsB;IACtBN,WAAW,EAAGA,WAAa;IAC3BI,KAAK,EAAGD,WAAW,CAACC,KAAO;IAAAV,QAAA,gBAE3BN,IAAA,CAACT,OAAO,CAAC4B,aAAa;MACrBH,KAAK,EAAGD,WAAW,CAACC,KAAO;MAC3BI,MAAM,eAAGpB,IAAA,CAACJ,MAAM,CAACyB,iBAAiB,IAAE;MACpC;MAAA;MACAC,KAAK,EAAG;QAAEC,KAAK,EAAE,MAAM;QAAEC,MAAM,EAAE;MAAO,CAAG;MAAAlB,QAAA,eAE3CN,IAAA,CAACN,IAAI;QAAC+B,IAAI,EAAGtB,UAAY;QAACuB,IAAI,EAAG;MAAI,CAAE;IAAC,CAClB,CAAC,eAExBxB,KAAA,CAACN,MAAM,CAAC+B,sBAAsB;MAAArB,QAAA,gBAC7BN,IAAA,CAACJ,MAAM,CAACgC,uBAAuB;QAAAtB,QAAA,EAC5BA;MAAQ,CACqB,CAAC,EAE/BK,MAAM,iBACPX,IAAA,CAACJ,MAAM,CAACiC,iBAAiB;QAAAvB,QAAA,EACtBK;MAAM,CACiB,CAC1B;IAAA,CAC6B,CAAC;EAAA,CACX,CAAC;AAEzB,CAAE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Ariakit","forwardRef","useContext","Icon","MenuContext","Styled","SVG","Circle","jsx","_jsx","jsxs","_jsxs","radioCheck","xmlns","viewBox","children","cx","cy","r","MenuRadioItem","suffix","disabled","hideOnClick","props","ref","menuContext","store","Error","accessibleWhenDisabled","MenuItemCheck","render","ItemPrefixWrapper","style","width","height","icon","size","MenuItemContentWrapper","MenuItemChildrenWrapper","ItemSuffixWrapper"],"sources":["@wordpress/components/src/menu/radio-item.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\nimport { Icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport { MenuContext } from './context';\nimport type { MenuRadioItemProps } from './types';\nimport * as Styled from './styles';\nimport { SVG, Circle } from '@wordpress/primitives';\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\nexport const MenuRadioItem = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< MenuRadioItemProps, 'div', false >\n>( function MenuRadioItem(\n\t{ suffix, children, disabled = false, hideOnClick = false, ...props },\n\tref\n) {\n\tconst menuContext = useContext( MenuContext );\n\n\tif ( ! menuContext?.store ) {\n\t\tthrow new Error(\n\t\t\t'Menu.RadioItem can only be rendered inside a Menu component'\n\t\t);\n\t}\n\n\treturn (\n\t\t<Styled.MenuRadioItem\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\taccessibleWhenDisabled\n\t\t\tdisabled={ disabled }\n\t\t\thideOnClick={ hideOnClick }\n\t\t\tstore={ menuContext.store }\n\t\t>\n\t\t\t<Ariakit.MenuItemCheck\n\t\t\t\tstore={ menuContext.store }\n\t\t\t\trender={ <Styled.ItemPrefixWrapper /> }\n\t\t\t\t// Override some ariakit inline styles\n\t\t\t\tstyle={ { width: 'auto', height: 'auto' } }\n\t\t\t>\n\t\t\t\t<Icon icon={ radioCheck } size={ 24 } />\n\t\t\t</Ariakit.MenuItemCheck>\n\n\t\t\t<Styled.MenuItemContentWrapper>\n\t\t\t\t<Styled.MenuItemChildrenWrapper>\n\t\t\t\t\t{ children }\n\t\t\t\t</Styled.MenuItemChildrenWrapper>\n\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<Styled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</Styled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</Styled.MenuItemContentWrapper>\n\t\t</Styled.MenuRadioItem>\n\t);\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;;AAEzC;AACA;AACA;AACA,SAASC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AAC3D,SAASC,IAAI,QAAQ,kBAAkB;;AAEvC;AACA;AACA;;AAEA,SAASC,WAAW,QAAQ,WAAW;AAEvC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAClC,SAASC,GAAG,EAAEC,MAAM,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpD,MAAMC,UAAU,gBACfH,IAAA,CAACH,GAAG;EAACO,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC,WAAW;EAAAC,QAAA,eAC1DN,IAAA,CAACF,MAAM;IAACS,EAAE,EAAG,EAAI;IAACC,EAAE,EAAG,EAAI;IAACC,CAAC,EAAG;EAAG,CAAS;AAAC,CACzC,CACL;AAED,OAAO,MAAMC,aAAa,GAAGlB,UAAU,CAGpC,SAASkB,aAAaA,CACxB;EAAEC,MAAM;EAAEL,QAAQ;EAAEM,QAAQ,GAAG,KAAK;EAAEC,WAAW,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,EACrEC,GAAG,EACF;EACD,MAAMC,WAAW,GAAGvB,UAAU,CAAEE,WAAY,CAAC;EAE7C,IAAK,CAAEqB,WAAW,EAAEC,KAAK,EAAG;IAC3B,MAAM,IAAIC,KAAK,CACd,6DACD,CAAC;EACF;EAEA,oBACChB,KAAA,CAACN,MAAM,CAACc,aAAa;IACpBK,GAAG,EAAGA,GAAK;IAAA,GACND,KAAK;IACVK,sBAAsB;IACtBP,QAAQ,EAAGA,QAAU;IACrBC,WAAW,EAAGA,WAAa;IAC3BI,KAAK,EAAGD,WAAW,CAACC,KAAO;IAAAX,QAAA,gBAE3BN,IAAA,CAACT,OAAO,CAAC6B,aAAa;MACrBH,KAAK,EAAGD,WAAW,CAACC,KAAO;MAC3BI,MAAM,eAAGrB,IAAA,CAACJ,MAAM,CAAC0B,iBAAiB,IAAE;MACpC;MAAA;MACAC,KAAK,EAAG;QAAEC,KAAK,EAAE,MAAM;QAAEC,MAAM,EAAE;MAAO,CAAG;MAAAnB,QAAA,eAE3CN,IAAA,CAACN,IAAI;QAACgC,IAAI,EAAGvB,UAAY;QAACwB,IAAI,EAAG;MAAI,CAAE;IAAC,CAClB,CAAC,eAExBzB,KAAA,CAACN,MAAM,CAACgC,sBAAsB;MAAAtB,QAAA,gBAC7BN,IAAA,CAACJ,MAAM,CAACiC,uBAAuB;QAAAvB,QAAA,EAC5BA;MAAQ,CACqB,CAAC,EAE/BK,MAAM,iBACPX,IAAA,CAACJ,MAAM,CAACkC,iBAAiB;QAAAxB,QAAA,EACtBK;MAAM,CACiB,CAC1B;IAAA,CAC6B,CAAC;EAAA,CACX,CAAC;AAEzB,CAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import * as Ariakit from '@ariakit/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { forwardRef, useContext } from '@wordpress/element';
10
+ import { chevronRightSmall } from '@wordpress/icons';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+
16
+ import { MenuContext } from './context';
17
+ import { MenuItem } from './item';
18
+ import * as Styled from './styles';
19
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
20
+ export const MenuSubmenuTriggerItem = forwardRef(function MenuSubmenuTriggerItem({
21
+ suffix,
22
+ ...otherProps
23
+ }, ref) {
24
+ const menuContext = useContext(MenuContext);
25
+ if (!menuContext?.store.parent) {
26
+ throw new Error('Menu.SubmenuTriggerItem can only be rendered inside a nested Menu component');
27
+ }
28
+ return /*#__PURE__*/_jsx(Ariakit.MenuButton, {
29
+ ref: ref,
30
+ accessibleWhenDisabled: true,
31
+ store: menuContext.store,
32
+ render: /*#__PURE__*/_jsx(MenuItem, {
33
+ ...otherProps,
34
+ // The menu item needs to register and be part of the parent menu.
35
+ // Without specifying the store explicitly, the `MenuItem` component
36
+ // would otherwise read the store via context and pick up the one from
37
+ // the sub-menu `Menu` component.
38
+ store: menuContext.store.parent,
39
+ suffix: /*#__PURE__*/_jsxs(_Fragment, {
40
+ children: [suffix, /*#__PURE__*/_jsx(Styled.SubmenuChevronIcon, {
41
+ "aria-hidden": "true",
42
+ icon: chevronRightSmall,
43
+ size: 24,
44
+ preserveAspectRatio: "xMidYMid slice"
45
+ })]
46
+ })
47
+ })
48
+ });
49
+ });
50
+ //# sourceMappingURL=submenu-trigger-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Ariakit","forwardRef","useContext","chevronRightSmall","MenuContext","MenuItem","Styled","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MenuSubmenuTriggerItem","suffix","otherProps","ref","menuContext","store","parent","Error","MenuButton","accessibleWhenDisabled","render","children","SubmenuChevronIcon","icon","size","preserveAspectRatio"],"sources":["@wordpress/components/src/menu/submenu-trigger-item.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\nimport { chevronRightSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport type { MenuItemProps } from './types';\nimport { MenuContext } from './context';\nimport { MenuItem } from './item';\nimport * as Styled from './styles';\n\nexport const MenuSubmenuTriggerItem = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< MenuItemProps, 'div', false >\n>( function MenuSubmenuTriggerItem( { suffix, ...otherProps }, ref ) {\n\tconst menuContext = useContext( MenuContext );\n\n\tif ( ! menuContext?.store.parent ) {\n\t\tthrow new Error(\n\t\t\t'Menu.SubmenuTriggerItem can only be rendered inside a nested Menu component'\n\t\t);\n\t}\n\n\treturn (\n\t\t<Ariakit.MenuButton\n\t\t\tref={ ref }\n\t\t\taccessibleWhenDisabled\n\t\t\tstore={ menuContext.store }\n\t\t\trender={\n\t\t\t\t<MenuItem\n\t\t\t\t\t{ ...otherProps }\n\t\t\t\t\t// The menu item needs to register and be part of the parent menu.\n\t\t\t\t\t// Without specifying the store explicitly, the `MenuItem` component\n\t\t\t\t\t// would otherwise read the store via context and pick up the one from\n\t\t\t\t\t// the sub-menu `Menu` component.\n\t\t\t\t\tstore={ menuContext.store.parent }\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t\t<Styled.SubmenuChevronIcon\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid slice\"\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/>\n\t\t\t}\n\t\t/>\n\t);\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;;AAEzC;AACA;AACA;AACA,SAASC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AAC3D,SAASC,iBAAiB,QAAQ,kBAAkB;;AAEpD;AACA;AACA;;AAGA,SAASC,WAAW,QAAQ,WAAW;AACvC,SAASC,QAAQ,QAAQ,QAAQ;AACjC,OAAO,KAAKC,MAAM,MAAM,UAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAEnC,OAAO,MAAMC,sBAAsB,GAAGZ,UAAU,CAG7C,SAASY,sBAAsBA,CAAE;EAAEC,MAAM;EAAE,GAAGC;AAAW,CAAC,EAAEC,GAAG,EAAG;EACpE,MAAMC,WAAW,GAAGf,UAAU,CAAEE,WAAY,CAAC;EAE7C,IAAK,CAAEa,WAAW,EAAEC,KAAK,CAACC,MAAM,EAAG;IAClC,MAAM,IAAIC,KAAK,CACd,6EACD,CAAC;EACF;EAEA,oBACCZ,IAAA,CAACR,OAAO,CAACqB,UAAU;IAClBL,GAAG,EAAGA,GAAK;IACXM,sBAAsB;IACtBJ,KAAK,EAAGD,WAAW,CAACC,KAAO;IAC3BK,MAAM,eACLf,IAAA,CAACH,QAAQ;MAAA,GACHU,UAAU;MACf;MACA;MACA;MACA;MACAG,KAAK,EAAGD,WAAW,CAACC,KAAK,CAACC,MAAQ;MAClCL,MAAM,eACLF,KAAA,CAAAF,SAAA;QAAAc,QAAA,GACGV,MAAM,eACRN,IAAA,CAACF,MAAM,CAACmB,kBAAkB;UACzB,eAAY,MAAM;UAClBC,IAAI,EAAGvB,iBAAmB;UAC1BwB,IAAI,EAAG,EAAI;UACXC,mBAAmB,EAAC;QAAgB,CACpC,CAAC;MAAA,CACD;IACF,CACD;EACD,CACD,CAAC;AAEJ,CAAE,CAAC","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import * as Ariakit from '@ariakit/react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { forwardRef, useContext } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+
15
+ import { MenuContext } from './context';
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ export const MenuTriggerButton = forwardRef(function MenuTriggerButton({
18
+ children,
19
+ disabled = false,
20
+ ...props
21
+ }, ref) {
22
+ const menuContext = useContext(MenuContext);
23
+ if (!menuContext?.store) {
24
+ throw new Error('Menu.TriggerButton can only be rendered inside a Menu component');
25
+ }
26
+ if (menuContext.store.parent) {
27
+ throw new Error('Menu.TriggerButton should not be rendered inside a nested Menu component. Use Menu.SubmenuTriggerItem instead.');
28
+ }
29
+ return /*#__PURE__*/_jsx(Ariakit.MenuButton, {
30
+ ref: ref,
31
+ ...props,
32
+ disabled: disabled,
33
+ store: menuContext.store,
34
+ children: children
35
+ });
36
+ });
37
+ //# sourceMappingURL=trigger-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Ariakit","forwardRef","useContext","MenuContext","jsx","_jsx","MenuTriggerButton","children","disabled","props","ref","menuContext","store","Error","parent","MenuButton"],"sources":["@wordpress/components/src/menu/trigger-button.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport type { MenuTriggerButtonProps } from './types';\nimport { MenuContext } from './context';\n\nexport const MenuTriggerButton = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< MenuTriggerButtonProps, 'button', false >\n>( function MenuTriggerButton( { children, disabled = false, ...props }, ref ) {\n\tconst menuContext = useContext( MenuContext );\n\n\tif ( ! menuContext?.store ) {\n\t\tthrow new Error(\n\t\t\t'Menu.TriggerButton can only be rendered inside a Menu component'\n\t\t);\n\t}\n\n\tif ( menuContext.store.parent ) {\n\t\tthrow new Error(\n\t\t\t'Menu.TriggerButton should not be rendered inside a nested Menu component. Use Menu.SubmenuTriggerItem instead.'\n\t\t);\n\t}\n\n\treturn (\n\t\t<Ariakit.MenuButton\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tdisabled={ disabled }\n\t\t\tstore={ menuContext.store }\n\t\t>\n\t\t\t{ children }\n\t\t</Ariakit.MenuButton>\n\t);\n} );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;;AAEzC;AACA;AACA;AACA,SAASC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;;AAE3D;AACA;AACA;;AAGA,SAASC,WAAW,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,OAAO,MAAMC,iBAAiB,GAAGL,UAAU,CAGxC,SAASK,iBAAiBA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,EAAG;EAC9E,MAAMC,WAAW,GAAGT,UAAU,CAAEC,WAAY,CAAC;EAE7C,IAAK,CAAEQ,WAAW,EAAEC,KAAK,EAAG;IAC3B,MAAM,IAAIC,KAAK,CACd,iEACD,CAAC;EACF;EAEA,IAAKF,WAAW,CAACC,KAAK,CAACE,MAAM,EAAG;IAC/B,MAAM,IAAID,KAAK,CACd,gHACD,CAAC;EACF;EAEA,oBACCR,IAAA,CAACL,OAAO,CAACe,UAAU;IAClBL,GAAG,EAAGA,GAAK;IAAA,GACND,KAAK;IACVD,QAAQ,EAAGA,QAAU;IACrBI,KAAK,EAAGD,WAAW,CAACC,KAAO;IAAAL,QAAA,EAEzBA;EAAQ,CACS,CAAC;AAEvB,CAAE,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/menu/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type * as Ariakit from '@ariakit/react';\nimport type { Placement } from '@floating-ui/react-dom';\n\nexport interface MenuContext {\n\t/**\n\t * The ariakit store shared across all Menu subcomponents.\n\t */\n\tstore: Ariakit.MenuStore;\n\t/**\n\t * The variant used by the underlying menu popover.\n\t */\n\tvariant?: 'toolbar';\n}\n\nexport interface MenuProps {\n\t/**\n\t * The button triggering the menu popover.\n\t */\n\ttrigger: React.ReactElement;\n\t/**\n\t * The contents of the menu (ie. one or more menu items).\n\t */\n\tchildren?: React.ReactNode;\n\t/**\n\t * The open state of the menu popover when it is initially rendered. Use when\n\t * not wanting to control its open state.\n\t *\n\t * @default false\n\t */\n\tdefaultOpen?: boolean;\n\t/**\n\t * The controlled open state of the menu popover. Must be used in conjunction\n\t * with `onOpenChange`.\n\t */\n\topen?: boolean;\n\t/**\n\t * Event handler called when the open state of the menu popover changes.\n\t */\n\tonOpenChange?: ( open: boolean ) => void;\n\t/**\n\t * The modality of the menu popover. When set to true, interaction with\n\t * outside elements will be disabled and only menu content will be visible to\n\t * screen readers.\n\t *\n\t * @default true\n\t */\n\tmodal?: boolean;\n\t/**\n\t * The placement of the menu popover.\n\t *\n\t * @default 'bottom-start' for root-level menus, 'right-start' for nested menus\n\t */\n\tplacement?: Placement;\n\t/**\n\t * The distance between the popover and the anchor element.\n\t *\n\t * @default 8 for root-level menus, 16 for nested menus\n\t */\n\tgutter?: number;\n\t/**\n\t * The skidding of the popover along the anchor element. Can be set to\n\t * negative values to make the popover shift to the opposite side.\n\t *\n\t * @default 0 for root-level menus, -8 for nested menus\n\t */\n\tshift?: number;\n\t/**\n\t * Determines whether the menu popover will be hidden when the user presses\n\t * the Escape key.\n\t *\n\t * @default `( event ) => { event.preventDefault(); return true; }`\n\t */\n\thideOnEscape?:\n\t\t| boolean\n\t\t| ( (\n\t\t\t\tevent: KeyboardEvent | React.KeyboardEvent< Element >\n\t\t ) => boolean );\n}\n\nexport interface MenuGroupProps {\n\t/**\n\t * The contents of the menu group (ie. an optional menu group label and one\n\t * or more menu items).\n\t */\n\tchildren: React.ReactNode;\n}\n\nexport interface MenuGroupLabelProps {\n\t/**\n\t * The contents of the menu group label.\n\t */\n\tchildren: React.ReactNode;\n}\n\nexport interface MenuItemProps {\n\t/**\n\t * The contents of the menu item.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * The contents of the menu item's prefix.\n\t */\n\tprefix?: React.ReactNode;\n\t/**\n\t * The contents of the menu item's suffix.\n\t */\n\tsuffix?: React.ReactNode;\n\t/**\n\t * Whether to hide the menu popover when the menu item is clicked.\n\t *\n\t * @default true\n\t */\n\thideOnClick?: boolean;\n\t/**\n\t * Determines if the element is disabled.\n\t */\n\tdisabled?: boolean;\n}\n\nexport interface MenuCheckboxItemProps\n\textends Omit< MenuItemProps, 'prefix' | 'hideOnClick' > {\n\t/**\n\t * Whether to hide the menu popover when the menu item is clicked.\n\t *\n\t * @default false\n\t */\n\thideOnClick?: boolean;\n\t/**\n\t * The checkbox menu item's name.\n\t */\n\tname: string;\n\t/**\n\t * The checkbox item's value, useful when using multiple checkbox menu items\n\t * associated to the same `name`.\n\t */\n\tvalue?: string;\n\t/**\n\t * The controlled checked state of the checkbox menu item.\n\t */\n\tchecked?: boolean;\n\t/**\n\t * The checked state of the checkbox menu item when it is initially rendered.\n\t * Use when not wanting to control its checked state.\n\t */\n\tdefaultChecked?: boolean;\n\t/**\n\t * Event handler called when the checked state of the checkbox menu item changes.\n\t */\n\tonChange?: ( event: React.ChangeEvent< HTMLInputElement > ) => void;\n}\n\nexport interface MenuRadioItemProps\n\textends Omit< MenuItemProps, 'prefix' | 'hideOnClick' > {\n\t/**\n\t * Whether to hide the menu popover when the menu item is clicked.\n\t *\n\t * @default false\n\t */\n\thideOnClick?: boolean;\n\t/**\n\t * The radio item's name.\n\t */\n\tname: string;\n\t/**\n\t * The radio item's value.\n\t */\n\tvalue: string | number;\n\t/**\n\t * The controlled checked state of the radio menu item.\n\t */\n\tchecked?: boolean;\n\t/**\n\t * The checked state of the radio menu item when it is initially rendered.\n\t * Use when not wanting to control its checked state.\n\t */\n\tdefaultChecked?: boolean;\n\t/**\n\t * Event handler called when the checked radio menu item changes.\n\t */\n\tonChange?: ( event: React.ChangeEvent< HTMLInputElement > ) => void;\n}\n\nexport interface MenuSeparatorProps {}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/menu/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type * as Ariakit from '@ariakit/react';\n\nexport interface MenuContext {\n\t/**\n\t * The ariakit store shared across all Menu subcomponents.\n\t */\n\tstore: Ariakit.MenuStore;\n\t/**\n\t * The variant used by the underlying menu popover.\n\t */\n\tvariant?: 'toolbar';\n}\n\nexport interface MenuProps {\n\t/**\n\t * The elements, which should include one instance of the `Menu.TriggerButton`\n\t * component and one instance of the `Menu.Popover` component.\n\t */\n\tchildren?: Ariakit.MenuProviderProps[ 'children' ];\n\t/**\n\t * Whether the menu popover and its contents should be visible by default.\n\t *\n\t * Note: this prop will be overridden by the `open` prop if it is\n\t * provided (meaning the component will be used in \"controlled\" mode).\n\t *\n\t * @default false\n\t */\n\tdefaultOpen?: Ariakit.MenuProviderProps[ 'defaultOpen' ];\n\t/**\n\t * Whether the menu popover and its contents should be visible.\n\t * Should be used in conjunction with `onOpenChange` in order to control\n\t * the open state of the menu popover.\n\t *\n\t * Note: this prop will set the component in \"controlled\" mode, and it will\n\t * override the `defaultOpen` prop.\n\t */\n\topen?: Ariakit.MenuProviderProps[ 'open' ];\n\t/**\n\t * A callback that gets called when the `open` state changes.\n\t */\n\tonOpenChange?: Ariakit.MenuProviderProps[ 'setOpen' ];\n\t/**\n\t * The placement of the menu popover.\n\t *\n\t * @default 'bottom-start' for root-level menus, 'right-start' for submenus\n\t */\n\tplacement?: Ariakit.MenuProviderProps[ 'placement' ];\n}\n\nexport interface MenuPopoverProps {\n\t/**\n\t * The contents of the menu popover, which should include instances of the\n\t * `Menu.Item`, `Menu.CheckboxItem`, `Menu.RadioItem`, `Menu.Group`, and\n\t * `Menu.Separator` components.\n\t */\n\tchildren?: Ariakit.MenuProps[ 'children' ];\n\t/**\n\t * The modality of the menu popover. When set to true, interaction with\n\t * outside elements will be disabled and only menu content will be visible to\n\t * screen readers.\n\t *\n\t * Determines whether the menu popover is modal. Modal dialogs have distinct\n\t * states and behaviors:\n\t * - The `portal` and `preventBodyScroll` props are set to `true`. They can\n\t * still be manually set to `false`.\n\t * - When the dialog is open, element tree outside it will be inert.\n\t *\n\t * @default true\n\t */\n\tmodal?: Ariakit.MenuProps[ 'modal' ];\n\t/**\n\t * The distance between the popover and the anchor element.\n\t *\n\t * @default 8 for root-level menus, 16 for nested menus\n\t */\n\tgutter?: Ariakit.MenuProps[ 'gutter' ];\n\t/**\n\t * The skidding of the popover along the anchor element. Can be set to\n\t * negative values to make the popover shift to the opposite side.\n\t *\n\t * @default 0 for root-level menus, -8 for nested menus\n\t */\n\tshift?: Ariakit.MenuProps[ 'shift' ];\n\t/**\n\t * Determines if the menu popover will hide when the user presses the\n\t * Escape key.\n\t *\n\t * This prop can be either a boolean or a function that accepts an event as an\n\t * argument and returns a boolean. The event object represents the keydown\n\t * event that initiated the hide action, which could be either a native\n\t * keyboard event or a React synthetic event.\n\t *\n\t * @default `( event ) => { event.preventDefault(); return true; }`\n\t */\n\thideOnEscape?: Ariakit.MenuProps[ 'hideOnEscape' ];\n}\n\nexport interface MenuTriggerButtonProps {\n\t/**\n\t * The contents of the menu trigger button.\n\t */\n\tchildren?: Ariakit.MenuButtonProps[ 'children' ];\n\t/**\n\t * Allows the component to be rendered as a different HTML element or React\n\t * component. The value can be a React element or a function that takes in the\n\t * original component props and gives back a React element with the props\n\t * merged.\n\t */\n\trender?: Ariakit.MenuButtonProps[ 'render' ];\n\t/**\n\t * Determines if the element is disabled. This sets the `aria-disabled`\n\t * attribute accordingly, enabling support for all elements, including those\n\t * that don't support the native `disabled` attribute.\n\t *\n\t * This feature can be combined with the `accessibleWhenDisabled` prop to\n\t * make disabled elements still accessible via keyboard.\n\t *\n\t * @default false\n\t */\n\tdisabled?: Ariakit.MenuButtonProps[ 'disabled' ];\n\t/**\n\t * Indicates whether the element should be focusable even when it is\n\t * `disabled`.\n\t *\n\t * This is important when discoverability is a concern. For example:\n\t *\n\t * > A toolbar in an editor contains a set of special smart paste functions\n\t * that are disabled when the clipboard is empty or when the function is not\n\t * applicable to the current content of the clipboard. It could be helpful to\n\t * keep the disabled buttons focusable if the ability to discover their\n\t * functionality is primarily via their presence on the toolbar.\n\t *\n\t * Learn more on [Focusability of disabled\n\t * controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols).\n\t */\n\taccessibleWhenDisabled?: Ariakit.MenuButtonProps[ 'accessibleWhenDisabled' ];\n}\n\nexport interface MenuGroupProps {\n\t/**\n\t * The contents of the menu group, which should include one instance of the\n\t * `Menu.GroupLabel` component and one or more instances of `Menu.Item`,\n\t * `Menu.CheckboxItem`, and `Menu.RadioItem`.\n\t */\n\tchildren: Ariakit.MenuGroupProps[ 'children' ];\n}\n\nexport interface MenuGroupLabelProps {\n\t/**\n\t * The contents of the menu group label, which should provide an accessible\n\t * label for the menu group.\n\t */\n\tchildren: Ariakit.MenuGroupLabelProps[ 'children' ];\n}\n\nexport interface MenuItemProps {\n\t/**\n\t * The contents of the menu item, which could include one instance of the\n\t * `Menu.ItemLabel` component and/or one instance of the `Menu.ItemHelpText`\n\t * component.\n\t */\n\tchildren: Ariakit.MenuItemProps[ 'children' ];\n\t/**\n\t * The contents of the menu item's prefix, such as an icon.\n\t */\n\tprefix?: React.ReactNode;\n\t/**\n\t * The contents of the menu item's suffix, such as a keyboard shortcut.\n\t */\n\tsuffix?: React.ReactNode;\n\t/**\n\t * Determines if the menu should hide when this item is clicked.\n\t *\n\t * **Note**: This behavior isn't triggered if this menu item is rendered as a\n\t * link and modifier keys are used to either open the link in a new tab or\n\t * download it.\n\t *\n\t * @default true\n\t */\n\thideOnClick?: Ariakit.MenuItemProps[ 'hideOnClick' ];\n\t/**\n\t * Determines if the element is disabled. This sets the `aria-disabled`\n\t * attribute accordingly, enabling support for all elements, including those\n\t * that don't support the native `disabled` attribute.\n\t *\n\t * @default false\n\t */\n\tdisabled?: Ariakit.MenuItemProps[ 'disabled' ];\n\t/**\n\t * Allows the component to be rendered as a different HTML element or React\n\t * component. The value can be a React element or a function that takes in the\n\t * original component props and gives back a React element with the props\n\t * merged.\n\t */\n\trender?: Ariakit.MenuItemProps[ 'render' ];\n\t/**\n\t * The ariakit menu store. This prop is only meant for internal use.\n\t * @ignore\n\t */\n\tstore?: Ariakit.MenuItemProps[ 'store' ];\n}\n\nexport interface MenuCheckboxItemProps {\n\t/**\n\t * The contents of the menu item, which could include one instance of the\n\t * `Menu.ItemLabel` component and/or one instance of the `Menu.ItemHelpText`\n\t * component.\n\t */\n\tchildren: Ariakit.MenuItemCheckboxProps[ 'children' ];\n\t/**\n\t * The contents of the menu item's suffix, such as a keyboard shortcut.\n\t */\n\tsuffix?: React.ReactNode;\n\t/**\n\t * Determines if the menu should hide when this item is clicked.\n\t *\n\t * **Note**: This behavior isn't triggered if this menu item is rendered as a\n\t * link and modifier keys are used to either open the link in a new tab or\n\t * download it.\n\t *\n\t * @default false\n\t */\n\thideOnClick?: Ariakit.MenuItemCheckboxProps[ 'hideOnClick' ];\n\t/**\n\t * Determines if the element is disabled. This sets the `aria-disabled`\n\t * attribute accordingly, enabling support for all elements, including those\n\t * that don't support the native `disabled` attribute.\n\t *\n\t * @default false\n\t */\n\tdisabled?: Ariakit.MenuItemCheckboxProps[ 'disabled' ];\n\t/**\n\t * Allows the component to be rendered as a different HTML element or React\n\t * component. The value can be a React element or a function that takes in the\n\t * original component props and gives back a React element with the props\n\t * merged.\n\t */\n\trender?: Ariakit.MenuItemCheckboxProps[ 'render' ];\n\t/**\n\t * The checkbox menu item's name.\n\t */\n\tname: Ariakit.MenuItemCheckboxProps[ 'name' ];\n\t/**\n\t * The checkbox item's value, useful when using multiple checkbox menu items\n\t * associated to the same `name`.\n\t */\n\tvalue?: Ariakit.MenuItemCheckboxProps[ 'value' ];\n\t/**\n\t * The controlled checked state of the checkbox menu item.\n\t *\n\t * Note: this prop will override the `defaultChecked` prop.\n\t */\n\tchecked?: Ariakit.MenuItemCheckboxProps[ 'checked' ];\n\t/**\n\t * The checked state of the checkbox menu item when it is initially rendered.\n\t * Use when not wanting to control its checked state.\n\t *\n\t * Note: this prop will be overriden by the `checked` prop, if it is defined.\n\t */\n\tdefaultChecked?: Ariakit.MenuItemCheckboxProps[ 'defaultChecked' ];\n\t/**\n\t * A function that is called when the checkbox's checked state changes.\n\t */\n\tonChange?: Ariakit.MenuItemCheckboxProps[ 'onChange' ];\n}\n\nexport interface MenuRadioItemProps {\n\t/**\n\t * The contents of the menu item, which could include one instance of the\n\t * `Menu.ItemLabel` component and/or one instance of the `Menu.ItemHelpText`\n\t * component.\n\t */\n\tchildren: Ariakit.MenuItemRadioProps[ 'children' ];\n\t/**\n\t * The contents of the menu item's suffix, such as a keyboard shortcut.\n\t */\n\tsuffix?: React.ReactNode;\n\t/**\n\t * Determines if the menu should hide when this item is clicked.\n\t *\n\t * **Note**: This behavior isn't triggered if this menu item is rendered as a\n\t * link and modifier keys are used to either open the link in a new tab or\n\t * download it.\n\t *\n\t * @default false\n\t */\n\thideOnClick?: Ariakit.MenuItemRadioProps[ 'hideOnClick' ];\n\t/**\n\t * Determines if the element is disabled. This sets the `aria-disabled`\n\t * attribute accordingly, enabling support for all elements, including those\n\t * that don't support the native `disabled` attribute.\n\t *\n\t * @default false\n\t */\n\tdisabled?: Ariakit.MenuItemRadioProps[ 'disabled' ];\n\t/**\n\t * Allows the component to be rendered as a different HTML element or React\n\t * component. The value can be a React element or a function that takes in the\n\t * original component props and gives back a React element with the props\n\t * merged.\n\t */\n\trender?: Ariakit.MenuItemRadioProps[ 'render' ];\n\t/**\n\t * The radio item's name.\n\t */\n\tname: Ariakit.MenuItemRadioProps[ 'name' ];\n\t/**\n\t * The radio item's value.\n\t */\n\tvalue: Ariakit.MenuItemRadioProps[ 'value' ];\n\t/**\n\t * The controlled checked state of the radio menu item.\n\t *\n\t * Note: this prop will override the `defaultChecked` prop.\n\t */\n\tchecked?: Ariakit.MenuItemRadioProps[ 'checked' ];\n\t/**\n\t * The checked state of the radio menu item when it is initially rendered.\n\t * Use when not wanting to control its checked state.\n\t *\n\t * Note: this prop will be overriden by the `checked` prop, if it is defined.\n\t */\n\tdefaultChecked?: Ariakit.MenuItemRadioProps[ 'defaultChecked' ];\n\t/**\n\t * A function that is called when the checkbox's checked state changes.\n\t */\n\tonChange?: Ariakit.MenuItemRadioProps[ 'onChange' ];\n}\n\nexport interface MenuSeparatorProps {}\n"],"mappings":"","ignoreList":[]}
@@ -39,6 +39,7 @@ function UnforwardedNavigationBackButton({
39
39
  };
40
40
  const icon = isRTL() ? chevronRight : chevronLeft;
41
41
  return /*#__PURE__*/_jsxs(MenuBackButtonUI, {
42
+ __next40pxDefaultSize: true,
42
43
  className: classes,
43
44
  href: href,
44
45
  variant: "tertiary",
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","forwardRef","__","isRTL","Icon","chevronLeft","chevronRight","useNavigationContext","MenuBackButtonUI","jsx","_jsx","jsxs","_jsxs","UnforwardedNavigationBackButton","backButtonLabel","className","href","onClick","parentMenu","ref","setActiveMenu","navigationTree","classes","parentMenuTitle","undefined","getMenu","title","handleOnClick","event","animationDirection","defaultPrevented","icon","variant","children","NavigationBackButton"],"sources":["@wordpress/components/src/navigation/back-button/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Icon, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useNavigationContext } from '../context';\nimport { MenuBackButtonUI } from '../styles/navigation-styles';\n\nimport type { NavigationBackButtonProps } from '../types';\n\nfunction UnforwardedNavigationBackButton(\n\t{\n\t\tbackButtonLabel,\n\t\tclassName,\n\t\thref,\n\t\tonClick,\n\t\tparentMenu,\n\t}: NavigationBackButtonProps,\n\tref: React.ForwardedRef< HTMLAnchorElement | HTMLButtonElement >\n) {\n\tconst { setActiveMenu, navigationTree } = useNavigationContext();\n\n\tconst classes = clsx( 'components-navigation__back-button', className );\n\n\tconst parentMenuTitle =\n\t\tparentMenu !== undefined\n\t\t\t? navigationTree.getMenu( parentMenu )?.title\n\t\t\t: undefined;\n\n\tconst handleOnClick: React.MouseEventHandler< HTMLElement > = ( event ) => {\n\t\tif ( typeof onClick === 'function' ) {\n\t\t\tonClick( event );\n\t\t}\n\n\t\tconst animationDirection = isRTL() ? 'left' : 'right';\n\t\tif ( parentMenu && ! event.defaultPrevented ) {\n\t\t\tsetActiveMenu( parentMenu, animationDirection );\n\t\t}\n\t};\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\treturn (\n\t\t<MenuBackButtonUI\n\t\t\tclassName={ classes }\n\t\t\thref={ href }\n\t\t\tvariant=\"tertiary\"\n\t\t\tref={ ref }\n\t\t\tonClick={ handleOnClick }\n\t\t>\n\t\t\t<Icon icon={ icon } />\n\t\t\t{ backButtonLabel || parentMenuTitle || __( 'Back' ) }\n\t\t</MenuBackButtonUI>\n\t);\n}\n\n/**\n * @deprecated Use `Navigator` instead.\n */\nexport const NavigationBackButton = forwardRef(\n\tUnforwardedNavigationBackButton\n);\n\nexport default NavigationBackButton;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB;AACA;AACA;AACA,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SAASC,IAAI,EAAEC,WAAW,EAAEC,YAAY,QAAQ,kBAAkB;;AAElE;AACA;AACA;AACA,SAASC,oBAAoB,QAAQ,YAAY;AACjD,SAASC,gBAAgB,QAAQ,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAI/D,SAASC,+BAA+BA,CACvC;EACCC,eAAe;EACfC,SAAS;EACTC,IAAI;EACJC,OAAO;EACPC;AAC0B,CAAC,EAC5BC,GAAgE,EAC/D;EACD,MAAM;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGd,oBAAoB,CAAC,CAAC;EAEhE,MAAMe,OAAO,GAAGtB,IAAI,CAAE,oCAAoC,EAAEe,SAAU,CAAC;EAEvE,MAAMQ,eAAe,GACpBL,UAAU,KAAKM,SAAS,GACrBH,cAAc,CAACI,OAAO,CAAEP,UAAW,CAAC,EAAEQ,KAAK,GAC3CF,SAAS;EAEb,MAAMG,aAAqD,GAAKC,KAAK,IAAM;IAC1E,IAAK,OAAOX,OAAO,KAAK,UAAU,EAAG;MACpCA,OAAO,CAAEW,KAAM,CAAC;IACjB;IAEA,MAAMC,kBAAkB,GAAG1B,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO;IACrD,IAAKe,UAAU,IAAI,CAAEU,KAAK,CAACE,gBAAgB,EAAG;MAC7CV,aAAa,CAAEF,UAAU,EAAEW,kBAAmB,CAAC;IAChD;EACD,CAAC;EACD,MAAME,IAAI,GAAG5B,KAAK,CAAC,CAAC,GAAGG,YAAY,GAAGD,WAAW;EACjD,oBACCO,KAAA,CAACJ,gBAAgB;IAChBO,SAAS,EAAGO,OAAS;IACrBN,IAAI,EAAGA,IAAM;IACbgB,OAAO,EAAC,UAAU;IAClBb,GAAG,EAAGA,GAAK;IACXF,OAAO,EAAGU,aAAe;IAAAM,QAAA,gBAEzBvB,IAAA,CAACN,IAAI;MAAC2B,IAAI,EAAGA;IAAM,CAAE,CAAC,EACpBjB,eAAe,IAAIS,eAAe,IAAIrB,EAAE,CAAE,MAAO,CAAC;EAAA,CACnC,CAAC;AAErB;;AAEA;AACA;AACA;AACA,OAAO,MAAMgC,oBAAoB,GAAGjC,UAAU,CAC7CY,+BACD,CAAC;AAED,eAAeqB,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["clsx","forwardRef","__","isRTL","Icon","chevronLeft","chevronRight","useNavigationContext","MenuBackButtonUI","jsx","_jsx","jsxs","_jsxs","UnforwardedNavigationBackButton","backButtonLabel","className","href","onClick","parentMenu","ref","setActiveMenu","navigationTree","classes","parentMenuTitle","undefined","getMenu","title","handleOnClick","event","animationDirection","defaultPrevented","icon","__next40pxDefaultSize","variant","children","NavigationBackButton"],"sources":["@wordpress/components/src/navigation/back-button/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Icon, chevronLeft, chevronRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useNavigationContext } from '../context';\nimport { MenuBackButtonUI } from '../styles/navigation-styles';\n\nimport type { NavigationBackButtonProps } from '../types';\n\nfunction UnforwardedNavigationBackButton(\n\t{\n\t\tbackButtonLabel,\n\t\tclassName,\n\t\thref,\n\t\tonClick,\n\t\tparentMenu,\n\t}: NavigationBackButtonProps,\n\tref: React.ForwardedRef< HTMLAnchorElement | HTMLButtonElement >\n) {\n\tconst { setActiveMenu, navigationTree } = useNavigationContext();\n\n\tconst classes = clsx( 'components-navigation__back-button', className );\n\n\tconst parentMenuTitle =\n\t\tparentMenu !== undefined\n\t\t\t? navigationTree.getMenu( parentMenu )?.title\n\t\t\t: undefined;\n\n\tconst handleOnClick: React.MouseEventHandler< HTMLElement > = ( event ) => {\n\t\tif ( typeof onClick === 'function' ) {\n\t\t\tonClick( event );\n\t\t}\n\n\t\tconst animationDirection = isRTL() ? 'left' : 'right';\n\t\tif ( parentMenu && ! event.defaultPrevented ) {\n\t\t\tsetActiveMenu( parentMenu, animationDirection );\n\t\t}\n\t};\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\treturn (\n\t\t<MenuBackButtonUI\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ classes }\n\t\t\thref={ href }\n\t\t\tvariant=\"tertiary\"\n\t\t\tref={ ref }\n\t\t\tonClick={ handleOnClick }\n\t\t>\n\t\t\t<Icon icon={ icon } />\n\t\t\t{ backButtonLabel || parentMenuTitle || __( 'Back' ) }\n\t\t</MenuBackButtonUI>\n\t);\n}\n\n/**\n * @deprecated Use `Navigator` instead.\n */\nexport const NavigationBackButton = forwardRef(\n\tUnforwardedNavigationBackButton\n);\n\nexport default NavigationBackButton;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB;AACA;AACA;AACA,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SAASC,IAAI,EAAEC,WAAW,EAAEC,YAAY,QAAQ,kBAAkB;;AAElE;AACA;AACA;AACA,SAASC,oBAAoB,QAAQ,YAAY;AACjD,SAASC,gBAAgB,QAAQ,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAI/D,SAASC,+BAA+BA,CACvC;EACCC,eAAe;EACfC,SAAS;EACTC,IAAI;EACJC,OAAO;EACPC;AAC0B,CAAC,EAC5BC,GAAgE,EAC/D;EACD,MAAM;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGd,oBAAoB,CAAC,CAAC;EAEhE,MAAMe,OAAO,GAAGtB,IAAI,CAAE,oCAAoC,EAAEe,SAAU,CAAC;EAEvE,MAAMQ,eAAe,GACpBL,UAAU,KAAKM,SAAS,GACrBH,cAAc,CAACI,OAAO,CAAEP,UAAW,CAAC,EAAEQ,KAAK,GAC3CF,SAAS;EAEb,MAAMG,aAAqD,GAAKC,KAAK,IAAM;IAC1E,IAAK,OAAOX,OAAO,KAAK,UAAU,EAAG;MACpCA,OAAO,CAAEW,KAAM,CAAC;IACjB;IAEA,MAAMC,kBAAkB,GAAG1B,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO;IACrD,IAAKe,UAAU,IAAI,CAAEU,KAAK,CAACE,gBAAgB,EAAG;MAC7CV,aAAa,CAAEF,UAAU,EAAEW,kBAAmB,CAAC;IAChD;EACD,CAAC;EACD,MAAME,IAAI,GAAG5B,KAAK,CAAC,CAAC,GAAGG,YAAY,GAAGD,WAAW;EACjD,oBACCO,KAAA,CAACJ,gBAAgB;IAChBwB,qBAAqB;IACrBjB,SAAS,EAAGO,OAAS;IACrBN,IAAI,EAAGA,IAAM;IACbiB,OAAO,EAAC,UAAU;IAClBd,GAAG,EAAGA,GAAK;IACXF,OAAO,EAAGU,aAAe;IAAAO,QAAA,gBAEzBxB,IAAA,CAACN,IAAI;MAAC2B,IAAI,EAAGA;IAAM,CAAE,CAAC,EACpBjB,eAAe,IAAIS,eAAe,IAAIrB,EAAE,CAAE,MAAO,CAAC;EAAA,CACnC,CAAC;AAErB;;AAEA;AACA;AACA;AACA,OAAO,MAAMiC,oBAAoB,GAAGlC,UAAU,CAC7CY,+BACD,CAAC;AAED,eAAesB,oBAAoB","ignoreList":[]}
@@ -6,6 +6,7 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
+ import deprecated from '@wordpress/deprecated';
9
10
  import { useEffect, useRef, useState } from '@wordpress/element';
10
11
  import { isRTL } from '@wordpress/i18n';
11
12
 
@@ -73,6 +74,11 @@ export function Navigation({
73
74
  const [slideOrigin, setSlideOrigin] = useState();
74
75
  const navigationTree = useCreateNavigationTree();
75
76
  const defaultSlideOrigin = isRTL() ? 'right' : 'left';
77
+ deprecated('wp.components.Navigation (and all subcomponents)', {
78
+ since: '6.8',
79
+ version: '7.1',
80
+ alternative: 'wp.components.Navigator'
81
+ });
76
82
  const setActiveMenu = (menuId, slideInOrigin = defaultSlideOrigin) => {
77
83
  if (!navigationTree.getMenu(menuId)) {
78
84
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useEffect","useRef","useState","isRTL","getAnimateClassName","ROOT_MENU","NavigationContext","NavigationUI","useCreateNavigationTree","jsx","_jsx","noop","Navigation","activeItem","activeMenu","children","className","onActivateMenu","menu","setMenu","slideOrigin","setSlideOrigin","navigationTree","defaultSlideOrigin","setActiveMenu","menuId","slideInOrigin","getMenu","isMountedRef","current","context","classes","animateClassName","type","origin","undefined","Provider","value"],"sources":["@wordpress/components/src/navigation/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getAnimateClassName } from '../animate';\nimport { ROOT_MENU } from './constants';\nimport { NavigationContext } from './context';\nimport { NavigationUI } from './styles/navigation-styles';\nimport { useCreateNavigationTree } from './use-create-navigation-tree';\n\nimport type {\n\tNavigationProps,\n\tNavigationContext as NavigationContextType,\n} from './types';\n\nconst noop = () => {};\n\n/**\n * Render a navigation list with optional groupings and hierarchy.\n *\n * @deprecated Use `Navigator` instead.\n *\n * ```jsx\n * import {\n * __experimentalNavigation as Navigation,\n * __experimentalNavigationGroup as NavigationGroup,\n * __experimentalNavigationItem as NavigationItem,\n * __experimentalNavigationMenu as NavigationMenu,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <Navigation>\n * <NavigationMenu title=\"Home\">\n * <NavigationGroup title=\"Group 1\">\n * <NavigationItem item=\"item-1\" title=\"Item 1\" />\n * <NavigationItem item=\"item-2\" title=\"Item 2\" />\n * </NavigationGroup>\n * <NavigationGroup title=\"Group 2\">\n * <NavigationItem\n * item=\"item-3\"\n * navigateToMenu=\"category\"\n * title=\"Category\"\n * />\n * </NavigationGroup>\n * </NavigationMenu>\n *\n * <NavigationMenu\n * backButtonLabel=\"Home\"\n * menu=\"category\"\n * parentMenu=\"root\"\n * title=\"Category\"\n * >\n * <NavigationItem badge=\"1\" item=\"child-1\" title=\"Child 1\" />\n * <NavigationItem item=\"child-2\" title=\"Child 2\" />\n * </NavigationMenu>\n * </Navigation>\n * );\n * ```\n */\nexport function Navigation( {\n\tactiveItem,\n\tactiveMenu = ROOT_MENU,\n\tchildren,\n\tclassName,\n\tonActivateMenu = noop,\n}: NavigationProps ) {\n\tconst [ menu, setMenu ] = useState( activeMenu );\n\tconst [ slideOrigin, setSlideOrigin ] = useState< 'left' | 'right' >();\n\tconst navigationTree = useCreateNavigationTree();\n\tconst defaultSlideOrigin = isRTL() ? 'right' : 'left';\n\n\tconst setActiveMenu: NavigationContextType[ 'setActiveMenu' ] = (\n\t\tmenuId,\n\t\tslideInOrigin = defaultSlideOrigin\n\t) => {\n\t\tif ( ! navigationTree.getMenu( menuId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSlideOrigin( slideInOrigin );\n\t\tsetMenu( menuId );\n\t\tonActivateMenu( menuId );\n\t};\n\n\t// Used to prevent the sliding animation on mount\n\tconst isMountedRef = useRef( false );\n\tuseEffect( () => {\n\t\tif ( ! isMountedRef.current ) {\n\t\t\tisMountedRef.current = true;\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( activeMenu !== menu ) {\n\t\t\tsetActiveMenu( activeMenu );\n\t\t}\n\t\t// Not adding deps for now, as it would require either a larger refactor or some questionable workarounds.\n\t\t// See https://github.com/WordPress/gutenberg/pull/41612 for context.\n\t}, [ activeMenu ] );\n\n\tconst context = {\n\t\tactiveItem,\n\t\tactiveMenu: menu,\n\t\tsetActiveMenu,\n\t\tnavigationTree,\n\t};\n\n\tconst classes = clsx( 'components-navigation', className );\n\tconst animateClassName = getAnimateClassName( {\n\t\ttype: 'slide-in',\n\t\torigin: slideOrigin,\n\t} );\n\n\treturn (\n\t\t<NavigationUI className={ classes }>\n\t\t\t<div\n\t\t\t\tkey={ menu }\n\t\t\t\tclassName={\n\t\t\t\t\tanimateClassName\n\t\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t\t[ animateClassName ]:\n\t\t\t\t\t\t\t\t\tisMountedRef.current && slideOrigin,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<NavigationContext.Provider value={ context }>\n\t\t\t\t\t{ children }\n\t\t\t\t</NavigationContext.Provider>\n\t\t\t</div>\n\t\t</NavigationUI>\n\t);\n}\n\nexport default Navigation;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","deprecated","useEffect","useRef","useState","isRTL","getAnimateClassName","ROOT_MENU","NavigationContext","NavigationUI","useCreateNavigationTree","jsx","_jsx","noop","Navigation","activeItem","activeMenu","children","className","onActivateMenu","menu","setMenu","slideOrigin","setSlideOrigin","navigationTree","defaultSlideOrigin","since","version","alternative","setActiveMenu","menuId","slideInOrigin","getMenu","isMountedRef","current","context","classes","animateClassName","type","origin","undefined","Provider","value"],"sources":["@wordpress/components/src/navigation/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getAnimateClassName } from '../animate';\nimport { ROOT_MENU } from './constants';\nimport { NavigationContext } from './context';\nimport { NavigationUI } from './styles/navigation-styles';\nimport { useCreateNavigationTree } from './use-create-navigation-tree';\n\nimport type {\n\tNavigationProps,\n\tNavigationContext as NavigationContextType,\n} from './types';\n\nconst noop = () => {};\n\n/**\n * Render a navigation list with optional groupings and hierarchy.\n *\n * @deprecated Use `Navigator` instead.\n *\n * ```jsx\n * import {\n * __experimentalNavigation as Navigation,\n * __experimentalNavigationGroup as NavigationGroup,\n * __experimentalNavigationItem as NavigationItem,\n * __experimentalNavigationMenu as NavigationMenu,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <Navigation>\n * <NavigationMenu title=\"Home\">\n * <NavigationGroup title=\"Group 1\">\n * <NavigationItem item=\"item-1\" title=\"Item 1\" />\n * <NavigationItem item=\"item-2\" title=\"Item 2\" />\n * </NavigationGroup>\n * <NavigationGroup title=\"Group 2\">\n * <NavigationItem\n * item=\"item-3\"\n * navigateToMenu=\"category\"\n * title=\"Category\"\n * />\n * </NavigationGroup>\n * </NavigationMenu>\n *\n * <NavigationMenu\n * backButtonLabel=\"Home\"\n * menu=\"category\"\n * parentMenu=\"root\"\n * title=\"Category\"\n * >\n * <NavigationItem badge=\"1\" item=\"child-1\" title=\"Child 1\" />\n * <NavigationItem item=\"child-2\" title=\"Child 2\" />\n * </NavigationMenu>\n * </Navigation>\n * );\n * ```\n */\nexport function Navigation( {\n\tactiveItem,\n\tactiveMenu = ROOT_MENU,\n\tchildren,\n\tclassName,\n\tonActivateMenu = noop,\n}: NavigationProps ) {\n\tconst [ menu, setMenu ] = useState( activeMenu );\n\tconst [ slideOrigin, setSlideOrigin ] = useState< 'left' | 'right' >();\n\tconst navigationTree = useCreateNavigationTree();\n\tconst defaultSlideOrigin = isRTL() ? 'right' : 'left';\n\n\tdeprecated( 'wp.components.Navigation (and all subcomponents)', {\n\t\tsince: '6.8',\n\t\tversion: '7.1',\n\t\talternative: 'wp.components.Navigator',\n\t} );\n\n\tconst setActiveMenu: NavigationContextType[ 'setActiveMenu' ] = (\n\t\tmenuId,\n\t\tslideInOrigin = defaultSlideOrigin\n\t) => {\n\t\tif ( ! navigationTree.getMenu( menuId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSlideOrigin( slideInOrigin );\n\t\tsetMenu( menuId );\n\t\tonActivateMenu( menuId );\n\t};\n\n\t// Used to prevent the sliding animation on mount\n\tconst isMountedRef = useRef( false );\n\tuseEffect( () => {\n\t\tif ( ! isMountedRef.current ) {\n\t\t\tisMountedRef.current = true;\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( activeMenu !== menu ) {\n\t\t\tsetActiveMenu( activeMenu );\n\t\t}\n\t\t// Not adding deps for now, as it would require either a larger refactor or some questionable workarounds.\n\t\t// See https://github.com/WordPress/gutenberg/pull/41612 for context.\n\t}, [ activeMenu ] );\n\n\tconst context = {\n\t\tactiveItem,\n\t\tactiveMenu: menu,\n\t\tsetActiveMenu,\n\t\tnavigationTree,\n\t};\n\n\tconst classes = clsx( 'components-navigation', className );\n\tconst animateClassName = getAnimateClassName( {\n\t\ttype: 'slide-in',\n\t\torigin: slideOrigin,\n\t} );\n\n\treturn (\n\t\t<NavigationUI className={ classes }>\n\t\t\t<div\n\t\t\t\tkey={ menu }\n\t\t\t\tclassName={\n\t\t\t\t\tanimateClassName\n\t\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t\t[ animateClassName ]:\n\t\t\t\t\t\t\t\t\tisMountedRef.current && slideOrigin,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<NavigationContext.Provider value={ context }>\n\t\t\t\t\t{ children }\n\t\t\t\t</NavigationContext.Provider>\n\t\t\t</div>\n\t\t</NavigationUI>\n\t);\n}\n\nexport default Navigation;\n"],"mappings":"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","ignoreList":[]}
@@ -69,6 +69,7 @@ export function NavigationItem(props) {
69
69
  };
70
70
  const itemProps = isText ? restProps : {
71
71
  as: Button,
72
+ __next40pxDefaultSize: 'as' in restProps ? restProps.as === undefined : true,
72
73
  href,
73
74
  onClick: onItemClick,
74
75
  'aria-current': isActive ? 'page' : undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Icon","chevronLeft","chevronRight","isRTL","Button","useNavigationContext","ItemUI","ItemIconUI","NavigationItemBaseContent","NavigationItemBase","jsx","_jsx","jsxs","_jsxs","noop","NavigationItem","props","badge","children","className","href","item","navigateToMenu","onClick","title","icon","hideIfTargetMenuEmpty","isText","restProps","activeItem","setActiveMenu","navigationTree","isMenuEmpty","isActive","classes","onItemClick","event","navigationIcon","baseProps","undefined","itemProps","as"],"sources":["@wordpress/components/src/navigation/item/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, chevronLeft, chevronRight } from '@wordpress/icons';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { useNavigationContext } from '../context';\nimport { ItemUI, ItemIconUI } from '../styles/navigation-styles';\nimport NavigationItemBaseContent from './base-content';\nimport NavigationItemBase from './base';\n\nimport type { NavigationItemProps } from '../types';\n\nconst noop = () => {};\n\n/**\n * @deprecated Use `Navigator` instead.\n */\nexport function NavigationItem( props: NavigationItemProps ) {\n\tconst {\n\t\tbadge,\n\t\tchildren,\n\t\tclassName,\n\t\thref,\n\t\titem,\n\t\tnavigateToMenu,\n\t\tonClick = noop,\n\t\ttitle,\n\t\ticon,\n\t\thideIfTargetMenuEmpty,\n\t\tisText,\n\t\t...restProps\n\t} = props;\n\n\tconst {\n\t\tactiveItem,\n\t\tsetActiveMenu,\n\t\tnavigationTree: { isMenuEmpty },\n\t} = useNavigationContext();\n\n\t// If hideIfTargetMenuEmpty prop is true\n\t// And the menu we are supposed to navigate to\n\t// Is marked as empty, then we skip rendering the item.\n\tif (\n\t\thideIfTargetMenuEmpty &&\n\t\tnavigateToMenu &&\n\t\tisMenuEmpty( navigateToMenu )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst isActive = item && activeItem === item;\n\n\tconst classes = clsx( className, {\n\t\t'is-active': isActive,\n\t} );\n\n\tconst onItemClick: React.MouseEventHandler<\n\t\tHTMLButtonElement | HTMLAnchorElement\n\t> = ( event ) => {\n\t\tif ( navigateToMenu ) {\n\t\t\tsetActiveMenu( navigateToMenu );\n\t\t}\n\n\t\tonClick( event );\n\t};\n\tconst navigationIcon = isRTL() ? chevronLeft : chevronRight;\n\tconst baseProps = children ? props : { ...props, onClick: undefined };\n\tconst itemProps = isText\n\t\t? restProps\n\t\t: {\n\t\t\t\tas: Button,\n\t\t\t\thref,\n\t\t\t\tonClick: onItemClick,\n\t\t\t\t'aria-current': isActive ? 'page' : undefined,\n\t\t\t\t...restProps,\n\t\t };\n\n\treturn (\n\t\t<NavigationItemBase { ...baseProps } className={ classes }>\n\t\t\t{ children || (\n\t\t\t\t<ItemUI { ...itemProps }>\n\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t<ItemIconUI>\n\t\t\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t\t</ItemIconUI>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<NavigationItemBaseContent\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tbadge={ badge }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ navigateToMenu && <Icon icon={ navigationIcon } /> }\n\t\t\t\t</ItemUI>\n\t\t\t) }\n\t\t</NavigationItemBase>\n\t);\n}\n\nexport default NavigationItem;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,IAAI,EAAEC,WAAW,EAAEC,YAAY,QAAQ,kBAAkB;AAClE,SAASC,KAAK,QAAQ,iBAAiB;;AAEvC;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,oBAAoB,QAAQ,YAAY;AACjD,SAASC,MAAM,EAAEC,UAAU,QAAQ,6BAA6B;AAChE,OAAOC,yBAAyB,MAAM,gBAAgB;AACtD,OAAOC,kBAAkB,MAAM,QAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIxC,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAEC,KAA0B,EAAG;EAC5D,MAAM;IACLC,KAAK;IACLC,QAAQ;IACRC,SAAS;IACTC,IAAI;IACJC,IAAI;IACJC,cAAc;IACdC,OAAO,GAAGT,IAAI;IACdU,KAAK;IACLC,IAAI;IACJC,qBAAqB;IACrBC,MAAM;IACN,GAAGC;EACJ,CAAC,GAAGZ,KAAK;EAET,MAAM;IACLa,UAAU;IACVC,aAAa;IACbC,cAAc,EAAE;MAAEC;IAAY;EAC/B,CAAC,GAAG3B,oBAAoB,CAAC,CAAC;;EAE1B;EACA;EACA;EACA,IACCqB,qBAAqB,IACrBJ,cAAc,IACdU,WAAW,CAAEV,cAAe,CAAC,EAC5B;IACD,OAAO,IAAI;EACZ;EAEA,MAAMW,QAAQ,GAAGZ,IAAI,IAAIQ,UAAU,KAAKR,IAAI;EAE5C,MAAMa,OAAO,GAAGnC,IAAI,CAAEoB,SAAS,EAAE;IAChC,WAAW,EAAEc;EACd,CAAE,CAAC;EAEH,MAAME,WAEL,GAAKC,KAAK,IAAM;IAChB,IAAKd,cAAc,EAAG;MACrBQ,aAAa,CAAER,cAAe,CAAC;IAChC;IAEAC,OAAO,CAAEa,KAAM,CAAC;EACjB,CAAC;EACD,MAAMC,cAAc,GAAGlC,KAAK,CAAC,CAAC,GAAGF,WAAW,GAAGC,YAAY;EAC3D,MAAMoC,SAAS,GAAGpB,QAAQ,GAAGF,KAAK,GAAG;IAAE,GAAGA,KAAK;IAAEO,OAAO,EAAEgB;EAAU,CAAC;EACrE,MAAMC,SAAS,GAAGb,MAAM,GACrBC,SAAS,GACT;IACAa,EAAE,EAAErC,MAAM;IACVgB,IAAI;IACJG,OAAO,EAAEY,WAAW;IACpB,cAAc,EAAEF,QAAQ,GAAG,MAAM,GAAGM,SAAS;IAC7C,GAAGX;EACH,CAAC;EAEJ,oBACCjB,IAAA,CAACF,kBAAkB;IAAA,GAAM6B,SAAS;IAAGnB,SAAS,EAAGe,OAAS;IAAAhB,QAAA,EACvDA,QAAQ,iBACTL,KAAA,CAACP,MAAM;MAAA,GAAMkC,SAAS;MAAAtB,QAAA,GACnBO,IAAI,iBACLd,IAAA,CAACJ,UAAU;QAAAW,QAAA,eACVP,IAAA,CAACX,IAAI;UAACyB,IAAI,EAAGA;QAAM,CAAE;MAAC,CACX,CACZ,eAEDd,IAAA,CAACH,yBAAyB;QACzBgB,KAAK,EAAGA,KAAO;QACfP,KAAK,EAAGA;MAAO,CACf,CAAC,EAEAK,cAAc,iBAAIX,IAAA,CAACX,IAAI;QAACyB,IAAI,EAAGY;MAAgB,CAAE,CAAC;IAAA,CAC7C;EACR,CACkB,CAAC;AAEvB;AAEA,eAAetB,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Icon","chevronLeft","chevronRight","isRTL","Button","useNavigationContext","ItemUI","ItemIconUI","NavigationItemBaseContent","NavigationItemBase","jsx","_jsx","jsxs","_jsxs","noop","NavigationItem","props","badge","children","className","href","item","navigateToMenu","onClick","title","icon","hideIfTargetMenuEmpty","isText","restProps","activeItem","setActiveMenu","navigationTree","isMenuEmpty","isActive","classes","onItemClick","event","navigationIcon","baseProps","undefined","itemProps","as","__next40pxDefaultSize"],"sources":["@wordpress/components/src/navigation/item/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { Icon, chevronLeft, chevronRight } from '@wordpress/icons';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { useNavigationContext } from '../context';\nimport { ItemUI, ItemIconUI } from '../styles/navigation-styles';\nimport NavigationItemBaseContent from './base-content';\nimport NavigationItemBase from './base';\n\nimport type { NavigationItemProps } from '../types';\n\nconst noop = () => {};\n\n/**\n * @deprecated Use `Navigator` instead.\n */\nexport function NavigationItem( props: NavigationItemProps ) {\n\tconst {\n\t\tbadge,\n\t\tchildren,\n\t\tclassName,\n\t\thref,\n\t\titem,\n\t\tnavigateToMenu,\n\t\tonClick = noop,\n\t\ttitle,\n\t\ticon,\n\t\thideIfTargetMenuEmpty,\n\t\tisText,\n\t\t...restProps\n\t} = props;\n\n\tconst {\n\t\tactiveItem,\n\t\tsetActiveMenu,\n\t\tnavigationTree: { isMenuEmpty },\n\t} = useNavigationContext();\n\n\t// If hideIfTargetMenuEmpty prop is true\n\t// And the menu we are supposed to navigate to\n\t// Is marked as empty, then we skip rendering the item.\n\tif (\n\t\thideIfTargetMenuEmpty &&\n\t\tnavigateToMenu &&\n\t\tisMenuEmpty( navigateToMenu )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst isActive = item && activeItem === item;\n\n\tconst classes = clsx( className, {\n\t\t'is-active': isActive,\n\t} );\n\n\tconst onItemClick: React.MouseEventHandler<\n\t\tHTMLButtonElement | HTMLAnchorElement\n\t> = ( event ) => {\n\t\tif ( navigateToMenu ) {\n\t\t\tsetActiveMenu( navigateToMenu );\n\t\t}\n\n\t\tonClick( event );\n\t};\n\tconst navigationIcon = isRTL() ? chevronLeft : chevronRight;\n\tconst baseProps = children ? props : { ...props, onClick: undefined };\n\tconst itemProps = isText\n\t\t? restProps\n\t\t: {\n\t\t\t\tas: Button,\n\t\t\t\t__next40pxDefaultSize:\n\t\t\t\t\t'as' in restProps ? restProps.as === undefined : true,\n\t\t\t\thref,\n\t\t\t\tonClick: onItemClick,\n\t\t\t\t'aria-current': isActive ? 'page' : undefined,\n\t\t\t\t...restProps,\n\t\t };\n\n\treturn (\n\t\t<NavigationItemBase { ...baseProps } className={ classes }>\n\t\t\t{ children || (\n\t\t\t\t<ItemUI { ...itemProps }>\n\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t<ItemIconUI>\n\t\t\t\t\t\t\t<Icon icon={ icon } />\n\t\t\t\t\t\t</ItemIconUI>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<NavigationItemBaseContent\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tbadge={ badge }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ navigateToMenu && <Icon icon={ navigationIcon } /> }\n\t\t\t\t</ItemUI>\n\t\t\t) }\n\t\t</NavigationItemBase>\n\t);\n}\n\nexport default NavigationItem;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,IAAI,EAAEC,WAAW,EAAEC,YAAY,QAAQ,kBAAkB;AAClE,SAASC,KAAK,QAAQ,iBAAiB;;AAEvC;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AACjC,SAASC,oBAAoB,QAAQ,YAAY;AACjD,SAASC,MAAM,EAAEC,UAAU,QAAQ,6BAA6B;AAChE,OAAOC,yBAAyB,MAAM,gBAAgB;AACtD,OAAOC,kBAAkB,MAAM,QAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIxC,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAEC,KAA0B,EAAG;EAC5D,MAAM;IACLC,KAAK;IACLC,QAAQ;IACRC,SAAS;IACTC,IAAI;IACJC,IAAI;IACJC,cAAc;IACdC,OAAO,GAAGT,IAAI;IACdU,KAAK;IACLC,IAAI;IACJC,qBAAqB;IACrBC,MAAM;IACN,GAAGC;EACJ,CAAC,GAAGZ,KAAK;EAET,MAAM;IACLa,UAAU;IACVC,aAAa;IACbC,cAAc,EAAE;MAAEC;IAAY;EAC/B,CAAC,GAAG3B,oBAAoB,CAAC,CAAC;;EAE1B;EACA;EACA;EACA,IACCqB,qBAAqB,IACrBJ,cAAc,IACdU,WAAW,CAAEV,cAAe,CAAC,EAC5B;IACD,OAAO,IAAI;EACZ;EAEA,MAAMW,QAAQ,GAAGZ,IAAI,IAAIQ,UAAU,KAAKR,IAAI;EAE5C,MAAMa,OAAO,GAAGnC,IAAI,CAAEoB,SAAS,EAAE;IAChC,WAAW,EAAEc;EACd,CAAE,CAAC;EAEH,MAAME,WAEL,GAAKC,KAAK,IAAM;IAChB,IAAKd,cAAc,EAAG;MACrBQ,aAAa,CAAER,cAAe,CAAC;IAChC;IAEAC,OAAO,CAAEa,KAAM,CAAC;EACjB,CAAC;EACD,MAAMC,cAAc,GAAGlC,KAAK,CAAC,CAAC,GAAGF,WAAW,GAAGC,YAAY;EAC3D,MAAMoC,SAAS,GAAGpB,QAAQ,GAAGF,KAAK,GAAG;IAAE,GAAGA,KAAK;IAAEO,OAAO,EAAEgB;EAAU,CAAC;EACrE,MAAMC,SAAS,GAAGb,MAAM,GACrBC,SAAS,GACT;IACAa,EAAE,EAAErC,MAAM;IACVsC,qBAAqB,EACpB,IAAI,IAAId,SAAS,GAAGA,SAAS,CAACa,EAAE,KAAKF,SAAS,GAAG,IAAI;IACtDnB,IAAI;IACJG,OAAO,EAAEY,WAAW;IACpB,cAAc,EAAEF,QAAQ,GAAG,MAAM,GAAGM,SAAS;IAC7C,GAAGX;EACH,CAAC;EAEJ,oBACCjB,IAAA,CAACF,kBAAkB;IAAA,GAAM6B,SAAS;IAAGnB,SAAS,EAAGe,OAAS;IAAAhB,QAAA,EACvDA,QAAQ,iBACTL,KAAA,CAACP,MAAM;MAAA,GAAMkC,SAAS;MAAAtB,QAAA,GACnBO,IAAI,iBACLd,IAAA,CAACJ,UAAU;QAAAW,QAAA,eACVP,IAAA,CAACX,IAAI;UAACyB,IAAI,EAAGA;QAAM,CAAE;MAAC,CACX,CACZ,eAEDd,IAAA,CAACH,yBAAyB;QACzBgB,KAAK,EAAGA,KAAO;QACfP,KAAK,EAAGA;MAAO,CACf,CAAC,EAEAK,cAAc,iBAAIX,IAAA,CAACX,IAAI;QAACyB,IAAI,EAAGY;MAAgB,CAAE,CAAC;IAAA,CAC7C;EACR,CACkB,CAAC;AAEvB;AAEA,eAAetB,cAAc","ignoreList":[]}
@@ -194,6 +194,7 @@ function UnforwardedNumberControl(props, forwardedRef) {
194
194
  return (_stateReducerProp = stateReducerProp?.(baseState, action)) !== null && _stateReducerProp !== void 0 ? _stateReducerProp : baseState;
195
195
  },
196
196
  size: size,
197
+ __shouldNotWarnDeprecated36pxSize: true,
197
198
  suffix: spinControls === 'custom' ? /*#__PURE__*/_jsxs(_Fragment, {
198
199
  children: [suffix, /*#__PURE__*/_jsx(Spacer, {
199
200
  marginBottom: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useRef","forwardRef","isRTL","__","plus","plusIcon","reset","resetIcon","useMergeRefs","deprecated","Input","SpinButton","styles","inputControlActionTypes","add","subtract","roundClamp","ensureNumber","isValueEmpty","HStack","Spacer","useCx","useDeprecated36pxDefaultSizeProp","maybeWarnDeprecated36pxSize","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","noop","UnforwardedNumberControl","props","forwardedRef","__unstableStateReducer","stateReducerProp","className","dragDirection","hideHTMLArrows","spinControls","isDragEnabled","isShiftStepEnabled","label","max","Infinity","min","required","shiftStep","step","spinFactor","type","typeProp","value","valueProp","size","suffix","onChange","__shouldNotWarnDeprecated36pxSize","restProps","componentName","__next40pxDefaultSize","alternative","since","version","inputRef","mergedRef","isStepAny","baseStep","baseSpin","baseValue","constrainValue","stepOverride","Math","autoComplete","undefined","classes","cx","spinButtonClasses","smallSpinButtons","spinValue","direction","event","preventDefault","shift","shiftKey","delta","nextValue","numberControlStateReducer","state","action","nextState","payload","currentValue","PRESS_UP","PRESS_DOWN","DRAG","x","y","enableShift","modifier","directionModifier","ceil","abs","sign","distance","PRESS_ENTER","COMMIT","applyEmptyValue","buildSpinButtonClickHandler","String","target","current","inputMode","ref","_stateReducerProp","baseState","children","marginBottom","marginRight","spacing","icon","onClick","NumberControl"],"sources":["@wordpress/components/src/number-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { plus as plusIcon, reset as resetIcon } from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { Input, SpinButton, styles } from './styles/number-control-styles';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { add, subtract, roundClamp } from '../utils/math';\nimport { ensureNumber, isValueEmpty } from '../utils/values';\nimport type { WordPressComponentProps } from '../context/wordpress-component';\nimport type { NumberControlProps } from './types';\nimport { HStack } from '../h-stack';\nimport { Spacer } from '../spacer';\nimport { useCx } from '../utils';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nconst noop = () => {};\n\nfunction UnforwardedNumberControl(\n\tprops: WordPressComponentProps< NumberControlProps, 'input', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer: stateReducerProp,\n\t\tclassName,\n\t\tdragDirection = 'n',\n\t\thideHTMLArrows = false,\n\t\tspinControls = hideHTMLArrows ? 'none' : 'native',\n\t\tisDragEnabled = true,\n\t\tisShiftStepEnabled = true,\n\t\tlabel,\n\t\tmax = Infinity,\n\t\tmin = -Infinity,\n\t\trequired = false,\n\t\tshiftStep = 10,\n\t\tstep = 1,\n\t\tspinFactor = 1,\n\t\ttype: typeProp = 'number',\n\t\tvalue: valueProp,\n\t\tsize = 'default',\n\t\tsuffix,\n\t\tonChange = noop,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\t...restProps\n\t} = useDeprecated36pxDefaultSizeProp< NumberControlProps >( props );\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'NumberControl',\n\t\tsize,\n\t\t__next40pxDefaultSize: restProps.__next40pxDefaultSize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\tif ( hideHTMLArrows ) {\n\t\tdeprecated( 'wp.components.NumberControl hideHTMLArrows prop ', {\n\t\t\talternative: 'spinControls=\"none\"',\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\tconst inputRef = useRef< HTMLInputElement >();\n\tconst mergedRef = useMergeRefs( [ inputRef, forwardedRef ] );\n\n\tconst isStepAny = step === 'any';\n\tconst baseStep = isStepAny ? 1 : ensureNumber( step );\n\tconst baseSpin = ensureNumber( spinFactor ) * baseStep;\n\tconst baseValue = roundClamp( 0, min, max, baseStep );\n\tconst constrainValue = (\n\t\tvalue: number | string,\n\t\tstepOverride?: number\n\t) => {\n\t\t// When step is \"any\" clamp the value, otherwise round and clamp it.\n\t\t// Use '' + to convert to string for use in input value attribute.\n\t\treturn isStepAny\n\t\t\t? '' + Math.min( max, Math.max( min, ensureNumber( value ) ) )\n\t\t\t: '' + roundClamp( value, min, max, stepOverride ?? baseStep );\n\t};\n\n\tconst autoComplete = typeProp === 'number' ? 'off' : undefined;\n\tconst classes = clsx( 'components-number-control', className );\n\tconst cx = useCx();\n\tconst spinButtonClasses = cx( size === 'small' && styles.smallSpinButtons );\n\n\tconst spinValue = (\n\t\tvalue: string | number | undefined,\n\t\tdirection: 'up' | 'down',\n\t\tevent: KeyboardEvent | MouseEvent | undefined\n\t) => {\n\t\tevent?.preventDefault();\n\t\tconst shift = event?.shiftKey && isShiftStepEnabled;\n\t\tconst delta = shift ? ensureNumber( shiftStep ) * baseSpin : baseSpin;\n\t\tlet nextValue = isValueEmpty( value ) ? baseValue : value;\n\t\tif ( direction === 'up' ) {\n\t\t\tnextValue = add( nextValue, delta );\n\t\t} else if ( direction === 'down' ) {\n\t\t\tnextValue = subtract( nextValue, delta );\n\t\t}\n\t\treturn constrainValue( nextValue, shift ? delta : undefined );\n\t};\n\n\t/**\n\t * \"Middleware\" function that intercepts updates from InputControl.\n\t * This allows us to tap into actions to transform the (next) state for\n\t * InputControl.\n\t *\n\t * @return The updated state to apply to InputControl\n\t */\n\tconst numberControlStateReducer: NumberControlProps[ '__unstableStateReducer' ] =\n\t\t( state, action ) => {\n\t\t\tconst nextState = { ...state };\n\n\t\t\tconst { type, payload } = action;\n\t\t\tconst event = payload.event;\n\t\t\tconst currentValue = nextState.value;\n\n\t\t\t/**\n\t\t\t * Handles custom UP and DOWN Keyboard events\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_UP ||\n\t\t\t\ttype === inputControlActionTypes.PRESS_DOWN\n\t\t\t) {\n\t\t\t\tnextState.value = spinValue(\n\t\t\t\t\tcurrentValue,\n\t\t\t\t\ttype === inputControlActionTypes.PRESS_UP ? 'up' : 'down',\n\t\t\t\t\tevent as KeyboardEvent | undefined\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles drag to update events\n\t\t\t */\n\t\t\tif ( type === inputControlActionTypes.DRAG && isDragEnabled ) {\n\t\t\t\tconst [ x, y ] = payload.delta;\n\t\t\t\tconst enableShift = payload.shiftKey && isShiftStepEnabled;\n\t\t\t\tconst modifier = enableShift\n\t\t\t\t\t? ensureNumber( shiftStep ) * baseSpin\n\t\t\t\t\t: baseSpin;\n\n\t\t\t\tlet directionModifier;\n\t\t\t\tlet delta;\n\n\t\t\t\tswitch ( dragDirection ) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = -1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'e':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? -1 : 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'w':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? 1 : -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( delta !== 0 ) {\n\t\t\t\t\tdelta = Math.ceil( Math.abs( delta ) ) * Math.sign( delta );\n\t\t\t\t\tconst distance = delta * modifier * directionModifier;\n\n\t\t\t\t\tnextState.value = constrainValue(\n\t\t\t\t\t\t// @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t\tadd( currentValue, distance ),\n\t\t\t\t\t\tenableShift ? modifier : undefined\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles commit (ENTER key press or blur)\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_ENTER ||\n\t\t\t\ttype === inputControlActionTypes.COMMIT\n\t\t\t) {\n\t\t\t\tconst applyEmptyValue =\n\t\t\t\t\trequired === false && currentValue === '';\n\n\t\t\t\tnextState.value = applyEmptyValue\n\t\t\t\t\t? currentValue\n\t\t\t\t\t: // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t constrainValue( currentValue );\n\t\t\t}\n\n\t\t\treturn nextState;\n\t\t};\n\n\tconst buildSpinButtonClickHandler =\n\t\t( direction: 'up' | 'down' ) =>\n\t\t( event: MouseEvent< HTMLButtonElement > ) =>\n\t\t\tonChange( String( spinValue( valueProp, direction, event ) ), {\n\t\t\t\t// Set event.target to the <input> so that consumers can use\n\t\t\t\t// e.g. event.target.validity.\n\t\t\t\tevent: {\n\t\t\t\t\t...event,\n\t\t\t\t\ttarget: inputRef.current!,\n\t\t\t\t},\n\t\t\t} );\n\n\treturn (\n\t\t<Input\n\t\t\tautoComplete={ autoComplete }\n\t\t\tinputMode=\"numeric\"\n\t\t\t{ ...restProps }\n\t\t\tclassName={ classes }\n\t\t\tdragDirection={ dragDirection }\n\t\t\thideHTMLArrows={ spinControls !== 'native' }\n\t\t\tisDragEnabled={ isDragEnabled }\n\t\t\tlabel={ label }\n\t\t\tmax={ max }\n\t\t\tmin={ min }\n\t\t\tref={ mergedRef }\n\t\t\trequired={ required }\n\t\t\tstep={ step }\n\t\t\ttype={ typeProp }\n\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\tvalue={ valueProp }\n\t\t\t__unstableStateReducer={ ( state, action ) => {\n\t\t\t\tconst baseState = numberControlStateReducer( state, action );\n\t\t\t\treturn stateReducerProp?.( baseState, action ) ?? baseState;\n\t\t\t} }\n\t\t\tsize={ size }\n\t\t\tsuffix={\n\t\t\t\tspinControls === 'custom' ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t<Spacer marginBottom={ 0 } marginRight={ 2 }>\n\t\t\t\t\t\t\t<HStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ plusIcon }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Increment' ) }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'up'\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<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Decrement' ) }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'down'\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</HStack>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tsuffix\n\t\t\t\t)\n\t\t\t}\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport const NumberControl = forwardRef( UnforwardedNumberControl );\n\nexport default NumberControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useRef","forwardRef","isRTL","__","plus","plusIcon","reset","resetIcon","useMergeRefs","deprecated","Input","SpinButton","styles","inputControlActionTypes","add","subtract","roundClamp","ensureNumber","isValueEmpty","HStack","Spacer","useCx","useDeprecated36pxDefaultSizeProp","maybeWarnDeprecated36pxSize","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","noop","UnforwardedNumberControl","props","forwardedRef","__unstableStateReducer","stateReducerProp","className","dragDirection","hideHTMLArrows","spinControls","isDragEnabled","isShiftStepEnabled","label","max","Infinity","min","required","shiftStep","step","spinFactor","type","typeProp","value","valueProp","size","suffix","onChange","__shouldNotWarnDeprecated36pxSize","restProps","componentName","__next40pxDefaultSize","alternative","since","version","inputRef","mergedRef","isStepAny","baseStep","baseSpin","baseValue","constrainValue","stepOverride","Math","autoComplete","undefined","classes","cx","spinButtonClasses","smallSpinButtons","spinValue","direction","event","preventDefault","shift","shiftKey","delta","nextValue","numberControlStateReducer","state","action","nextState","payload","currentValue","PRESS_UP","PRESS_DOWN","DRAG","x","y","enableShift","modifier","directionModifier","ceil","abs","sign","distance","PRESS_ENTER","COMMIT","applyEmptyValue","buildSpinButtonClickHandler","String","target","current","inputMode","ref","_stateReducerProp","baseState","children","marginBottom","marginRight","spacing","icon","onClick","NumberControl"],"sources":["@wordpress/components/src/number-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { plus as plusIcon, reset as resetIcon } from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { Input, SpinButton, styles } from './styles/number-control-styles';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { add, subtract, roundClamp } from '../utils/math';\nimport { ensureNumber, isValueEmpty } from '../utils/values';\nimport type { WordPressComponentProps } from '../context/wordpress-component';\nimport type { NumberControlProps } from './types';\nimport { HStack } from '../h-stack';\nimport { Spacer } from '../spacer';\nimport { useCx } from '../utils';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nconst noop = () => {};\n\nfunction UnforwardedNumberControl(\n\tprops: WordPressComponentProps< NumberControlProps, 'input', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer: stateReducerProp,\n\t\tclassName,\n\t\tdragDirection = 'n',\n\t\thideHTMLArrows = false,\n\t\tspinControls = hideHTMLArrows ? 'none' : 'native',\n\t\tisDragEnabled = true,\n\t\tisShiftStepEnabled = true,\n\t\tlabel,\n\t\tmax = Infinity,\n\t\tmin = -Infinity,\n\t\trequired = false,\n\t\tshiftStep = 10,\n\t\tstep = 1,\n\t\tspinFactor = 1,\n\t\ttype: typeProp = 'number',\n\t\tvalue: valueProp,\n\t\tsize = 'default',\n\t\tsuffix,\n\t\tonChange = noop,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\t...restProps\n\t} = useDeprecated36pxDefaultSizeProp< NumberControlProps >( props );\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'NumberControl',\n\t\tsize,\n\t\t__next40pxDefaultSize: restProps.__next40pxDefaultSize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\tif ( hideHTMLArrows ) {\n\t\tdeprecated( 'wp.components.NumberControl hideHTMLArrows prop ', {\n\t\t\talternative: 'spinControls=\"none\"',\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\tconst inputRef = useRef< HTMLInputElement >();\n\tconst mergedRef = useMergeRefs( [ inputRef, forwardedRef ] );\n\n\tconst isStepAny = step === 'any';\n\tconst baseStep = isStepAny ? 1 : ensureNumber( step );\n\tconst baseSpin = ensureNumber( spinFactor ) * baseStep;\n\tconst baseValue = roundClamp( 0, min, max, baseStep );\n\tconst constrainValue = (\n\t\tvalue: number | string,\n\t\tstepOverride?: number\n\t) => {\n\t\t// When step is \"any\" clamp the value, otherwise round and clamp it.\n\t\t// Use '' + to convert to string for use in input value attribute.\n\t\treturn isStepAny\n\t\t\t? '' + Math.min( max, Math.max( min, ensureNumber( value ) ) )\n\t\t\t: '' + roundClamp( value, min, max, stepOverride ?? baseStep );\n\t};\n\n\tconst autoComplete = typeProp === 'number' ? 'off' : undefined;\n\tconst classes = clsx( 'components-number-control', className );\n\tconst cx = useCx();\n\tconst spinButtonClasses = cx( size === 'small' && styles.smallSpinButtons );\n\n\tconst spinValue = (\n\t\tvalue: string | number | undefined,\n\t\tdirection: 'up' | 'down',\n\t\tevent: KeyboardEvent | MouseEvent | undefined\n\t) => {\n\t\tevent?.preventDefault();\n\t\tconst shift = event?.shiftKey && isShiftStepEnabled;\n\t\tconst delta = shift ? ensureNumber( shiftStep ) * baseSpin : baseSpin;\n\t\tlet nextValue = isValueEmpty( value ) ? baseValue : value;\n\t\tif ( direction === 'up' ) {\n\t\t\tnextValue = add( nextValue, delta );\n\t\t} else if ( direction === 'down' ) {\n\t\t\tnextValue = subtract( nextValue, delta );\n\t\t}\n\t\treturn constrainValue( nextValue, shift ? delta : undefined );\n\t};\n\n\t/**\n\t * \"Middleware\" function that intercepts updates from InputControl.\n\t * This allows us to tap into actions to transform the (next) state for\n\t * InputControl.\n\t *\n\t * @return The updated state to apply to InputControl\n\t */\n\tconst numberControlStateReducer: NumberControlProps[ '__unstableStateReducer' ] =\n\t\t( state, action ) => {\n\t\t\tconst nextState = { ...state };\n\n\t\t\tconst { type, payload } = action;\n\t\t\tconst event = payload.event;\n\t\t\tconst currentValue = nextState.value;\n\n\t\t\t/**\n\t\t\t * Handles custom UP and DOWN Keyboard events\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_UP ||\n\t\t\t\ttype === inputControlActionTypes.PRESS_DOWN\n\t\t\t) {\n\t\t\t\tnextState.value = spinValue(\n\t\t\t\t\tcurrentValue,\n\t\t\t\t\ttype === inputControlActionTypes.PRESS_UP ? 'up' : 'down',\n\t\t\t\t\tevent as KeyboardEvent | undefined\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles drag to update events\n\t\t\t */\n\t\t\tif ( type === inputControlActionTypes.DRAG && isDragEnabled ) {\n\t\t\t\tconst [ x, y ] = payload.delta;\n\t\t\t\tconst enableShift = payload.shiftKey && isShiftStepEnabled;\n\t\t\t\tconst modifier = enableShift\n\t\t\t\t\t? ensureNumber( shiftStep ) * baseSpin\n\t\t\t\t\t: baseSpin;\n\n\t\t\t\tlet directionModifier;\n\t\t\t\tlet delta;\n\n\t\t\t\tswitch ( dragDirection ) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = -1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'e':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? -1 : 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tdelta = y;\n\t\t\t\t\t\tdirectionModifier = 1;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'w':\n\t\t\t\t\t\tdelta = x;\n\t\t\t\t\t\tdirectionModifier = isRTL() ? 1 : -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif ( delta !== 0 ) {\n\t\t\t\t\tdelta = Math.ceil( Math.abs( delta ) ) * Math.sign( delta );\n\t\t\t\t\tconst distance = delta * modifier * directionModifier;\n\n\t\t\t\t\tnextState.value = constrainValue(\n\t\t\t\t\t\t// @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t\tadd( currentValue, distance ),\n\t\t\t\t\t\tenableShift ? modifier : undefined\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Handles commit (ENTER key press or blur)\n\t\t\t */\n\t\t\tif (\n\t\t\t\ttype === inputControlActionTypes.PRESS_ENTER ||\n\t\t\t\ttype === inputControlActionTypes.COMMIT\n\t\t\t) {\n\t\t\t\tconst applyEmptyValue =\n\t\t\t\t\trequired === false && currentValue === '';\n\n\t\t\t\tnextState.value = applyEmptyValue\n\t\t\t\t\t? currentValue\n\t\t\t\t\t: // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n\t\t\t\t\t constrainValue( currentValue );\n\t\t\t}\n\n\t\t\treturn nextState;\n\t\t};\n\n\tconst buildSpinButtonClickHandler =\n\t\t( direction: 'up' | 'down' ) =>\n\t\t( event: MouseEvent< HTMLButtonElement > ) =>\n\t\t\tonChange( String( spinValue( valueProp, direction, event ) ), {\n\t\t\t\t// Set event.target to the <input> so that consumers can use\n\t\t\t\t// e.g. event.target.validity.\n\t\t\t\tevent: {\n\t\t\t\t\t...event,\n\t\t\t\t\ttarget: inputRef.current!,\n\t\t\t\t},\n\t\t\t} );\n\n\treturn (\n\t\t<Input\n\t\t\tautoComplete={ autoComplete }\n\t\t\tinputMode=\"numeric\"\n\t\t\t{ ...restProps }\n\t\t\tclassName={ classes }\n\t\t\tdragDirection={ dragDirection }\n\t\t\thideHTMLArrows={ spinControls !== 'native' }\n\t\t\tisDragEnabled={ isDragEnabled }\n\t\t\tlabel={ label }\n\t\t\tmax={ max }\n\t\t\tmin={ min }\n\t\t\tref={ mergedRef }\n\t\t\trequired={ required }\n\t\t\tstep={ step }\n\t\t\ttype={ typeProp }\n\t\t\t// @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n\t\t\tvalue={ valueProp }\n\t\t\t__unstableStateReducer={ ( state, action ) => {\n\t\t\t\tconst baseState = numberControlStateReducer( state, action );\n\t\t\t\treturn stateReducerProp?.( baseState, action ) ?? baseState;\n\t\t\t} }\n\t\t\tsize={ size }\n\t\t\t__shouldNotWarnDeprecated36pxSize\n\t\t\tsuffix={\n\t\t\t\tspinControls === 'custom' ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t\t<Spacer marginBottom={ 0 } marginRight={ 2 }>\n\t\t\t\t\t\t\t<HStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ plusIcon }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Increment' ) }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'up'\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<SpinButton\n\t\t\t\t\t\t\t\t\tclassName={ spinButtonClasses }\n\t\t\t\t\t\t\t\t\ticon={ resetIcon }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Decrement' ) }\n\t\t\t\t\t\t\t\t\tonClick={ buildSpinButtonClickHandler(\n\t\t\t\t\t\t\t\t\t\t'down'\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</HStack>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tsuffix\n\t\t\t\t)\n\t\t\t}\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nexport const NumberControl = forwardRef( UnforwardedNumberControl );\n\nexport default NumberControl;\n"],"mappings":"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","ignoreList":[]}
@@ -38,6 +38,7 @@ function NameInput({
38
38
  label
39
39
  }) {
40
40
  return /*#__PURE__*/_jsx(NameInputControl, {
41
+ size: "compact",
41
42
  label: label,
42
43
  hideLabelFromVision: true,
43
44
  value: value,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useState","useRef","useEffect","useCallback","useMemo","__","sprintf","lineSolid","moreVertical","plus","useDebounce","Button","ColorPicker","FlexItem","HStack","Item","ItemGroup","VStack","GradientPicker","ColorPalette","DropdownMenu","Popover","PaletteActionsContainer","PaletteEditStyles","PaletteHeading","IndicatorStyled","NameContainer","NameInputControl","DoneButton","RemoveButton","PaletteEditContents","NavigableMenu","DEFAULT_GRADIENT","CustomGradientPicker","kebabCase","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_COLOR","NameInput","value","onChange","label","hideLabelFromVision","deduplicateElementSlugs","elements","slugCounts","map","element","_newSlug","newSlug","slug","getNameAndSlugForPosition","slugPrefix","nameRegex","RegExp","position","reduce","previousValue","currentValue","matches","match","id","parseInt","name","ColorPickerPopover","isGradient","popoverProps","receivedPopoverProps","onClose","shift","offset","resize","placement","className","children","color","enableAlpha","newColor","__experimentalIsRenderedInSidebar","gradient","newGradient","Option","canOnlyChangeValues","onRemove","isEditingColor","setIsEditingColor","popoverAnchor","setPopoverAnchor","anchor","ref","size","justify","onClick","trim","length","style","padding","colorValue","nextName","icon","PaletteEditListView","addColorRef","elementsReferenceRef","current","debounceOnChange","updatedElements","spacing","isRounded","isBordered","isSeparated","index","newElement","currentElement","currentIndex","newElements","filter","_currentElement","undefined","focus","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","isEditing","setIsEditing","editingElement","setEditingElement","isAdding","elementsLength","hasElements","onSelectPaletteItem","newEditingElementIndex","selectedElement","key","level","isPressed","toggleProps","role","__next40pxDefaultSize","variant","clearable","disableCustomGradients","disableCustomColors"],"sources":["@wordpress/components/src/palette-edit/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { Item, ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tIndicatorStyled,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n\tPaletteEditContents,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport type {\n\tColor,\n\tColorPickerPopoverProps,\n\tNameInputProps,\n\tOptionProps,\n\tPaletteEditListViewProps,\n\tPaletteEditProps,\n\tPaletteElement,\n} from './types';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label }: NameInputProps ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/*\n * Deduplicates the slugs of the provided elements.\n */\nexport function deduplicateElementSlugs< T extends PaletteElement >(\n\telements: T[]\n) {\n\tconst slugCounts: { [ slug: string ]: number } = {};\n\n\treturn elements.map( ( element ) => {\n\t\tlet newSlug: string | undefined;\n\n\t\tconst { slug } = element;\n\t\tslugCounts[ slug ] = ( slugCounts[ slug ] || 0 ) + 1;\n\n\t\tif ( slugCounts[ slug ] > 1 ) {\n\t\t\tnewSlug = `${ slug }-${ slugCounts[ slug ] - 1 }`;\n\t\t}\n\n\t\treturn { ...element, slug: newSlug ?? slug };\n\t} );\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(\n\telements: PaletteElement[],\n\tslugPrefix: string\n) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn {\n\t\tname: sprintf(\n\t\t\t/* translators: %s: is an id for a custom color */\n\t\t\t__( 'Color %s' ),\n\t\t\tposition\n\t\t),\n\t\tslug: `${ slugPrefix }color-${ position }`,\n\t};\n}\n\nfunction ColorPickerPopover< T extends PaletteElement >( {\n\tisGradient,\n\telement,\n\tonChange,\n\tpopoverProps: receivedPopoverProps,\n\tonClose = () => {},\n}: ColorPickerPopoverProps< T > ) {\n\tconst popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =\n\t\tuseMemo(\n\t\t\t() => ( {\n\t\t\t\tshift: true,\n\t\t\t\toffset: 20,\n\t\t\t\t// Disabling resize as it would otherwise cause the popover to show\n\t\t\t\t// scrollbars while dragging the color picker's handle close to the\n\t\t\t\t// popover edge.\n\t\t\t\tresize: false,\n\t\t\t\tplacement: 'left-start',\n\t\t\t\t...receivedPopoverProps,\n\t\t\t\tclassName: clsx(\n\t\t\t\t\t'components-palette-edit__popover',\n\t\t\t\t\treceivedPopoverProps?.className\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ receivedPopoverProps ]\n\t\t);\n\n\treturn (\n\t\t<Popover { ...popoverProps } onClose={ onClose }>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\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\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\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) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option< T extends PaletteElement >( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tonRemove,\n\tpopoverProps: receivedPopoverProps,\n\tslugPrefix,\n\tisGradient,\n}: OptionProps< T > ) {\n\tconst value = isGradient ? element.gradient : element.color;\n\tconst [ isEditingColor, setIsEditingColor ] = useState( false );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t...receivedPopoverProps,\n\t\t\t// Use the custom palette color item as the popover anchor.\n\t\t\tanchor: popoverAnchor,\n\t\t} ),\n\t\t[ popoverAnchor, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<Item ref={ setPopoverAnchor } size=\"small\">\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsEditingColor( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t__( 'Edit: %s' ),\n\t\t\t\t\t\telement.name.trim().length ? element.name : value\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<IndicatorStyled colorValue={ value } />\n\t\t\t\t</Button>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName?: string ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\tkebabCase( nextName ?? '' ),\n\t\t\t\t\t\t\t\t} )\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\t\t<NameContainer>\n\t\t\t\t\t\t\t{ element.name.trim().length\n\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t: /* Fall back to non-breaking space to maintain height */\n\t\t\t\t\t\t\t\t '\\u00A0' }\n\t\t\t\t\t\t</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t\t\t__( 'Remove color: %s' ),\n\t\t\t\t\t\t\t\telement.name.trim().length\n\t\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t\t: value\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditingColor && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tonClose={ () => setIsEditingColor( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Item>\n\t);\n}\n\nfunction PaletteEditListView< T extends PaletteElement >( {\n\telements,\n\tonChange,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n\tpopoverProps,\n\taddColorRef,\n}: PaletteEditListViewProps< T > ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReferenceRef = useRef< typeof elements >();\n\tuseEffect( () => {\n\t\telementsReferenceRef.current = elements;\n\t}, [ elements ] );\n\n\tconst debounceOnChange = useDebounce(\n\t\t( updatedElements: T[] ) =>\n\t\t\tonChange( deduplicateElementSlugs( updatedElements ) ),\n\t\t100\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded isBordered isSeparated>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\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);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\taddColorRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY: Color[] = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n\tpopoverProps,\n}: PaletteEditProps ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState<\n\t\tnumber | null | undefined\n\t>( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\t!! editingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t(\n\t\t\tvalue?: PaletteElement[ keyof PaletteElement ],\n\t\t\tnewEditingElementIndex?: number\n\t\t) => {\n\t\t\tconst selectedElement =\n\t\t\t\tnewEditingElementIndex === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\tconst addColorRef = useRef< HTMLButtonElement | null >( null );\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<HStack>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ addColorRef }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst { name, slug } =\n\t\t\t\t\t\t\t\t\tgetNameAndSlugForPosition(\n\t\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( !! gradients ) {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...gradients,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tgradient: DEFAULT_GRADIENT,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\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} else {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...colors,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcolor: DEFAULT_COLOR,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\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\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tsize: 'small',\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\t{ ( { onClose }: { onClose: () => void } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\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</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</HStack>\n\t\t\t{ hasElements && (\n\t\t\t\t<PaletteEditContents>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView< ( typeof elements )[ number ] >\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\taddColorRef={ addColorRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\tnewElement: ( typeof elements )[ number ]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcurrentElement: ( typeof elements )[ number ],\n\t\t\t\t\t\t\t\t\t\t\tcurrentIndex: number\n\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\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} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ?? -1 ] }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</PaletteEditContents>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage && (\n\t\t\t\t<PaletteEditContents>{ emptyMessage }</PaletteEditContents>\n\t\t\t) }\n\t\t</PaletteEditStyles>\n\t);\n}\n\nexport default PaletteEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useState","useRef","useEffect","useCallback","useMemo","__","sprintf","lineSolid","moreVertical","plus","useDebounce","Button","ColorPicker","FlexItem","HStack","Item","ItemGroup","VStack","GradientPicker","ColorPalette","DropdownMenu","Popover","PaletteActionsContainer","PaletteEditStyles","PaletteHeading","IndicatorStyled","NameContainer","NameInputControl","DoneButton","RemoveButton","PaletteEditContents","NavigableMenu","DEFAULT_GRADIENT","CustomGradientPicker","kebabCase","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_COLOR","NameInput","value","onChange","label","size","hideLabelFromVision","deduplicateElementSlugs","elements","slugCounts","map","element","_newSlug","newSlug","slug","getNameAndSlugForPosition","slugPrefix","nameRegex","RegExp","position","reduce","previousValue","currentValue","matches","match","id","parseInt","name","ColorPickerPopover","isGradient","popoverProps","receivedPopoverProps","onClose","shift","offset","resize","placement","className","children","color","enableAlpha","newColor","__experimentalIsRenderedInSidebar","gradient","newGradient","Option","canOnlyChangeValues","onRemove","isEditingColor","setIsEditingColor","popoverAnchor","setPopoverAnchor","anchor","ref","justify","onClick","trim","length","style","padding","colorValue","nextName","icon","PaletteEditListView","addColorRef","elementsReferenceRef","current","debounceOnChange","updatedElements","spacing","isRounded","isBordered","isSeparated","index","newElement","currentElement","currentIndex","newElements","filter","_currentElement","undefined","focus","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","isEditing","setIsEditing","editingElement","setEditingElement","isAdding","elementsLength","hasElements","onSelectPaletteItem","newEditingElementIndex","selectedElement","key","level","isPressed","toggleProps","role","__next40pxDefaultSize","variant","clearable","disableCustomGradients","disableCustomColors"],"sources":["@wordpress/components/src/palette-edit/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { Item, ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tIndicatorStyled,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n\tPaletteEditContents,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport type {\n\tColor,\n\tColorPickerPopoverProps,\n\tNameInputProps,\n\tOptionProps,\n\tPaletteEditListViewProps,\n\tPaletteEditProps,\n\tPaletteElement,\n} from './types';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label }: NameInputProps ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tsize=\"compact\"\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/*\n * Deduplicates the slugs of the provided elements.\n */\nexport function deduplicateElementSlugs< T extends PaletteElement >(\n\telements: T[]\n) {\n\tconst slugCounts: { [ slug: string ]: number } = {};\n\n\treturn elements.map( ( element ) => {\n\t\tlet newSlug: string | undefined;\n\n\t\tconst { slug } = element;\n\t\tslugCounts[ slug ] = ( slugCounts[ slug ] || 0 ) + 1;\n\n\t\tif ( slugCounts[ slug ] > 1 ) {\n\t\t\tnewSlug = `${ slug }-${ slugCounts[ slug ] - 1 }`;\n\t\t}\n\n\t\treturn { ...element, slug: newSlug ?? slug };\n\t} );\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(\n\telements: PaletteElement[],\n\tslugPrefix: string\n) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn {\n\t\tname: sprintf(\n\t\t\t/* translators: %s: is an id for a custom color */\n\t\t\t__( 'Color %s' ),\n\t\t\tposition\n\t\t),\n\t\tslug: `${ slugPrefix }color-${ position }`,\n\t};\n}\n\nfunction ColorPickerPopover< T extends PaletteElement >( {\n\tisGradient,\n\telement,\n\tonChange,\n\tpopoverProps: receivedPopoverProps,\n\tonClose = () => {},\n}: ColorPickerPopoverProps< T > ) {\n\tconst popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =\n\t\tuseMemo(\n\t\t\t() => ( {\n\t\t\t\tshift: true,\n\t\t\t\toffset: 20,\n\t\t\t\t// Disabling resize as it would otherwise cause the popover to show\n\t\t\t\t// scrollbars while dragging the color picker's handle close to the\n\t\t\t\t// popover edge.\n\t\t\t\tresize: false,\n\t\t\t\tplacement: 'left-start',\n\t\t\t\t...receivedPopoverProps,\n\t\t\t\tclassName: clsx(\n\t\t\t\t\t'components-palette-edit__popover',\n\t\t\t\t\treceivedPopoverProps?.className\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ receivedPopoverProps ]\n\t\t);\n\n\treturn (\n\t\t<Popover { ...popoverProps } onClose={ onClose }>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\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\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\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) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option< T extends PaletteElement >( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tonRemove,\n\tpopoverProps: receivedPopoverProps,\n\tslugPrefix,\n\tisGradient,\n}: OptionProps< T > ) {\n\tconst value = isGradient ? element.gradient : element.color;\n\tconst [ isEditingColor, setIsEditingColor ] = useState( false );\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t...receivedPopoverProps,\n\t\t\t// Use the custom palette color item as the popover anchor.\n\t\t\tanchor: popoverAnchor,\n\t\t} ),\n\t\t[ popoverAnchor, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<Item ref={ setPopoverAnchor } size=\"small\">\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetIsEditingColor( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t__( 'Edit: %s' ),\n\t\t\t\t\t\telement.name.trim().length ? element.name : value\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { padding: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<IndicatorStyled colorValue={ value } />\n\t\t\t\t</Button>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName?: string ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\tkebabCase( nextName ?? '' ),\n\t\t\t\t\t\t\t\t} )\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\t\t<NameContainer>\n\t\t\t\t\t\t\t{ element.name.trim().length\n\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t: /* Fall back to non-breaking space to maintain height */\n\t\t\t\t\t\t\t\t '\\u00A0' }\n\t\t\t\t\t\t</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t\t\t__( 'Remove color: %s' ),\n\t\t\t\t\t\t\t\telement.name.trim().length\n\t\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t\t: value\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditingColor && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tonClose={ () => setIsEditingColor( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Item>\n\t);\n}\n\nfunction PaletteEditListView< T extends PaletteElement >( {\n\telements,\n\tonChange,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n\tpopoverProps,\n\taddColorRef,\n}: PaletteEditListViewProps< T > ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReferenceRef = useRef< typeof elements >();\n\tuseEffect( () => {\n\t\telementsReferenceRef.current = elements;\n\t}, [ elements ] );\n\n\tconst debounceOnChange = useDebounce(\n\t\t( updatedElements: T[] ) =>\n\t\t\tonChange( deduplicateElementSlugs( updatedElements ) ),\n\t\t100\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded isBordered isSeparated>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\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);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\taddColorRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY: Color[] = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n\tpopoverProps,\n}: PaletteEditProps ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState<\n\t\tnumber | null | undefined\n\t>( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\t!! editingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t(\n\t\t\tvalue?: PaletteElement[ keyof PaletteElement ],\n\t\t\tnewEditingElementIndex?: number\n\t\t) => {\n\t\t\tconst selectedElement =\n\t\t\t\tnewEditingElementIndex === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\tconst addColorRef = useRef< HTMLButtonElement | null >( null );\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<HStack>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ addColorRef }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst { name, slug } =\n\t\t\t\t\t\t\t\t\tgetNameAndSlugForPosition(\n\t\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( !! gradients ) {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...gradients,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tgradient: DEFAULT_GRADIENT,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\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} else {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...colors,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcolor: DEFAULT_COLOR,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\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\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tsize: 'small',\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\t{ ( { onClose }: { onClose: () => void } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\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</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</HStack>\n\t\t\t{ hasElements && (\n\t\t\t\t<PaletteEditContents>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView< ( typeof elements )[ number ] >\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\taddColorRef={ addColorRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\tnewElement: ( typeof elements )[ number ]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcurrentElement: ( typeof elements )[ number ],\n\t\t\t\t\t\t\t\t\t\t\tcurrentIndex: number\n\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\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} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ?? -1 ] }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</PaletteEditContents>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage && (\n\t\t\t\t<PaletteEditContents>{ emptyMessage }</PaletteEditContents>\n\t\t\t) }\n\t\t</PaletteEditStyles>\n\t);\n}\n\nexport default PaletteEdit;\n"],"mappings":"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","ignoreList":[]}