@wordpress/components 28.13.1-next.082ed6819.0 → 29.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1020) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/CONTRIBUTING.md +16 -16
  3. package/build/alignment-matrix-control/icon.js +1 -0
  4. package/build/alignment-matrix-control/icon.js.map +1 -1
  5. package/build/alignment-matrix-control/index.js +1 -0
  6. package/build/alignment-matrix-control/index.js.map +1 -1
  7. package/build/angle-picker-control/index.js +1 -1
  8. package/build/angle-picker-control/index.js.map +1 -1
  9. package/build/animation/index.js +0 -6
  10. package/build/animation/index.js.map +1 -1
  11. package/build/autocomplete/autocompleter-ui.js +1 -0
  12. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  13. package/build/autocomplete/autocompleter-ui.native.js +1 -0
  14. package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
  15. package/build/autocomplete/get-default-use-items.js +1 -0
  16. package/build/autocomplete/get-default-use-items.js.map +1 -1
  17. package/build/border-box-control/border-box-control-split-controls/component.js +1 -1
  18. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  19. package/build/border-box-control/utils.js +1 -0
  20. package/build/border-box-control/utils.js.map +1 -1
  21. package/build/border-control/border-control/component.js +2 -0
  22. package/build/border-control/border-control/component.js.map +1 -1
  23. package/build/border-control/border-control-dropdown/component.js +1 -0
  24. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  25. package/build/border-control/border-control-style-picker/component.js +1 -0
  26. package/build/border-control/border-control-style-picker/component.js.map +1 -1
  27. package/build/box-control/index.js +35 -28
  28. package/build/box-control/index.js.map +1 -1
  29. package/build/box-control/input-control.js +161 -0
  30. package/build/box-control/input-control.js.map +1 -0
  31. package/build/box-control/types.js.map +1 -1
  32. package/build/box-control/utils.js +51 -48
  33. package/build/box-control/utils.js.map +1 -1
  34. package/build/button/index.native.js +1 -0
  35. package/build/button/index.native.js.map +1 -1
  36. package/build/button/types.js.map +1 -1
  37. package/build/circular-option-picker/circular-option-picker-actions.js +1 -0
  38. package/build/circular-option-picker/circular-option-picker-actions.js.map +1 -1
  39. package/build/circular-option-picker/circular-option-picker-option.js +1 -0
  40. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  41. package/build/clipboard-button/index.js +5 -3
  42. package/build/clipboard-button/index.js.map +1 -1
  43. package/build/color-indicator/index.native.js +1 -0
  44. package/build/color-indicator/index.native.js.map +1 -1
  45. package/build/color-palette/index.js +1 -0
  46. package/build/color-palette/index.js.map +1 -1
  47. package/build/color-palette/utils.js +1 -0
  48. package/build/color-palette/utils.js.map +1 -1
  49. package/build/color-picker/input-with-slider.js +2 -2
  50. package/build/color-picker/input-with-slider.js.map +1 -1
  51. package/build/combobox-control/index.js +1 -0
  52. package/build/combobox-control/index.js.map +1 -1
  53. package/build/composite/item.js +0 -9
  54. package/build/composite/item.js.map +1 -1
  55. package/build/composite/legacy/index.js +1 -0
  56. package/build/composite/legacy/index.js.map +1 -1
  57. package/build/custom-gradient-picker/gradient-bar/control-points.js +3 -0
  58. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  59. package/build/custom-gradient-picker/gradient-bar/index.js +1 -0
  60. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  61. package/build/custom-gradient-picker/gradient-bar/utils.js +1 -0
  62. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  63. package/build/custom-gradient-picker/index.js +3 -0
  64. package/build/custom-gradient-picker/index.js.map +1 -1
  65. package/build/custom-gradient-picker/serializer.js +1 -0
  66. package/build/custom-gradient-picker/serializer.js.map +1 -1
  67. package/build/custom-gradient-picker/types.js.map +1 -1
  68. package/build/custom-gradient-picker/utils.js +1 -0
  69. package/build/custom-gradient-picker/utils.js.map +1 -1
  70. package/build/custom-select-control/index.js +11 -2
  71. package/build/custom-select-control/index.js.map +1 -1
  72. package/build/custom-select-control/types.js.map +1 -1
  73. package/build/dashicon/index.js +1 -0
  74. package/build/dashicon/index.js.map +1 -1
  75. package/build/date-time/date/index.js +1 -0
  76. package/build/date-time/date/index.js.map +1 -1
  77. package/build/date-time/date/use-lilius/index.js +1 -0
  78. package/build/date-time/date/use-lilius/index.js.map +1 -1
  79. package/build/date-time/time/index.js +1 -0
  80. package/build/date-time/time/index.js.map +1 -1
  81. package/build/dimension-control/index.js +1 -0
  82. package/build/dimension-control/index.js.map +1 -1
  83. package/build/dimension-control/sizes.js +1 -0
  84. package/build/dimension-control/sizes.js.map +1 -1
  85. package/build/draggable/index.js +1 -0
  86. package/build/draggable/index.js.map +1 -1
  87. package/build/draggable/index.native.js +1 -0
  88. package/build/draggable/index.native.js.map +1 -1
  89. package/build/drop-zone/index.js +19 -13
  90. package/build/drop-zone/index.js.map +1 -1
  91. package/build/drop-zone/types.js.map +1 -1
  92. package/build/dropdown-menu/index.js +2 -0
  93. package/build/dropdown-menu/index.js.map +1 -1
  94. package/build/dropdown-menu/index.native.js +1 -0
  95. package/build/dropdown-menu/index.native.js.map +1 -1
  96. package/build/duotone-picker/color-list-picker/index.js +10 -14
  97. package/build/duotone-picker/color-list-picker/index.js.map +1 -1
  98. package/build/duotone-picker/duotone-picker.js +1 -0
  99. package/build/duotone-picker/duotone-picker.js.map +1 -1
  100. package/build/duotone-picker/utils.js +1 -0
  101. package/build/duotone-picker/utils.js.map +1 -1
  102. package/build/font-size-picker/font-size-picker-select.js +2 -0
  103. package/build/font-size-picker/font-size-picker-select.js.map +1 -1
  104. package/build/font-size-picker/font-size-picker-toggle-group.js +1 -0
  105. package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
  106. package/build/font-size-picker/index.js +2 -0
  107. package/build/font-size-picker/index.js.map +1 -1
  108. package/build/font-size-picker/index.native.js +1 -0
  109. package/build/font-size-picker/index.native.js.map +1 -1
  110. package/build/font-size-picker/utils.js +1 -0
  111. package/build/font-size-picker/utils.js.map +1 -1
  112. package/build/form-file-upload/index.js +11 -1
  113. package/build/form-file-upload/index.js.map +1 -1
  114. package/build/form-file-upload/types.js.map +1 -1
  115. package/build/form-token-field/index.js +6 -0
  116. package/build/form-token-field/index.js.map +1 -1
  117. package/build/form-token-field/suggestions-list.js +1 -0
  118. package/build/form-token-field/suggestions-list.js.map +1 -1
  119. package/build/gradient-picker/index.js +3 -0
  120. package/build/gradient-picker/index.js.map +1 -1
  121. package/build/gradient-picker/types.js.map +1 -1
  122. package/build/guide/index.js +1 -0
  123. package/build/guide/index.js.map +1 -1
  124. package/build/guide/page-control.js +1 -0
  125. package/build/guide/page-control.js.map +1 -1
  126. package/build/h-stack/hook.js +1 -0
  127. package/build/h-stack/hook.js.map +1 -1
  128. package/build/higher-order/navigate-regions/index.js +1 -0
  129. package/build/higher-order/navigate-regions/index.js.map +1 -1
  130. package/build/higher-order/with-fallback-styles/index.js +1 -0
  131. package/build/higher-order/with-fallback-styles/index.js.map +1 -1
  132. package/build/higher-order/with-filters/index.js +1 -0
  133. package/build/higher-order/with-filters/index.js.map +1 -1
  134. package/build/higher-order/with-notices/index.js +1 -0
  135. package/build/higher-order/with-notices/index.js.map +1 -1
  136. package/build/icon/index.js +9 -0
  137. package/build/icon/index.js.map +1 -1
  138. package/build/index.js +0 -6
  139. package/build/index.js.map +1 -1
  140. package/build/keyboard-shortcuts/index.js +1 -0
  141. package/build/keyboard-shortcuts/index.js.map +1 -1
  142. package/build/menu/checkbox-item.js +5 -9
  143. package/build/menu/checkbox-item.js.map +1 -1
  144. package/build/menu/group-label.js +4 -1
  145. package/build/menu/group-label.js.map +1 -1
  146. package/build/menu/group.js +4 -1
  147. package/build/menu/group.js.map +1 -1
  148. package/build/menu/item-help-text.js +5 -0
  149. package/build/menu/item-help-text.js.map +1 -1
  150. package/build/menu/item-label.js +5 -0
  151. package/build/menu/item-label.js.map +1 -1
  152. package/build/menu/item.js +4 -8
  153. package/build/menu/item.js.map +1 -1
  154. package/build/menu/radio-item.js +5 -9
  155. package/build/menu/radio-item.js.map +1 -1
  156. package/build/menu/separator.js +5 -2
  157. package/build/menu/separator.js.map +1 -1
  158. package/build/menu/styles.js +16 -16
  159. package/build/menu/styles.js.map +1 -1
  160. package/build/menu-items-choice/index.js +1 -0
  161. package/build/menu-items-choice/index.js.map +1 -1
  162. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +1 -0
  163. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  164. package/build/mobile/bottom-sheet/keyboard-avoiding-view.native.js +1 -0
  165. package/build/mobile/bottom-sheet/keyboard-avoiding-view.native.js.map +1 -1
  166. package/build/mobile/bottom-sheet/picker-cell.native.js +1 -0
  167. package/build/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  168. package/build/mobile/bottom-sheet-select-control/index.native.js +1 -0
  169. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  170. package/build/mobile/color-settings/palette.screen.native.js +1 -0
  171. package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
  172. package/build/mobile/gradient/index.native.js +1 -0
  173. package/build/mobile/gradient/index.native.js.map +1 -1
  174. package/build/mobile/media-edit/index.native.js +1 -0
  175. package/build/mobile/media-edit/index.native.js.map +1 -1
  176. package/build/mobile/picker/index.android.js +1 -0
  177. package/build/mobile/picker/index.android.js.map +1 -1
  178. package/build/mobile/picker/index.ios.js +1 -0
  179. package/build/mobile/picker/index.ios.js.map +1 -1
  180. package/build/mobile/segmented-control/index.native.js +1 -0
  181. package/build/mobile/segmented-control/index.native.js.map +1 -1
  182. package/build/mobile/utils/get-px-from-css-unit.native.js +1 -0
  183. package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -1
  184. package/build/modal/aria-helper.js +0 -1
  185. package/build/modal/aria-helper.js.map +1 -1
  186. package/build/modal/index.js +0 -1
  187. package/build/modal/index.js.map +1 -1
  188. package/build/navigable-container/container.js +1 -0
  189. package/build/navigable-container/container.js.map +1 -1
  190. package/build/navigation/group/index.js +1 -0
  191. package/build/navigation/group/index.js.map +1 -1
  192. package/build/navigation/menu/menu-title-search.js +1 -0
  193. package/build/navigation/menu/menu-title-search.js.map +1 -1
  194. package/build/navigation/menu/search-no-results-found.js +1 -0
  195. package/build/navigation/menu/search-no-results-found.js.map +1 -1
  196. package/build/navigation/styles/navigation-styles.js +12 -12
  197. package/build/navigation/styles/navigation-styles.js.map +1 -1
  198. package/build/navigator/navigator/component.js +1 -0
  199. package/build/navigator/navigator/component.js.map +1 -1
  200. package/build/navigator/navigator-screen/component.js +1 -0
  201. package/build/navigator/navigator-screen/component.js.map +1 -1
  202. package/build/navigator/utils/router.js +1 -0
  203. package/build/navigator/utils/router.js.map +1 -1
  204. package/build/notice/index.js +1 -0
  205. package/build/notice/index.js.map +1 -1
  206. package/build/notice/list.js +1 -0
  207. package/build/notice/list.js.map +1 -1
  208. package/build/notice/list.native.js +1 -0
  209. package/build/notice/list.native.js.map +1 -1
  210. package/build/number-control/index.js +8 -0
  211. package/build/number-control/index.js.map +1 -1
  212. package/build/number-control/types.js.map +1 -1
  213. package/build/palette-edit/index.js +1 -0
  214. package/build/palette-edit/index.js.map +1 -1
  215. package/build/panel/actions.native.js +1 -0
  216. package/build/panel/actions.native.js.map +1 -1
  217. package/build/query-controls/index.js +1 -0
  218. package/build/query-controls/index.js.map +1 -1
  219. package/build/query-controls/terms.js +1 -0
  220. package/build/query-controls/terms.js.map +1 -1
  221. package/build/radio-control/index.js +1 -0
  222. package/build/radio-control/index.js.map +1 -1
  223. package/build/radio-control/index.native.js +1 -0
  224. package/build/radio-control/index.native.js.map +1 -1
  225. package/build/range-control/index.js +2 -1
  226. package/build/range-control/index.js.map +1 -1
  227. package/build/range-control/mark.js +0 -1
  228. package/build/range-control/mark.js.map +1 -1
  229. package/build/range-control/rail.js +1 -0
  230. package/build/range-control/rail.js.map +1 -1
  231. package/build/range-control/styles/range-control-styles.js +33 -45
  232. package/build/range-control/styles/range-control-styles.js.map +1 -1
  233. package/build/resizable-box/index.js +10 -1
  234. package/build/resizable-box/index.js.map +1 -1
  235. package/build/sandbox/index.js +1 -0
  236. package/build/sandbox/index.js.map +1 -1
  237. package/build/sandbox/index.native.js +1 -0
  238. package/build/sandbox/index.native.js.map +1 -1
  239. package/build/search-control/index.native.js +1 -0
  240. package/build/search-control/index.native.js.map +1 -1
  241. package/build/select-control/index.js +1 -0
  242. package/build/select-control/index.js.map +1 -1
  243. package/build/slot-fill/bubbles-virtually/fill.js +8 -12
  244. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  245. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +7 -10
  246. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  247. package/build/slot-fill/bubbles-virtually/slot.js +4 -10
  248. package/build/slot-fill/bubbles-virtually/slot.js.map +1 -1
  249. package/build/slot-fill/provider.js +1 -0
  250. package/build/slot-fill/provider.js.map +1 -1
  251. package/build/slot-fill/slot.js +1 -0
  252. package/build/slot-fill/slot.js.map +1 -1
  253. package/build/slot-fill/types.js.map +1 -1
  254. package/build/snackbar/index.js +1 -0
  255. package/build/snackbar/index.js.map +1 -1
  256. package/build/snackbar/list.js +1 -0
  257. package/build/snackbar/list.js.map +1 -1
  258. package/build/style-provider/index.js +0 -1
  259. package/build/style-provider/index.js.map +1 -1
  260. package/build/tab-panel/index.js +1 -0
  261. package/build/tab-panel/index.js.map +1 -1
  262. package/build/tabs/index.js +1 -0
  263. package/build/tabs/index.js.map +1 -1
  264. package/build/tabs/tab.js +0 -17
  265. package/build/tabs/tab.js.map +1 -1
  266. package/build/text/utils.js +1 -0
  267. package/build/text/utils.js.map +1 -1
  268. package/build/theme/color-algorithms.js +1 -0
  269. package/build/theme/color-algorithms.js.map +1 -1
  270. package/build/toggle-group-control/toggle-group-control/styles.js +7 -7
  271. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  272. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +8 -8
  273. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  274. package/build/toolbar/toolbar-button/index.js +2 -0
  275. package/build/toolbar/toolbar-button/index.js.map +1 -1
  276. package/build/toolbar/toolbar-group/index.js +1 -0
  277. package/build/toolbar/toolbar-group/index.js.map +1 -1
  278. package/build/tools-panel/tools-panel/component.js +2 -0
  279. package/build/tools-panel/tools-panel/component.js.map +1 -1
  280. package/build/tools-panel/tools-panel/hook.js +1 -0
  281. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  282. package/build/tools-panel/tools-panel-header/component.js +1 -0
  283. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  284. package/build/tree-grid/cell.js +4 -1
  285. package/build/tree-grid/cell.js.map +1 -1
  286. package/build/tree-grid/index.js +1 -0
  287. package/build/tree-grid/index.js.map +1 -1
  288. package/build/tree-grid/types.js.map +1 -1
  289. package/build/tree-select/index.js +1 -0
  290. package/build/tree-select/index.js.map +1 -1
  291. package/build/unit-control/index.js +11 -1
  292. package/build/unit-control/index.js.map +1 -1
  293. package/build/unit-control/index.native.js +1 -0
  294. package/build/unit-control/index.native.js.map +1 -1
  295. package/build/unit-control/types.js.map +1 -1
  296. package/build/unit-control/unit-select-control.js +1 -0
  297. package/build/unit-control/unit-select-control.js.map +1 -1
  298. package/build/unit-control/utils.js +1 -0
  299. package/build/unit-control/utils.js.map +1 -1
  300. package/build/utils/colors-values.js +3 -0
  301. package/build/utils/colors-values.js.map +1 -1
  302. package/build/utils/config-values.js +0 -1
  303. package/build/utils/config-values.js.map +1 -1
  304. package/build/utils/get-valid-children.js +1 -0
  305. package/build/utils/get-valid-children.js.map +1 -1
  306. package/build/utils/hooks/use-animated-offset-rect.js +1 -0
  307. package/build/utils/hooks/use-animated-offset-rect.js.map +1 -1
  308. package/build/utils/hooks/use-cx.js +1 -0
  309. package/build/utils/hooks/use-cx.js.map +1 -1
  310. package/build/utils/math.js +1 -0
  311. package/build/utils/math.js.map +1 -1
  312. package/build/utils/rtl.js +1 -0
  313. package/build/utils/rtl.js.map +1 -1
  314. package/build/utils/values.js +1 -0
  315. package/build/utils/values.js.map +1 -1
  316. package/build/z-stack/component.js +1 -0
  317. package/build/z-stack/component.js.map +1 -1
  318. package/build-module/alignment-matrix-control/icon.js +1 -0
  319. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  320. package/build-module/alignment-matrix-control/index.js +1 -0
  321. package/build-module/alignment-matrix-control/index.js.map +1 -1
  322. package/build-module/angle-picker-control/index.js +1 -1
  323. package/build-module/angle-picker-control/index.js.map +1 -1
  324. package/build-module/animation/index.js +1 -1
  325. package/build-module/animation/index.js.map +1 -1
  326. package/build-module/autocomplete/autocompleter-ui.js +1 -0
  327. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  328. package/build-module/autocomplete/autocompleter-ui.native.js +1 -0
  329. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  330. package/build-module/autocomplete/get-default-use-items.js +1 -0
  331. package/build-module/autocomplete/get-default-use-items.js.map +1 -1
  332. package/build-module/border-box-control/border-box-control-split-controls/component.js +1 -1
  333. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  334. package/build-module/border-box-control/utils.js +1 -0
  335. package/build-module/border-box-control/utils.js.map +1 -1
  336. package/build-module/border-control/border-control/component.js +2 -0
  337. package/build-module/border-control/border-control/component.js.map +1 -1
  338. package/build-module/border-control/border-control-dropdown/component.js +1 -0
  339. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  340. package/build-module/border-control/border-control-style-picker/component.js +1 -0
  341. package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
  342. package/build-module/box-control/index.js +37 -30
  343. package/build-module/box-control/index.js.map +1 -1
  344. package/build-module/box-control/input-control.js +153 -0
  345. package/build-module/box-control/input-control.js.map +1 -0
  346. package/build-module/box-control/types.js.map +1 -1
  347. package/build-module/box-control/utils.js +48 -46
  348. package/build-module/box-control/utils.js.map +1 -1
  349. package/build-module/button/index.native.js +1 -0
  350. package/build-module/button/index.native.js.map +1 -1
  351. package/build-module/button/types.js.map +1 -1
  352. package/build-module/circular-option-picker/circular-option-picker-actions.js +1 -0
  353. package/build-module/circular-option-picker/circular-option-picker-actions.js.map +1 -1
  354. package/build-module/circular-option-picker/circular-option-picker-option.js +1 -0
  355. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  356. package/build-module/clipboard-button/index.js +5 -3
  357. package/build-module/clipboard-button/index.js.map +1 -1
  358. package/build-module/color-indicator/index.native.js +1 -0
  359. package/build-module/color-indicator/index.native.js.map +1 -1
  360. package/build-module/color-palette/index.js +1 -0
  361. package/build-module/color-palette/index.js.map +1 -1
  362. package/build-module/color-palette/utils.js +1 -0
  363. package/build-module/color-palette/utils.js.map +1 -1
  364. package/build-module/color-picker/input-with-slider.js +2 -2
  365. package/build-module/color-picker/input-with-slider.js.map +1 -1
  366. package/build-module/combobox-control/index.js +1 -0
  367. package/build-module/combobox-control/index.js.map +1 -1
  368. package/build-module/composite/item.js +0 -9
  369. package/build-module/composite/item.js.map +1 -1
  370. package/build-module/composite/legacy/index.js +1 -0
  371. package/build-module/composite/legacy/index.js.map +1 -1
  372. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +3 -0
  373. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  374. package/build-module/custom-gradient-picker/gradient-bar/index.js +1 -0
  375. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  376. package/build-module/custom-gradient-picker/gradient-bar/utils.js +1 -0
  377. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -1
  378. package/build-module/custom-gradient-picker/index.js +3 -0
  379. package/build-module/custom-gradient-picker/index.js.map +1 -1
  380. package/build-module/custom-gradient-picker/serializer.js +1 -0
  381. package/build-module/custom-gradient-picker/serializer.js.map +1 -1
  382. package/build-module/custom-gradient-picker/types.js.map +1 -1
  383. package/build-module/custom-gradient-picker/utils.js +1 -0
  384. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  385. package/build-module/custom-select-control/index.js +11 -2
  386. package/build-module/custom-select-control/index.js.map +1 -1
  387. package/build-module/custom-select-control/types.js.map +1 -1
  388. package/build-module/dashicon/index.js +1 -0
  389. package/build-module/dashicon/index.js.map +1 -1
  390. package/build-module/date-time/date/index.js +1 -0
  391. package/build-module/date-time/date/index.js.map +1 -1
  392. package/build-module/date-time/date/use-lilius/index.js +1 -0
  393. package/build-module/date-time/date/use-lilius/index.js.map +1 -1
  394. package/build-module/date-time/time/index.js +1 -0
  395. package/build-module/date-time/time/index.js.map +1 -1
  396. package/build-module/dimension-control/index.js +1 -0
  397. package/build-module/dimension-control/index.js.map +1 -1
  398. package/build-module/dimension-control/sizes.js +1 -0
  399. package/build-module/dimension-control/sizes.js.map +1 -1
  400. package/build-module/draggable/index.js +1 -0
  401. package/build-module/draggable/index.js.map +1 -1
  402. package/build-module/draggable/index.native.js +1 -0
  403. package/build-module/draggable/index.native.js.map +1 -1
  404. package/build-module/drop-zone/index.js +19 -13
  405. package/build-module/drop-zone/index.js.map +1 -1
  406. package/build-module/drop-zone/types.js.map +1 -1
  407. package/build-module/dropdown-menu/index.js +2 -0
  408. package/build-module/dropdown-menu/index.js.map +1 -1
  409. package/build-module/dropdown-menu/index.native.js +1 -0
  410. package/build-module/dropdown-menu/index.native.js.map +1 -1
  411. package/build-module/duotone-picker/color-list-picker/index.js +11 -15
  412. package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
  413. package/build-module/duotone-picker/duotone-picker.js +1 -0
  414. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  415. package/build-module/duotone-picker/utils.js +1 -0
  416. package/build-module/duotone-picker/utils.js.map +1 -1
  417. package/build-module/font-size-picker/font-size-picker-select.js +2 -0
  418. package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
  419. package/build-module/font-size-picker/font-size-picker-toggle-group.js +1 -0
  420. package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
  421. package/build-module/font-size-picker/index.js +2 -0
  422. package/build-module/font-size-picker/index.js.map +1 -1
  423. package/build-module/font-size-picker/index.native.js +1 -0
  424. package/build-module/font-size-picker/index.native.js.map +1 -1
  425. package/build-module/font-size-picker/utils.js +1 -0
  426. package/build-module/font-size-picker/utils.js.map +1 -1
  427. package/build-module/form-file-upload/index.js +13 -2
  428. package/build-module/form-file-upload/index.js.map +1 -1
  429. package/build-module/form-file-upload/types.js.map +1 -1
  430. package/build-module/form-token-field/index.js +6 -0
  431. package/build-module/form-token-field/index.js.map +1 -1
  432. package/build-module/form-token-field/suggestions-list.js +1 -0
  433. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  434. package/build-module/gradient-picker/index.js +3 -0
  435. package/build-module/gradient-picker/index.js.map +1 -1
  436. package/build-module/gradient-picker/types.js.map +1 -1
  437. package/build-module/guide/index.js +1 -0
  438. package/build-module/guide/index.js.map +1 -1
  439. package/build-module/guide/page-control.js +1 -0
  440. package/build-module/guide/page-control.js.map +1 -1
  441. package/build-module/h-stack/hook.js +1 -0
  442. package/build-module/h-stack/hook.js.map +1 -1
  443. package/build-module/higher-order/navigate-regions/index.js +1 -0
  444. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  445. package/build-module/higher-order/with-fallback-styles/index.js +1 -0
  446. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  447. package/build-module/higher-order/with-filters/index.js +1 -0
  448. package/build-module/higher-order/with-filters/index.js.map +1 -1
  449. package/build-module/higher-order/with-notices/index.js +1 -0
  450. package/build-module/higher-order/with-notices/index.js.map +1 -1
  451. package/build-module/icon/index.js +9 -0
  452. package/build-module/icon/index.js.map +1 -1
  453. package/build-module/index.js +1 -1
  454. package/build-module/index.js.map +1 -1
  455. package/build-module/keyboard-shortcuts/index.js +1 -0
  456. package/build-module/keyboard-shortcuts/index.js.map +1 -1
  457. package/build-module/menu/checkbox-item.js +5 -9
  458. package/build-module/menu/checkbox-item.js.map +1 -1
  459. package/build-module/menu/group-label.js +4 -1
  460. package/build-module/menu/group-label.js.map +1 -1
  461. package/build-module/menu/group.js +4 -1
  462. package/build-module/menu/group.js.map +1 -1
  463. package/build-module/menu/item-help-text.js +6 -1
  464. package/build-module/menu/item-help-text.js.map +1 -1
  465. package/build-module/menu/item-label.js +6 -1
  466. package/build-module/menu/item-label.js.map +1 -1
  467. package/build-module/menu/item.js +4 -8
  468. package/build-module/menu/item.js.map +1 -1
  469. package/build-module/menu/radio-item.js +5 -9
  470. package/build-module/menu/radio-item.js.map +1 -1
  471. package/build-module/menu/separator.js +5 -2
  472. package/build-module/menu/separator.js.map +1 -1
  473. package/build-module/menu/styles.js +16 -16
  474. package/build-module/menu/styles.js.map +1 -1
  475. package/build-module/menu-items-choice/index.js +1 -0
  476. package/build-module/menu-items-choice/index.js.map +1 -1
  477. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +1 -0
  478. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  479. package/build-module/mobile/bottom-sheet/keyboard-avoiding-view.native.js +1 -0
  480. package/build-module/mobile/bottom-sheet/keyboard-avoiding-view.native.js.map +1 -1
  481. package/build-module/mobile/bottom-sheet/picker-cell.native.js +1 -0
  482. package/build-module/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  483. package/build-module/mobile/bottom-sheet-select-control/index.native.js +1 -0
  484. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  485. package/build-module/mobile/color-settings/palette.screen.native.js +1 -0
  486. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  487. package/build-module/mobile/gradient/index.native.js +1 -0
  488. package/build-module/mobile/gradient/index.native.js.map +1 -1
  489. package/build-module/mobile/media-edit/index.native.js +1 -0
  490. package/build-module/mobile/media-edit/index.native.js.map +1 -1
  491. package/build-module/mobile/picker/index.android.js +1 -0
  492. package/build-module/mobile/picker/index.android.js.map +1 -1
  493. package/build-module/mobile/picker/index.ios.js +1 -0
  494. package/build-module/mobile/picker/index.ios.js.map +1 -1
  495. package/build-module/mobile/segmented-control/index.native.js +1 -0
  496. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  497. package/build-module/mobile/utils/get-px-from-css-unit.native.js +1 -0
  498. package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -1
  499. package/build-module/modal/aria-helper.js +0 -1
  500. package/build-module/modal/aria-helper.js.map +1 -1
  501. package/build-module/modal/index.js +0 -1
  502. package/build-module/modal/index.js.map +1 -1
  503. package/build-module/navigable-container/container.js +1 -0
  504. package/build-module/navigable-container/container.js.map +1 -1
  505. package/build-module/navigation/group/index.js +1 -0
  506. package/build-module/navigation/group/index.js.map +1 -1
  507. package/build-module/navigation/menu/menu-title-search.js +1 -0
  508. package/build-module/navigation/menu/menu-title-search.js.map +1 -1
  509. package/build-module/navigation/menu/search-no-results-found.js +1 -0
  510. package/build-module/navigation/menu/search-no-results-found.js.map +1 -1
  511. package/build-module/navigation/styles/navigation-styles.js +12 -12
  512. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  513. package/build-module/navigator/navigator/component.js +1 -0
  514. package/build-module/navigator/navigator/component.js.map +1 -1
  515. package/build-module/navigator/navigator-screen/component.js +1 -0
  516. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  517. package/build-module/navigator/utils/router.js +1 -0
  518. package/build-module/navigator/utils/router.js.map +1 -1
  519. package/build-module/notice/index.js +1 -0
  520. package/build-module/notice/index.js.map +1 -1
  521. package/build-module/notice/list.js +1 -0
  522. package/build-module/notice/list.js.map +1 -1
  523. package/build-module/notice/list.native.js +1 -0
  524. package/build-module/notice/list.native.js.map +1 -1
  525. package/build-module/number-control/index.js +8 -0
  526. package/build-module/number-control/index.js.map +1 -1
  527. package/build-module/number-control/types.js.map +1 -1
  528. package/build-module/palette-edit/index.js +1 -0
  529. package/build-module/palette-edit/index.js.map +1 -1
  530. package/build-module/panel/actions.native.js +1 -0
  531. package/build-module/panel/actions.native.js.map +1 -1
  532. package/build-module/query-controls/index.js +1 -0
  533. package/build-module/query-controls/index.js.map +1 -1
  534. package/build-module/query-controls/terms.js +1 -0
  535. package/build-module/query-controls/terms.js.map +1 -1
  536. package/build-module/radio-control/index.js +1 -0
  537. package/build-module/radio-control/index.js.map +1 -1
  538. package/build-module/radio-control/index.native.js +1 -0
  539. package/build-module/radio-control/index.native.js.map +1 -1
  540. package/build-module/range-control/index.js +2 -1
  541. package/build-module/range-control/index.js.map +1 -1
  542. package/build-module/range-control/mark.js +0 -1
  543. package/build-module/range-control/mark.js.map +1 -1
  544. package/build-module/range-control/rail.js +1 -0
  545. package/build-module/range-control/rail.js.map +1 -1
  546. package/build-module/range-control/styles/range-control-styles.js +33 -45
  547. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  548. package/build-module/resizable-box/index.js +10 -1
  549. package/build-module/resizable-box/index.js.map +1 -1
  550. package/build-module/sandbox/index.js +1 -0
  551. package/build-module/sandbox/index.js.map +1 -1
  552. package/build-module/sandbox/index.native.js +1 -0
  553. package/build-module/sandbox/index.native.js.map +1 -1
  554. package/build-module/search-control/index.native.js +1 -0
  555. package/build-module/search-control/index.native.js.map +1 -1
  556. package/build-module/select-control/index.js +1 -0
  557. package/build-module/select-control/index.js.map +1 -1
  558. package/build-module/slot-fill/bubbles-virtually/fill.js +9 -13
  559. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  560. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +7 -10
  561. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  562. package/build-module/slot-fill/bubbles-virtually/slot.js +4 -10
  563. package/build-module/slot-fill/bubbles-virtually/slot.js.map +1 -1
  564. package/build-module/slot-fill/provider.js +1 -0
  565. package/build-module/slot-fill/provider.js.map +1 -1
  566. package/build-module/slot-fill/slot.js +1 -0
  567. package/build-module/slot-fill/slot.js.map +1 -1
  568. package/build-module/slot-fill/types.js.map +1 -1
  569. package/build-module/snackbar/index.js +1 -0
  570. package/build-module/snackbar/index.js.map +1 -1
  571. package/build-module/snackbar/list.js +1 -0
  572. package/build-module/snackbar/list.js.map +1 -1
  573. package/build-module/style-provider/index.js +0 -1
  574. package/build-module/style-provider/index.js.map +1 -1
  575. package/build-module/tab-panel/index.js +1 -0
  576. package/build-module/tab-panel/index.js.map +1 -1
  577. package/build-module/tabs/index.js +1 -0
  578. package/build-module/tabs/index.js.map +1 -1
  579. package/build-module/tabs/tab.js +0 -15
  580. package/build-module/tabs/tab.js.map +1 -1
  581. package/build-module/text/utils.js +1 -0
  582. package/build-module/text/utils.js.map +1 -1
  583. package/build-module/theme/color-algorithms.js +1 -0
  584. package/build-module/theme/color-algorithms.js.map +1 -1
  585. package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -7
  586. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  587. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +8 -8
  588. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  589. package/build-module/toolbar/toolbar-button/index.js +2 -0
  590. package/build-module/toolbar/toolbar-button/index.js.map +1 -1
  591. package/build-module/toolbar/toolbar-group/index.js +1 -0
  592. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  593. package/build-module/tools-panel/tools-panel/component.js +2 -0
  594. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  595. package/build-module/tools-panel/tools-panel/hook.js +1 -0
  596. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  597. package/build-module/tools-panel/tools-panel-header/component.js +1 -0
  598. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  599. package/build-module/tree-grid/cell.js +4 -1
  600. package/build-module/tree-grid/cell.js.map +1 -1
  601. package/build-module/tree-grid/index.js +1 -0
  602. package/build-module/tree-grid/index.js.map +1 -1
  603. package/build-module/tree-grid/types.js.map +1 -1
  604. package/build-module/tree-select/index.js +1 -0
  605. package/build-module/tree-select/index.js.map +1 -1
  606. package/build-module/unit-control/index.js +11 -1
  607. package/build-module/unit-control/index.js.map +1 -1
  608. package/build-module/unit-control/index.native.js +1 -0
  609. package/build-module/unit-control/index.native.js.map +1 -1
  610. package/build-module/unit-control/types.js.map +1 -1
  611. package/build-module/unit-control/unit-select-control.js +1 -0
  612. package/build-module/unit-control/unit-select-control.js.map +1 -1
  613. package/build-module/unit-control/utils.js +1 -0
  614. package/build-module/unit-control/utils.js.map +1 -1
  615. package/build-module/utils/colors-values.js +3 -0
  616. package/build-module/utils/colors-values.js.map +1 -1
  617. package/build-module/utils/config-values.js +0 -1
  618. package/build-module/utils/config-values.js.map +1 -1
  619. package/build-module/utils/get-valid-children.js +1 -0
  620. package/build-module/utils/get-valid-children.js.map +1 -1
  621. package/build-module/utils/hooks/use-animated-offset-rect.js +1 -0
  622. package/build-module/utils/hooks/use-animated-offset-rect.js.map +1 -1
  623. package/build-module/utils/hooks/use-cx.js +1 -0
  624. package/build-module/utils/hooks/use-cx.js.map +1 -1
  625. package/build-module/utils/math.js +1 -0
  626. package/build-module/utils/math.js.map +1 -1
  627. package/build-module/utils/rtl.js +1 -0
  628. package/build-module/utils/rtl.js.map +1 -1
  629. package/build-module/utils/values.js +1 -0
  630. package/build-module/utils/values.js.map +1 -1
  631. package/build-module/z-stack/component.js +1 -0
  632. package/build-module/z-stack/component.js.map +1 -1
  633. package/build-style/style-rtl.css +15 -11
  634. package/build-style/style.css +15 -11
  635. package/build-types/alignment-matrix-control/styles.d.ts.map +1 -1
  636. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -1
  637. package/build-types/animation/index.d.ts +1 -1
  638. package/build-types/animation/index.d.ts.map +1 -1
  639. package/build-types/base-control/hooks.d.ts +4 -4
  640. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  641. package/build-types/border-box-control/border-box-control/hook.d.ts +83 -83
  642. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +93 -93
  643. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +83 -83
  644. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +83 -83
  645. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  646. package/build-types/border-control/border-control/hook.d.ts +83 -83
  647. package/build-types/border-control/border-control-dropdown/hook.d.ts +83 -83
  648. package/build-types/border-control/stories/index.story.d.ts.map +1 -1
  649. package/build-types/box-control/index.d.ts +14 -13
  650. package/build-types/box-control/index.d.ts.map +1 -1
  651. package/build-types/box-control/input-control.d.ts +3 -0
  652. package/build-types/box-control/input-control.d.ts.map +1 -0
  653. package/build-types/box-control/stories/index.story.d.ts +852 -816
  654. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  655. package/build-types/box-control/styles/box-control-icon-styles.d.ts.map +1 -1
  656. package/build-types/box-control/styles/box-control-styles.d.ts +3 -2
  657. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
  658. package/build-types/box-control/types.d.ts +25 -3
  659. package/build-types/box-control/types.d.ts.map +1 -1
  660. package/build-types/box-control/utils.d.ts +23 -15
  661. package/build-types/box-control/utils.d.ts.map +1 -1
  662. package/build-types/button/stories/index.story.d.ts +18 -0
  663. package/build-types/button/stories/index.story.d.ts.map +1 -1
  664. package/build-types/button/types.d.ts +6 -4
  665. package/build-types/button/types.d.ts.map +1 -1
  666. package/build-types/card/card/hook.d.ts +83 -83
  667. package/build-types/card/card-body/hook.d.ts +83 -83
  668. package/build-types/card/card-divider/hook.d.ts +84 -84
  669. package/build-types/card/card-footer/hook.d.ts +83 -83
  670. package/build-types/card/card-header/hook.d.ts +83 -83
  671. package/build-types/card/card-media/hook.d.ts +83 -83
  672. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -1
  673. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  674. package/build-types/clipboard-button/index.d.ts.map +1 -1
  675. package/build-types/color-picker/styles.d.ts +3 -2
  676. package/build-types/color-picker/styles.d.ts.map +1 -1
  677. package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
  678. package/build-types/composite/index.d.ts.map +1 -1
  679. package/build-types/composite/item.d.ts.map +1 -1
  680. package/build-types/context/constants.d.ts.map +1 -1
  681. package/build-types/context/get-styled-class-name-from-key.d.ts +1 -9
  682. package/build-types/context/get-styled-class-name-from-key.d.ts.map +1 -1
  683. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
  684. package/build-types/custom-gradient-picker/index.d.ts +1 -1
  685. package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
  686. package/build-types/custom-gradient-picker/types.d.ts +6 -0
  687. package/build-types/custom-gradient-picker/types.d.ts.map +1 -1
  688. package/build-types/custom-select-control/index.d.ts.map +1 -1
  689. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
  690. package/build-types/custom-select-control/types.d.ts +7 -0
  691. package/build-types/custom-select-control/types.d.ts.map +1 -1
  692. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  693. package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
  694. package/build-types/date-time/date/styles.d.ts.map +1 -1
  695. package/build-types/date-time/stories/date-time.story.d.ts.map +1 -1
  696. package/build-types/date-time/stories/date.story.d.ts.map +1 -1
  697. package/build-types/date-time/stories/time.story.d.ts.map +1 -1
  698. package/build-types/date-time/time/styles.d.ts +8 -4
  699. package/build-types/date-time/time/styles.d.ts.map +1 -1
  700. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  701. package/build-types/drop-zone/index.d.ts +1 -1
  702. package/build-types/drop-zone/index.d.ts.map +1 -1
  703. package/build-types/drop-zone/types.d.ts +5 -0
  704. package/build-types/drop-zone/types.d.ts.map +1 -1
  705. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  706. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
  707. package/build-types/elevation/hook.d.ts +83 -83
  708. package/build-types/flex/flex/hook.d.ts +83 -83
  709. package/build-types/flex/flex-block/hook.d.ts +83 -83
  710. package/build-types/flex/flex-item/hook.d.ts +83 -83
  711. package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
  712. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -1
  713. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  714. package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -1
  715. package/build-types/font-size-picker/index.d.ts.map +1 -1
  716. package/build-types/font-size-picker/styles.d.ts.map +1 -1
  717. package/build-types/form-file-upload/index.d.ts +2 -1
  718. package/build-types/form-file-upload/index.d.ts.map +1 -1
  719. package/build-types/form-file-upload/stories/index.story.d.ts.map +1 -1
  720. package/build-types/form-file-upload/types.d.ts +10 -8
  721. package/build-types/form-file-upload/types.d.ts.map +1 -1
  722. package/build-types/form-token-field/index.d.ts.map +1 -1
  723. package/build-types/form-token-field/stories/index.story.d.ts.map +1 -1
  724. package/build-types/gradient-picker/index.d.ts +1 -1
  725. package/build-types/gradient-picker/index.d.ts.map +1 -1
  726. package/build-types/gradient-picker/types.d.ts +6 -0
  727. package/build-types/gradient-picker/types.d.ts.map +1 -1
  728. package/build-types/grid/hook.d.ts +83 -83
  729. package/build-types/h-stack/hook.d.ts +83 -83
  730. package/build-types/heading/hook.d.ts +82 -82
  731. package/build-types/higher-order/with-fallback-styles/index.d.ts +2 -2
  732. package/build-types/higher-order/with-filters/index.d.ts +4 -4
  733. package/build-types/icon/index.d.ts +23 -7
  734. package/build-types/icon/index.d.ts.map +1 -1
  735. package/build-types/icon/stories/index.story.d.ts +7 -1
  736. package/build-types/icon/stories/index.story.d.ts.map +1 -1
  737. package/build-types/index.d.ts +1 -1
  738. package/build-types/index.d.ts.map +1 -1
  739. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  740. package/build-types/item-group/item/hook.d.ts +83 -83
  741. package/build-types/item-group/item-group/hook.d.ts +83 -83
  742. package/build-types/lock-unlock.d.ts +2 -2
  743. package/build-types/menu/checkbox-item.d.ts.map +1 -1
  744. package/build-types/menu/group-label.d.ts.map +1 -1
  745. package/build-types/menu/group.d.ts.map +1 -1
  746. package/build-types/menu/index.d.ts.map +1 -1
  747. package/build-types/menu/item-help-text.d.ts.map +1 -1
  748. package/build-types/menu/item-label.d.ts.map +1 -1
  749. package/build-types/menu/item.d.ts.map +1 -1
  750. package/build-types/menu/radio-item.d.ts.map +1 -1
  751. package/build-types/menu/separator.d.ts.map +1 -1
  752. package/build-types/menu/styles.d.ts.map +1 -1
  753. package/build-types/menu-item/stories/index.story.d.ts.map +1 -1
  754. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  755. package/build-types/navigator/navigator-back-button/hook.d.ts +92 -92
  756. package/build-types/navigator/navigator-button/hook.d.ts +92 -92
  757. package/build-types/number-control/index.d.ts +2 -1
  758. package/build-types/number-control/index.d.ts.map +1 -1
  759. package/build-types/number-control/stories/index.story.d.ts +2 -1
  760. package/build-types/number-control/stories/index.story.d.ts.map +1 -1
  761. package/build-types/number-control/types.d.ts +7 -0
  762. package/build-types/number-control/types.d.ts.map +1 -1
  763. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  764. package/build-types/progress-bar/styles.d.ts.map +1 -1
  765. package/build-types/range-control/index.d.ts +1 -1
  766. package/build-types/range-control/index.d.ts.map +1 -1
  767. package/build-types/range-control/mark.d.ts.map +1 -1
  768. package/build-types/range-control/styles/range-control-styles.d.ts +4 -3
  769. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  770. package/build-types/resizable-box/index.d.ts.map +1 -1
  771. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  772. package/build-types/resizable-box/stories/index.story.d.ts.map +1 -1
  773. package/build-types/scrollable/hook.d.ts +83 -83
  774. package/build-types/scrollable/stories/index.story.d.ts.map +1 -1
  775. package/build-types/select-control/index.d.ts.map +1 -1
  776. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  777. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  778. package/build-types/slot-fill/bubbles-virtually/fill.d.ts.map +1 -1
  779. package/build-types/slot-fill/bubbles-virtually/slot-fill-provider.d.ts.map +1 -1
  780. package/build-types/slot-fill/bubbles-virtually/slot.d.ts.map +1 -1
  781. package/build-types/slot-fill/bubbles-virtually/use-slot-fills.d.ts +1 -1
  782. package/build-types/slot-fill/types.d.ts +4 -3
  783. package/build-types/slot-fill/types.d.ts.map +1 -1
  784. package/build-types/spacer/hook.d.ts +83 -83
  785. package/build-types/spinner/styles.d.ts.map +1 -1
  786. package/build-types/surface/hook.d.ts +83 -83
  787. package/build-types/tabs/tab.d.ts +3 -0
  788. package/build-types/tabs/tab.d.ts.map +1 -1
  789. package/build-types/text/hook.d.ts +83 -83
  790. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  791. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  792. package/build-types/tools-panel/stories/index.story.d.ts.map +1 -1
  793. package/build-types/tools-panel/tools-panel/component.d.ts +2 -0
  794. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  795. package/build-types/tools-panel/tools-panel/hook.d.ts +83 -83
  796. package/build-types/tools-panel/tools-panel-header/hook.d.ts +83 -83
  797. package/build-types/tools-panel/tools-panel-item/hook.d.ts +83 -83
  798. package/build-types/tree-grid/cell.d.ts.map +1 -1
  799. package/build-types/tree-grid/types.d.ts +1 -1
  800. package/build-types/tree-grid/types.d.ts.map +1 -1
  801. package/build-types/truncate/hook.d.ts +83 -83
  802. package/build-types/unit-control/index.d.ts +3 -2
  803. package/build-types/unit-control/index.d.ts.map +1 -1
  804. package/build-types/unit-control/stories/index.story.d.ts.map +1 -1
  805. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -1
  806. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  807. package/build-types/unit-control/types.d.ts +7 -0
  808. package/build-types/unit-control/types.d.ts.map +1 -1
  809. package/build-types/utils/colors-values.d.ts +3 -0
  810. package/build-types/utils/colors-values.d.ts.map +1 -1
  811. package/build-types/utils/config-values.d.ts +0 -1
  812. package/build-types/utils/hooks/use-controlled-state.d.ts +1 -1
  813. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  814. package/build-types/utils/rtl.d.ts +1 -1
  815. package/build-types/utils/rtl.d.ts.map +1 -1
  816. package/build-types/v-stack/hook.d.ts +83 -83
  817. package/build-types/z-stack/styles.d.ts.map +1 -1
  818. package/package.json +20 -20
  819. package/src/alignment-matrix-control/stories/index.story.tsx +2 -2
  820. package/src/angle-picker-control/index.tsx +1 -1
  821. package/src/angle-picker-control/stories/index.story.tsx +2 -2
  822. package/src/animation/index.tsx +0 -1
  823. package/src/base-control/stories/index.story.tsx +1 -1
  824. package/src/border-box-control/border-box-control-split-controls/component.tsx +1 -1
  825. package/src/border-box-control/stories/index.story.tsx +1 -1
  826. package/src/border-control/border-control/component.tsx +2 -0
  827. package/src/border-control/stories/index.story.tsx +1 -1
  828. package/src/box-control/README.md +80 -60
  829. package/src/box-control/docs-manifest.json +5 -0
  830. package/src/box-control/index.tsx +47 -29
  831. package/src/box-control/input-control.tsx +197 -0
  832. package/src/box-control/stories/index.story.tsx +2 -1
  833. package/src/box-control/test/index.tsx +33 -26
  834. package/src/box-control/types.ts +80 -55
  835. package/src/box-control/utils.ts +62 -60
  836. package/src/button/README.md +108 -219
  837. package/src/button/docs-manifest.json +5 -0
  838. package/src/button/stories/best-practices.mdx +31 -0
  839. package/src/button/stories/index.story.tsx +18 -0
  840. package/src/button/types.ts +6 -4
  841. package/src/button-group/stories/index.story.tsx +1 -1
  842. package/src/card/stories/index.story.tsx +2 -2
  843. package/src/checkbox-control/stories/index.story.tsx +1 -1
  844. package/src/circular-option-picker/circular-option-picker-actions.tsx +1 -0
  845. package/src/circular-option-picker/circular-option-picker-option.tsx +1 -0
  846. package/src/circular-option-picker/stories/index.story.tsx +2 -2
  847. package/src/circular-option-picker/style.scss +2 -2
  848. package/src/clipboard-button/index.tsx +5 -3
  849. package/src/color-palette/stories/index.story.tsx +3 -3
  850. package/src/color-picker/input-with-slider.tsx +1 -1
  851. package/src/color-picker/stories/index.story.tsx +2 -2
  852. package/src/combobox-control/stories/index.story.tsx +1 -1
  853. package/src/composite/item.tsx +1 -19
  854. package/src/composite/stories/index.story.tsx +3 -3
  855. package/src/confirm-dialog/stories/index.story.tsx +1 -1
  856. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +2 -0
  857. package/src/custom-gradient-picker/index.tsx +2 -0
  858. package/src/custom-gradient-picker/style.scss +1 -1
  859. package/src/custom-gradient-picker/types.ts +6 -0
  860. package/src/custom-select-control/README.md +2 -0
  861. package/src/custom-select-control/index.tsx +11 -2
  862. package/src/custom-select-control/stories/index.story.tsx +3 -2
  863. package/src/custom-select-control/test/index.tsx +13 -9
  864. package/src/custom-select-control/types.ts +7 -0
  865. package/src/custom-select-control-v2/stories/index.story.tsx +2 -2
  866. package/src/date-time/stories/date-time.story.tsx +4 -1
  867. package/src/date-time/stories/date.story.tsx +4 -1
  868. package/src/date-time/stories/time.story.tsx +4 -1
  869. package/src/dimension-control/stories/index.story.tsx +1 -1
  870. package/src/disabled/stories/index.story.tsx +3 -3
  871. package/src/divider/stories/index.story.tsx +1 -1
  872. package/src/draggable/stories/index.story.tsx +2 -2
  873. package/src/drop-zone/index.tsx +21 -24
  874. package/src/drop-zone/types.ts +5 -0
  875. package/src/dropdown/stories/index.story.tsx +7 -7
  876. package/src/dropdown-menu/index.tsx +4 -1
  877. package/src/dropdown-menu/stories/index.story.tsx +3 -3
  878. package/src/dropdown-menu/style.scss +1 -1
  879. package/src/duotone-picker/color-list-picker/index.tsx +8 -8
  880. package/src/duotone-picker/color-list-picker/style.scss +0 -6
  881. package/src/duotone-picker/stories/duotone-picker.story.tsx +1 -1
  882. package/src/flex/stories/index.story.tsx +1 -1
  883. package/src/font-size-picker/font-size-picker-select.tsx +1 -0
  884. package/src/font-size-picker/index.tsx +1 -0
  885. package/src/font-size-picker/stories/index.story.tsx +1 -1
  886. package/src/form-file-upload/README.md +58 -48
  887. package/src/form-file-upload/docs-manifest.json +5 -0
  888. package/src/form-file-upload/index.tsx +12 -1
  889. package/src/form-file-upload/stories/index.story.tsx +4 -3
  890. package/src/form-file-upload/test/index.tsx +5 -1
  891. package/src/form-file-upload/types.ts +10 -8
  892. package/src/form-token-field/README.md +1 -0
  893. package/src/form-token-field/index.tsx +7 -0
  894. package/src/form-token-field/stories/index.story.tsx +4 -2
  895. package/src/form-token-field/test/index.tsx +5 -1
  896. package/src/gradient-picker/README.md +8 -0
  897. package/src/gradient-picker/index.tsx +2 -0
  898. package/src/gradient-picker/stories/index.story.tsx +1 -1
  899. package/src/gradient-picker/types.ts +6 -0
  900. package/src/grid/stories/index.story.tsx +1 -1
  901. package/src/h-stack/stories/index.story.tsx +2 -2
  902. package/src/icon/README.md +22 -65
  903. package/src/icon/docs-manifest.json +5 -0
  904. package/src/icon/index.tsx +28 -13
  905. package/src/icon/stories/index.story.tsx +50 -8
  906. package/src/index.ts +1 -5
  907. package/src/input-control/stories/index.story.tsx +4 -4
  908. package/src/item-group/stories/index.story.tsx +2 -2
  909. package/src/menu/checkbox-item.tsx +9 -7
  910. package/src/menu/group-label.tsx +8 -1
  911. package/src/menu/group.tsx +8 -1
  912. package/src/menu/item-help-text.tsx +10 -1
  913. package/src/menu/item-label.tsx +10 -1
  914. package/src/menu/item.tsx +8 -6
  915. package/src/menu/radio-item.tsx +9 -7
  916. package/src/menu/separator.tsx +9 -2
  917. package/src/menu/stories/index.story.tsx +2 -2
  918. package/src/menu/styles.ts +1 -1
  919. package/src/menu-group/stories/index.story.tsx +1 -1
  920. package/src/menu-item/stories/index.story.tsx +1 -1
  921. package/src/menu-items-choice/stories/index.story.tsx +1 -1
  922. package/src/menu-items-choice/style.scss +1 -0
  923. package/src/modal/stories/index.story.tsx +2 -2
  924. package/src/modal/test/index.tsx +2 -1
  925. package/src/navigable-container/stories/navigable-menu.story.tsx +1 -1
  926. package/src/navigable-container/stories/tabbable-container.story.tsx +1 -1
  927. package/src/navigation/stories/index.story.tsx +4 -4
  928. package/src/navigation/styles/navigation-styles.tsx +3 -2
  929. package/src/navigator/stories/index.story.tsx +3 -3
  930. package/src/number-control/README.md +2 -1
  931. package/src/number-control/index.tsx +9 -0
  932. package/src/number-control/stories/index.story.tsx +2 -1
  933. package/src/number-control/test/index.tsx +5 -1
  934. package/src/number-control/types.ts +7 -0
  935. package/src/panel/stories/index.story.tsx +1 -1
  936. package/src/placeholder/stories/index.story.tsx +3 -3
  937. package/src/popover/stories/index.story.tsx +11 -9
  938. package/src/query-controls/stories/index.story.tsx +6 -6
  939. package/src/radio-control/stories/index.story.tsx +1 -1
  940. package/src/radio-group/stories/index.story.tsx +3 -3
  941. package/src/range-control/index.tsx +1 -0
  942. package/src/range-control/mark.tsx +0 -1
  943. package/src/range-control/stories/index.story.tsx +7 -7
  944. package/src/range-control/styles/range-control-styles.ts +18 -19
  945. package/src/resizable-box/index.tsx +10 -0
  946. package/src/resizable-box/stories/index.story.tsx +1 -1
  947. package/src/resizable-box/style.scss +8 -0
  948. package/src/responsive-wrapper/stories/index.story.tsx +1 -1
  949. package/src/sandbox/stories/index.story.tsx +1 -1
  950. package/src/scrollable/stories/index.story.tsx +2 -1
  951. package/src/search-control/stories/index.story.tsx +1 -1
  952. package/src/select-control/stories/index.story.tsx +1 -1
  953. package/src/slot-fill/bubbles-virtually/fill.tsx +7 -11
  954. package/src/slot-fill/bubbles-virtually/slot-fill-provider.tsx +2 -13
  955. package/src/slot-fill/bubbles-virtually/slot.tsx +4 -7
  956. package/src/slot-fill/stories/index.story.tsx +2 -2
  957. package/src/slot-fill/types.ts +4 -3
  958. package/src/snackbar/stories/index.story.tsx +4 -4
  959. package/src/snackbar/stories/list.story.tsx +2 -2
  960. package/src/surface/stories/index.story.tsx +1 -1
  961. package/src/tabs/tab.tsx +0 -18
  962. package/src/tabs/test/index.tsx +1492 -947
  963. package/src/text-control/stories/index.story.tsx +1 -1
  964. package/src/textarea-control/stories/index.story.tsx +1 -1
  965. package/src/theme/stories/index.story.tsx +1 -1
  966. package/src/toggle-control/stories/index.story.tsx +1 -1
  967. package/src/toggle-group-control/stories/index.story.tsx +1 -1
  968. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +22 -22
  969. package/src/toggle-group-control/toggle-group-control/styles.ts +1 -1
  970. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +6 -6
  971. package/src/toolbar/stories/index.story.tsx +1 -1
  972. package/src/toolbar/toolbar-button/index.tsx +2 -0
  973. package/src/tools-panel/stories/index.story.tsx +15 -3
  974. package/src/tools-panel/test/index.tsx +0 -17
  975. package/src/tools-panel/tools-panel/README.md +4 -0
  976. package/src/tools-panel/tools-panel/component.tsx +2 -0
  977. package/src/tooltip/stories/index.story.tsx +1 -1
  978. package/src/tree-grid/cell.tsx +5 -1
  979. package/src/tree-grid/stories/index.story.tsx +1 -1
  980. package/src/tree-grid/types.ts +1 -1
  981. package/src/tree-select/stories/index.story.tsx +1 -1
  982. package/src/unit-control/README.md +3 -3
  983. package/src/unit-control/index.tsx +11 -1
  984. package/src/unit-control/stories/index.story.tsx +5 -4
  985. package/src/unit-control/test/index.tsx +5 -1
  986. package/src/unit-control/types.ts +7 -0
  987. package/src/utils/colors-values.js +3 -0
  988. package/src/utils/config-values.js +0 -1
  989. package/src/view/stories/index.story.tsx +1 -1
  990. package/src/visually-hidden/stories/index.story.tsx +1 -1
  991. package/src/z-stack/stories/index.story.tsx +1 -1
  992. package/tsconfig.tsbuildinfo +1 -1
  993. package/build/box-control/all-input-control.js +0 -90
  994. package/build/box-control/all-input-control.js.map +0 -1
  995. package/build/box-control/axial-input-controls.js +0 -124
  996. package/build/box-control/axial-input-controls.js.map +0 -1
  997. package/build/box-control/input-controls.js +0 -132
  998. package/build/box-control/input-controls.js.map +0 -1
  999. package/build/menu/use-temporary-focus-visible-fix.js +0 -27
  1000. package/build/menu/use-temporary-focus-visible-fix.js.map +0 -1
  1001. package/build-module/box-control/all-input-control.js +0 -83
  1002. package/build-module/box-control/all-input-control.js.map +0 -1
  1003. package/build-module/box-control/axial-input-controls.js +0 -115
  1004. package/build-module/box-control/axial-input-controls.js.map +0 -1
  1005. package/build-module/box-control/input-controls.js +0 -123
  1006. package/build-module/box-control/input-controls.js.map +0 -1
  1007. package/build-module/menu/use-temporary-focus-visible-fix.js +0 -20
  1008. package/build-module/menu/use-temporary-focus-visible-fix.js.map +0 -1
  1009. package/build-types/box-control/all-input-control.d.ts +0 -3
  1010. package/build-types/box-control/all-input-control.d.ts.map +0 -1
  1011. package/build-types/box-control/axial-input-controls.d.ts +0 -3
  1012. package/build-types/box-control/axial-input-controls.d.ts.map +0 -1
  1013. package/build-types/box-control/input-controls.d.ts +0 -3
  1014. package/build-types/box-control/input-controls.d.ts.map +0 -1
  1015. package/build-types/menu/use-temporary-focus-visible-fix.d.ts +0 -8
  1016. package/build-types/menu/use-temporary-focus-visible-fix.d.ts.map +0 -1
  1017. package/src/box-control/all-input-control.tsx +0 -109
  1018. package/src/box-control/axial-input-controls.tsx +0 -164
  1019. package/src/box-control/input-controls.tsx +0 -166
  1020. package/src/menu/use-temporary-focus-visible-fix.ts +0 -22
@@ -69,6 +69,7 @@ const UnconnectedToolsPanel = (props, forwardedRef) => {
69
69
  * onDeselect={ () => setHeight() }
70
70
  * >
71
71
  * <UnitControl
72
+ * __next40pxDefaultSize
72
73
  * label={ __( 'Height' ) }
73
74
  * onChange={ setHeight }
74
75
  * value={ height }
@@ -80,6 +81,7 @@ const UnconnectedToolsPanel = (props, forwardedRef) => {
80
81
  * onDeselect={ () => setWidth() }
81
82
  * >
82
83
  * <UnitControl
84
+ * __next40pxDefaultSize
83
85
  * label={ __( 'Width' ) }
84
86
  * onChange={ setWidth }
85
87
  * value={ width }
@@ -1 +1 @@
1
- {"version":3,"names":["ToolsPanelHeader","ToolsPanelContext","useToolsPanel","Grid","contextConnect","jsx","_jsx","jsxs","_jsxs","UnconnectedToolsPanel","props","forwardedRef","children","label","panelContext","resetAllItems","toggleItem","headingLevel","dropdownMenuProps","toolsPanelProps","columns","ref","Provider","value","resetAll","ToolsPanel"],"sources":["@wordpress/components/src/tools-panel/tools-panel/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport ToolsPanelHeader from '../tools-panel-header';\nimport { ToolsPanelContext } from '../context';\nimport { useToolsPanel } from './hook';\nimport { Grid } from '../../grid';\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport type { ToolsPanelProps } from '../types';\n\nconst UnconnectedToolsPanel = (\n\tprops: WordPressComponentProps< ToolsPanelProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tchildren,\n\t\tlabel,\n\t\tpanelContext,\n\t\tresetAllItems,\n\t\ttoggleItem,\n\t\theadingLevel,\n\t\tdropdownMenuProps,\n\t\t...toolsPanelProps\n\t} = useToolsPanel( props );\n\n\treturn (\n\t\t<Grid { ...toolsPanelProps } columns={ 2 } ref={ forwardedRef }>\n\t\t\t<ToolsPanelContext.Provider value={ panelContext }>\n\t\t\t\t<ToolsPanelHeader\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tresetAll={ resetAllItems }\n\t\t\t\t\ttoggleItem={ toggleItem }\n\t\t\t\t\theadingLevel={ headingLevel }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t</ToolsPanelContext.Provider>\n\t\t</Grid>\n\t);\n};\n\n/**\n * The `ToolsPanel` is a container component that displays its children preceded\n * by a header. The header includes a dropdown menu which is automatically\n * generated from the panel's inner `ToolsPanelItems`.\n *\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import {\n * __experimentalToolsPanel as ToolsPanel,\n * __experimentalToolsPanelItem as ToolsPanelItem,\n * __experimentalUnitControl as UnitControl\n * } from '@wordpress/components';\n *\n * function Example() {\n * const [ height, setHeight ] = useState();\n * const [ width, setWidth ] = useState();\n *\n * const resetAll = () => {\n * setHeight();\n * setWidth();\n * }\n *\n * return (\n * <ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n * <ToolsPanelItem\n * hasValue={ () => !! height }\n * label={ __( 'Height' ) }\n * onDeselect={ () => setHeight() }\n * >\n * <UnitControl\n * label={ __( 'Height' ) }\n * onChange={ setHeight }\n * value={ height }\n * />\n * </ToolsPanelItem>\n * <ToolsPanelItem\n * hasValue={ () => !! width }\n * label={ __( 'Width' ) }\n * onDeselect={ () => setWidth() }\n * >\n * <UnitControl\n * label={ __( 'Width' ) }\n * onChange={ setWidth }\n * value={ width }\n * />\n * </ToolsPanelItem>\n * </ToolsPanel>\n * );\n * }\n * ```\n */\nexport const ToolsPanel = contextConnect( UnconnectedToolsPanel, 'ToolsPanel' );\n\nexport default ToolsPanel;\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,OAAOA,gBAAgB,MAAM,uBAAuB;AACpD,SAASC,iBAAiB,QAAQ,YAAY;AAC9C,SAASC,aAAa,QAAQ,QAAQ;AACtC,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,cAAc,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,MAAMC,qBAAqB,GAAGA,CAC7BC,KAAwD,EACxDC,YAAiC,KAC7B;EACJ,MAAM;IACLC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,iBAAiB;IACjB,GAAGC;EACJ,CAAC,GAAGjB,aAAa,CAAEQ,KAAM,CAAC;EAE1B,oBACCJ,IAAA,CAACH,IAAI;IAAA,GAAMgB,eAAe;IAAGC,OAAO,EAAG,CAAG;IAACC,GAAG,EAAGV,YAAc;IAAAC,QAAA,eAC9DJ,KAAA,CAACP,iBAAiB,CAACqB,QAAQ;MAACC,KAAK,EAAGT,YAAc;MAAAF,QAAA,gBACjDN,IAAA,CAACN,gBAAgB;QAChBa,KAAK,EAAGA,KAAO;QACfW,QAAQ,EAAGT,aAAe;QAC1BC,UAAU,EAAGA,UAAY;QACzBC,YAAY,EAAGA,YAAc;QAC7BC,iBAAiB,EAAGA;MAAmB,CACvC,CAAC,EACAN,QAAQ;IAAA,CACiB;EAAC,CACxB,CAAC;AAET,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMa,UAAU,GAAGrB,cAAc,CAAEK,qBAAqB,EAAE,YAAa,CAAC;AAE/E,eAAegB,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["ToolsPanelHeader","ToolsPanelContext","useToolsPanel","Grid","contextConnect","jsx","_jsx","jsxs","_jsxs","UnconnectedToolsPanel","props","forwardedRef","children","label","panelContext","resetAllItems","toggleItem","headingLevel","dropdownMenuProps","toolsPanelProps","columns","ref","Provider","value","resetAll","ToolsPanel"],"sources":["@wordpress/components/src/tools-panel/tools-panel/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport ToolsPanelHeader from '../tools-panel-header';\nimport { ToolsPanelContext } from '../context';\nimport { useToolsPanel } from './hook';\nimport { Grid } from '../../grid';\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport type { ToolsPanelProps } from '../types';\n\nconst UnconnectedToolsPanel = (\n\tprops: WordPressComponentProps< ToolsPanelProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tchildren,\n\t\tlabel,\n\t\tpanelContext,\n\t\tresetAllItems,\n\t\ttoggleItem,\n\t\theadingLevel,\n\t\tdropdownMenuProps,\n\t\t...toolsPanelProps\n\t} = useToolsPanel( props );\n\n\treturn (\n\t\t<Grid { ...toolsPanelProps } columns={ 2 } ref={ forwardedRef }>\n\t\t\t<ToolsPanelContext.Provider value={ panelContext }>\n\t\t\t\t<ToolsPanelHeader\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tresetAll={ resetAllItems }\n\t\t\t\t\ttoggleItem={ toggleItem }\n\t\t\t\t\theadingLevel={ headingLevel }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t/>\n\t\t\t\t{ children }\n\t\t\t</ToolsPanelContext.Provider>\n\t\t</Grid>\n\t);\n};\n\n/**\n * The `ToolsPanel` is a container component that displays its children preceded\n * by a header. The header includes a dropdown menu which is automatically\n * generated from the panel's inner `ToolsPanelItems`.\n *\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import {\n * __experimentalToolsPanel as ToolsPanel,\n * __experimentalToolsPanelItem as ToolsPanelItem,\n * __experimentalUnitControl as UnitControl\n * } from '@wordpress/components';\n *\n * function Example() {\n * const [ height, setHeight ] = useState();\n * const [ width, setWidth ] = useState();\n *\n * const resetAll = () => {\n * setHeight();\n * setWidth();\n * }\n *\n * return (\n * <ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n * <ToolsPanelItem\n * hasValue={ () => !! height }\n * label={ __( 'Height' ) }\n * onDeselect={ () => setHeight() }\n * >\n * <UnitControl\n * __next40pxDefaultSize\n * label={ __( 'Height' ) }\n * onChange={ setHeight }\n * value={ height }\n * />\n * </ToolsPanelItem>\n * <ToolsPanelItem\n * hasValue={ () => !! width }\n * label={ __( 'Width' ) }\n * onDeselect={ () => setWidth() }\n * >\n * <UnitControl\n * __next40pxDefaultSize\n * label={ __( 'Width' ) }\n * onChange={ setWidth }\n * value={ width }\n * />\n * </ToolsPanelItem>\n * </ToolsPanel>\n * );\n * }\n * ```\n */\nexport const ToolsPanel = contextConnect( UnconnectedToolsPanel, 'ToolsPanel' );\n\nexport default ToolsPanel;\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,OAAOA,gBAAgB,MAAM,uBAAuB;AACpD,SAASC,iBAAiB,QAAQ,YAAY;AAC9C,SAASC,aAAa,QAAQ,QAAQ;AACtC,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,cAAc,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,MAAMC,qBAAqB,GAAGA,CAC7BC,KAAwD,EACxDC,YAAiC,KAC7B;EACJ,MAAM;IACLC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,iBAAiB;IACjB,GAAGC;EACJ,CAAC,GAAGjB,aAAa,CAAEQ,KAAM,CAAC;EAE1B,oBACCJ,IAAA,CAACH,IAAI;IAAA,GAAMgB,eAAe;IAAGC,OAAO,EAAG,CAAG;IAACC,GAAG,EAAGV,YAAc;IAAAC,QAAA,eAC9DJ,KAAA,CAACP,iBAAiB,CAACqB,QAAQ;MAACC,KAAK,EAAGT,YAAc;MAAAF,QAAA,gBACjDN,IAAA,CAACN,gBAAgB;QAChBa,KAAK,EAAGA,KAAO;QACfW,QAAQ,EAAGT,aAAe;QAC1BC,UAAU,EAAGA,UAAY;QACzBC,YAAY,EAAGA,YAAc;QAC7BC,iBAAiB,EAAGA;MAAmB,CACvC,CAAC,EACAN,QAAQ;IAAA,CACiB;EAAC,CACxB,CAAC;AAET,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMa,UAAU,GAAGrB,cAAc,CAAEK,qBAAqB,EAAE,YAAa,CAAC;AAE/E,eAAegB,UAAU","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useReducer","useRef","styles","useContextSystem","useCx","DEFAULT_COLUMNS","emptyMenuItems","default","optional","emptyState","panelItems","menuItemOrder","menuItems","generateMenuItems","shouldReset","currentMenuItems","newMenuItems","forEach","hasValue","isShownByDefault","label","group","existingItemValue","value","key","hasOwnProperty","Object","keys","panelItemsReducer","action","type","newItems","existingIndex","findIndex","oldItem","item","splice","push","index","menuItemOrderReducer","includes","menuItemsReducer","state","oldValue","currentItem","find","menuGroup","panelReducer","resetAllFiltersReducer","filters","filter","f","isMenuItemTypeEmpty","obj","length","useToolsPanel","props","className","headingLevel","resetAll","panelId","hasInnerWrapper","shouldRenderPlaceholderItems","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","otherProps","isResettingRef","wasResetting","current","panelDispatch","undefined","resetAllFilters","dispatchResetAllFilters","registerPanelItem","deregisterPanelItem","registerResetAllFilter","deregisterResetAllFilter","flagItemCustomization","areAllOptionalControlsHidden","values","every","isSelected","cx","classes","wrapperStyle","ToolsPanelWithInnerWrapper","emptyStyle","ToolsPanelHiddenInnerWrapper","ToolsPanel","toggleItem","resetAllItems","getFirstVisibleItemLabel","items","optionalItems","firstItem","firstDisplayedItem","lastDisplayedItem","reverse","hasMenuItems","panelContext","isResetting"],"sources":["@wordpress/components/src/tools-panel/tools-panel/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseReducer,\n\tuseRef,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type {\n\tToolsPanelItem,\n\tToolsPanelMenuItemKey,\n\tToolsPanelMenuItems,\n\tToolsPanelMenuItemsConfig,\n\tToolsPanelProps,\n\tResetAllFilter,\n} from '../types';\n\nconst DEFAULT_COLUMNS = 2;\n\ntype PanelItemsState = {\n\tpanelItems: ToolsPanelItem[];\n\tmenuItemOrder: string[];\n\tmenuItems: ToolsPanelMenuItems;\n};\n\ntype PanelItemsAction =\n\t| { type: 'REGISTER_PANEL'; item: ToolsPanelItem }\n\t| { type: 'UNREGISTER_PANEL'; label: string }\n\t| {\n\t\t\ttype: 'UPDATE_VALUE';\n\t\t\tgroup: ToolsPanelMenuItemKey;\n\t\t\tlabel: string;\n\t\t\tvalue: boolean;\n\t }\n\t| { type: 'TOGGLE_VALUE'; label: string }\n\t| { type: 'RESET_ALL' };\n\nfunction emptyMenuItems(): ToolsPanelMenuItems {\n\treturn { default: {}, optional: {} };\n}\n\nfunction emptyState(): PanelItemsState {\n\treturn { panelItems: [], menuItemOrder: [], menuItems: emptyMenuItems() };\n}\n\nconst generateMenuItems = ( {\n\tpanelItems,\n\tshouldReset,\n\tcurrentMenuItems,\n\tmenuItemOrder,\n}: ToolsPanelMenuItemsConfig ) => {\n\tconst newMenuItems: ToolsPanelMenuItems = emptyMenuItems();\n\tconst menuItems: ToolsPanelMenuItems = emptyMenuItems();\n\n\tpanelItems.forEach( ( { hasValue, isShownByDefault, label } ) => {\n\t\tconst group = isShownByDefault ? 'default' : 'optional';\n\n\t\t// If a menu item for this label has already been flagged as customized\n\t\t// (for default controls), or toggled on (for optional controls), do not\n\t\t// overwrite its value as those controls would lose that state.\n\t\tconst existingItemValue = currentMenuItems?.[ group ]?.[ label ];\n\t\tconst value = existingItemValue ? existingItemValue : hasValue();\n\n\t\tnewMenuItems[ group ][ label ] = shouldReset ? false : value;\n\t} );\n\n\t// Loop the known, previously registered items first to maintain menu order.\n\tmenuItemOrder.forEach( ( key ) => {\n\t\tif ( newMenuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\n\t\tif ( newMenuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\t// Loop newMenuItems object adding any that aren't in the known items order.\n\tObject.keys( newMenuItems.default ).forEach( ( key ) => {\n\t\tif ( ! menuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\t} );\n\n\tObject.keys( newMenuItems.optional ).forEach( ( key ) => {\n\t\tif ( ! menuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\treturn menuItems;\n};\n\nfunction panelItemsReducer(\n\tpanelItems: ToolsPanelItem[],\n\taction: PanelItemsAction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL': {\n\t\t\tconst newItems = [ ...panelItems ];\n\t\t\t// If an item with this label has already been registered, remove it\n\t\t\t// first. This can happen when an item is moved between the default\n\t\t\t// and optional groups.\n\t\t\tconst existingIndex = newItems.findIndex(\n\t\t\t\t( oldItem ) => oldItem.label === action.item.label\n\t\t\t);\n\t\t\tif ( existingIndex !== -1 ) {\n\t\t\t\tnewItems.splice( existingIndex, 1 );\n\t\t\t}\n\t\t\tnewItems.push( action.item );\n\t\t\treturn newItems;\n\t\t}\n\t\tcase 'UNREGISTER_PANEL': {\n\t\t\tconst index = panelItems.findIndex(\n\t\t\t\t( item ) => item.label === action.label\n\t\t\t);\n\t\t\tif ( index !== -1 ) {\n\t\t\t\tconst newItems = [ ...panelItems ];\n\t\t\t\tnewItems.splice( index, 1 );\n\t\t\t\treturn newItems;\n\t\t\t}\n\t\t\treturn panelItems;\n\t\t}\n\t\tdefault:\n\t\t\treturn panelItems;\n\t}\n}\n\nfunction menuItemOrderReducer(\n\tmenuItemOrder: string[],\n\taction: PanelItemsAction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL': {\n\t\t\t// Track the initial order of item registration. This is used for\n\t\t\t// maintaining menu item order later.\n\t\t\tif ( menuItemOrder.includes( action.item.label ) ) {\n\t\t\t\treturn menuItemOrder;\n\t\t\t}\n\n\t\t\treturn [ ...menuItemOrder, action.item.label ];\n\t\t}\n\t\tdefault:\n\t\t\treturn menuItemOrder;\n\t}\n}\n\nfunction menuItemsReducer( state: PanelItemsState, action: PanelItemsAction ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL':\n\t\tcase 'UNREGISTER_PANEL':\n\t\t\t// generate new menu items from original `menuItems` and updated `panelItems` and `menuItemOrder`\n\t\t\treturn generateMenuItems( {\n\t\t\t\tcurrentMenuItems: state.menuItems,\n\t\t\t\tpanelItems: state.panelItems,\n\t\t\t\tmenuItemOrder: state.menuItemOrder,\n\t\t\t\tshouldReset: false,\n\t\t\t} );\n\t\tcase 'RESET_ALL':\n\t\t\treturn generateMenuItems( {\n\t\t\t\tpanelItems: state.panelItems,\n\t\t\t\tmenuItemOrder: state.menuItemOrder,\n\t\t\t\tshouldReset: true,\n\t\t\t} );\n\t\tcase 'UPDATE_VALUE': {\n\t\t\tconst oldValue = state.menuItems[ action.group ][ action.label ];\n\t\t\tif ( action.value === oldValue ) {\n\t\t\t\treturn state.menuItems;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state.menuItems,\n\t\t\t\t[ action.group ]: {\n\t\t\t\t\t...state.menuItems[ action.group ],\n\t\t\t\t\t[ action.label ]: action.value,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'TOGGLE_VALUE': {\n\t\t\tconst currentItem = state.panelItems.find(\n\t\t\t\t( item ) => item.label === action.label\n\t\t\t);\n\n\t\t\tif ( ! currentItem ) {\n\t\t\t\treturn state.menuItems;\n\t\t\t}\n\n\t\t\tconst menuGroup = currentItem.isShownByDefault\n\t\t\t\t? 'default'\n\t\t\t\t: 'optional';\n\n\t\t\tconst newMenuItems = {\n\t\t\t\t...state.menuItems,\n\t\t\t\t[ menuGroup ]: {\n\t\t\t\t\t...state.menuItems[ menuGroup ],\n\t\t\t\t\t[ action.label ]:\n\t\t\t\t\t\t! state.menuItems[ menuGroup ][ action.label ],\n\t\t\t\t},\n\t\t\t};\n\t\t\treturn newMenuItems;\n\t\t}\n\n\t\tdefault:\n\t\t\treturn state.menuItems;\n\t}\n}\n\nfunction panelReducer( state: PanelItemsState, action: PanelItemsAction ) {\n\tconst panelItems = panelItemsReducer( state.panelItems, action );\n\tconst menuItemOrder = menuItemOrderReducer( state.menuItemOrder, action );\n\t// `menuItemsReducer` is a bit unusual because it generates new state from original `menuItems`\n\t// and the updated `panelItems` and `menuItemOrder`.\n\tconst menuItems = menuItemsReducer(\n\t\t{ panelItems, menuItemOrder, menuItems: state.menuItems },\n\t\taction\n\t);\n\n\treturn { panelItems, menuItemOrder, menuItems };\n}\n\nfunction resetAllFiltersReducer(\n\tfilters: ResetAllFilter[],\n\taction: { type: 'REGISTER' | 'UNREGISTER'; filter: ResetAllFilter }\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER':\n\t\t\treturn [ ...filters, action.filter ];\n\t\tcase 'UNREGISTER':\n\t\t\treturn filters.filter( ( f ) => f !== action.filter );\n\t\tdefault:\n\t\t\treturn filters;\n\t}\n}\n\nconst isMenuItemTypeEmpty = (\n\tobj: ToolsPanelMenuItems[ ToolsPanelMenuItemKey ]\n) => Object.keys( obj ).length === 0;\n\nexport function useToolsPanel(\n\tprops: WordPressComponentProps< ToolsPanelProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\theadingLevel = 2,\n\t\tresetAll,\n\t\tpanelId,\n\t\thasInnerWrapper = false,\n\t\tshouldRenderPlaceholderItems = false,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToolsPanel' );\n\n\tconst isResettingRef = useRef( false );\n\tconst wasResetting = isResettingRef.current;\n\n\t// `isResettingRef` is cleared via this hook to effectively batch together\n\t// the resetAll task. Without this, the flag is cleared after the first\n\t// control updates and forces a rerender with subsequent controls then\n\t// believing they need to reset, unfortunately using stale data.\n\tuseEffect( () => {\n\t\tif ( wasResetting ) {\n\t\t\tisResettingRef.current = false;\n\t\t}\n\t}, [ wasResetting ] );\n\n\t// Allow panel items to register themselves.\n\tconst [ { panelItems, menuItems }, panelDispatch ] = useReducer(\n\t\tpanelReducer,\n\t\tundefined,\n\t\temptyState\n\t);\n\n\tconst [ resetAllFilters, dispatchResetAllFilters ] = useReducer(\n\t\tresetAllFiltersReducer,\n\t\t[]\n\t);\n\n\tconst registerPanelItem = useCallback( ( item: ToolsPanelItem ) => {\n\t\t// Add item to panel items.\n\t\tpanelDispatch( { type: 'REGISTER_PANEL', item } );\n\t}, [] );\n\n\t// Panels need to deregister on unmount to avoid orphans in menu state.\n\t// This is an issue when panel items are being injected via SlotFills.\n\tconst deregisterPanelItem = useCallback( ( label: string ) => {\n\t\t// When switching selections between components injecting matching\n\t\t// controls, e.g. both panels have a \"padding\" control, the\n\t\t// deregistration of the first panel doesn't occur until after the\n\t\t// registration of the next.\n\t\tpanelDispatch( { type: 'UNREGISTER_PANEL', label } );\n\t}, [] );\n\n\tconst registerResetAllFilter = useCallback( ( filter: ResetAllFilter ) => {\n\t\tdispatchResetAllFilters( { type: 'REGISTER', filter } );\n\t}, [] );\n\n\tconst deregisterResetAllFilter = useCallback(\n\t\t( filter: ResetAllFilter ) => {\n\t\t\tdispatchResetAllFilters( { type: 'UNREGISTER', filter } );\n\t\t},\n\t\t[]\n\t);\n\n\t// Updates the status of the panel’s menu items. For default items the\n\t// value represents whether it differs from the default and for optional\n\t// items whether the item is shown.\n\tconst flagItemCustomization = useCallback(\n\t\t(\n\t\t\tvalue: boolean,\n\t\t\tlabel: string,\n\t\t\tgroup: ToolsPanelMenuItemKey = 'default'\n\t\t) => {\n\t\t\tpanelDispatch( { type: 'UPDATE_VALUE', group, label, value } );\n\t\t},\n\t\t[]\n\t);\n\n\t// Whether all optional menu items are hidden or not must be tracked\n\t// in order to later determine if the panel display is empty and handle\n\t// conditional display of a plus icon to indicate the presence of further\n\t// menu items.\n\tconst areAllOptionalControlsHidden = useMemo( () => {\n\t\treturn (\n\t\t\tisMenuItemTypeEmpty( menuItems.default ) &&\n\t\t\t! isMenuItemTypeEmpty( menuItems.optional ) &&\n\t\t\tObject.values( menuItems.optional ).every(\n\t\t\t\t( isSelected ) => ! isSelected\n\t\t\t)\n\t\t);\n\t}, [ menuItems ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\tconst wrapperStyle =\n\t\t\thasInnerWrapper &&\n\t\t\tstyles.ToolsPanelWithInnerWrapper( DEFAULT_COLUMNS );\n\t\tconst emptyStyle =\n\t\t\tareAllOptionalControlsHidden && styles.ToolsPanelHiddenInnerWrapper;\n\n\t\treturn cx(\n\t\t\tstyles.ToolsPanel( DEFAULT_COLUMNS ),\n\t\t\twrapperStyle,\n\t\t\temptyStyle,\n\t\t\tclassName\n\t\t);\n\t}, [ areAllOptionalControlsHidden, className, cx, hasInnerWrapper ] );\n\n\t// Toggle the checked state of a menu item which is then used to determine\n\t// display of the item within the panel.\n\tconst toggleItem = useCallback( ( label: string ) => {\n\t\tpanelDispatch( { type: 'TOGGLE_VALUE', label } );\n\t}, [] );\n\n\t// Resets display of children and executes resetAll callback if available.\n\tconst resetAllItems = useCallback( () => {\n\t\tif ( typeof resetAll === 'function' ) {\n\t\t\tisResettingRef.current = true;\n\t\t\tresetAll( resetAllFilters );\n\t\t}\n\n\t\t// Turn off display of all non-default items.\n\t\tpanelDispatch( { type: 'RESET_ALL' } );\n\t}, [ resetAllFilters, resetAll ] );\n\n\t// Assist ItemGroup styling when there are potentially hidden placeholder\n\t// items by identifying first & last items that are toggled on for display.\n\tconst getFirstVisibleItemLabel = ( items: ToolsPanelItem[] ) => {\n\t\tconst optionalItems = menuItems.optional || {};\n\t\tconst firstItem = items.find(\n\t\t\t( item ) => item.isShownByDefault || optionalItems[ item.label ]\n\t\t);\n\n\t\treturn firstItem?.label;\n\t};\n\n\tconst firstDisplayedItem = getFirstVisibleItemLabel( panelItems );\n\tconst lastDisplayedItem = getFirstVisibleItemLabel(\n\t\t[ ...panelItems ].reverse()\n\t);\n\n\tconst hasMenuItems = panelItems.length > 0;\n\n\tconst panelContext = useMemo(\n\t\t() => ( {\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\thasMenuItems,\n\t\t\tisResetting: isResettingRef.current,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\tregisterPanelItem,\n\t\t\tregisterResetAllFilter,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t} ),\n\t\t[\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\thasMenuItems,\n\t\t\tregisterResetAllFilter,\n\t\t\tregisterPanelItem,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t]\n\t);\n\n\treturn {\n\t\t...otherProps,\n\t\theadingLevel,\n\t\tpanelContext,\n\t\tresetAllItems,\n\t\ttoggleItem,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useReducer","useRef","styles","useContextSystem","useCx","DEFAULT_COLUMNS","emptyMenuItems","default","optional","emptyState","panelItems","menuItemOrder","menuItems","generateMenuItems","shouldReset","currentMenuItems","newMenuItems","forEach","hasValue","isShownByDefault","label","group","existingItemValue","value","key","hasOwnProperty","Object","keys","panelItemsReducer","action","type","newItems","existingIndex","findIndex","oldItem","item","splice","push","index","menuItemOrderReducer","includes","menuItemsReducer","state","oldValue","currentItem","find","menuGroup","panelReducer","resetAllFiltersReducer","filters","filter","f","isMenuItemTypeEmpty","obj","length","useToolsPanel","props","className","headingLevel","resetAll","panelId","hasInnerWrapper","shouldRenderPlaceholderItems","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","otherProps","isResettingRef","wasResetting","current","panelDispatch","undefined","resetAllFilters","dispatchResetAllFilters","registerPanelItem","deregisterPanelItem","registerResetAllFilter","deregisterResetAllFilter","flagItemCustomization","areAllOptionalControlsHidden","values","every","isSelected","cx","classes","wrapperStyle","ToolsPanelWithInnerWrapper","emptyStyle","ToolsPanelHiddenInnerWrapper","ToolsPanel","toggleItem","resetAllItems","getFirstVisibleItemLabel","items","optionalItems","firstItem","firstDisplayedItem","lastDisplayedItem","reverse","hasMenuItems","panelContext","isResetting"],"sources":["@wordpress/components/src/tools-panel/tools-panel/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseReducer,\n\tuseRef,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type {\n\tToolsPanelItem,\n\tToolsPanelMenuItemKey,\n\tToolsPanelMenuItems,\n\tToolsPanelMenuItemsConfig,\n\tToolsPanelProps,\n\tResetAllFilter,\n} from '../types';\n\nconst DEFAULT_COLUMNS = 2;\n\ntype PanelItemsState = {\n\tpanelItems: ToolsPanelItem[];\n\tmenuItemOrder: string[];\n\tmenuItems: ToolsPanelMenuItems;\n};\n\ntype PanelItemsAction =\n\t| { type: 'REGISTER_PANEL'; item: ToolsPanelItem }\n\t| { type: 'UNREGISTER_PANEL'; label: string }\n\t| {\n\t\t\ttype: 'UPDATE_VALUE';\n\t\t\tgroup: ToolsPanelMenuItemKey;\n\t\t\tlabel: string;\n\t\t\tvalue: boolean;\n\t }\n\t| { type: 'TOGGLE_VALUE'; label: string }\n\t| { type: 'RESET_ALL' };\n\nfunction emptyMenuItems(): ToolsPanelMenuItems {\n\treturn { default: {}, optional: {} };\n}\n\nfunction emptyState(): PanelItemsState {\n\treturn { panelItems: [], menuItemOrder: [], menuItems: emptyMenuItems() };\n}\n\nconst generateMenuItems = ( {\n\tpanelItems,\n\tshouldReset,\n\tcurrentMenuItems,\n\tmenuItemOrder,\n}: ToolsPanelMenuItemsConfig ) => {\n\tconst newMenuItems: ToolsPanelMenuItems = emptyMenuItems();\n\tconst menuItems: ToolsPanelMenuItems = emptyMenuItems();\n\n\tpanelItems.forEach( ( { hasValue, isShownByDefault, label } ) => {\n\t\tconst group = isShownByDefault ? 'default' : 'optional';\n\n\t\t// If a menu item for this label has already been flagged as customized\n\t\t// (for default controls), or toggled on (for optional controls), do not\n\t\t// overwrite its value as those controls would lose that state.\n\t\tconst existingItemValue = currentMenuItems?.[ group ]?.[ label ];\n\t\tconst value = existingItemValue ? existingItemValue : hasValue();\n\n\t\tnewMenuItems[ group ][ label ] = shouldReset ? false : value;\n\t} );\n\n\t// Loop the known, previously registered items first to maintain menu order.\n\tmenuItemOrder.forEach( ( key ) => {\n\t\tif ( newMenuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\n\t\tif ( newMenuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\t// Loop newMenuItems object adding any that aren't in the known items order.\n\tObject.keys( newMenuItems.default ).forEach( ( key ) => {\n\t\tif ( ! menuItems.default.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.default[ key ] = newMenuItems.default[ key ];\n\t\t}\n\t} );\n\n\tObject.keys( newMenuItems.optional ).forEach( ( key ) => {\n\t\tif ( ! menuItems.optional.hasOwnProperty( key ) ) {\n\t\t\tmenuItems.optional[ key ] = newMenuItems.optional[ key ];\n\t\t}\n\t} );\n\n\treturn menuItems;\n};\n\nfunction panelItemsReducer(\n\tpanelItems: ToolsPanelItem[],\n\taction: PanelItemsAction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL': {\n\t\t\tconst newItems = [ ...panelItems ];\n\t\t\t// If an item with this label has already been registered, remove it\n\t\t\t// first. This can happen when an item is moved between the default\n\t\t\t// and optional groups.\n\t\t\tconst existingIndex = newItems.findIndex(\n\t\t\t\t( oldItem ) => oldItem.label === action.item.label\n\t\t\t);\n\t\t\tif ( existingIndex !== -1 ) {\n\t\t\t\tnewItems.splice( existingIndex, 1 );\n\t\t\t}\n\t\t\tnewItems.push( action.item );\n\t\t\treturn newItems;\n\t\t}\n\t\tcase 'UNREGISTER_PANEL': {\n\t\t\tconst index = panelItems.findIndex(\n\t\t\t\t( item ) => item.label === action.label\n\t\t\t);\n\t\t\tif ( index !== -1 ) {\n\t\t\t\tconst newItems = [ ...panelItems ];\n\t\t\t\tnewItems.splice( index, 1 );\n\t\t\t\treturn newItems;\n\t\t\t}\n\t\t\treturn panelItems;\n\t\t}\n\t\tdefault:\n\t\t\treturn panelItems;\n\t}\n}\n\nfunction menuItemOrderReducer(\n\tmenuItemOrder: string[],\n\taction: PanelItemsAction\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL': {\n\t\t\t// Track the initial order of item registration. This is used for\n\t\t\t// maintaining menu item order later.\n\t\t\tif ( menuItemOrder.includes( action.item.label ) ) {\n\t\t\t\treturn menuItemOrder;\n\t\t\t}\n\n\t\t\treturn [ ...menuItemOrder, action.item.label ];\n\t\t}\n\t\tdefault:\n\t\t\treturn menuItemOrder;\n\t}\n}\n\nfunction menuItemsReducer( state: PanelItemsState, action: PanelItemsAction ) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER_PANEL':\n\t\tcase 'UNREGISTER_PANEL':\n\t\t\t// generate new menu items from original `menuItems` and updated `panelItems` and `menuItemOrder`\n\t\t\treturn generateMenuItems( {\n\t\t\t\tcurrentMenuItems: state.menuItems,\n\t\t\t\tpanelItems: state.panelItems,\n\t\t\t\tmenuItemOrder: state.menuItemOrder,\n\t\t\t\tshouldReset: false,\n\t\t\t} );\n\t\tcase 'RESET_ALL':\n\t\t\treturn generateMenuItems( {\n\t\t\t\tpanelItems: state.panelItems,\n\t\t\t\tmenuItemOrder: state.menuItemOrder,\n\t\t\t\tshouldReset: true,\n\t\t\t} );\n\t\tcase 'UPDATE_VALUE': {\n\t\t\tconst oldValue = state.menuItems[ action.group ][ action.label ];\n\t\t\tif ( action.value === oldValue ) {\n\t\t\t\treturn state.menuItems;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state.menuItems,\n\t\t\t\t[ action.group ]: {\n\t\t\t\t\t...state.menuItems[ action.group ],\n\t\t\t\t\t[ action.label ]: action.value,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'TOGGLE_VALUE': {\n\t\t\tconst currentItem = state.panelItems.find(\n\t\t\t\t( item ) => item.label === action.label\n\t\t\t);\n\n\t\t\tif ( ! currentItem ) {\n\t\t\t\treturn state.menuItems;\n\t\t\t}\n\n\t\t\tconst menuGroup = currentItem.isShownByDefault\n\t\t\t\t? 'default'\n\t\t\t\t: 'optional';\n\n\t\t\tconst newMenuItems = {\n\t\t\t\t...state.menuItems,\n\t\t\t\t[ menuGroup ]: {\n\t\t\t\t\t...state.menuItems[ menuGroup ],\n\t\t\t\t\t[ action.label ]:\n\t\t\t\t\t\t! state.menuItems[ menuGroup ][ action.label ],\n\t\t\t\t},\n\t\t\t};\n\t\t\treturn newMenuItems;\n\t\t}\n\n\t\tdefault:\n\t\t\treturn state.menuItems;\n\t}\n}\n\nfunction panelReducer( state: PanelItemsState, action: PanelItemsAction ) {\n\tconst panelItems = panelItemsReducer( state.panelItems, action );\n\tconst menuItemOrder = menuItemOrderReducer( state.menuItemOrder, action );\n\t// `menuItemsReducer` is a bit unusual because it generates new state from original `menuItems`\n\t// and the updated `panelItems` and `menuItemOrder`.\n\tconst menuItems = menuItemsReducer(\n\t\t{ panelItems, menuItemOrder, menuItems: state.menuItems },\n\t\taction\n\t);\n\n\treturn { panelItems, menuItemOrder, menuItems };\n}\n\nfunction resetAllFiltersReducer(\n\tfilters: ResetAllFilter[],\n\taction: { type: 'REGISTER' | 'UNREGISTER'; filter: ResetAllFilter }\n) {\n\tswitch ( action.type ) {\n\t\tcase 'REGISTER':\n\t\t\treturn [ ...filters, action.filter ];\n\t\tcase 'UNREGISTER':\n\t\t\treturn filters.filter( ( f ) => f !== action.filter );\n\t\tdefault:\n\t\t\treturn filters;\n\t}\n}\n\nconst isMenuItemTypeEmpty = (\n\tobj: ToolsPanelMenuItems[ ToolsPanelMenuItemKey ]\n) => Object.keys( obj ).length === 0;\n\nexport function useToolsPanel(\n\tprops: WordPressComponentProps< ToolsPanelProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\theadingLevel = 2,\n\t\tresetAll,\n\t\tpanelId,\n\t\thasInnerWrapper = false,\n\t\tshouldRenderPlaceholderItems = false,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToolsPanel' );\n\n\tconst isResettingRef = useRef( false );\n\tconst wasResetting = isResettingRef.current;\n\n\t// `isResettingRef` is cleared via this hook to effectively batch together\n\t// the resetAll task. Without this, the flag is cleared after the first\n\t// control updates and forces a rerender with subsequent controls then\n\t// believing they need to reset, unfortunately using stale data.\n\tuseEffect( () => {\n\t\tif ( wasResetting ) {\n\t\t\tisResettingRef.current = false;\n\t\t}\n\t}, [ wasResetting ] );\n\n\t// Allow panel items to register themselves.\n\tconst [ { panelItems, menuItems }, panelDispatch ] = useReducer(\n\t\tpanelReducer,\n\t\tundefined,\n\t\temptyState\n\t);\n\n\tconst [ resetAllFilters, dispatchResetAllFilters ] = useReducer(\n\t\tresetAllFiltersReducer,\n\t\t[]\n\t);\n\n\tconst registerPanelItem = useCallback( ( item: ToolsPanelItem ) => {\n\t\t// Add item to panel items.\n\t\tpanelDispatch( { type: 'REGISTER_PANEL', item } );\n\t}, [] );\n\n\t// Panels need to deregister on unmount to avoid orphans in menu state.\n\t// This is an issue when panel items are being injected via SlotFills.\n\tconst deregisterPanelItem = useCallback( ( label: string ) => {\n\t\t// When switching selections between components injecting matching\n\t\t// controls, e.g. both panels have a \"padding\" control, the\n\t\t// deregistration of the first panel doesn't occur until after the\n\t\t// registration of the next.\n\t\tpanelDispatch( { type: 'UNREGISTER_PANEL', label } );\n\t}, [] );\n\n\tconst registerResetAllFilter = useCallback( ( filter: ResetAllFilter ) => {\n\t\tdispatchResetAllFilters( { type: 'REGISTER', filter } );\n\t}, [] );\n\n\tconst deregisterResetAllFilter = useCallback(\n\t\t( filter: ResetAllFilter ) => {\n\t\t\tdispatchResetAllFilters( { type: 'UNREGISTER', filter } );\n\t\t},\n\t\t[]\n\t);\n\n\t// Updates the status of the panel’s menu items. For default items the\n\t// value represents whether it differs from the default and for optional\n\t// items whether the item is shown.\n\tconst flagItemCustomization = useCallback(\n\t\t(\n\t\t\tvalue: boolean,\n\t\t\tlabel: string,\n\t\t\tgroup: ToolsPanelMenuItemKey = 'default'\n\t\t) => {\n\t\t\tpanelDispatch( { type: 'UPDATE_VALUE', group, label, value } );\n\t\t},\n\t\t[]\n\t);\n\n\t// Whether all optional menu items are hidden or not must be tracked\n\t// in order to later determine if the panel display is empty and handle\n\t// conditional display of a plus icon to indicate the presence of further\n\t// menu items.\n\tconst areAllOptionalControlsHidden = useMemo( () => {\n\t\treturn (\n\t\t\tisMenuItemTypeEmpty( menuItems.default ) &&\n\t\t\t! isMenuItemTypeEmpty( menuItems.optional ) &&\n\t\t\tObject.values( menuItems.optional ).every(\n\t\t\t\t( isSelected ) => ! isSelected\n\t\t\t)\n\t\t);\n\t}, [ menuItems ] );\n\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\tconst wrapperStyle =\n\t\t\thasInnerWrapper &&\n\t\t\tstyles.ToolsPanelWithInnerWrapper( DEFAULT_COLUMNS );\n\t\tconst emptyStyle =\n\t\t\tareAllOptionalControlsHidden && styles.ToolsPanelHiddenInnerWrapper;\n\n\t\treturn cx(\n\t\t\tstyles.ToolsPanel( DEFAULT_COLUMNS ),\n\t\t\twrapperStyle,\n\t\t\temptyStyle,\n\t\t\tclassName\n\t\t);\n\t}, [ areAllOptionalControlsHidden, className, cx, hasInnerWrapper ] );\n\n\t// Toggle the checked state of a menu item which is then used to determine\n\t// display of the item within the panel.\n\tconst toggleItem = useCallback( ( label: string ) => {\n\t\tpanelDispatch( { type: 'TOGGLE_VALUE', label } );\n\t}, [] );\n\n\t// Resets display of children and executes resetAll callback if available.\n\tconst resetAllItems = useCallback( () => {\n\t\tif ( typeof resetAll === 'function' ) {\n\t\t\tisResettingRef.current = true;\n\t\t\tresetAll( resetAllFilters );\n\t\t}\n\n\t\t// Turn off display of all non-default items.\n\t\tpanelDispatch( { type: 'RESET_ALL' } );\n\t}, [ resetAllFilters, resetAll ] );\n\n\t// Assist ItemGroup styling when there are potentially hidden placeholder\n\t// items by identifying first & last items that are toggled on for display.\n\tconst getFirstVisibleItemLabel = ( items: ToolsPanelItem[] ) => {\n\t\tconst optionalItems = menuItems.optional || {};\n\t\tconst firstItem = items.find(\n\t\t\t( item ) => item.isShownByDefault || optionalItems[ item.label ]\n\t\t);\n\n\t\treturn firstItem?.label;\n\t};\n\n\tconst firstDisplayedItem = getFirstVisibleItemLabel( panelItems );\n\tconst lastDisplayedItem = getFirstVisibleItemLabel(\n\t\t[ ...panelItems ].reverse()\n\t);\n\n\tconst hasMenuItems = panelItems.length > 0;\n\n\tconst panelContext = useMemo(\n\t\t() => ( {\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\thasMenuItems,\n\t\t\tisResetting: isResettingRef.current,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\tregisterPanelItem,\n\t\t\tregisterResetAllFilter,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t} ),\n\t\t[\n\t\t\tareAllOptionalControlsHidden,\n\t\t\tderegisterPanelItem,\n\t\t\tderegisterResetAllFilter,\n\t\t\tfirstDisplayedItem,\n\t\t\tflagItemCustomization,\n\t\t\tlastDisplayedItem,\n\t\t\tmenuItems,\n\t\t\tpanelId,\n\t\t\thasMenuItems,\n\t\t\tregisterResetAllFilter,\n\t\t\tregisterPanelItem,\n\t\t\tshouldRenderPlaceholderItems,\n\t\t\t__experimentalFirstVisibleItemClass,\n\t\t\t__experimentalLastVisibleItemClass,\n\t\t]\n\t);\n\n\treturn {\n\t\t...otherProps,\n\t\theadingLevel,\n\t\tpanelContext,\n\t\tresetAllItems,\n\t\ttoggleItem,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * External dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["speak","check","moreVertical","plus","__","_x","sprintf","DropdownMenu","MenuGroup","MenuItem","HStack","Heading","useToolsPanelHeader","contextConnect","ResetLabel","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DefaultControlsGroup","itemClassName","items","toggleItem","length","resetSuffix","children","map","label","hasValue","className","role","onClick","suffix","icon","isSelected","OptionalControlsGroup","itemLabel","ToolsPanelHeader","props","forwardedRef","areAllOptionalControlsHidden","defaultControlsItemClassName","dropdownMenuClassName","hasMenuItems","headingClassName","headingLevel","labelText","menuItems","resetAll","dropdownMenuProps","headerProps","defaultItems","Object","entries","default","optionalItems","optional","dropDownMenuIcon","dropDownMenuLabelText","dropdownMenuDescriptionText","undefined","canResetAll","some","ref","level","menuProps","toggleProps","size","description","variant","ConnectedToolsPanelHeader"],"sources":["@wordpress/components/src/tools-panel/tools-panel-header/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { check, moreVertical, plus } from '@wordpress/icons';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DropdownMenu from '../../dropdown-menu';\nimport MenuGroup from '../../menu-group';\nimport MenuItem from '../../menu-item';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { useToolsPanelHeader } from './hook';\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport { ResetLabel } from '../styles';\nimport type {\n\tToolsPanelControlsGroupProps,\n\tToolsPanelHeaderProps,\n} from '../types';\n\nconst DefaultControlsGroup = ( {\n\titemClassName,\n\titems,\n\ttoggleItem,\n}: ToolsPanelControlsGroupProps ) => {\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\tconst resetSuffix = <ResetLabel aria-hidden>{ __( 'Reset' ) }</ResetLabel>;\n\n\treturn (\n\t\t<>\n\t\t\t{ items.map( ( [ label, hasValue ] ) => {\n\t\t\t\tif ( hasValue ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\t\tclassName={ itemClassName }\n\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t__( 'Reset %s' ),\n\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\ttoggleItem( label );\n\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t\t\t__( '%s reset to default' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsuffix={ resetSuffix }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\tclassName={ itemClassName }\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t\tisSelected\n\t\t\t\t\t\taria-disabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n};\n\nconst OptionalControlsGroup = ( {\n\titems,\n\ttoggleItem,\n}: ToolsPanelControlsGroupProps ) => {\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ items.map( ( [ label, isSelected ] ) => {\n\t\t\t\tconst itemLabel = isSelected\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: The name of the control being hidden and reset e.g. \"Padding\".\n\t\t\t\t\t\t\t__( 'Hide and reset %s' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s: The name of the control to display e.g. \"Padding\".\n\t\t\t\t\t\t\t_x( 'Show %s', 'input control' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t );\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\ticon={ isSelected ? check : null }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tlabel={ itemLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( isSelected ) {\n\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t\t\t__( '%s hidden and reset to default' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t\t\t__( '%s is now visible' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoggleItem( label );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n};\n\nconst ToolsPanelHeader = (\n\tprops: WordPressComponentProps< ToolsPanelHeaderProps, 'h2' >,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tareAllOptionalControlsHidden,\n\t\tdefaultControlsItemClassName,\n\t\tdropdownMenuClassName,\n\t\thasMenuItems,\n\t\theadingClassName,\n\t\theadingLevel = 2,\n\t\tlabel: labelText,\n\t\tmenuItems,\n\t\tresetAll,\n\t\ttoggleItem,\n\t\tdropdownMenuProps,\n\t\t...headerProps\n\t} = useToolsPanelHeader( props );\n\n\tif ( ! labelText ) {\n\t\treturn null;\n\t}\n\n\tconst defaultItems = Object.entries( menuItems?.default || {} );\n\tconst optionalItems = Object.entries( menuItems?.optional || {} );\n\tconst dropDownMenuIcon = areAllOptionalControlsHidden ? plus : moreVertical;\n\tconst dropDownMenuLabelText = sprintf(\n\t\t// translators: %s: The name of the tool e.g. \"Color\" or \"Typography\".\n\t\t_x( '%s options', 'Button label to reveal tool panel options' ),\n\t\tlabelText\n\t);\n\tconst dropdownMenuDescriptionText = areAllOptionalControlsHidden\n\t\t? __( 'All options are currently hidden' )\n\t\t: undefined;\n\n\tconst canResetAll = [ ...defaultItems, ...optionalItems ].some(\n\t\t( [ , isSelected ] ) => isSelected\n\t);\n\n\treturn (\n\t\t<HStack { ...headerProps } ref={ forwardedRef }>\n\t\t\t<Heading level={ headingLevel } className={ headingClassName }>\n\t\t\t\t{ labelText }\n\t\t\t</Heading>\n\t\t\t{ hasMenuItems && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\t{ ...dropdownMenuProps }\n\t\t\t\t\ticon={ dropDownMenuIcon }\n\t\t\t\t\tlabel={ dropDownMenuLabelText }\n\t\t\t\t\tmenuProps={ { className: dropdownMenuClassName } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\tdescription: dropdownMenuDescriptionText,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup label={ labelText }>\n\t\t\t\t\t\t\t\t<DefaultControlsGroup\n\t\t\t\t\t\t\t\t\titems={ defaultItems }\n\t\t\t\t\t\t\t\t\ttoggleItem={ toggleItem }\n\t\t\t\t\t\t\t\t\titemClassName={\n\t\t\t\t\t\t\t\t\t\tdefaultControlsItemClassName\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<OptionalControlsGroup\n\t\t\t\t\t\t\t\t\titems={ optionalItems }\n\t\t\t\t\t\t\t\t\ttoggleItem={ toggleItem }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\taria-disabled={ ! canResetAll }\n\t\t\t\t\t\t\t\t\t// @ts-expect-error - TODO: If this \"tertiary\" style is something we really want to allow on MenuItem,\n\t\t\t\t\t\t\t\t\t// we should rename it and explicitly allow it as an official API. All the other Button variants\n\t\t\t\t\t\t\t\t\t// don't make sense in a MenuItem context, and should be disallowed.\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tif ( canResetAll ) {\n\t\t\t\t\t\t\t\t\t\t\tresetAll();\n\t\t\t\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'All options reset' ),\n\t\t\t\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Reset all' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</HStack>\n\t);\n};\n\nconst ConnectedToolsPanelHeader = contextConnect(\n\tToolsPanelHeader,\n\t'ToolsPanelHeader'\n);\n\nexport default ConnectedToolsPanelHeader;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["speak","check","moreVertical","plus","__","_x","sprintf","DropdownMenu","MenuGroup","MenuItem","HStack","Heading","useToolsPanelHeader","contextConnect","ResetLabel","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DefaultControlsGroup","itemClassName","items","toggleItem","length","resetSuffix","children","map","label","hasValue","className","role","onClick","suffix","icon","isSelected","OptionalControlsGroup","itemLabel","ToolsPanelHeader","props","forwardedRef","areAllOptionalControlsHidden","defaultControlsItemClassName","dropdownMenuClassName","hasMenuItems","headingClassName","headingLevel","labelText","menuItems","resetAll","dropdownMenuProps","headerProps","defaultItems","Object","entries","default","optionalItems","optional","dropDownMenuIcon","dropDownMenuLabelText","dropdownMenuDescriptionText","undefined","canResetAll","some","ref","level","menuProps","toggleProps","size","description","variant","ConnectedToolsPanelHeader"],"sources":["@wordpress/components/src/tools-panel/tools-panel-header/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { check, moreVertical, plus } from '@wordpress/icons';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DropdownMenu from '../../dropdown-menu';\nimport MenuGroup from '../../menu-group';\nimport MenuItem from '../../menu-item';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { useToolsPanelHeader } from './hook';\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport { ResetLabel } from '../styles';\nimport type {\n\tToolsPanelControlsGroupProps,\n\tToolsPanelHeaderProps,\n} from '../types';\n\nconst DefaultControlsGroup = ( {\n\titemClassName,\n\titems,\n\ttoggleItem,\n}: ToolsPanelControlsGroupProps ) => {\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\tconst resetSuffix = <ResetLabel aria-hidden>{ __( 'Reset' ) }</ResetLabel>;\n\n\treturn (\n\t\t<>\n\t\t\t{ items.map( ( [ label, hasValue ] ) => {\n\t\t\t\tif ( hasValue ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\t\tclassName={ itemClassName }\n\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t__( 'Reset %s' ),\n\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\ttoggleItem( label );\n\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t\t\t__( '%s reset to default' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsuffix={ resetSuffix }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\tclassName={ itemClassName }\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t\tisSelected\n\t\t\t\t\t\taria-disabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n};\n\nconst OptionalControlsGroup = ( {\n\titems,\n\ttoggleItem,\n}: ToolsPanelControlsGroupProps ) => {\n\tif ( ! items.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ items.map( ( [ label, isSelected ] ) => {\n\t\t\t\tconst itemLabel = isSelected\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: The name of the control being hidden and reset e.g. \"Padding\".\n\t\t\t\t\t\t\t__( 'Hide and reset %s' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s: The name of the control to display e.g. \"Padding\".\n\t\t\t\t\t\t\t_x( 'Show %s', 'input control' ),\n\t\t\t\t\t\t\tlabel\n\t\t\t\t\t );\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ label }\n\t\t\t\t\t\ticon={ isSelected ? check : null }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tlabel={ itemLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( isSelected ) {\n\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t\t\t__( '%s hidden and reset to default' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: The name of the control being reset e.g. \"Padding\".\n\t\t\t\t\t\t\t\t\t\t__( '%s is now visible' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoggleItem( label );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n};\n\nconst ToolsPanelHeader = (\n\tprops: WordPressComponentProps< ToolsPanelHeaderProps, 'h2' >,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tareAllOptionalControlsHidden,\n\t\tdefaultControlsItemClassName,\n\t\tdropdownMenuClassName,\n\t\thasMenuItems,\n\t\theadingClassName,\n\t\theadingLevel = 2,\n\t\tlabel: labelText,\n\t\tmenuItems,\n\t\tresetAll,\n\t\ttoggleItem,\n\t\tdropdownMenuProps,\n\t\t...headerProps\n\t} = useToolsPanelHeader( props );\n\n\tif ( ! labelText ) {\n\t\treturn null;\n\t}\n\n\tconst defaultItems = Object.entries( menuItems?.default || {} );\n\tconst optionalItems = Object.entries( menuItems?.optional || {} );\n\tconst dropDownMenuIcon = areAllOptionalControlsHidden ? plus : moreVertical;\n\tconst dropDownMenuLabelText = sprintf(\n\t\t// translators: %s: The name of the tool e.g. \"Color\" or \"Typography\".\n\t\t_x( '%s options', 'Button label to reveal tool panel options' ),\n\t\tlabelText\n\t);\n\tconst dropdownMenuDescriptionText = areAllOptionalControlsHidden\n\t\t? __( 'All options are currently hidden' )\n\t\t: undefined;\n\n\tconst canResetAll = [ ...defaultItems, ...optionalItems ].some(\n\t\t( [ , isSelected ] ) => isSelected\n\t);\n\n\treturn (\n\t\t<HStack { ...headerProps } ref={ forwardedRef }>\n\t\t\t<Heading level={ headingLevel } className={ headingClassName }>\n\t\t\t\t{ labelText }\n\t\t\t</Heading>\n\t\t\t{ hasMenuItems && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\t{ ...dropdownMenuProps }\n\t\t\t\t\ticon={ dropDownMenuIcon }\n\t\t\t\t\tlabel={ dropDownMenuLabelText }\n\t\t\t\t\tmenuProps={ { className: dropdownMenuClassName } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\tdescription: dropdownMenuDescriptionText,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ () => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup label={ labelText }>\n\t\t\t\t\t\t\t\t<DefaultControlsGroup\n\t\t\t\t\t\t\t\t\titems={ defaultItems }\n\t\t\t\t\t\t\t\t\ttoggleItem={ toggleItem }\n\t\t\t\t\t\t\t\t\titemClassName={\n\t\t\t\t\t\t\t\t\t\tdefaultControlsItemClassName\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<OptionalControlsGroup\n\t\t\t\t\t\t\t\t\titems={ optionalItems }\n\t\t\t\t\t\t\t\t\ttoggleItem={ toggleItem }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\taria-disabled={ ! canResetAll }\n\t\t\t\t\t\t\t\t\t// @ts-expect-error - TODO: If this \"tertiary\" style is something we really want to allow on MenuItem,\n\t\t\t\t\t\t\t\t\t// we should rename it and explicitly allow it as an official API. All the other Button variants\n\t\t\t\t\t\t\t\t\t// don't make sense in a MenuItem context, and should be disallowed.\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tif ( canResetAll ) {\n\t\t\t\t\t\t\t\t\t\t\tresetAll();\n\t\t\t\t\t\t\t\t\t\t\tspeak(\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'All options reset' ),\n\t\t\t\t\t\t\t\t\t\t\t\t'assertive'\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Reset all' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</HStack>\n\t);\n};\n\nconst ConnectedToolsPanelHeader = contextConnect(\n\tToolsPanelHeader,\n\t'ToolsPanelHeader'\n);\n\nexport default ConnectedToolsPanelHeader;\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,10 @@ function UnforwardedTreeGridCell({
17
17
  ...props,
18
18
  role: "gridcell",
19
19
  children: withoutGridItem ? /*#__PURE__*/_jsx(_Fragment, {
20
- children: children
20
+ children: typeof children === 'function' ? children({
21
+ ...props,
22
+ ref
23
+ }) : children
21
24
  }) : /*#__PURE__*/_jsx(TreeGridItem, {
22
25
  ref: ref,
23
26
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","TreeGridItem","Fragment","_Fragment","jsx","_jsx","UnforwardedTreeGridCell","children","withoutGridItem","props","ref","role","TreeGridCell"],"sources":["@wordpress/components/src/tree-grid/cell.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TreeGridItem from './item';\nimport type { WordPressComponentProps } from '../context';\nimport type { TreeGridCellProps } from './types';\n\nfunction UnforwardedTreeGridCell(\n\t{\n\t\tchildren,\n\t\twithoutGridItem = false,\n\t\t...props\n\t}: WordPressComponentProps< TreeGridCellProps, 'td', false >,\n\tref: React.ForwardedRef< any >\n) {\n\treturn (\n\t\t<td { ...props } role=\"gridcell\">\n\t\t\t{ withoutGridItem ? (\n\t\t\t\t<>{ children }</>\n\t\t\t) : (\n\t\t\t\t<TreeGridItem ref={ ref }>{ children }</TreeGridItem>\n\t\t\t) }\n\t\t</td>\n\t);\n}\n\n/**\n * `TreeGridCell` is used to create a tree hierarchy.\n * It is not a visually styled component, but instead helps with adding\n * keyboard navigation and roving tab index behaviors to tree grid structures.\n *\n * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}\n */\nexport const TreeGridCell = forwardRef( UnforwardedTreeGridCell );\n\nexport default TreeGridCell;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,YAAY,MAAM,QAAQ;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAIlC,SAASC,uBAAuBA,CAC/B;EACCC,QAAQ;EACRC,eAAe,GAAG,KAAK;EACvB,GAAGC;AACuD,CAAC,EAC5DC,GAA8B,EAC7B;EACD,oBACCL,IAAA;IAAA,GAASI,KAAK;IAAGE,IAAI,EAAC,UAAU;IAAAJ,QAAA,EAC7BC,eAAe,gBAChBH,IAAA,CAAAF,SAAA;MAAAI,QAAA,EAAIA;IAAQ,CAAI,CAAC,gBAEjBF,IAAA,CAACJ,YAAY;MAACS,GAAG,EAAGA,GAAK;MAAAH,QAAA,EAAGA;IAAQ,CAAgB;EACpD,CACE,CAAC;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,YAAY,GAAGZ,UAAU,CAAEM,uBAAwB,CAAC;AAEjE,eAAeM,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","TreeGridItem","Fragment","_Fragment","jsx","_jsx","UnforwardedTreeGridCell","children","withoutGridItem","props","ref","role","TreeGridCell"],"sources":["@wordpress/components/src/tree-grid/cell.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TreeGridItem from './item';\nimport type { WordPressComponentProps } from '../context';\nimport type { TreeGridCellProps } from './types';\n\nfunction UnforwardedTreeGridCell(\n\t{\n\t\tchildren,\n\t\twithoutGridItem = false,\n\t\t...props\n\t}: WordPressComponentProps< TreeGridCellProps, 'td', false >,\n\tref: React.ForwardedRef< any >\n) {\n\treturn (\n\t\t<td { ...props } role=\"gridcell\">\n\t\t\t{ withoutGridItem ? (\n\t\t\t\t<>\n\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t? children( { ...props, ref } )\n\t\t\t\t\t\t: children }\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<TreeGridItem ref={ ref }>{ children }</TreeGridItem>\n\t\t\t) }\n\t\t</td>\n\t);\n}\n\n/**\n * `TreeGridCell` is used to create a tree hierarchy.\n * It is not a visually styled component, but instead helps with adding\n * keyboard navigation and roving tab index behaviors to tree grid structures.\n *\n * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}\n */\nexport const TreeGridCell = forwardRef( UnforwardedTreeGridCell );\n\nexport default TreeGridCell;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,YAAY,MAAM,QAAQ;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAIlC,SAASC,uBAAuBA,CAC/B;EACCC,QAAQ;EACRC,eAAe,GAAG,KAAK;EACvB,GAAGC;AACuD,CAAC,EAC5DC,GAA8B,EAC7B;EACD,oBACCL,IAAA;IAAA,GAASI,KAAK;IAAGE,IAAI,EAAC,UAAU;IAAAJ,QAAA,EAC7BC,eAAe,gBAChBH,IAAA,CAAAF,SAAA;MAAAI,QAAA,EACG,OAAOA,QAAQ,KAAK,UAAU,GAC7BA,QAAQ,CAAE;QAAE,GAAGE,KAAK;QAAEC;MAAI,CAAE,CAAC,GAC7BH;IAAQ,CACV,CAAC,gBAEHF,IAAA,CAACJ,YAAY;MAACS,GAAG,EAAGA,GAAK;MAAAH,QAAA,EAAGA;IAAQ,CAAgB;EACpD,CACE,CAAC;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,YAAY,GAAGZ,UAAU,CAAEM,uBAAwB,CAAC;AAEjE,eAAeM,YAAY","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["focus","forwardRef","useCallback","UP","DOWN","LEFT","RIGHT","HOME","END","RovingTabIndexContainer","jsx","_jsx","getRowFocusables","rowElement","focusablesInRow","focusable","find","sequential","filter","closest","UnforwardedTreeGrid","children","onExpandRow","onCollapseRow","onFocusRow","applicationAriaLabel","props","ref","onKeyDown","event","keyCode","metaKey","ctrlKey","altKey","hasModifierKeyPressed","includes","stopPropagation","activeElement","document","currentTarget","treeGridElement","contains","activeRow","currentColumnIndex","indexOf","canExpandCollapse","cannotFocusNextColumn","getAttribute","nextIndex","Math","max","min","length","_activeRow$getAttribu","preventDefault","level","parseInt","rows","Array","from","querySelectorAll","parentRow","currentRowIndex","i","ariaLevel","focusableItems","nextRowIndex","focusablesInNextRow","role","TreeGrid","default","TreeGridRow","TreeGridCell","TreeGridItem"],"sources":["@wordpress/components/src/tree-grid/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport { forwardRef, useCallback } from '@wordpress/element';\nimport { UP, DOWN, LEFT, RIGHT, HOME, END } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport RovingTabIndexContainer from './roving-tab-index';\nimport type { TreeGridProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\n/**\n * Return focusables in a row element, excluding those from other branches\n * nested within the row.\n *\n * @param rowElement The DOM element representing the row.\n *\n * @return The array of focusables in the row.\n */\nfunction getRowFocusables( rowElement: HTMLElement ) {\n\tconst focusablesInRow = focus.focusable.find( rowElement, {\n\t\tsequential: true,\n\t} );\n\n\treturn focusablesInRow.filter( ( focusable ) => {\n\t\treturn focusable.closest( '[role=\"row\"]' ) === rowElement;\n\t} );\n}\n\n/**\n * Renders both a table and tbody element, used to create a tree hierarchy.\n *\n */\nfunction UnforwardedTreeGrid(\n\t{\n\t\tchildren,\n\t\tonExpandRow = () => {},\n\t\tonCollapseRow = () => {},\n\t\tonFocusRow = () => {},\n\t\tapplicationAriaLabel,\n\t\t...props\n\t}: WordPressComponentProps< TreeGridProps, 'table', false >,\n\t/** A ref to the underlying DOM table element. */\n\tref: React.ForwardedRef< HTMLTableElement >\n) {\n\tconst onKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLTableElement > ) => {\n\t\t\tconst { keyCode, metaKey, ctrlKey, altKey } = event;\n\n\t\t\t// The shift key is intentionally absent from the following list,\n\t\t\t// to enable shift + up/down to select items from the list.\n\t\t\tconst hasModifierKeyPressed = metaKey || ctrlKey || altKey;\n\n\t\t\tif (\n\t\t\t\thasModifierKeyPressed ||\n\t\t\t\t! ( [ UP, DOWN, LEFT, RIGHT, HOME, END ] as number[] ).includes(\n\t\t\t\t\tkeyCode\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The event will be handled, stop propagation.\n\t\t\tevent.stopPropagation();\n\n\t\t\tconst { activeElement } = document;\n\t\t\tconst { currentTarget: treeGridElement } = event;\n\n\t\t\tif (\n\t\t\t\t! activeElement ||\n\t\t\t\t! treeGridElement.contains( activeElement )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Calculate the columnIndex of the active element.\n\t\t\tconst activeRow =\n\t\t\t\tactiveElement.closest< HTMLElement >( '[role=\"row\"]' );\n\n\t\t\tif ( ! activeRow ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst focusablesInRow = getRowFocusables( activeRow );\n\t\t\tconst currentColumnIndex = focusablesInRow.indexOf(\n\t\t\t\tactiveElement as HTMLElement\n\t\t\t);\n\t\t\tconst canExpandCollapse = 0 === currentColumnIndex;\n\t\t\tconst cannotFocusNextColumn =\n\t\t\t\tcanExpandCollapse &&\n\t\t\t\t( activeRow.getAttribute( 'data-expanded' ) === 'false' ||\n\t\t\t\t\tactiveRow.getAttribute( 'aria-expanded' ) === 'false' ) &&\n\t\t\t\tkeyCode === RIGHT;\n\n\t\t\tif ( ( [ LEFT, RIGHT ] as number[] ).includes( keyCode ) ) {\n\t\t\t\t// Calculate to the next element.\n\t\t\t\tlet nextIndex;\n\t\t\t\tif ( keyCode === LEFT ) {\n\t\t\t\t\tnextIndex = Math.max( 0, currentColumnIndex - 1 );\n\t\t\t\t} else {\n\t\t\t\t\tnextIndex = Math.min(\n\t\t\t\t\t\tcurrentColumnIndex + 1,\n\t\t\t\t\t\tfocusablesInRow.length - 1\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Focus is at the left most column.\n\t\t\t\tif ( canExpandCollapse ) {\n\t\t\t\t\tif ( keyCode === LEFT ) {\n\t\t\t\t\t\t// Left:\n\t\t\t\t\t\t// If a row is focused, and it is expanded, collapses the current row.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'data-expanded' ) ===\n\t\t\t\t\t\t\t\t'true' ||\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'aria-expanded' ) === 'true'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonCollapseRow( activeRow );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If a row is focused, and it is collapsed, moves to the parent row (if there is one).\n\t\t\t\t\t\tconst level = Math.max(\n\t\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\t\tactiveRow?.getAttribute( 'aria-level' ) ?? '1',\n\t\t\t\t\t\t\t\t10\n\t\t\t\t\t\t\t) - 1,\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst rows = Array.from(\n\t\t\t\t\t\t\ttreeGridElement.querySelectorAll< HTMLElement >(\n\t\t\t\t\t\t\t\t'[role=\"row\"]'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlet parentRow = activeRow;\n\t\t\t\t\t\tconst currentRowIndex = rows.indexOf( activeRow );\n\t\t\t\t\t\tfor ( let i = currentRowIndex; i >= 0; i-- ) {\n\t\t\t\t\t\t\tconst ariaLevel =\n\t\t\t\t\t\t\t\trows[ i ].getAttribute( 'aria-level' );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tariaLevel !== null &&\n\t\t\t\t\t\t\t\tparseInt( ariaLevel, 10 ) === level\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tparentRow = rows[ i ];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgetRowFocusables( parentRow )?.[ 0 ]?.focus();\n\t\t\t\t\t}\n\t\t\t\t\tif ( keyCode === RIGHT ) {\n\t\t\t\t\t\t// Right:\n\t\t\t\t\t\t// If a row is focused, and it is collapsed, expands the current row.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'data-expanded' ) ===\n\t\t\t\t\t\t\t\t'false' ||\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'aria-expanded' ) ===\n\t\t\t\t\t\t\t\t'false'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonExpandRow( activeRow );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If a row is focused, and it is expanded, focuses the next cell in the row.\n\t\t\t\t\t\tconst focusableItems = getRowFocusables( activeRow );\n\t\t\t\t\t\tif ( focusableItems.length > 0 ) {\n\t\t\t\t\t\t\tfocusableItems[ nextIndex ]?.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will start reading text on continued use of left/right arrow\n\t\t\t\t\t// keys.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Focus the next element. If at most left column and row is collapsed, moving right is not allowed as this will expand. However, if row is collapsed, moving left is allowed.\n\t\t\t\tif ( cannotFocusNextColumn ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfocusablesInRow[ nextIndex ].focus();\n\n\t\t\t\t// Prevent key use for anything else. This ensures Voiceover\n\t\t\t\t// doesn't try to handle key navigation.\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if ( ( [ UP, DOWN ] as number[] ).includes( keyCode ) ) {\n\t\t\t\t// Calculate the rowIndex of the next row.\n\t\t\t\tconst rows = Array.from(\n\t\t\t\t\ttreeGridElement.querySelectorAll< HTMLElement >(\n\t\t\t\t\t\t'[role=\"row\"]'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst currentRowIndex = rows.indexOf( activeRow );\n\t\t\t\tlet nextRowIndex;\n\n\t\t\t\tif ( keyCode === UP ) {\n\t\t\t\t\tnextRowIndex = Math.max( 0, currentRowIndex - 1 );\n\t\t\t\t} else {\n\t\t\t\t\tnextRowIndex = Math.min(\n\t\t\t\t\t\tcurrentRowIndex + 1,\n\t\t\t\t\t\trows.length - 1\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Focus is either at the top or bottom edge of the grid. Do nothing.\n\t\t\t\tif ( nextRowIndex === currentRowIndex ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will start navigating horizontally when reaching the vertical\n\t\t\t\t\t// bounds of a table.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Get the focusables in the next row.\n\t\t\t\tconst focusablesInNextRow = getRowFocusables(\n\t\t\t\t\trows[ nextRowIndex ]\n\t\t\t\t);\n\n\t\t\t\t// If for some reason there are no focusables in the next row, do nothing.\n\t\t\t\tif ( ! focusablesInNextRow || ! focusablesInNextRow.length ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will still focus text when using arrow keys, while this\n\t\t\t\t\t// component should limit navigation to focusables.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Try to focus the element in the next row that's at a similar column to the activeElement.\n\t\t\t\tconst nextIndex = Math.min(\n\t\t\t\t\tcurrentColumnIndex,\n\t\t\t\t\tfocusablesInNextRow.length - 1\n\t\t\t\t);\n\t\t\t\tfocusablesInNextRow[ nextIndex ].focus();\n\n\t\t\t\t// Let consumers know the row that was originally focused,\n\t\t\t\t// and the row that is now in focus.\n\t\t\t\tonFocusRow( event, activeRow, rows[ nextRowIndex ] );\n\n\t\t\t\t// Prevent key use for anything else. This ensures Voiceover\n\t\t\t\t// doesn't try to handle key navigation.\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if ( ( [ HOME, END ] as number[] ).includes( keyCode ) ) {\n\t\t\t\t// Calculate the rowIndex of the next row.\n\t\t\t\tconst rows = Array.from(\n\t\t\t\t\ttreeGridElement.querySelectorAll< HTMLElement >(\n\t\t\t\t\t\t'[role=\"row\"]'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst currentRowIndex = rows.indexOf( activeRow );\n\t\t\t\tlet nextRowIndex;\n\n\t\t\t\tif ( keyCode === HOME ) {\n\t\t\t\t\tnextRowIndex = 0;\n\t\t\t\t} else {\n\t\t\t\t\tnextRowIndex = rows.length - 1;\n\t\t\t\t}\n\n\t\t\t\t// Focus is either at the top or bottom edge of the grid. Do nothing.\n\t\t\t\tif ( nextRowIndex === currentRowIndex ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will start navigating horizontally when reaching the vertical\n\t\t\t\t\t// bounds of a table.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Get the focusables in the next row.\n\t\t\t\tconst focusablesInNextRow = getRowFocusables(\n\t\t\t\t\trows[ nextRowIndex ]\n\t\t\t\t);\n\n\t\t\t\t// If for some reason there are no focusables in the next row, do nothing.\n\t\t\t\tif ( ! focusablesInNextRow || ! focusablesInNextRow.length ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will still focus text when using arrow keys, while this\n\t\t\t\t\t// component should limit navigation to focusables.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Try to focus the element in the next row that's at a similar column to the activeElement.\n\t\t\t\tconst nextIndex = Math.min(\n\t\t\t\t\tcurrentColumnIndex,\n\t\t\t\t\tfocusablesInNextRow.length - 1\n\t\t\t\t);\n\t\t\t\tfocusablesInNextRow[ nextIndex ].focus();\n\n\t\t\t\t// Let consumers know the row that was originally focused,\n\t\t\t\t// and the row that is now in focus.\n\t\t\t\tonFocusRow( event, activeRow, rows[ nextRowIndex ] );\n\n\t\t\t\t// Prevent key use for anything else. This ensures Voiceover\n\t\t\t\t// doesn't try to handle key navigation.\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ onExpandRow, onCollapseRow, onFocusRow ]\n\t);\n\n\t/* Disable reason: A treegrid is implemented using a table element. */\n\t/* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */\n\treturn (\n\t\t<RovingTabIndexContainer>\n\t\t\t{\n\t\t\t\t// Prevent browser mode from triggering in NVDA by wrapping List View\n\t\t\t\t// in a role=application wrapper.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/issues/43729\n\t\t\t }\n\t\t\t<div role=\"application\" aria-label={ applicationAriaLabel }>\n\t\t\t\t<table\n\t\t\t\t\t{ ...props }\n\t\t\t\t\trole=\"treegrid\"\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t<tbody>{ children }</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</RovingTabIndexContainer>\n\t);\n\t/* eslint-enable jsx-a11y/no-noninteractive-element-to-interactive-role */\n}\n\n/**\n * `TreeGrid` is used to create a tree hierarchy.\n * It is not a visually styled component, but instead helps with adding\n * keyboard navigation and roving tab index behaviors to tree grid structures.\n *\n * A tree grid is a hierarchical 2 dimensional UI component, for example it could be\n * used to implement a file system browser.\n *\n * A tree grid allows the user to navigate using arrow keys.\n * Up/down to navigate vertically across rows, and left/right to navigate horizontally\n * between focusables in a row.\n *\n * The `TreeGrid` renders both a `table` and `tbody` element, and is intended to be used\n * with `TreeGridRow` (`tr`) and `TreeGridCell` (`td`) to build out a grid.\n *\n * ```jsx\n * function TreeMenu() {\n * \treturn (\n * \t\t<TreeGrid>\n * \t\t\t<TreeGridRow level={ 1 } positionInSet={ 1 } setSize={ 2 }>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onSelect } { ...props }>Select</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onMove } { ...props }>Move</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t</TreeGridRow>\n * \t\t\t<TreeGridRow level={ 1 } positionInSet={ 2 } setSize={ 2 }>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onSelect } { ...props }>Select</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onMove } { ...props }>Move</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t</TreeGridRow>\n * \t\t\t<TreeGridRow level={ 2 } positionInSet={ 1 } setSize={ 1 }>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onSelect } { ...props }>Select</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onMove } { ...props }>Move</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t</TreeGridRow>\n * \t\t</TreeGrid>\n * \t);\n * }\n * ```\n *\n * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}\n */\nexport const TreeGrid = forwardRef( UnforwardedTreeGrid );\n\nexport default TreeGrid;\nexport { default as TreeGridRow } from './row';\nexport { default as TreeGridCell } from './cell';\nexport { default as TreeGridItem } from './item';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["focus","forwardRef","useCallback","UP","DOWN","LEFT","RIGHT","HOME","END","RovingTabIndexContainer","jsx","_jsx","getRowFocusables","rowElement","focusablesInRow","focusable","find","sequential","filter","closest","UnforwardedTreeGrid","children","onExpandRow","onCollapseRow","onFocusRow","applicationAriaLabel","props","ref","onKeyDown","event","keyCode","metaKey","ctrlKey","altKey","hasModifierKeyPressed","includes","stopPropagation","activeElement","document","currentTarget","treeGridElement","contains","activeRow","currentColumnIndex","indexOf","canExpandCollapse","cannotFocusNextColumn","getAttribute","nextIndex","Math","max","min","length","_activeRow$getAttribu","preventDefault","level","parseInt","rows","Array","from","querySelectorAll","parentRow","currentRowIndex","i","ariaLevel","focusableItems","nextRowIndex","focusablesInNextRow","role","TreeGrid","default","TreeGridRow","TreeGridCell","TreeGridItem"],"sources":["@wordpress/components/src/tree-grid/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport { forwardRef, useCallback } from '@wordpress/element';\nimport { UP, DOWN, LEFT, RIGHT, HOME, END } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport RovingTabIndexContainer from './roving-tab-index';\nimport type { TreeGridProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\n/**\n * Return focusables in a row element, excluding those from other branches\n * nested within the row.\n *\n * @param rowElement The DOM element representing the row.\n *\n * @return The array of focusables in the row.\n */\nfunction getRowFocusables( rowElement: HTMLElement ) {\n\tconst focusablesInRow = focus.focusable.find( rowElement, {\n\t\tsequential: true,\n\t} );\n\n\treturn focusablesInRow.filter( ( focusable ) => {\n\t\treturn focusable.closest( '[role=\"row\"]' ) === rowElement;\n\t} );\n}\n\n/**\n * Renders both a table and tbody element, used to create a tree hierarchy.\n *\n */\nfunction UnforwardedTreeGrid(\n\t{\n\t\tchildren,\n\t\tonExpandRow = () => {},\n\t\tonCollapseRow = () => {},\n\t\tonFocusRow = () => {},\n\t\tapplicationAriaLabel,\n\t\t...props\n\t}: WordPressComponentProps< TreeGridProps, 'table', false >,\n\t/** A ref to the underlying DOM table element. */\n\tref: React.ForwardedRef< HTMLTableElement >\n) {\n\tconst onKeyDown = useCallback(\n\t\t( event: React.KeyboardEvent< HTMLTableElement > ) => {\n\t\t\tconst { keyCode, metaKey, ctrlKey, altKey } = event;\n\n\t\t\t// The shift key is intentionally absent from the following list,\n\t\t\t// to enable shift + up/down to select items from the list.\n\t\t\tconst hasModifierKeyPressed = metaKey || ctrlKey || altKey;\n\n\t\t\tif (\n\t\t\t\thasModifierKeyPressed ||\n\t\t\t\t! ( [ UP, DOWN, LEFT, RIGHT, HOME, END ] as number[] ).includes(\n\t\t\t\t\tkeyCode\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// The event will be handled, stop propagation.\n\t\t\tevent.stopPropagation();\n\n\t\t\tconst { activeElement } = document;\n\t\t\tconst { currentTarget: treeGridElement } = event;\n\n\t\t\tif (\n\t\t\t\t! activeElement ||\n\t\t\t\t! treeGridElement.contains( activeElement )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Calculate the columnIndex of the active element.\n\t\t\tconst activeRow =\n\t\t\t\tactiveElement.closest< HTMLElement >( '[role=\"row\"]' );\n\n\t\t\tif ( ! activeRow ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst focusablesInRow = getRowFocusables( activeRow );\n\t\t\tconst currentColumnIndex = focusablesInRow.indexOf(\n\t\t\t\tactiveElement as HTMLElement\n\t\t\t);\n\t\t\tconst canExpandCollapse = 0 === currentColumnIndex;\n\t\t\tconst cannotFocusNextColumn =\n\t\t\t\tcanExpandCollapse &&\n\t\t\t\t( activeRow.getAttribute( 'data-expanded' ) === 'false' ||\n\t\t\t\t\tactiveRow.getAttribute( 'aria-expanded' ) === 'false' ) &&\n\t\t\t\tkeyCode === RIGHT;\n\n\t\t\tif ( ( [ LEFT, RIGHT ] as number[] ).includes( keyCode ) ) {\n\t\t\t\t// Calculate to the next element.\n\t\t\t\tlet nextIndex;\n\t\t\t\tif ( keyCode === LEFT ) {\n\t\t\t\t\tnextIndex = Math.max( 0, currentColumnIndex - 1 );\n\t\t\t\t} else {\n\t\t\t\t\tnextIndex = Math.min(\n\t\t\t\t\t\tcurrentColumnIndex + 1,\n\t\t\t\t\t\tfocusablesInRow.length - 1\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Focus is at the left most column.\n\t\t\t\tif ( canExpandCollapse ) {\n\t\t\t\t\tif ( keyCode === LEFT ) {\n\t\t\t\t\t\t// Left:\n\t\t\t\t\t\t// If a row is focused, and it is expanded, collapses the current row.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'data-expanded' ) ===\n\t\t\t\t\t\t\t\t'true' ||\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'aria-expanded' ) === 'true'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonCollapseRow( activeRow );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If a row is focused, and it is collapsed, moves to the parent row (if there is one).\n\t\t\t\t\t\tconst level = Math.max(\n\t\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\t\tactiveRow?.getAttribute( 'aria-level' ) ?? '1',\n\t\t\t\t\t\t\t\t10\n\t\t\t\t\t\t\t) - 1,\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst rows = Array.from(\n\t\t\t\t\t\t\ttreeGridElement.querySelectorAll< HTMLElement >(\n\t\t\t\t\t\t\t\t'[role=\"row\"]'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tlet parentRow = activeRow;\n\t\t\t\t\t\tconst currentRowIndex = rows.indexOf( activeRow );\n\t\t\t\t\t\tfor ( let i = currentRowIndex; i >= 0; i-- ) {\n\t\t\t\t\t\t\tconst ariaLevel =\n\t\t\t\t\t\t\t\trows[ i ].getAttribute( 'aria-level' );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tariaLevel !== null &&\n\t\t\t\t\t\t\t\tparseInt( ariaLevel, 10 ) === level\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tparentRow = rows[ i ];\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgetRowFocusables( parentRow )?.[ 0 ]?.focus();\n\t\t\t\t\t}\n\t\t\t\t\tif ( keyCode === RIGHT ) {\n\t\t\t\t\t\t// Right:\n\t\t\t\t\t\t// If a row is focused, and it is collapsed, expands the current row.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'data-expanded' ) ===\n\t\t\t\t\t\t\t\t'false' ||\n\t\t\t\t\t\t\tactiveRow.getAttribute( 'aria-expanded' ) ===\n\t\t\t\t\t\t\t\t'false'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tonExpandRow( activeRow );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If a row is focused, and it is expanded, focuses the next cell in the row.\n\t\t\t\t\t\tconst focusableItems = getRowFocusables( activeRow );\n\t\t\t\t\t\tif ( focusableItems.length > 0 ) {\n\t\t\t\t\t\t\tfocusableItems[ nextIndex ]?.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will start reading text on continued use of left/right arrow\n\t\t\t\t\t// keys.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Focus the next element. If at most left column and row is collapsed, moving right is not allowed as this will expand. However, if row is collapsed, moving left is allowed.\n\t\t\t\tif ( cannotFocusNextColumn ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfocusablesInRow[ nextIndex ].focus();\n\n\t\t\t\t// Prevent key use for anything else. This ensures Voiceover\n\t\t\t\t// doesn't try to handle key navigation.\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if ( ( [ UP, DOWN ] as number[] ).includes( keyCode ) ) {\n\t\t\t\t// Calculate the rowIndex of the next row.\n\t\t\t\tconst rows = Array.from(\n\t\t\t\t\ttreeGridElement.querySelectorAll< HTMLElement >(\n\t\t\t\t\t\t'[role=\"row\"]'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst currentRowIndex = rows.indexOf( activeRow );\n\t\t\t\tlet nextRowIndex;\n\n\t\t\t\tif ( keyCode === UP ) {\n\t\t\t\t\tnextRowIndex = Math.max( 0, currentRowIndex - 1 );\n\t\t\t\t} else {\n\t\t\t\t\tnextRowIndex = Math.min(\n\t\t\t\t\t\tcurrentRowIndex + 1,\n\t\t\t\t\t\trows.length - 1\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Focus is either at the top or bottom edge of the grid. Do nothing.\n\t\t\t\tif ( nextRowIndex === currentRowIndex ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will start navigating horizontally when reaching the vertical\n\t\t\t\t\t// bounds of a table.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Get the focusables in the next row.\n\t\t\t\tconst focusablesInNextRow = getRowFocusables(\n\t\t\t\t\trows[ nextRowIndex ]\n\t\t\t\t);\n\n\t\t\t\t// If for some reason there are no focusables in the next row, do nothing.\n\t\t\t\tif ( ! focusablesInNextRow || ! focusablesInNextRow.length ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will still focus text when using arrow keys, while this\n\t\t\t\t\t// component should limit navigation to focusables.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Try to focus the element in the next row that's at a similar column to the activeElement.\n\t\t\t\tconst nextIndex = Math.min(\n\t\t\t\t\tcurrentColumnIndex,\n\t\t\t\t\tfocusablesInNextRow.length - 1\n\t\t\t\t);\n\t\t\t\tfocusablesInNextRow[ nextIndex ].focus();\n\n\t\t\t\t// Let consumers know the row that was originally focused,\n\t\t\t\t// and the row that is now in focus.\n\t\t\t\tonFocusRow( event, activeRow, rows[ nextRowIndex ] );\n\n\t\t\t\t// Prevent key use for anything else. This ensures Voiceover\n\t\t\t\t// doesn't try to handle key navigation.\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if ( ( [ HOME, END ] as number[] ).includes( keyCode ) ) {\n\t\t\t\t// Calculate the rowIndex of the next row.\n\t\t\t\tconst rows = Array.from(\n\t\t\t\t\ttreeGridElement.querySelectorAll< HTMLElement >(\n\t\t\t\t\t\t'[role=\"row\"]'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconst currentRowIndex = rows.indexOf( activeRow );\n\t\t\t\tlet nextRowIndex;\n\n\t\t\t\tif ( keyCode === HOME ) {\n\t\t\t\t\tnextRowIndex = 0;\n\t\t\t\t} else {\n\t\t\t\t\tnextRowIndex = rows.length - 1;\n\t\t\t\t}\n\n\t\t\t\t// Focus is either at the top or bottom edge of the grid. Do nothing.\n\t\t\t\tif ( nextRowIndex === currentRowIndex ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will start navigating horizontally when reaching the vertical\n\t\t\t\t\t// bounds of a table.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Get the focusables in the next row.\n\t\t\t\tconst focusablesInNextRow = getRowFocusables(\n\t\t\t\t\trows[ nextRowIndex ]\n\t\t\t\t);\n\n\t\t\t\t// If for some reason there are no focusables in the next row, do nothing.\n\t\t\t\tif ( ! focusablesInNextRow || ! focusablesInNextRow.length ) {\n\t\t\t\t\t// Prevent key use for anything else. For example, Voiceover\n\t\t\t\t\t// will still focus text when using arrow keys, while this\n\t\t\t\t\t// component should limit navigation to focusables.\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Try to focus the element in the next row that's at a similar column to the activeElement.\n\t\t\t\tconst nextIndex = Math.min(\n\t\t\t\t\tcurrentColumnIndex,\n\t\t\t\t\tfocusablesInNextRow.length - 1\n\t\t\t\t);\n\t\t\t\tfocusablesInNextRow[ nextIndex ].focus();\n\n\t\t\t\t// Let consumers know the row that was originally focused,\n\t\t\t\t// and the row that is now in focus.\n\t\t\t\tonFocusRow( event, activeRow, rows[ nextRowIndex ] );\n\n\t\t\t\t// Prevent key use for anything else. This ensures Voiceover\n\t\t\t\t// doesn't try to handle key navigation.\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ onExpandRow, onCollapseRow, onFocusRow ]\n\t);\n\n\t/* Disable reason: A treegrid is implemented using a table element. */\n\t/* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */\n\treturn (\n\t\t<RovingTabIndexContainer>\n\t\t\t{\n\t\t\t\t// Prevent browser mode from triggering in NVDA by wrapping List View\n\t\t\t\t// in a role=application wrapper.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/issues/43729\n\t\t\t }\n\t\t\t<div role=\"application\" aria-label={ applicationAriaLabel }>\n\t\t\t\t<table\n\t\t\t\t\t{ ...props }\n\t\t\t\t\trole=\"treegrid\"\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t<tbody>{ children }</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</RovingTabIndexContainer>\n\t);\n\t/* eslint-enable jsx-a11y/no-noninteractive-element-to-interactive-role */\n}\n\n/**\n * `TreeGrid` is used to create a tree hierarchy.\n * It is not a visually styled component, but instead helps with adding\n * keyboard navigation and roving tab index behaviors to tree grid structures.\n *\n * A tree grid is a hierarchical 2 dimensional UI component, for example it could be\n * used to implement a file system browser.\n *\n * A tree grid allows the user to navigate using arrow keys.\n * Up/down to navigate vertically across rows, and left/right to navigate horizontally\n * between focusables in a row.\n *\n * The `TreeGrid` renders both a `table` and `tbody` element, and is intended to be used\n * with `TreeGridRow` (`tr`) and `TreeGridCell` (`td`) to build out a grid.\n *\n * ```jsx\n * function TreeMenu() {\n * \treturn (\n * \t\t<TreeGrid>\n * \t\t\t<TreeGridRow level={ 1 } positionInSet={ 1 } setSize={ 2 }>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onSelect } { ...props }>Select</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onMove } { ...props }>Move</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t</TreeGridRow>\n * \t\t\t<TreeGridRow level={ 1 } positionInSet={ 2 } setSize={ 2 }>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onSelect } { ...props }>Select</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onMove } { ...props }>Move</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t</TreeGridRow>\n * \t\t\t<TreeGridRow level={ 2 } positionInSet={ 1 } setSize={ 1 }>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onSelect } { ...props }>Select</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t\t<TreeGridCell>\n * \t\t\t\t\t{ ( props ) => (\n * \t\t\t\t\t\t<Button onClick={ onMove } { ...props }>Move</Button>\n * \t\t\t\t\t) }\n * \t\t\t\t</TreeGridCell>\n * \t\t\t</TreeGridRow>\n * \t\t</TreeGrid>\n * \t);\n * }\n * ```\n *\n * @see {@link https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html}\n */\nexport const TreeGrid = forwardRef( UnforwardedTreeGrid );\n\nexport default TreeGrid;\nexport { default as TreeGridRow } from './row';\nexport { default as TreeGridCell } from './cell';\nexport { default as TreeGridItem } from './item';\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/tree-grid/types.ts"],"sourcesContent":["export type TreeGridRowProps = {\n\t/**\n\t * The children to be rendered in the row.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * An integer value designating the level in the hierarchical tree structure.\n\t * Counting starts at 1. A value of `1` indicates the root level of the structure.\n\t */\n\tlevel: NonNullable< React.AriaAttributes[ 'aria-level' ] >;\n\t/**\n\t * An integer value that represents the position in the set.\n\t * A set is the count of elements at a specific level. Counting starts at 1.\n\t */\n\tpositionInSet: NonNullable< React.AriaAttributes[ 'aria-posinset' ] >;\n\t/**\n\t * An integer value that represents the total number of items in the set,\n\t * at this specific level of the hierarchy.\n\t */\n\tsetSize: NonNullable< React.AriaAttributes[ 'aria-setsize' ] >;\n\t/**\n\t * An optional value that designates whether a row is expanded or collapsed.\n\t * Currently this value only sets the correct aria-expanded property on a row,\n\t * it has no other built-in behavior.\n\t *\n\t * If there is a need to implement `aria-expanded` elsewhere in the row, cell,\n\t * or element within a cell, you may pass `isExpanded={ undefined }`.\n\t * In order for keyboard navigation to continue working, add the\n\t * `data-expanded` attribute with either `true`/`false`. This allows the\n\t * `TreeGrid` component to still manage keyboard interactions while allowing\n\t * the `aria-expanded` attribute to be placed elsewhere.\n\t */\n\tisExpanded?: boolean;\n};\n\ntype RovingTabIndexItemPassThruProps = {\n\tref: React.ForwardedRef< any >;\n\ttabIndex?: number;\n\tonFocus: React.FocusEventHandler< any >;\n\t[ key: string ]: any;\n};\n\nexport type RovingTabIndexItemProps = {\n\t/**\n\t * A render function that receives the props necessary to make it participate in the\n\t * roving tabindex. Any extra props will also be passed through to this function.\n\t *\n\t * Props passed as an argument to the render prop must be passed to the child\n\t * focusable component/element within the cell. If a component is used, it must\n\t * correctly handle the `onFocus`, `tabIndex`, and `ref` props, passing these to the\n\t * element it renders. These props are used to handle the roving tabindex functionality\n\t * of the tree grid.\n\t *\n\t * ```jsx\n\t * <TreeGridCell>\n\t * \t{ ( props ) => (\n\t * \t\t<Button onClick={ doSomething } { ...props }>\n\t * \t\t\tDo something\n\t * \t\t</Button>\n\t * \t) }\n\t * </TreeGridCell>\n\t * ```\n\t */\n\tchildren?: ( props: RovingTabIndexItemPassThruProps ) => JSX.Element;\n\t/**\n\t * If `children` is not a function, this component will be used instead.\n\t */\n\tas?: React.ComponentType< RovingTabIndexItemPassThruProps >;\n\t[ key: string ]: any;\n};\n\nexport type TreeGridCellProps =\n\t| ( {\n\t\t\t/**\n\t\t\t * Render `children` without wrapping it in a `TreeGridItem` component.\n\t\t\t * This means that `children` will not participate in the roving tabindex.\n\t\t\t *\n\t\t\t * @default false\n\t\t\t */\n\t\t\twithoutGridItem?: false;\n\t } & NonNullable< Pick< RovingTabIndexItemProps, 'children' > > )\n\t| {\n\t\t\tchildren: React.ReactNode;\n\t\t\twithoutGridItem: true;\n\t };\n\nexport type TreeGridProps = {\n\t/**\n\t * Label to use for the element with the `application` role.\n\t */\n\tapplicationAriaLabel?: string;\n\t/**\n\t * The children to be rendered in the tree grid.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * Callback to fire when row is expanded.\n\t *\n\t * @default noop\n\t */\n\tonExpandRow?: ( row: HTMLElement ) => void;\n\t/**\n\t * Callback to fire when row is collapsed.\n\t *\n\t * @default noop\n\t */\n\tonCollapseRow?: ( row: HTMLElement ) => void;\n\t/**\n\t * Callback that fires when focus is shifted from one row to another via\n\t * the Up and Down keys. Callback is also fired on Home and End keys which\n\t * move focus from the beginning row to the end row.\n\t *\n\t * The callback is passed the event, the start row element that the focus was on\n\t * originally, and the destination row element after the focus has moved.\n\t *\n\t * @default noop\n\t */\n\tonFocusRow?: (\n\t\tevent: React.KeyboardEvent< HTMLTableElement >,\n\t\tstartRow: HTMLElement,\n\t\tdestinationRow: HTMLElement\n\t) => void;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/tree-grid/types.ts"],"sourcesContent":["export type TreeGridRowProps = {\n\t/**\n\t * The children to be rendered in the row.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * An integer value designating the level in the hierarchical tree structure.\n\t * Counting starts at 1. A value of `1` indicates the root level of the structure.\n\t */\n\tlevel: NonNullable< React.AriaAttributes[ 'aria-level' ] >;\n\t/**\n\t * An integer value that represents the position in the set.\n\t * A set is the count of elements at a specific level. Counting starts at 1.\n\t */\n\tpositionInSet: NonNullable< React.AriaAttributes[ 'aria-posinset' ] >;\n\t/**\n\t * An integer value that represents the total number of items in the set,\n\t * at this specific level of the hierarchy.\n\t */\n\tsetSize: NonNullable< React.AriaAttributes[ 'aria-setsize' ] >;\n\t/**\n\t * An optional value that designates whether a row is expanded or collapsed.\n\t * Currently this value only sets the correct aria-expanded property on a row,\n\t * it has no other built-in behavior.\n\t *\n\t * If there is a need to implement `aria-expanded` elsewhere in the row, cell,\n\t * or element within a cell, you may pass `isExpanded={ undefined }`.\n\t * In order for keyboard navigation to continue working, add the\n\t * `data-expanded` attribute with either `true`/`false`. This allows the\n\t * `TreeGrid` component to still manage keyboard interactions while allowing\n\t * the `aria-expanded` attribute to be placed elsewhere.\n\t */\n\tisExpanded?: boolean;\n};\n\ntype RovingTabIndexItemPassThruProps = {\n\tref: React.ForwardedRef< any >;\n\ttabIndex?: number;\n\tonFocus?: React.FocusEventHandler< any >;\n\t[ key: string ]: any;\n};\n\nexport type RovingTabIndexItemProps = {\n\t/**\n\t * A render function that receives the props necessary to make it participate in the\n\t * roving tabindex. Any extra props will also be passed through to this function.\n\t *\n\t * Props passed as an argument to the render prop must be passed to the child\n\t * focusable component/element within the cell. If a component is used, it must\n\t * correctly handle the `onFocus`, `tabIndex`, and `ref` props, passing these to the\n\t * element it renders. These props are used to handle the roving tabindex functionality\n\t * of the tree grid.\n\t *\n\t * ```jsx\n\t * <TreeGridCell>\n\t * \t{ ( props ) => (\n\t * \t\t<Button onClick={ doSomething } { ...props }>\n\t * \t\t\tDo something\n\t * \t\t</Button>\n\t * \t) }\n\t * </TreeGridCell>\n\t * ```\n\t */\n\tchildren?: ( props: RovingTabIndexItemPassThruProps ) => JSX.Element;\n\t/**\n\t * If `children` is not a function, this component will be used instead.\n\t */\n\tas?: React.ComponentType< RovingTabIndexItemPassThruProps >;\n\t[ key: string ]: any;\n};\n\nexport type TreeGridCellProps =\n\t| ( {\n\t\t\t/**\n\t\t\t * Render `children` without wrapping it in a `TreeGridItem` component.\n\t\t\t * This means that `children` will not participate in the roving tabindex.\n\t\t\t *\n\t\t\t * @default false\n\t\t\t */\n\t\t\twithoutGridItem?: false;\n\t } & NonNullable< Pick< RovingTabIndexItemProps, 'children' > > )\n\t| {\n\t\t\tchildren: React.ReactNode;\n\t\t\twithoutGridItem: true;\n\t };\n\nexport type TreeGridProps = {\n\t/**\n\t * Label to use for the element with the `application` role.\n\t */\n\tapplicationAriaLabel?: string;\n\t/**\n\t * The children to be rendered in the tree grid.\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * Callback to fire when row is expanded.\n\t *\n\t * @default noop\n\t */\n\tonExpandRow?: ( row: HTMLElement ) => void;\n\t/**\n\t * Callback to fire when row is collapsed.\n\t *\n\t * @default noop\n\t */\n\tonCollapseRow?: ( row: HTMLElement ) => void;\n\t/**\n\t * Callback that fires when focus is shifted from one row to another via\n\t * the Up and Down keys. Callback is also fired on Home and End keys which\n\t * move focus from the beginning row to the end row.\n\t *\n\t * The callback is passed the event, the start row element that the focus was on\n\t * originally, and the destination row element after the focus has moved.\n\t *\n\t * @default noop\n\t */\n\tonFocusRow?: (\n\t\tevent: React.KeyboardEvent< HTMLTableElement >,\n\t\tstartRow: HTMLElement,\n\t\tdestinationRow: HTMLElement\n\t) => void;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * WordPress dependencies
3
4
  */
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","decodeEntities","SelectControl","useDeprecated36pxDefaultSizeProp","ContextSystemProvider","jsx","_jsx","CONTEXT_VALUE","BaseControl","_overrides","__associatedWPComponentName","getSelectOptions","tree","level","flatMap","treeNode","value","id","label","repeat","name","children","TreeSelect","props","noOptionLabel","onChange","selectedId","restProps","options","filter","option"],"sources":["@wordpress/components/src/tree-select/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { SelectControl } from '../select-control';\nimport type { TreeSelectProps, Tree, Truthy } from './types';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { ContextSystemProvider } from '../context';\n\nconst CONTEXT_VALUE = {\n\tBaseControl: {\n\t\t// Temporary during deprecation grace period: Overrides the underlying `__associatedWPComponentName`\n\t\t// via the context system to override the value set by SelectControl.\n\t\t_overrides: { __associatedWPComponentName: 'TreeSelect' },\n\t},\n};\n\nfunction getSelectOptions(\n\ttree: Tree[],\n\tlevel = 0\n): NonNullable< TreeSelectProps[ 'options' ] > {\n\treturn tree.flatMap( ( treeNode ) => [\n\t\t{\n\t\t\tvalue: treeNode.id,\n\t\t\tlabel:\n\t\t\t\t'\\u00A0'.repeat( level * 3 ) + decodeEntities( treeNode.name ),\n\t\t},\n\t\t...getSelectOptions( treeNode.children || [], level + 1 ),\n\t] );\n}\n\n/**\n * TreeSelect component is used to generate select input fields.\n *\n * ```jsx\n * import { TreeSelect } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTreeSelect = () => {\n * \tconst [ page, setPage ] = useState( 'p21' );\n *\n * \treturn (\n * \t\t<TreeSelect\n * \t\t\t__nextHasNoMarginBottom\n * \t\t\tlabel=\"Parent page\"\n * \t\t\tnoOptionLabel=\"No parent page\"\n * \t\t\tonChange={ ( newPage ) => setPage( newPage ) }\n * \t\t\tselectedId={ page }\n * \t\t\ttree={ [\n * \t\t\t\t{\n * \t\t\t\t\tname: 'Page 1',\n * \t\t\t\t\tid: 'p1',\n * \t\t\t\t\tchildren: [\n * \t\t\t\t\t\t{ name: 'Descend 1 of page 1', id: 'p11' },\n * \t\t\t\t\t\t{ name: 'Descend 2 of page 1', id: 'p12' },\n * \t\t\t\t\t],\n * \t\t\t\t},\n * \t\t\t\t{\n * \t\t\t\t\tname: 'Page 2',\n * \t\t\t\t\tid: 'p2',\n * \t\t\t\t\tchildren: [\n * \t\t\t\t\t\t{\n * \t\t\t\t\t\t\tname: 'Descend 1 of page 2',\n * \t\t\t\t\t\t\tid: 'p21',\n * \t\t\t\t\t\t\tchildren: [\n * \t\t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\t\tname: 'Descend 1 of Descend 1 of page 2',\n * \t\t\t\t\t\t\t\t\tid: 'p211',\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},\n * \t\t\t] }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nexport function TreeSelect( props: TreeSelectProps ) {\n\tconst {\n\t\tlabel,\n\t\tnoOptionLabel,\n\t\tonChange,\n\t\tselectedId,\n\t\ttree = [],\n\t\t...restProps\n\t} = useDeprecated36pxDefaultSizeProp( props );\n\n\tconst options = useMemo( () => {\n\t\treturn [\n\t\t\tnoOptionLabel && { value: '', label: noOptionLabel },\n\t\t\t...getSelectOptions( tree ),\n\t\t].filter( < T, >( option: T ): option is Truthy< T > => !! option );\n\t}, [ noOptionLabel, tree ] );\n\n\treturn (\n\t\t<ContextSystemProvider value={ CONTEXT_VALUE }>\n\t\t\t<SelectControl\n\t\t\t\t{ ...{ label, options, onChange } }\n\t\t\t\tvalue={ selectedId }\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t</ContextSystemProvider>\n\t);\n}\n\nexport default TreeSelect;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,SAASC,gCAAgC,QAAQ,+BAA+B;AAChF,SAASC,qBAAqB,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnD,MAAMC,aAAa,GAAG;EACrBC,WAAW,EAAE;IACZ;IACA;IACAC,UAAU,EAAE;MAAEC,2BAA2B,EAAE;IAAa;EACzD;AACD,CAAC;AAED,SAASC,gBAAgBA,CACxBC,IAAY,EACZC,KAAK,GAAG,CAAC,EACqC;EAC9C,OAAOD,IAAI,CAACE,OAAO,CAAIC,QAAQ,IAAM,CACpC;IACCC,KAAK,EAAED,QAAQ,CAACE,EAAE;IAClBC,KAAK,EACJ,QAAQ,CAACC,MAAM,CAAEN,KAAK,GAAG,CAAE,CAAC,GAAGZ,cAAc,CAAEc,QAAQ,CAACK,IAAK;EAC/D,CAAC,EACD,GAAGT,gBAAgB,CAAEI,QAAQ,CAACM,QAAQ,IAAI,EAAE,EAAER,KAAK,GAAG,CAAE,CAAC,CACxD,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,UAAUA,CAAEC,KAAsB,EAAG;EACpD,MAAM;IACLL,KAAK;IACLM,aAAa;IACbC,QAAQ;IACRC,UAAU;IACVd,IAAI,GAAG,EAAE;IACT,GAAGe;EACJ,CAAC,GAAGxB,gCAAgC,CAAEoB,KAAM,CAAC;EAE7C,MAAMK,OAAO,GAAG5B,OAAO,CAAE,MAAM;IAC9B,OAAO,CACNwB,aAAa,IAAI;MAAER,KAAK,EAAE,EAAE;MAAEE,KAAK,EAAEM;IAAc,CAAC,EACpD,GAAGb,gBAAgB,CAAEC,IAAK,CAAC,CAC3B,CAACiB,MAAM,CAAUC,MAAS,IAA6B,CAAC,CAAEA,MAAO,CAAC;EACpE,CAAC,EAAE,CAAEN,aAAa,EAAEZ,IAAI,CAAG,CAAC;EAE5B,oBACCN,IAAA,CAACF,qBAAqB;IAACY,KAAK,EAAGT,aAAe;IAAAc,QAAA,eAC7Cf,IAAA,CAACJ,aAAa;MACNgB,KAAK;MAAEU,OAAO;MAAEH,QAAQ;MAC/BT,KAAK,EAAGU,UAAY;MAAA,GACfC;IAAS,CACd;EAAC,CACoB,CAAC;AAE1B;AAEA,eAAeL,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","decodeEntities","SelectControl","useDeprecated36pxDefaultSizeProp","ContextSystemProvider","jsx","_jsx","CONTEXT_VALUE","BaseControl","_overrides","__associatedWPComponentName","getSelectOptions","tree","level","flatMap","treeNode","value","id","label","repeat","name","children","TreeSelect","props","noOptionLabel","onChange","selectedId","restProps","options","filter","option"],"sources":["@wordpress/components/src/tree-select/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { SelectControl } from '../select-control';\nimport type { TreeSelectProps, Tree, Truthy } from './types';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { ContextSystemProvider } from '../context';\n\nconst CONTEXT_VALUE = {\n\tBaseControl: {\n\t\t// Temporary during deprecation grace period: Overrides the underlying `__associatedWPComponentName`\n\t\t// via the context system to override the value set by SelectControl.\n\t\t_overrides: { __associatedWPComponentName: 'TreeSelect' },\n\t},\n};\n\nfunction getSelectOptions(\n\ttree: Tree[],\n\tlevel = 0\n): NonNullable< TreeSelectProps[ 'options' ] > {\n\treturn tree.flatMap( ( treeNode ) => [\n\t\t{\n\t\t\tvalue: treeNode.id,\n\t\t\tlabel:\n\t\t\t\t'\\u00A0'.repeat( level * 3 ) + decodeEntities( treeNode.name ),\n\t\t},\n\t\t...getSelectOptions( treeNode.children || [], level + 1 ),\n\t] );\n}\n\n/**\n * TreeSelect component is used to generate select input fields.\n *\n * ```jsx\n * import { TreeSelect } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTreeSelect = () => {\n * \tconst [ page, setPage ] = useState( 'p21' );\n *\n * \treturn (\n * \t\t<TreeSelect\n * \t\t\t__nextHasNoMarginBottom\n * \t\t\tlabel=\"Parent page\"\n * \t\t\tnoOptionLabel=\"No parent page\"\n * \t\t\tonChange={ ( newPage ) => setPage( newPage ) }\n * \t\t\tselectedId={ page }\n * \t\t\ttree={ [\n * \t\t\t\t{\n * \t\t\t\t\tname: 'Page 1',\n * \t\t\t\t\tid: 'p1',\n * \t\t\t\t\tchildren: [\n * \t\t\t\t\t\t{ name: 'Descend 1 of page 1', id: 'p11' },\n * \t\t\t\t\t\t{ name: 'Descend 2 of page 1', id: 'p12' },\n * \t\t\t\t\t],\n * \t\t\t\t},\n * \t\t\t\t{\n * \t\t\t\t\tname: 'Page 2',\n * \t\t\t\t\tid: 'p2',\n * \t\t\t\t\tchildren: [\n * \t\t\t\t\t\t{\n * \t\t\t\t\t\t\tname: 'Descend 1 of page 2',\n * \t\t\t\t\t\t\tid: 'p21',\n * \t\t\t\t\t\t\tchildren: [\n * \t\t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\t\tname: 'Descend 1 of Descend 1 of page 2',\n * \t\t\t\t\t\t\t\t\tid: 'p211',\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},\n * \t\t\t] }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nexport function TreeSelect( props: TreeSelectProps ) {\n\tconst {\n\t\tlabel,\n\t\tnoOptionLabel,\n\t\tonChange,\n\t\tselectedId,\n\t\ttree = [],\n\t\t...restProps\n\t} = useDeprecated36pxDefaultSizeProp( props );\n\n\tconst options = useMemo( () => {\n\t\treturn [\n\t\t\tnoOptionLabel && { value: '', label: noOptionLabel },\n\t\t\t...getSelectOptions( tree ),\n\t\t].filter( < T, >( option: T ): option is Truthy< T > => !! option );\n\t}, [ noOptionLabel, tree ] );\n\n\treturn (\n\t\t<ContextSystemProvider value={ CONTEXT_VALUE }>\n\t\t\t<SelectControl\n\t\t\t\t{ ...{ label, options, onChange } }\n\t\t\t\tvalue={ selectedId }\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t</ContextSystemProvider>\n\t);\n}\n\nexport default TreeSelect;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,SAASC,gCAAgC,QAAQ,+BAA+B;AAChF,SAASC,qBAAqB,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnD,MAAMC,aAAa,GAAG;EACrBC,WAAW,EAAE;IACZ;IACA;IACAC,UAAU,EAAE;MAAEC,2BAA2B,EAAE;IAAa;EACzD;AACD,CAAC;AAED,SAASC,gBAAgBA,CACxBC,IAAY,EACZC,KAAK,GAAG,CAAC,EACqC;EAC9C,OAAOD,IAAI,CAACE,OAAO,CAAIC,QAAQ,IAAM,CACpC;IACCC,KAAK,EAAED,QAAQ,CAACE,EAAE;IAClBC,KAAK,EACJ,QAAQ,CAACC,MAAM,CAAEN,KAAK,GAAG,CAAE,CAAC,GAAGZ,cAAc,CAAEc,QAAQ,CAACK,IAAK;EAC/D,CAAC,EACD,GAAGT,gBAAgB,CAAEI,QAAQ,CAACM,QAAQ,IAAI,EAAE,EAAER,KAAK,GAAG,CAAE,CAAC,CACxD,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASS,UAAUA,CAAEC,KAAsB,EAAG;EACpD,MAAM;IACLL,KAAK;IACLM,aAAa;IACbC,QAAQ;IACRC,UAAU;IACVd,IAAI,GAAG,EAAE;IACT,GAAGe;EACJ,CAAC,GAAGxB,gCAAgC,CAAEoB,KAAM,CAAC;EAE7C,MAAMK,OAAO,GAAG5B,OAAO,CAAE,MAAM;IAC9B,OAAO,CACNwB,aAAa,IAAI;MAAER,KAAK,EAAE,EAAE;MAAEE,KAAK,EAAEM;IAAc,CAAC,EACpD,GAAGb,gBAAgB,CAAEC,IAAK,CAAC,CAC3B,CAACiB,MAAM,CAAUC,MAAS,IAA6B,CAAC,CAAEA,MAAO,CAAC;EACpE,CAAC,EAAE,CAAEN,aAAa,EAAEZ,IAAI,CAAG,CAAC;EAE5B,oBACCN,IAAA,CAACF,qBAAqB;IAACY,KAAK,EAAGT,aAAe;IAAAc,QAAA,eAC7Cf,IAAA,CAACJ,aAAa;MACNgB,KAAK;MAAEU,OAAO;MAAEH,QAAQ;MAC/BT,KAAK,EAAGU,UAAY;MAAA,GACfC;IAAS,CACd;EAAC,CACoB,CAAC;AAE1B;AAEA,eAAeL,UAAU","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * External dependencies
3
4
  */
@@ -21,6 +22,7 @@ import { CSS_UNITS, getParsedQuantityAndUnit, getUnitsWithCurrentUnit, getValidP
21
22
  import { useControlledState } from '../utils/hooks';
22
23
  import { escapeRegExp } from '../utils/strings';
23
24
  import { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';
25
+ import { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';
24
26
  import { jsx as _jsx } from "react/jsx-runtime";
25
27
  function UnforwardedUnitControl(unitControlProps, forwardedRef) {
26
28
  const {
@@ -42,8 +44,15 @@ function UnforwardedUnitControl(unitControlProps, forwardedRef) {
42
44
  units: unitsProp = CSS_UNITS,
43
45
  value: valueProp,
44
46
  onFocus: onFocusProp,
47
+ __shouldNotWarnDeprecated36pxSize,
45
48
  ...props
46
49
  } = useDeprecated36pxDefaultSizeProp(unitControlProps);
50
+ maybeWarnDeprecated36pxSize({
51
+ componentName: 'UnitControl',
52
+ __next40pxDefaultSize: props.__next40pxDefaultSize,
53
+ size,
54
+ __shouldNotWarnDeprecated36pxSize
55
+ });
47
56
  if ('unit' in unitControlProps) {
48
57
  deprecated('UnitControl unit prop', {
49
58
  since: '5.6',
@@ -146,6 +155,7 @@ function UnforwardedUnitControl(unitControlProps, forwardedRef) {
146
155
  }
147
156
  return /*#__PURE__*/_jsx(ValueInput, {
148
157
  ...props,
158
+ __shouldNotWarnDeprecated36pxSize: true,
149
159
  autoComplete: autoComplete,
150
160
  className: classes,
151
161
  disabled: disabled,
@@ -176,7 +186,7 @@ function UnforwardedUnitControl(unitControlProps, forwardedRef) {
176
186
  * const Example = () => {
177
187
  * const [ value, setValue ] = useState( '10px' );
178
188
  *
179
- * return <UnitControl onChange={ setValue } value={ value } />;
189
+ * return <UnitControl __next40pxDefaultSize onChange={ setValue } value={ value } />;
180
190
  * };
181
191
  * ```
182
192
  */
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","deprecated","forwardRef","useMemo","useRef","useEffect","__","ValueInput","UnitSelectControl","CSS_UNITS","getParsedQuantityAndUnit","getUnitsWithCurrentUnit","getValidParsedQuantityAndUnit","useControlledState","escapeRegExp","useDeprecated36pxDefaultSizeProp","jsx","_jsx","UnforwardedUnitControl","unitControlProps","forwardedRef","__unstableStateReducer","autoComplete","children","className","disabled","disableUnits","isPressEnterToChange","isResetValueOnUnitChange","isUnitSelectTabbable","label","onChange","onChangeProp","onUnitChange","size","unit","unitProp","units","unitsProp","value","valueProp","onFocus","onFocusProp","props","since","hint","version","nonNullValueProp","undefined","reFirstCharacterOfUnits","list","firstUnitValue","rest","firstCharacters","reduce","carry","first","substring","includes","RegExp","parsedQuantity","parsedUnit","setUnit","length","initial","fallback","classes","handleOnQuantityChange","nextQuantityValue","changeProps","onChangeValue","join","handleOnUnitChange","nextUnitValue","data","nextValue","default","handleOnKeyDown","event","onKeyDown","metaKey","ctrlKey","test","key","refInputSuffix","current","focus","inputSuffix","ref","__next40pxDefaultSize","onBlur","step","_activeUnit$step","activeUnit","find","option","spinControls","suffix","type","UnitControl","parseQuantityAndUnitFromRawValue","useCustomUnits"],"sources":["@wordpress/components/src/unit-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { KeyboardEvent, ForwardedRef, SyntheticEvent } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef, useMemo, useRef, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport { ValueInput } from './styles/unit-control-styles';\nimport UnitSelectControl from './unit-select-control';\nimport {\n\tCSS_UNITS,\n\tgetParsedQuantityAndUnit,\n\tgetUnitsWithCurrentUnit,\n\tgetValidParsedQuantityAndUnit,\n} from './utils';\nimport { useControlledState } from '../utils/hooks';\nimport { escapeRegExp } from '../utils/strings';\nimport type { UnitControlProps, UnitControlOnChangeCallback } from './types';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\n\nfunction UnforwardedUnitControl(\n\tunitControlProps: WordPressComponentProps<\n\t\tUnitControlProps,\n\t\t'input',\n\t\tfalse\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer,\n\t\tautoComplete = 'off',\n\t\t// @ts-expect-error Ensure that children is omitted from restProps\n\t\tchildren,\n\t\tclassName,\n\t\tdisabled = false,\n\t\tdisableUnits = false,\n\t\tisPressEnterToChange = false,\n\t\tisResetValueOnUnitChange = false,\n\t\tisUnitSelectTabbable = true,\n\t\tlabel,\n\t\tonChange: onChangeProp,\n\t\tonUnitChange,\n\t\tsize = 'default',\n\t\tunit: unitProp,\n\t\tunits: unitsProp = CSS_UNITS,\n\t\tvalue: valueProp,\n\t\tonFocus: onFocusProp,\n\t\t...props\n\t} = useDeprecated36pxDefaultSizeProp( unitControlProps );\n\n\tif ( 'unit' in unitControlProps ) {\n\t\tdeprecated( 'UnitControl unit prop', {\n\t\t\tsince: '5.6',\n\t\t\thint: 'The unit should be provided within the `value` prop.',\n\t\t\tversion: '6.2',\n\t\t} );\n\t}\n\n\t// The `value` prop, in theory, should not be `null`, but the following line\n\t// ensures it fallback to `undefined` in case a consumer of `UnitControl`\n\t// still passes `null` as a `value`.\n\tconst nonNullValueProp = valueProp ?? undefined;\n\tconst [ units, reFirstCharacterOfUnits ] = useMemo( () => {\n\t\tconst list = getUnitsWithCurrentUnit(\n\t\t\tnonNullValueProp,\n\t\t\tunitProp,\n\t\t\tunitsProp\n\t\t);\n\t\tconst [ { value: firstUnitValue = '' } = {}, ...rest ] = list;\n\t\tconst firstCharacters = rest.reduce(\n\t\t\t( carry, { value } ) => {\n\t\t\t\tconst first = escapeRegExp( value?.substring( 0, 1 ) || '' );\n\t\t\t\treturn carry.includes( first )\n\t\t\t\t\t? carry\n\t\t\t\t\t: `${ carry }|${ first }`;\n\t\t\t},\n\t\t\tescapeRegExp( firstUnitValue.substring( 0, 1 ) )\n\t\t);\n\t\treturn [ list, new RegExp( `^(?:${ firstCharacters })$`, 'i' ) ];\n\t}, [ nonNullValueProp, unitProp, unitsProp ] );\n\tconst [ parsedQuantity, parsedUnit ] = getParsedQuantityAndUnit(\n\t\tnonNullValueProp,\n\t\tunitProp,\n\t\tunits\n\t);\n\n\tconst [ unit, setUnit ] = useControlledState< string | undefined >(\n\t\tunits.length === 1 ? units[ 0 ].value : unitProp,\n\t\t{\n\t\t\tinitial: parsedUnit,\n\t\t\tfallback: '',\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( parsedUnit !== undefined ) {\n\t\t\tsetUnit( parsedUnit );\n\t\t}\n\t}, [ parsedUnit, setUnit ] );\n\n\tconst classes = clsx(\n\t\t'components-unit-control',\n\t\t// This class is added for legacy purposes to maintain it on the outer\n\t\t// wrapper. See: https://github.com/WordPress/gutenberg/pull/45139\n\t\t'components-unit-control-wrapper',\n\t\tclassName\n\t);\n\n\tconst handleOnQuantityChange = (\n\t\tnextQuantityValue: number | string | undefined,\n\t\tchangeProps: {\n\t\t\tevent: SyntheticEvent;\n\t\t}\n\t) => {\n\t\tif (\n\t\t\tnextQuantityValue === '' ||\n\t\t\ttypeof nextQuantityValue === 'undefined' ||\n\t\t\tnextQuantityValue === null\n\t\t) {\n\t\t\tonChangeProp?.( '', changeProps );\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Customizing the onChange callback.\n\t\t * This allows as to broadcast a combined value+unit to onChange.\n\t\t */\n\t\tconst onChangeValue = getValidParsedQuantityAndUnit(\n\t\t\tnextQuantityValue,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t).join( '' );\n\n\t\tonChangeProp?.( onChangeValue, changeProps );\n\t};\n\n\tconst handleOnUnitChange: UnitControlOnChangeCallback = (\n\t\tnextUnitValue,\n\t\tchangeProps\n\t) => {\n\t\tconst { data } = changeProps;\n\n\t\tlet nextValue = `${ parsedQuantity ?? '' }${ nextUnitValue }`;\n\n\t\tif ( isResetValueOnUnitChange && data?.default !== undefined ) {\n\t\t\tnextValue = `${ data.default }${ nextUnitValue }`;\n\t\t}\n\n\t\tonChangeProp?.( nextValue, changeProps );\n\t\tonUnitChange?.( nextUnitValue, changeProps );\n\n\t\tsetUnit( nextUnitValue );\n\t};\n\n\tlet handleOnKeyDown;\n\tif ( ! disableUnits && isUnitSelectTabbable && units.length ) {\n\t\thandleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {\n\t\t\tprops.onKeyDown?.( event );\n\t\t\t// Unless the meta or ctrl key was pressed (to avoid interfering with\n\t\t\t// shortcuts, e.g. pastes), move focus to the unit select if a key\n\t\t\t// matches the first character of a unit.\n\t\t\tif (\n\t\t\t\t! event.metaKey &&\n\t\t\t\t! event.ctrlKey &&\n\t\t\t\treFirstCharacterOfUnits.test( event.key )\n\t\t\t) {\n\t\t\t\trefInputSuffix.current?.focus();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst refInputSuffix = useRef< HTMLSelectElement >( null );\n\tconst inputSuffix = ! disableUnits ? (\n\t\t<UnitSelectControl\n\t\t\tref={ refInputSuffix }\n\t\t\taria-label={ __( 'Select unit' ) }\n\t\t\tdisabled={ disabled }\n\t\t\tisUnitSelectTabbable={ isUnitSelectTabbable }\n\t\t\tonChange={ handleOnUnitChange }\n\t\t\tsize={\n\t\t\t\t[ 'small', 'compact' ].includes( size ) ||\n\t\t\t\t( size === 'default' && ! props.__next40pxDefaultSize )\n\t\t\t\t\t? 'small'\n\t\t\t\t\t: 'default'\n\t\t\t}\n\t\t\tunit={ unit }\n\t\t\tunits={ units }\n\t\t\tonFocus={ onFocusProp }\n\t\t\tonBlur={ unitControlProps.onBlur }\n\t\t/>\n\t) : null;\n\n\tlet step = props.step;\n\n\t/*\n\t * If no step prop has been passed, lookup the active unit and\n\t * try to get step from `units`, or default to a value of `1`\n\t */\n\tif ( ! step && units ) {\n\t\tconst activeUnit = units.find( ( option ) => option.value === unit );\n\t\tstep = activeUnit?.step ?? 1;\n\t}\n\n\treturn (\n\t\t<ValueInput\n\t\t\t{ ...props }\n\t\t\tautoComplete={ autoComplete }\n\t\t\tclassName={ classes }\n\t\t\tdisabled={ disabled }\n\t\t\tspinControls=\"none\"\n\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\tlabel={ label }\n\t\t\tonKeyDown={ handleOnKeyDown }\n\t\t\tonChange={ handleOnQuantityChange }\n\t\t\tref={ forwardedRef }\n\t\t\tsize={ size }\n\t\t\tsuffix={ inputSuffix }\n\t\t\ttype={ isPressEnterToChange ? 'text' : 'number' }\n\t\t\tvalue={ parsedQuantity ?? '' }\n\t\t\tstep={ step }\n\t\t\tonFocus={ onFocusProp }\n\t\t\t__unstableStateReducer={ __unstableStateReducer }\n\t\t/>\n\t);\n}\n\n/**\n * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).\n *\n *\n * ```jsx\n * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '10px' );\n *\n * return <UnitControl onChange={ setValue } value={ value } />;\n * };\n * ```\n */\nexport const UnitControl = forwardRef( UnforwardedUnitControl );\n\nexport { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';\nexport default UnitControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","deprecated","forwardRef","useMemo","useRef","useEffect","__","ValueInput","UnitSelectControl","CSS_UNITS","getParsedQuantityAndUnit","getUnitsWithCurrentUnit","getValidParsedQuantityAndUnit","useControlledState","escapeRegExp","useDeprecated36pxDefaultSizeProp","maybeWarnDeprecated36pxSize","jsx","_jsx","UnforwardedUnitControl","unitControlProps","forwardedRef","__unstableStateReducer","autoComplete","children","className","disabled","disableUnits","isPressEnterToChange","isResetValueOnUnitChange","isUnitSelectTabbable","label","onChange","onChangeProp","onUnitChange","size","unit","unitProp","units","unitsProp","value","valueProp","onFocus","onFocusProp","__shouldNotWarnDeprecated36pxSize","props","componentName","__next40pxDefaultSize","since","hint","version","nonNullValueProp","undefined","reFirstCharacterOfUnits","list","firstUnitValue","rest","firstCharacters","reduce","carry","first","substring","includes","RegExp","parsedQuantity","parsedUnit","setUnit","length","initial","fallback","classes","handleOnQuantityChange","nextQuantityValue","changeProps","onChangeValue","join","handleOnUnitChange","nextUnitValue","data","nextValue","default","handleOnKeyDown","event","onKeyDown","metaKey","ctrlKey","test","key","refInputSuffix","current","focus","inputSuffix","ref","onBlur","step","_activeUnit$step","activeUnit","find","option","spinControls","suffix","type","UnitControl","parseQuantityAndUnitFromRawValue","useCustomUnits"],"sources":["@wordpress/components/src/unit-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { KeyboardEvent, ForwardedRef, SyntheticEvent } from 'react';\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef, useMemo, useRef, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../context';\nimport { ValueInput } from './styles/unit-control-styles';\nimport UnitSelectControl from './unit-select-control';\nimport {\n\tCSS_UNITS,\n\tgetParsedQuantityAndUnit,\n\tgetUnitsWithCurrentUnit,\n\tgetValidParsedQuantityAndUnit,\n} from './utils';\nimport { useControlledState } from '../utils/hooks';\nimport { escapeRegExp } from '../utils/strings';\nimport type { UnitControlProps, UnitControlOnChangeCallback } from './types';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\n\nfunction UnforwardedUnitControl(\n\tunitControlProps: WordPressComponentProps<\n\t\tUnitControlProps,\n\t\t'input',\n\t\tfalse\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer,\n\t\tautoComplete = 'off',\n\t\t// @ts-expect-error Ensure that children is omitted from restProps\n\t\tchildren,\n\t\tclassName,\n\t\tdisabled = false,\n\t\tdisableUnits = false,\n\t\tisPressEnterToChange = false,\n\t\tisResetValueOnUnitChange = false,\n\t\tisUnitSelectTabbable = true,\n\t\tlabel,\n\t\tonChange: onChangeProp,\n\t\tonUnitChange,\n\t\tsize = 'default',\n\t\tunit: unitProp,\n\t\tunits: unitsProp = CSS_UNITS,\n\t\tvalue: valueProp,\n\t\tonFocus: onFocusProp,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t\t...props\n\t} = useDeprecated36pxDefaultSizeProp( unitControlProps );\n\n\tmaybeWarnDeprecated36pxSize( {\n\t\tcomponentName: 'UnitControl',\n\t\t__next40pxDefaultSize: props.__next40pxDefaultSize,\n\t\tsize,\n\t\t__shouldNotWarnDeprecated36pxSize,\n\t} );\n\n\tif ( 'unit' in unitControlProps ) {\n\t\tdeprecated( 'UnitControl unit prop', {\n\t\t\tsince: '5.6',\n\t\t\thint: 'The unit should be provided within the `value` prop.',\n\t\t\tversion: '6.2',\n\t\t} );\n\t}\n\n\t// The `value` prop, in theory, should not be `null`, but the following line\n\t// ensures it fallback to `undefined` in case a consumer of `UnitControl`\n\t// still passes `null` as a `value`.\n\tconst nonNullValueProp = valueProp ?? undefined;\n\tconst [ units, reFirstCharacterOfUnits ] = useMemo( () => {\n\t\tconst list = getUnitsWithCurrentUnit(\n\t\t\tnonNullValueProp,\n\t\t\tunitProp,\n\t\t\tunitsProp\n\t\t);\n\t\tconst [ { value: firstUnitValue = '' } = {}, ...rest ] = list;\n\t\tconst firstCharacters = rest.reduce(\n\t\t\t( carry, { value } ) => {\n\t\t\t\tconst first = escapeRegExp( value?.substring( 0, 1 ) || '' );\n\t\t\t\treturn carry.includes( first )\n\t\t\t\t\t? carry\n\t\t\t\t\t: `${ carry }|${ first }`;\n\t\t\t},\n\t\t\tescapeRegExp( firstUnitValue.substring( 0, 1 ) )\n\t\t);\n\t\treturn [ list, new RegExp( `^(?:${ firstCharacters })$`, 'i' ) ];\n\t}, [ nonNullValueProp, unitProp, unitsProp ] );\n\tconst [ parsedQuantity, parsedUnit ] = getParsedQuantityAndUnit(\n\t\tnonNullValueProp,\n\t\tunitProp,\n\t\tunits\n\t);\n\n\tconst [ unit, setUnit ] = useControlledState< string | undefined >(\n\t\tunits.length === 1 ? units[ 0 ].value : unitProp,\n\t\t{\n\t\t\tinitial: parsedUnit,\n\t\t\tfallback: '',\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( parsedUnit !== undefined ) {\n\t\t\tsetUnit( parsedUnit );\n\t\t}\n\t}, [ parsedUnit, setUnit ] );\n\n\tconst classes = clsx(\n\t\t'components-unit-control',\n\t\t// This class is added for legacy purposes to maintain it on the outer\n\t\t// wrapper. See: https://github.com/WordPress/gutenberg/pull/45139\n\t\t'components-unit-control-wrapper',\n\t\tclassName\n\t);\n\n\tconst handleOnQuantityChange = (\n\t\tnextQuantityValue: number | string | undefined,\n\t\tchangeProps: {\n\t\t\tevent: SyntheticEvent;\n\t\t}\n\t) => {\n\t\tif (\n\t\t\tnextQuantityValue === '' ||\n\t\t\ttypeof nextQuantityValue === 'undefined' ||\n\t\t\tnextQuantityValue === null\n\t\t) {\n\t\t\tonChangeProp?.( '', changeProps );\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Customizing the onChange callback.\n\t\t * This allows as to broadcast a combined value+unit to onChange.\n\t\t */\n\t\tconst onChangeValue = getValidParsedQuantityAndUnit(\n\t\t\tnextQuantityValue,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t).join( '' );\n\n\t\tonChangeProp?.( onChangeValue, changeProps );\n\t};\n\n\tconst handleOnUnitChange: UnitControlOnChangeCallback = (\n\t\tnextUnitValue,\n\t\tchangeProps\n\t) => {\n\t\tconst { data } = changeProps;\n\n\t\tlet nextValue = `${ parsedQuantity ?? '' }${ nextUnitValue }`;\n\n\t\tif ( isResetValueOnUnitChange && data?.default !== undefined ) {\n\t\t\tnextValue = `${ data.default }${ nextUnitValue }`;\n\t\t}\n\n\t\tonChangeProp?.( nextValue, changeProps );\n\t\tonUnitChange?.( nextUnitValue, changeProps );\n\n\t\tsetUnit( nextUnitValue );\n\t};\n\n\tlet handleOnKeyDown;\n\tif ( ! disableUnits && isUnitSelectTabbable && units.length ) {\n\t\thandleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {\n\t\t\tprops.onKeyDown?.( event );\n\t\t\t// Unless the meta or ctrl key was pressed (to avoid interfering with\n\t\t\t// shortcuts, e.g. pastes), move focus to the unit select if a key\n\t\t\t// matches the first character of a unit.\n\t\t\tif (\n\t\t\t\t! event.metaKey &&\n\t\t\t\t! event.ctrlKey &&\n\t\t\t\treFirstCharacterOfUnits.test( event.key )\n\t\t\t) {\n\t\t\t\trefInputSuffix.current?.focus();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst refInputSuffix = useRef< HTMLSelectElement >( null );\n\tconst inputSuffix = ! disableUnits ? (\n\t\t<UnitSelectControl\n\t\t\tref={ refInputSuffix }\n\t\t\taria-label={ __( 'Select unit' ) }\n\t\t\tdisabled={ disabled }\n\t\t\tisUnitSelectTabbable={ isUnitSelectTabbable }\n\t\t\tonChange={ handleOnUnitChange }\n\t\t\tsize={\n\t\t\t\t[ 'small', 'compact' ].includes( size ) ||\n\t\t\t\t( size === 'default' && ! props.__next40pxDefaultSize )\n\t\t\t\t\t? 'small'\n\t\t\t\t\t: 'default'\n\t\t\t}\n\t\t\tunit={ unit }\n\t\t\tunits={ units }\n\t\t\tonFocus={ onFocusProp }\n\t\t\tonBlur={ unitControlProps.onBlur }\n\t\t/>\n\t) : null;\n\n\tlet step = props.step;\n\n\t/*\n\t * If no step prop has been passed, lookup the active unit and\n\t * try to get step from `units`, or default to a value of `1`\n\t */\n\tif ( ! step && units ) {\n\t\tconst activeUnit = units.find( ( option ) => option.value === unit );\n\t\tstep = activeUnit?.step ?? 1;\n\t}\n\n\treturn (\n\t\t<ValueInput\n\t\t\t{ ...props }\n\t\t\t__shouldNotWarnDeprecated36pxSize\n\t\t\tautoComplete={ autoComplete }\n\t\t\tclassName={ classes }\n\t\t\tdisabled={ disabled }\n\t\t\tspinControls=\"none\"\n\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\tlabel={ label }\n\t\t\tonKeyDown={ handleOnKeyDown }\n\t\t\tonChange={ handleOnQuantityChange }\n\t\t\tref={ forwardedRef }\n\t\t\tsize={ size }\n\t\t\tsuffix={ inputSuffix }\n\t\t\ttype={ isPressEnterToChange ? 'text' : 'number' }\n\t\t\tvalue={ parsedQuantity ?? '' }\n\t\t\tstep={ step }\n\t\t\tonFocus={ onFocusProp }\n\t\t\t__unstableStateReducer={ __unstableStateReducer }\n\t\t/>\n\t);\n}\n\n/**\n * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).\n *\n *\n * ```jsx\n * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '10px' );\n *\n * return <UnitControl __next40pxDefaultSize onChange={ setValue } value={ value } />;\n * };\n * ```\n */\nexport const UnitControl = forwardRef( UnforwardedUnitControl );\n\nexport { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';\nexport default UnitControl;\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  /**
2
3
  * External dependencies
3
4
  */