@wordpress/components 28.6.0 → 28.7.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 (588) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/CONTRIBUTING.md +42 -19
  3. package/build/alignment-matrix-control/cell.js +4 -7
  4. package/build/alignment-matrix-control/cell.js.map +1 -1
  5. package/build/alignment-matrix-control/icon.js +31 -19
  6. package/build/alignment-matrix-control/icon.js.map +1 -1
  7. package/build/alignment-matrix-control/index.js +55 -51
  8. package/build/alignment-matrix-control/index.js.map +1 -1
  9. package/build/alignment-matrix-control/styles.js +73 -0
  10. package/build/alignment-matrix-control/styles.js.map +1 -0
  11. package/build/alignment-matrix-control/types.js.map +1 -1
  12. package/build/angle-picker-control/angle-circle.js +9 -9
  13. package/build/angle-picker-control/angle-circle.js.map +1 -1
  14. package/build/border-control/border-control/component.js +18 -13
  15. package/build/border-control/border-control/component.js.map +1 -1
  16. package/build/circular-option-picker/circular-option-picker-option.js +15 -9
  17. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  18. package/build/circular-option-picker/circular-option-picker.js +15 -12
  19. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  20. package/build/circular-option-picker/types.js.map +1 -1
  21. package/build/clipboard-button/index.js +6 -6
  22. package/build/clipboard-button/index.js.map +1 -1
  23. package/build/color-palette/utils.js +1 -2
  24. package/build/color-palette/utils.js.map +1 -1
  25. package/build/color-picker/color-copy-button.js +8 -8
  26. package/build/color-picker/color-copy-button.js.map +1 -1
  27. package/build/color-picker/hex-input.js +8 -8
  28. package/build/color-picker/hex-input.js.map +1 -1
  29. package/build/color-picker/input-with-slider.js +8 -8
  30. package/build/color-picker/input-with-slider.js.map +1 -1
  31. package/build/color-picker/styles.js +8 -8
  32. package/build/color-picker/styles.js.map +1 -1
  33. package/build/combobox-control/types.js.map +1 -1
  34. package/build/composite/group-label.js +33 -0
  35. package/build/composite/group-label.js.map +1 -0
  36. package/build/composite/group.js +33 -0
  37. package/build/composite/group.js.map +1 -0
  38. package/build/composite/hover.js +33 -0
  39. package/build/composite/hover.js.map +1 -0
  40. package/build/composite/index.js +50 -96
  41. package/build/composite/index.js.map +1 -1
  42. package/build/composite/item.js +33 -0
  43. package/build/composite/item.js.map +1 -0
  44. package/build/composite/legacy/index.js +2 -1
  45. package/build/composite/legacy/index.js.map +1 -1
  46. package/build/composite/row.js +33 -0
  47. package/build/composite/row.js.map +1 -0
  48. package/build/composite/store.js +54 -0
  49. package/build/composite/store.js.map +1 -0
  50. package/build/composite/typeahead.js +33 -0
  51. package/build/composite/typeahead.js.map +1 -0
  52. package/build/composite/types.js.map +1 -1
  53. package/build/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  54. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  55. package/build/custom-select-control-v2/styles.js +12 -14
  56. package/build/custom-select-control-v2/styles.js.map +1 -1
  57. package/build/date-time/date/styles.js +8 -8
  58. package/build/date-time/date/styles.js.map +1 -1
  59. package/build/date-time/time/time-input/index.js +17 -19
  60. package/build/date-time/time/time-input/index.js.map +1 -1
  61. package/build/dimension-control/index.js +6 -1
  62. package/build/dimension-control/index.js.map +1 -1
  63. package/build/draggable/index.js +4 -4
  64. package/build/draggable/index.js.map +1 -1
  65. package/build/dropdown-menu-v2/checkbox-item.js +69 -0
  66. package/build/dropdown-menu-v2/checkbox-item.js.map +1 -0
  67. package/build/dropdown-menu-v2/context.js +17 -0
  68. package/build/dropdown-menu-v2/context.js.map +1 -0
  69. package/build/dropdown-menu-v2/group-label.js +40 -0
  70. package/build/dropdown-menu-v2/group-label.js.map +1 -0
  71. package/build/dropdown-menu-v2/group.js +29 -0
  72. package/build/dropdown-menu-v2/group.js.map +1 -0
  73. package/build/dropdown-menu-v2/index.js +58 -146
  74. package/build/dropdown-menu-v2/index.js.map +1 -1
  75. package/build/dropdown-menu-v2/item-help-text.js +27 -0
  76. package/build/dropdown-menu-v2/item-help-text.js.map +1 -0
  77. package/build/dropdown-menu-v2/item-label.js +27 -0
  78. package/build/dropdown-menu-v2/item-label.js.map +1 -0
  79. package/build/dropdown-menu-v2/item.js +53 -0
  80. package/build/dropdown-menu-v2/item.js.map +1 -0
  81. package/build/dropdown-menu-v2/radio-item.js +79 -0
  82. package/build/dropdown-menu-v2/radio-item.js.map +1 -0
  83. package/build/dropdown-menu-v2/separator.js +30 -0
  84. package/build/dropdown-menu-v2/separator.js.map +1 -0
  85. package/build/dropdown-menu-v2/styles.js +54 -78
  86. package/build/dropdown-menu-v2/styles.js.map +1 -1
  87. package/build/dropdown-menu-v2/types.js.map +1 -1
  88. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js +27 -0
  89. package/build/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  90. package/build/focal-point-picker/styles/focal-point-style.js +7 -2
  91. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  92. package/build/form-token-field/types.js.map +1 -1
  93. package/build/index.js +6 -0
  94. package/build/index.js.map +1 -1
  95. package/build/input-control/index.js +2 -2
  96. package/build/input-control/index.js.map +1 -1
  97. package/build/input-control/input-base.js +5 -10
  98. package/build/input-control/input-base.js.map +1 -1
  99. package/build/input-control/input-prefix-wrapper.js +3 -3
  100. package/build/input-control/input-prefix-wrapper.js.map +1 -1
  101. package/build/input-control/input-suffix-wrapper.js +2 -3
  102. package/build/input-control/input-suffix-wrapper.js.map +1 -1
  103. package/build/input-control/reducer/reducer.js +8 -8
  104. package/build/input-control/reducer/reducer.js.map +1 -1
  105. package/build/input-control/styles/input-control-styles.js +75 -45
  106. package/build/input-control/styles/input-control-styles.js.map +1 -1
  107. package/build/input-control/types.js.map +1 -1
  108. package/build/input-control/utils.js +3 -3
  109. package/build/input-control/utils.js.map +1 -1
  110. package/build/item-group/styles.js +10 -10
  111. package/build/item-group/styles.js.map +1 -1
  112. package/build/modal/index.js +5 -5
  113. package/build/modal/index.js.map +1 -1
  114. package/build/navigation/index.js +4 -4
  115. package/build/navigation/index.js.map +1 -1
  116. package/build/navigation/styles/navigation-styles.js +13 -13
  117. package/build/navigation/styles/navigation-styles.js.map +1 -1
  118. package/build/navigator/index.js +12 -13
  119. package/build/navigator/index.js.map +1 -1
  120. package/build/navigator/navigator-back-button/hook.js +2 -2
  121. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  122. package/build/navigator/navigator-button/hook.js +2 -2
  123. package/build/navigator/navigator-button/hook.js.map +1 -1
  124. package/build/navigator/navigator-provider/component.js +99 -67
  125. package/build/navigator/navigator-provider/component.js.map +1 -1
  126. package/build/navigator/navigator-to-parent-button/component.js +2 -2
  127. package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
  128. package/build/navigator/types.js.map +1 -1
  129. package/build/navigator/use-navigator.js +1 -2
  130. package/build/navigator/use-navigator.js.map +1 -1
  131. package/build/palette-edit/index.js +2 -2
  132. package/build/palette-edit/index.js.map +1 -1
  133. package/build/private-apis.js +5 -9
  134. package/build/private-apis.js.map +1 -1
  135. package/build/range-control/styles/range-control-styles.js +30 -30
  136. package/build/range-control/styles/range-control-styles.js.map +1 -1
  137. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  138. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  139. package/build/select-control/styles/select-control-styles.js +12 -12
  140. package/build/select-control/styles/select-control-styles.js.map +1 -1
  141. package/build/slot-fill/bubbles-virtually/fill.js +4 -4
  142. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  143. package/build/snackbar/index.js +4 -4
  144. package/build/snackbar/index.js.map +1 -1
  145. package/build/tabs/index.js +4 -4
  146. package/build/tabs/index.js.map +1 -1
  147. package/build/tabs/styles.js +3 -3
  148. package/build/tabs/styles.js.map +1 -1
  149. package/build/toggle-group-control/toggle-group-control/utils.js +6 -6
  150. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  151. package/build/tools-panel/tools-panel/hook.js +6 -6
  152. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  153. package/build/unit-control/styles/unit-control-styles.js +7 -7
  154. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  155. package/build/utils/config-values.js +6 -4
  156. package/build/utils/config-values.js.map +1 -1
  157. package/build/utils/hooks/use-update-effect.js +4 -4
  158. package/build/utils/hooks/use-update-effect.js.map +1 -1
  159. package/build-module/alignment-matrix-control/cell.js +2 -5
  160. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  161. package/build-module/alignment-matrix-control/icon.js +31 -19
  162. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  163. package/build-module/alignment-matrix-control/index.js +55 -50
  164. package/build-module/alignment-matrix-control/index.js.map +1 -1
  165. package/build-module/alignment-matrix-control/styles.js +70 -0
  166. package/build-module/alignment-matrix-control/styles.js.map +1 -0
  167. package/build-module/alignment-matrix-control/types.js.map +1 -1
  168. package/build-module/angle-picker-control/angle-circle.js +9 -9
  169. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  170. package/build-module/border-control/border-control/component.js +18 -13
  171. package/build-module/border-control/border-control/component.js.map +1 -1
  172. package/build-module/circular-option-picker/circular-option-picker-option.js +16 -10
  173. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  174. package/build-module/circular-option-picker/circular-option-picker.js +16 -13
  175. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  176. package/build-module/circular-option-picker/types.js.map +1 -1
  177. package/build-module/clipboard-button/index.js +6 -6
  178. package/build-module/clipboard-button/index.js.map +1 -1
  179. package/build-module/color-palette/utils.js +1 -2
  180. package/build-module/color-palette/utils.js.map +1 -1
  181. package/build-module/color-picker/color-copy-button.js +8 -8
  182. package/build-module/color-picker/color-copy-button.js.map +1 -1
  183. package/build-module/color-picker/hex-input.js +7 -8
  184. package/build-module/color-picker/hex-input.js.map +1 -1
  185. package/build-module/color-picker/input-with-slider.js +7 -8
  186. package/build-module/color-picker/input-with-slider.js.map +1 -1
  187. package/build-module/color-picker/styles.js +8 -8
  188. package/build-module/color-picker/styles.js.map +1 -1
  189. package/build-module/combobox-control/types.js.map +1 -1
  190. package/build-module/composite/group-label.js +25 -0
  191. package/build-module/composite/group-label.js.map +1 -0
  192. package/build-module/composite/group.js +25 -0
  193. package/build-module/composite/group.js.map +1 -0
  194. package/build-module/composite/hover.js +25 -0
  195. package/build-module/composite/hover.js.map +1 -0
  196. package/build-module/composite/index.js +51 -96
  197. package/build-module/composite/index.js.map +1 -1
  198. package/build-module/composite/item.js +25 -0
  199. package/build-module/composite/item.js.map +1 -0
  200. package/build-module/composite/legacy/index.js +2 -1
  201. package/build-module/composite/legacy/index.js.map +1 -1
  202. package/build-module/composite/row.js +25 -0
  203. package/build-module/composite/row.js.map +1 -0
  204. package/build-module/composite/store.js +46 -0
  205. package/build-module/composite/store.js.map +1 -0
  206. package/build-module/composite/typeahead.js +25 -0
  207. package/build-module/composite/typeahead.js.map +1 -0
  208. package/build-module/composite/types.js.map +1 -1
  209. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +8 -8
  210. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  211. package/build-module/custom-select-control-v2/styles.js +12 -14
  212. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  213. package/build-module/date-time/date/styles.js +8 -8
  214. package/build-module/date-time/date/styles.js.map +1 -1
  215. package/build-module/date-time/time/time-input/index.js +17 -19
  216. package/build-module/date-time/time/time-input/index.js.map +1 -1
  217. package/build-module/dimension-control/index.js +6 -1
  218. package/build-module/dimension-control/index.js.map +1 -1
  219. package/build-module/draggable/index.js +4 -4
  220. package/build-module/draggable/index.js.map +1 -1
  221. package/build-module/dropdown-menu-v2/checkbox-item.js +62 -0
  222. package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -0
  223. package/build-module/dropdown-menu-v2/context.js +11 -0
  224. package/build-module/dropdown-menu-v2/context.js.map +1 -0
  225. package/build-module/dropdown-menu-v2/group-label.js +32 -0
  226. package/build-module/dropdown-menu-v2/group-label.js.map +1 -0
  227. package/build-module/dropdown-menu-v2/group.js +21 -0
  228. package/build-module/dropdown-menu-v2/group.js.map +1 -0
  229. package/build-module/dropdown-menu-v2/index.js +57 -144
  230. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  231. package/build-module/dropdown-menu-v2/item-help-text.js +19 -0
  232. package/build-module/dropdown-menu-v2/item-help-text.js.map +1 -0
  233. package/build-module/dropdown-menu-v2/item-label.js +19 -0
  234. package/build-module/dropdown-menu-v2/item-label.js.map +1 -0
  235. package/build-module/dropdown-menu-v2/item.js +46 -0
  236. package/build-module/dropdown-menu-v2/item.js.map +1 -0
  237. package/build-module/dropdown-menu-v2/radio-item.js +72 -0
  238. package/build-module/dropdown-menu-v2/radio-item.js.map +1 -0
  239. package/build-module/dropdown-menu-v2/separator.js +22 -0
  240. package/build-module/dropdown-menu-v2/separator.js.map +1 -0
  241. package/build-module/dropdown-menu-v2/styles.js +54 -78
  242. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  243. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  244. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js +20 -0
  245. package/build-module/dropdown-menu-v2/use-temporary-focus-visible-fix.js.map +1 -0
  246. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -2
  247. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  248. package/build-module/form-token-field/types.js.map +1 -1
  249. package/build-module/index.js +2 -1
  250. package/build-module/index.js.map +1 -1
  251. package/build-module/input-control/index.js +2 -2
  252. package/build-module/input-control/index.js.map +1 -1
  253. package/build-module/input-control/input-base.js +6 -11
  254. package/build-module/input-control/input-base.js.map +1 -1
  255. package/build-module/input-control/input-prefix-wrapper.js +4 -3
  256. package/build-module/input-control/input-prefix-wrapper.js.map +1 -1
  257. package/build-module/input-control/input-suffix-wrapper.js +3 -3
  258. package/build-module/input-control/input-suffix-wrapper.js.map +1 -1
  259. package/build-module/input-control/reducer/reducer.js +8 -8
  260. package/build-module/input-control/reducer/reducer.js.map +1 -1
  261. package/build-module/input-control/styles/input-control-styles.js +74 -44
  262. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  263. package/build-module/input-control/types.js.map +1 -1
  264. package/build-module/input-control/utils.js +3 -3
  265. package/build-module/input-control/utils.js.map +1 -1
  266. package/build-module/item-group/styles.js +10 -10
  267. package/build-module/item-group/styles.js.map +1 -1
  268. package/build-module/modal/index.js +5 -5
  269. package/build-module/modal/index.js.map +1 -1
  270. package/build-module/navigation/index.js +4 -4
  271. package/build-module/navigation/index.js.map +1 -1
  272. package/build-module/navigation/styles/navigation-styles.js +14 -14
  273. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  274. package/build-module/navigator/index.js +6 -6
  275. package/build-module/navigator/index.js.map +1 -1
  276. package/build-module/navigator/navigator-back-button/hook.js +1 -1
  277. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  278. package/build-module/navigator/navigator-button/hook.js +1 -1
  279. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  280. package/build-module/navigator/navigator-provider/component.js +99 -67
  281. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  282. package/build-module/navigator/navigator-to-parent-button/component.js +1 -1
  283. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
  284. package/build-module/navigator/types.js.map +1 -1
  285. package/build-module/navigator/use-navigator.js +1 -2
  286. package/build-module/navigator/use-navigator.js.map +1 -1
  287. package/build-module/palette-edit/index.js +2 -2
  288. package/build-module/palette-edit/index.js.map +1 -1
  289. package/build-module/private-apis.js +5 -9
  290. package/build-module/private-apis.js.map +1 -1
  291. package/build-module/range-control/styles/range-control-styles.js +31 -31
  292. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  293. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +5 -5
  294. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  295. package/build-module/select-control/styles/select-control-styles.js +13 -13
  296. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  297. package/build-module/slot-fill/bubbles-virtually/fill.js +4 -4
  298. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  299. package/build-module/snackbar/index.js +4 -4
  300. package/build-module/snackbar/index.js.map +1 -1
  301. package/build-module/tabs/index.js +4 -4
  302. package/build-module/tabs/index.js.map +1 -1
  303. package/build-module/tabs/styles.js +4 -4
  304. package/build-module/tabs/styles.js.map +1 -1
  305. package/build-module/toggle-group-control/toggle-group-control/utils.js +6 -6
  306. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  307. package/build-module/tools-panel/tools-panel/hook.js +6 -6
  308. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  309. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  310. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  311. package/build-module/utils/config-values.js +6 -4
  312. package/build-module/utils/config-values.js.map +1 -1
  313. package/build-module/utils/hooks/use-update-effect.js +4 -4
  314. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  315. package/build-style/style-rtl.css +11 -23
  316. package/build-style/style.css +11 -23
  317. package/build-types/alignment-matrix-control/cell.d.ts +1 -1
  318. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  319. package/build-types/alignment-matrix-control/icon.d.ts +1 -1
  320. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -1
  321. package/build-types/alignment-matrix-control/index.d.ts +16 -6
  322. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  323. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  324. package/build-types/alignment-matrix-control/{styles/alignment-matrix-control-styles.d.ts → styles.d.ts} +9 -10
  325. package/build-types/alignment-matrix-control/styles.d.ts.map +1 -0
  326. package/build-types/alignment-matrix-control/types.d.ts +12 -1
  327. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  328. package/build-types/angle-picker-control/angle-circle.d.ts.map +1 -1
  329. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  330. package/build-types/box-control/stories/index.story.d.ts.map +1 -1
  331. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  332. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  333. package/build-types/circular-option-picker/types.d.ts +2 -2
  334. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  335. package/build-types/color-palette/utils.d.ts.map +1 -1
  336. package/build-types/color-picker/color-copy-button.d.ts.map +1 -1
  337. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  338. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  339. package/build-types/color-picker/styles.d.ts.map +1 -1
  340. package/build-types/combobox-control/types.d.ts +1 -0
  341. package/build-types/combobox-control/types.d.ts.map +1 -1
  342. package/build-types/composite/group-label.d.ts +3 -0
  343. package/build-types/composite/group-label.d.ts.map +1 -0
  344. package/build-types/composite/group.d.ts +3 -0
  345. package/build-types/composite/group.d.ts.map +1 -0
  346. package/build-types/composite/hover.d.ts +3 -0
  347. package/build-types/composite/hover.d.ts.map +1 -0
  348. package/build-types/composite/index.d.ts +30 -26
  349. package/build-types/composite/index.d.ts.map +1 -1
  350. package/build-types/composite/item.d.ts +3 -0
  351. package/build-types/composite/item.d.ts.map +1 -0
  352. package/build-types/composite/legacy/index.d.ts +1 -4
  353. package/build-types/composite/legacy/index.d.ts.map +1 -1
  354. package/build-types/composite/row.d.ts +3 -0
  355. package/build-types/composite/row.d.ts.map +1 -0
  356. package/build-types/composite/store.d.ts +25 -0
  357. package/build-types/composite/store.d.ts.map +1 -0
  358. package/build-types/composite/stories/index.story.d.ts +1 -0
  359. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  360. package/build-types/composite/typeahead.d.ts +3 -0
  361. package/build-types/composite/typeahead.d.ts.map +1 -0
  362. package/build-types/composite/types.d.ts +2 -2
  363. package/build-types/composite/types.d.ts.map +1 -1
  364. package/build-types/date-time/time/time-input/index.d.ts.map +1 -1
  365. package/build-types/dimension-control/index.d.ts +1 -1
  366. package/build-types/dimension-control/index.d.ts.map +1 -1
  367. package/build-types/dimension-control/stories/index.story.d.ts +5 -0
  368. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  369. package/build-types/dropdown-menu-v2/checkbox-item.d.ts +3 -0
  370. package/build-types/dropdown-menu-v2/checkbox-item.d.ts.map +1 -0
  371. package/build-types/dropdown-menu-v2/context.d.ts +6 -0
  372. package/build-types/dropdown-menu-v2/context.d.ts.map +1 -0
  373. package/build-types/dropdown-menu-v2/group-label.d.ts +3 -0
  374. package/build-types/dropdown-menu-v2/group-label.d.ts.map +1 -0
  375. package/build-types/dropdown-menu-v2/group.d.ts +3 -0
  376. package/build-types/dropdown-menu-v2/group.d.ts.map +1 -0
  377. package/build-types/dropdown-menu-v2/index.d.ts +39 -18
  378. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  379. package/build-types/dropdown-menu-v2/item-help-text.d.ts +6 -0
  380. package/build-types/dropdown-menu-v2/item-help-text.d.ts.map +1 -0
  381. package/build-types/dropdown-menu-v2/item-label.d.ts +6 -0
  382. package/build-types/dropdown-menu-v2/item-label.d.ts.map +1 -0
  383. package/build-types/dropdown-menu-v2/item.d.ts +3 -0
  384. package/build-types/dropdown-menu-v2/item.d.ts.map +1 -0
  385. package/build-types/dropdown-menu-v2/radio-item.d.ts +3 -0
  386. package/build-types/dropdown-menu-v2/radio-item.d.ts.map +1 -0
  387. package/build-types/dropdown-menu-v2/separator.d.ts +3 -0
  388. package/build-types/dropdown-menu-v2/separator.d.ts.map +1 -0
  389. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +10 -10
  390. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  391. package/build-types/dropdown-menu-v2/styles.d.ts +14 -6
  392. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  393. package/build-types/dropdown-menu-v2/types.d.ts +6 -0
  394. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  395. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts +8 -0
  396. package/build-types/dropdown-menu-v2/use-temporary-focus-visible-fix.d.ts.map +1 -0
  397. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  398. package/build-types/form-token-field/types.d.ts +1 -0
  399. package/build-types/form-token-field/types.d.ts.map +1 -1
  400. package/build-types/index.d.ts +3 -1
  401. package/build-types/index.d.ts.map +1 -1
  402. package/build-types/input-control/input-base.d.ts.map +1 -1
  403. package/build-types/input-control/input-prefix-wrapper.d.ts +2 -2
  404. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -1
  405. package/build-types/input-control/input-suffix-wrapper.d.ts +2 -2
  406. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -1
  407. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  408. package/build-types/input-control/stories/index.story.d.ts +9 -0
  409. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  410. package/build-types/input-control/styles/input-control-styles.d.ts +15 -9
  411. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  412. package/build-types/input-control/types.d.ts +23 -6
  413. package/build-types/input-control/types.d.ts.map +1 -1
  414. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -1
  415. package/build-types/navigator/index.d.ts +6 -6
  416. package/build-types/navigator/index.d.ts.map +1 -1
  417. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  418. package/build-types/navigator/stories/index.story.d.ts +1 -1
  419. package/build-types/navigator/stories/index.story.d.ts.map +1 -1
  420. package/build-types/navigator/types.d.ts +3 -1
  421. package/build-types/navigator/types.d.ts.map +1 -1
  422. package/build-types/navigator/use-navigator.d.ts +1 -2
  423. package/build-types/navigator/use-navigator.d.ts.map +1 -1
  424. package/build-types/private-apis.d.ts.map +1 -1
  425. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  426. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  427. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  428. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  429. package/build-types/tabs/index.d.ts.map +1 -1
  430. package/build-types/tabs/styles.d.ts.map +1 -1
  431. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  432. package/build-types/utils/config-values.d.ts +3 -3
  433. package/package.json +19 -19
  434. package/src/alignment-matrix-control/README.md +1 -5
  435. package/src/alignment-matrix-control/cell.tsx +3 -9
  436. package/src/alignment-matrix-control/icon.tsx +48 -30
  437. package/src/alignment-matrix-control/index.tsx +60 -50
  438. package/src/alignment-matrix-control/stories/index.story.tsx +3 -12
  439. package/src/alignment-matrix-control/styles.ts +113 -0
  440. package/src/alignment-matrix-control/types.ts +12 -1
  441. package/src/angle-picker-control/angle-circle.tsx +11 -9
  442. package/src/border-control/border-control/component.tsx +23 -16
  443. package/src/circular-option-picker/circular-option-picker-option.tsx +16 -19
  444. package/src/circular-option-picker/circular-option-picker.tsx +26 -12
  445. package/src/circular-option-picker/types.ts +2 -2
  446. package/src/clipboard-button/index.tsx +6 -6
  447. package/src/color-palette/test/utils.ts +21 -2
  448. package/src/color-palette/utils.ts +1 -3
  449. package/src/color-picker/color-copy-button.tsx +10 -8
  450. package/src/color-picker/hex-input.tsx +6 -10
  451. package/src/color-picker/input-with-slider.tsx +6 -10
  452. package/src/color-picker/styles.ts +1 -1
  453. package/src/combobox-control/types.ts +1 -0
  454. package/src/composite/group-label.tsx +30 -0
  455. package/src/composite/group.tsx +30 -0
  456. package/src/composite/hover.tsx +30 -0
  457. package/src/composite/index.tsx +61 -145
  458. package/src/composite/item.tsx +30 -0
  459. package/src/composite/legacy/index.tsx +2 -1
  460. package/src/composite/row.tsx +30 -0
  461. package/src/composite/store.ts +46 -0
  462. package/src/composite/stories/index.story.tsx +138 -265
  463. package/src/composite/typeahead.tsx +30 -0
  464. package/src/composite/types.ts +2 -2
  465. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +10 -10
  466. package/src/custom-gradient-picker/style.scss +2 -21
  467. package/src/custom-select-control-v2/styles.ts +4 -4
  468. package/src/date-time/date/styles.ts +2 -2
  469. package/src/date-time/time/test/index.tsx +3 -6
  470. package/src/date-time/time/time-input/index.tsx +25 -25
  471. package/src/date-time/time/time-input/test/index.tsx +6 -7
  472. package/src/dimension-control/README.md +4 -0
  473. package/src/dimension-control/index.tsx +7 -1
  474. package/src/dimension-control/stories/index.story.tsx +7 -2
  475. package/src/dimension-control/test/__snapshots__/index.test.js.snap +16 -16
  476. package/src/dimension-control/test/index.test.js +1 -0
  477. package/src/draggable/index.tsx +4 -4
  478. package/src/dropdown-menu-v2/README.md +73 -60
  479. package/src/dropdown-menu-v2/checkbox-item.tsx +63 -0
  480. package/src/dropdown-menu-v2/context.tsx +13 -0
  481. package/src/dropdown-menu-v2/group-label.tsx +37 -0
  482. package/src/dropdown-menu-v2/group.tsx +26 -0
  483. package/src/dropdown-menu-v2/index.tsx +57 -197
  484. package/src/dropdown-menu-v2/item-help-text.tsx +23 -0
  485. package/src/dropdown-menu-v2/item-label.tsx +23 -0
  486. package/src/dropdown-menu-v2/item.tsx +50 -0
  487. package/src/dropdown-menu-v2/radio-item.tsx +70 -0
  488. package/src/dropdown-menu-v2/separator.tsx +27 -0
  489. package/src/dropdown-menu-v2/stories/index.story.tsx +295 -262
  490. package/src/dropdown-menu-v2/styles.ts +102 -66
  491. package/src/dropdown-menu-v2/test/index.tsx +159 -132
  492. package/src/dropdown-menu-v2/types.ts +7 -0
  493. package/src/dropdown-menu-v2/use-temporary-focus-visible-fix.ts +22 -0
  494. package/src/focal-point-picker/styles/focal-point-style.ts +6 -1
  495. package/src/form-toggle/style.scss +1 -1
  496. package/src/form-token-field/style.scss +2 -3
  497. package/src/form-token-field/types.ts +1 -0
  498. package/src/index.ts +5 -1
  499. package/src/input-control/index.tsx +2 -2
  500. package/src/input-control/input-base.tsx +4 -14
  501. package/src/input-control/input-prefix-wrapper.tsx +8 -4
  502. package/src/input-control/input-suffix-wrapper.tsx +4 -6
  503. package/src/input-control/reducer/reducer.ts +13 -10
  504. package/src/input-control/stories/index.story.tsx +31 -12
  505. package/src/input-control/styles/input-control-styles.tsx +42 -11
  506. package/src/input-control/types.ts +23 -7
  507. package/src/input-control/utils.ts +3 -3
  508. package/src/item-group/styles.ts +3 -3
  509. package/src/item-group/test/__snapshots__/index.js.snap +3 -3
  510. package/src/modal/index.tsx +5 -5
  511. package/src/modal/style.scss +5 -4
  512. package/src/navigation/index.tsx +4 -4
  513. package/src/navigation/styles/navigation-styles.tsx +3 -3
  514. package/src/navigator/index.ts +6 -6
  515. package/src/navigator/navigator-back-button/hook.ts +1 -1
  516. package/src/navigator/navigator-button/hook.ts +1 -1
  517. package/src/navigator/navigator-provider/README.md +2 -3
  518. package/src/navigator/navigator-provider/component.tsx +97 -82
  519. package/src/navigator/navigator-to-parent-button/component.tsx +1 -1
  520. package/src/navigator/stories/index.story.tsx +82 -253
  521. package/src/navigator/types.ts +3 -1
  522. package/src/navigator/use-navigator.ts +1 -3
  523. package/src/palette-edit/index.tsx +2 -2
  524. package/src/private-apis.ts +5 -18
  525. package/src/range-control/styles/range-control-styles.ts +7 -7
  526. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.ts +2 -2
  527. package/src/resizable-box/style.scss +2 -2
  528. package/src/select-control/styles/select-control-styles.ts +5 -5
  529. package/src/slot-fill/bubbles-virtually/fill.tsx +4 -4
  530. package/src/snackbar/index.tsx +4 -4
  531. package/src/tab-panel/style.scss +0 -1
  532. package/src/tabs/index.tsx +8 -4
  533. package/src/tabs/styles.ts +2 -3
  534. package/src/text-control/style.scss +3 -2
  535. package/src/toggle-group-control/toggle-group-control/utils.ts +7 -7
  536. package/src/tools-panel/tools-panel/hook.ts +6 -6
  537. package/src/unit-control/styles/unit-control-styles.ts +2 -1
  538. package/src/utils/config-values.js +6 -4
  539. package/src/utils/hooks/use-update-effect.js +4 -4
  540. package/tsconfig.tsbuildinfo +1 -1
  541. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -66
  542. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  543. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -77
  544. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  545. package/build/navigator/navigator-back-button/index.js +0 -14
  546. package/build/navigator/navigator-back-button/index.js.map +0 -1
  547. package/build/navigator/navigator-button/index.js +0 -14
  548. package/build/navigator/navigator-button/index.js.map +0 -1
  549. package/build/navigator/navigator-provider/index.js +0 -14
  550. package/build/navigator/navigator-provider/index.js.map +0 -1
  551. package/build/navigator/navigator-screen/index.js +0 -14
  552. package/build/navigator/navigator-screen/index.js.map +0 -1
  553. package/build/navigator/navigator-to-parent-button/index.js +0 -14
  554. package/build/navigator/navigator-to-parent-button/index.js.map +0 -1
  555. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +0 -63
  556. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +0 -1
  557. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +0 -72
  558. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +0 -1
  559. package/build-module/navigator/navigator-back-button/index.js +0 -2
  560. package/build-module/navigator/navigator-back-button/index.js.map +0 -1
  561. package/build-module/navigator/navigator-button/index.js +0 -2
  562. package/build-module/navigator/navigator-button/index.js.map +0 -1
  563. package/build-module/navigator/navigator-provider/index.js +0 -2
  564. package/build-module/navigator/navigator-provider/index.js.map +0 -1
  565. package/build-module/navigator/navigator-screen/index.js +0 -2
  566. package/build-module/navigator/navigator-screen/index.js.map +0 -1
  567. package/build-module/navigator/navigator-to-parent-button/index.js +0 -2
  568. package/build-module/navigator/navigator-to-parent-button/index.js.map +0 -1
  569. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +0 -18
  570. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +0 -1
  571. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +0 -1
  572. package/build-types/navigator/navigator-back-button/index.d.ts +0 -2
  573. package/build-types/navigator/navigator-back-button/index.d.ts.map +0 -1
  574. package/build-types/navigator/navigator-button/index.d.ts +0 -2
  575. package/build-types/navigator/navigator-button/index.d.ts.map +0 -1
  576. package/build-types/navigator/navigator-provider/index.d.ts +0 -2
  577. package/build-types/navigator/navigator-provider/index.d.ts.map +0 -1
  578. package/build-types/navigator/navigator-screen/index.d.ts +0 -2
  579. package/build-types/navigator/navigator-screen/index.d.ts.map +0 -1
  580. package/build-types/navigator/navigator-to-parent-button/index.d.ts +0 -2
  581. package/build-types/navigator/navigator-to-parent-button/index.d.ts.map +0 -1
  582. package/src/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.ts +0 -77
  583. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +0 -102
  584. package/src/navigator/navigator-back-button/index.ts +0 -1
  585. package/src/navigator/navigator-button/index.ts +0 -1
  586. package/src/navigator/navigator-provider/index.ts +0 -1
  587. package/src/navigator/navigator-screen/index.ts +0 -1
  588. package/src/navigator/navigator-to-parent-button/index.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_compose","_i18n","_icons","_dom","ariaHelper","_interopRequireWildcard","_button","_styleProvider","_withIgnoreImeEvents","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ModalContext","createContext","Set","bodyOpenClasses","Map","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","size","headerActions","__experimentalHideHeader","ref","useRef","instanceId","useInstanceId","Modal","headingId","focusOnMountRef","useFocusOnMount","constrainedTabbingRef","useConstrainedTabbing","focusReturnRef","useFocusReturn","contentRef","childrenContainerRef","hasScrolledContent","setHasScrolledContent","useState","hasScrollableContent","setHasScrollableContent","sizeClass","isContentScrollable","useCallback","current","closestScrollContainer","getScrollContainer","useEffect","modalize","unmodalize","refOnRequestClose","dismissers","useContext","nestedDismissers","add","dismisser","delete","_bodyOpenClasses$get","theClass","oneMore","document","body","classList","oneLess","remove","useLayoutEffect","window","ResizeObserver","resizeObserver","observe","disconnect","handleEscapeKeyDown","event","code","key","defaultPrevented","preventDefault","onContentContainerScroll","_e$currentTarget$scro","scrollY","currentTarget","scrollTop","pressTarget","overlayPressHandlers","onPointerDown","target","onPointerUp","button","isSameTarget","modal","jsx","useMergeRefs","clsx","withIgnoreIMEEvents","tabIndex","jsxs","onScroll","__","id","onClick","close","label","createPortal","Provider","value","exports","forwardRef","_default"],"sources":["@wordpress/components/src/modal/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ForwardedRef, KeyboardEvent, RefObject, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n\tuseLayoutEffect,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\nimport { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';\n\n// Used to track and dismiss the prior modal when another opens unless nested.\ntype Dismissers = Set<\n\tRefObject< ModalProps[ 'onRequestClose' ] | undefined >\n>;\nconst ModalContext = createContext< Dismissers >( new Set() );\n\n// Used to track body class names applied while modals are open.\nconst bodyOpenClasses = new Map< string, number >();\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\tsize,\n\t\theaderActions = null,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\n\t// The focus hook does not support 'firstContentElement' but this is a valid\n\t// value for the Modal's focusOnMount prop. The following code ensures the focus\n\t// hook will focus the first focusable node within the element to which it is applied.\n\t// When `firstContentElement` is passed as the value of the focusOnMount prop,\n\t// the focus hook is applied to the Modal's content element.\n\t// Otherwise, the focus hook is applied to the Modal's ref. This ensures that the\n\t// focus hook will focus the first element in the Modal's **content** when\n\t// `firstContentElement` is passed.\n\tconst focusOnMountRef = useFocusOnMount(\n\t\tfocusOnMount === 'firstContentElement' ? 'firstElement' : focusOnMount\n\t);\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst contentRef = useRef< HTMLDivElement >( null );\n\tconst childrenContainerRef = useRef< HTMLDivElement >( null );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\tconst [ hasScrollableContent, setHasScrollableContent ] = useState( false );\n\n\tlet sizeClass;\n\tif ( isFullScreen || size === 'fill' ) {\n\t\tsizeClass = 'is-full-screen';\n\t} else if ( size ) {\n\t\tsizeClass = `has-size-${ size }`;\n\t}\n\n\t// Determines whether the Modal content is scrollable and updates the state.\n\tconst isContentScrollable = useCallback( () => {\n\t\tif ( ! contentRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst closestScrollContainer = getScrollContainer( contentRef.current );\n\n\t\tif ( contentRef.current === closestScrollContainer ) {\n\t\t\tsetHasScrollableContent( true );\n\t\t} else {\n\t\t\tsetHasScrollableContent( false );\n\t\t}\n\t}, [ contentRef ] );\n\n\t// Accessibly isolates/unisolates the modal.\n\tuseEffect( () => {\n\t\tariaHelper.modalize( ref.current );\n\t\treturn () => ariaHelper.unmodalize();\n\t}, [] );\n\n\t// Keeps a fresh ref for the subsequent effect.\n\tconst refOnRequestClose = useRef< ModalProps[ 'onRequestClose' ] >();\n\tuseEffect( () => {\n\t\trefOnRequestClose.current = onRequestClose;\n\t}, [ onRequestClose ] );\n\n\t// The list of `onRequestClose` callbacks of open (non-nested) Modals. Only\n\t// one should remain open at a time and the list enables closing prior ones.\n\tconst dismissers = useContext( ModalContext );\n\t// Used for the tracking and dismissing any nested modals.\n\tconst [ nestedDismissers ] = useState< Dismissers >( () => new Set() );\n\n\t// Updates the stack tracking open modals at this level and calls\n\t// onRequestClose for any prior and/or nested modals as applicable.\n\tuseEffect( () => {\n\t\t// add this modal instance to the dismissers set\n\t\tdismissers.add( refOnRequestClose );\n\t\t// request that all the other modals close themselves\n\t\tfor ( const dismisser of dismissers ) {\n\t\t\tif ( dismisser !== refOnRequestClose ) {\n\t\t\t\tdismisser.current?.();\n\t\t\t}\n\t\t}\n\t\treturn () => {\n\t\t\t// request that all the nested modals close themselves\n\t\t\tfor ( const dismisser of nestedDismissers ) {\n\t\t\t\tdismisser.current?.();\n\t\t\t}\n\t\t\t// remove this modal instance from the dismissers set\n\t\t\tdismissers.delete( refOnRequestClose );\n\t\t};\n\t}, [ dismissers, nestedDismissers ] );\n\n\t// Adds/removes the value of bodyOpenClassName to body element.\n\tuseEffect( () => {\n\t\tconst theClass = bodyOpenClassName;\n\t\tconst oneMore = 1 + ( bodyOpenClasses.get( theClass ) ?? 0 );\n\t\tbodyOpenClasses.set( theClass, oneMore );\n\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\treturn () => {\n\t\t\tconst oneLess = bodyOpenClasses.get( theClass )! - 1;\n\t\t\tif ( oneLess === 0 ) {\n\t\t\t\tdocument.body.classList.remove( theClass );\n\t\t\t\tbodyOpenClasses.delete( theClass );\n\t\t\t} else {\n\t\t\t\tbodyOpenClasses.set( theClass, oneLess );\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\t// Calls the isContentScrollable callback when the Modal children container resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( ! window.ResizeObserver || ! childrenContainerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resizeObserver = new ResizeObserver( isContentScrollable );\n\t\tresizeObserver.observe( childrenContainerRef.current );\n\n\t\tisContentScrollable();\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [ isContentScrollable, childrenContainerRef ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\t( event.code === 'Escape' || event.key === 'Escape' ) &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\tlet pressTarget: EventTarget | null = null;\n\tconst overlayPressHandlers: {\n\t\tonPointerDown: React.PointerEventHandler< HTMLDivElement >;\n\t\tonPointerUp: React.PointerEventHandler< HTMLDivElement >;\n\t} = {\n\t\tonPointerDown: ( event ) => {\n\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\tpressTarget = event.target;\n\t\t\t\t// Avoids focus changing so that focus return works as expected.\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t// Closes the modal with two exceptions. 1. Opening the context menu on\n\t\t// the overlay. 2. Pressing on the overlay then dragging the pointer\n\t\t// over the modal and releasing. Due to the modal being a child of the\n\t\t// overlay, such a gesture is a `click` on the overlay and cannot be\n\t\t// excepted by a `click` handler. Thus the tactic of handling\n\t\t// `pointerup` and comparing its target to that of the `pointerdown`.\n\t\tonPointerUp: ( { target, button } ) => {\n\t\t\tconst isSameTarget = target === pressTarget;\n\t\t\tpressTarget = null;\n\t\t\tif ( button === 0 && isSameTarget ) {\n\t\t\t\tonRequestClose();\n\t\t\t}\n\t\t},\n\t};\n\n\tconst modal = (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ clsx(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ withIgnoreIMEEvents( handleEscapeKeyDown ) }\n\t\t\t{ ...( shouldCloseOnClickOutside ? overlayPressHandlers : {} ) }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tsizeClass,\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMount !== 'firstContentElement'\n\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'is-scrollable': hasScrollableContent,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t\tref={ contentRef }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\thasScrollableContent\n\t\t\t\t\t\t\t\t? __( 'Scrollable section' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttabIndex={ hasScrollableContent ? 0 : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ headerActions }\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close' )\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</div>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\t\t\tchildrenContainerRef,\n\t\t\t\t\t\t\t\tfocusOnMount === 'firstContentElement'\n\t\t\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t] ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>\n\t);\n\n\treturn createPortal(\n\t\t<ModalContext.Provider value={ nestedDismissers }>\n\t\t\t{ modal }\n\t\t</ModalContext.Provider>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_compose","_i18n","_icons","_dom","ariaHelper","_interopRequireWildcard","_button","_styleProvider","_withIgnoreImeEvents","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ModalContext","createContext","Set","bodyOpenClasses","Map","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","size","headerActions","__experimentalHideHeader","ref","useRef","instanceId","useInstanceId","Modal","headingId","focusOnMountRef","useFocusOnMount","constrainedTabbingRef","useConstrainedTabbing","focusReturnRef","useFocusReturn","contentRef","childrenContainerRef","hasScrolledContent","setHasScrolledContent","useState","hasScrollableContent","setHasScrollableContent","sizeClass","isContentScrollable","useCallback","current","closestScrollContainer","getScrollContainer","useEffect","modalize","unmodalize","onRequestCloseRef","dismissers","useContext","nestedDismissers","add","dismisser","delete","_bodyOpenClasses$get","theClass","oneMore","document","body","classList","oneLess","remove","useLayoutEffect","window","ResizeObserver","resizeObserver","observe","disconnect","handleEscapeKeyDown","event","code","key","defaultPrevented","preventDefault","onContentContainerScroll","_e$currentTarget$scro","scrollY","currentTarget","scrollTop","pressTarget","overlayPressHandlers","onPointerDown","target","onPointerUp","button","isSameTarget","modal","jsx","useMergeRefs","clsx","withIgnoreIMEEvents","tabIndex","jsxs","onScroll","__","id","onClick","close","label","createPortal","Provider","value","exports","forwardRef","_default"],"sources":["@wordpress/components/src/modal/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { ForwardedRef, KeyboardEvent, RefObject, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n\tuseLayoutEffect,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\nimport { withIgnoreIMEEvents } from '../utils/with-ignore-ime-events';\n\n// Used to track and dismiss the prior modal when another opens unless nested.\ntype Dismissers = Set<\n\tRefObject< ModalProps[ 'onRequestClose' ] | undefined >\n>;\nconst ModalContext = createContext< Dismissers >( new Set() );\n\n// Used to track body class names applied while modals are open.\nconst bodyOpenClasses = new Map< string, number >();\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\tsize,\n\t\theaderActions = null,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\n\t// The focus hook does not support 'firstContentElement' but this is a valid\n\t// value for the Modal's focusOnMount prop. The following code ensures the focus\n\t// hook will focus the first focusable node within the element to which it is applied.\n\t// When `firstContentElement` is passed as the value of the focusOnMount prop,\n\t// the focus hook is applied to the Modal's content element.\n\t// Otherwise, the focus hook is applied to the Modal's ref. This ensures that the\n\t// focus hook will focus the first element in the Modal's **content** when\n\t// `firstContentElement` is passed.\n\tconst focusOnMountRef = useFocusOnMount(\n\t\tfocusOnMount === 'firstContentElement' ? 'firstElement' : focusOnMount\n\t);\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst contentRef = useRef< HTMLDivElement >( null );\n\tconst childrenContainerRef = useRef< HTMLDivElement >( null );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\tconst [ hasScrollableContent, setHasScrollableContent ] = useState( false );\n\n\tlet sizeClass;\n\tif ( isFullScreen || size === 'fill' ) {\n\t\tsizeClass = 'is-full-screen';\n\t} else if ( size ) {\n\t\tsizeClass = `has-size-${ size }`;\n\t}\n\n\t// Determines whether the Modal content is scrollable and updates the state.\n\tconst isContentScrollable = useCallback( () => {\n\t\tif ( ! contentRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst closestScrollContainer = getScrollContainer( contentRef.current );\n\n\t\tif ( contentRef.current === closestScrollContainer ) {\n\t\t\tsetHasScrollableContent( true );\n\t\t} else {\n\t\t\tsetHasScrollableContent( false );\n\t\t}\n\t}, [ contentRef ] );\n\n\t// Accessibly isolates/unisolates the modal.\n\tuseEffect( () => {\n\t\tariaHelper.modalize( ref.current );\n\t\treturn () => ariaHelper.unmodalize();\n\t}, [] );\n\n\t// Keeps a fresh ref for the subsequent effect.\n\tconst onRequestCloseRef = useRef< ModalProps[ 'onRequestClose' ] >();\n\tuseEffect( () => {\n\t\tonRequestCloseRef.current = onRequestClose;\n\t}, [ onRequestClose ] );\n\n\t// The list of `onRequestClose` callbacks of open (non-nested) Modals. Only\n\t// one should remain open at a time and the list enables closing prior ones.\n\tconst dismissers = useContext( ModalContext );\n\t// Used for the tracking and dismissing any nested modals.\n\tconst [ nestedDismissers ] = useState< Dismissers >( () => new Set() );\n\n\t// Updates the stack tracking open modals at this level and calls\n\t// onRequestClose for any prior and/or nested modals as applicable.\n\tuseEffect( () => {\n\t\t// add this modal instance to the dismissers set\n\t\tdismissers.add( onRequestCloseRef );\n\t\t// request that all the other modals close themselves\n\t\tfor ( const dismisser of dismissers ) {\n\t\t\tif ( dismisser !== onRequestCloseRef ) {\n\t\t\t\tdismisser.current?.();\n\t\t\t}\n\t\t}\n\t\treturn () => {\n\t\t\t// request that all the nested modals close themselves\n\t\t\tfor ( const dismisser of nestedDismissers ) {\n\t\t\t\tdismisser.current?.();\n\t\t\t}\n\t\t\t// remove this modal instance from the dismissers set\n\t\t\tdismissers.delete( onRequestCloseRef );\n\t\t};\n\t}, [ dismissers, nestedDismissers ] );\n\n\t// Adds/removes the value of bodyOpenClassName to body element.\n\tuseEffect( () => {\n\t\tconst theClass = bodyOpenClassName;\n\t\tconst oneMore = 1 + ( bodyOpenClasses.get( theClass ) ?? 0 );\n\t\tbodyOpenClasses.set( theClass, oneMore );\n\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\treturn () => {\n\t\t\tconst oneLess = bodyOpenClasses.get( theClass )! - 1;\n\t\t\tif ( oneLess === 0 ) {\n\t\t\t\tdocument.body.classList.remove( theClass );\n\t\t\t\tbodyOpenClasses.delete( theClass );\n\t\t\t} else {\n\t\t\t\tbodyOpenClasses.set( theClass, oneLess );\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\t// Calls the isContentScrollable callback when the Modal children container resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( ! window.ResizeObserver || ! childrenContainerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resizeObserver = new ResizeObserver( isContentScrollable );\n\t\tresizeObserver.observe( childrenContainerRef.current );\n\n\t\tisContentScrollable();\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [ isContentScrollable, childrenContainerRef ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\t( event.code === 'Escape' || event.key === 'Escape' ) &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\tlet pressTarget: EventTarget | null = null;\n\tconst overlayPressHandlers: {\n\t\tonPointerDown: React.PointerEventHandler< HTMLDivElement >;\n\t\tonPointerUp: React.PointerEventHandler< HTMLDivElement >;\n\t} = {\n\t\tonPointerDown: ( event ) => {\n\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\tpressTarget = event.target;\n\t\t\t\t// Avoids focus changing so that focus return works as expected.\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t// Closes the modal with two exceptions. 1. Opening the context menu on\n\t\t// the overlay. 2. Pressing on the overlay then dragging the pointer\n\t\t// over the modal and releasing. Due to the modal being a child of the\n\t\t// overlay, such a gesture is a `click` on the overlay and cannot be\n\t\t// excepted by a `click` handler. Thus the tactic of handling\n\t\t// `pointerup` and comparing its target to that of the `pointerdown`.\n\t\tonPointerUp: ( { target, button } ) => {\n\t\t\tconst isSameTarget = target === pressTarget;\n\t\t\tpressTarget = null;\n\t\t\tif ( button === 0 && isSameTarget ) {\n\t\t\t\tonRequestClose();\n\t\t\t}\n\t\t},\n\t};\n\n\tconst modal = (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ clsx(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ withIgnoreIMEEvents( handleEscapeKeyDown ) }\n\t\t\t{ ...( shouldCloseOnClickOutside ? overlayPressHandlers : {} ) }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tsizeClass,\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMount !== 'firstContentElement'\n\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'is-scrollable': hasScrollableContent,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t\tref={ contentRef }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\thasScrollableContent\n\t\t\t\t\t\t\t\t? __( 'Scrollable section' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttabIndex={ hasScrollableContent ? 0 : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ headerActions }\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close' )\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</div>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\t\t\tchildrenContainerRef,\n\t\t\t\t\t\t\t\tfocusOnMount === 'firstContentElement'\n\t\t\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t] ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>\n\t);\n\n\treturn createPortal(\n\t\t<ModalContext.Provider value={ nestedDismissers }>\n\t\t\t{ modal }\n\t\t</ModalContext.Provider>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"],"mappings":"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","ignoreList":[]}
@@ -92,10 +92,10 @@ function Navigation({
92
92
  };
93
93
 
94
94
  // Used to prevent the sliding animation on mount
95
- const isMounted = (0, _element.useRef)(false);
95
+ const isMountedRef = (0, _element.useRef)(false);
96
96
  (0, _element.useEffect)(() => {
97
- if (!isMounted.current) {
98
- isMounted.current = true;
97
+ if (!isMountedRef.current) {
98
+ isMountedRef.current = true;
99
99
  }
100
100
  }, []);
101
101
  (0, _element.useEffect)(() => {
@@ -121,7 +121,7 @@ function Navigation({
121
121
  className: classes,
122
122
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
123
123
  className: animateClassName ? (0, _clsx.default)({
124
- [animateClassName]: isMounted.current && slideOrigin
124
+ [animateClassName]: isMountedRef.current && slideOrigin
125
125
  }) : undefined,
126
126
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.NavigationContext.Provider, {
127
127
  value: context,
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_animate","_constants","_context","_navigationStyles","_useCreateNavigationTree","_jsxRuntime","noop","Navigation","activeItem","activeMenu","ROOT_MENU","children","className","onActivateMenu","menu","setMenu","useState","slideOrigin","setSlideOrigin","navigationTree","useCreateNavigationTree","defaultSlideOrigin","isRTL","setActiveMenu","menuId","slideInOrigin","getMenu","isMounted","useRef","useEffect","current","context","classes","clsx","animateClassName","getAnimateClassName","type","origin","jsx","NavigationUI","undefined","NavigationContext","Provider","value","_default","exports","default"],"sources":["@wordpress/components/src/navigation/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getAnimateClassName } from '../animate';\nimport { ROOT_MENU } from './constants';\nimport { NavigationContext } from './context';\nimport { NavigationUI } from './styles/navigation-styles';\nimport { useCreateNavigationTree } from './use-create-navigation-tree';\n\nimport type {\n\tNavigationProps,\n\tNavigationContext as NavigationContextType,\n} from './types';\n\nconst noop = () => {};\n\n/**\n * Render a navigation list with optional groupings and hierarchy.\n *\n * @deprecated Use `Navigator` instead.\n *\n * ```jsx\n * import {\n * __experimentalNavigation as Navigation,\n * __experimentalNavigationGroup as NavigationGroup,\n * __experimentalNavigationItem as NavigationItem,\n * __experimentalNavigationMenu as NavigationMenu,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <Navigation>\n * <NavigationMenu title=\"Home\">\n * <NavigationGroup title=\"Group 1\">\n * <NavigationItem item=\"item-1\" title=\"Item 1\" />\n * <NavigationItem item=\"item-2\" title=\"Item 2\" />\n * </NavigationGroup>\n * <NavigationGroup title=\"Group 2\">\n * <NavigationItem\n * item=\"item-3\"\n * navigateToMenu=\"category\"\n * title=\"Category\"\n * />\n * </NavigationGroup>\n * </NavigationMenu>\n *\n * <NavigationMenu\n * backButtonLabel=\"Home\"\n * menu=\"category\"\n * parentMenu=\"root\"\n * title=\"Category\"\n * >\n * <NavigationItem badge=\"1\" item=\"child-1\" title=\"Child 1\" />\n * <NavigationItem item=\"child-2\" title=\"Child 2\" />\n * </NavigationMenu>\n * </Navigation>\n * );\n * ```\n */\nexport function Navigation( {\n\tactiveItem,\n\tactiveMenu = ROOT_MENU,\n\tchildren,\n\tclassName,\n\tonActivateMenu = noop,\n}: NavigationProps ) {\n\tconst [ menu, setMenu ] = useState( activeMenu );\n\tconst [ slideOrigin, setSlideOrigin ] = useState< 'left' | 'right' >();\n\tconst navigationTree = useCreateNavigationTree();\n\tconst defaultSlideOrigin = isRTL() ? 'right' : 'left';\n\n\tconst setActiveMenu: NavigationContextType[ 'setActiveMenu' ] = (\n\t\tmenuId,\n\t\tslideInOrigin = defaultSlideOrigin\n\t) => {\n\t\tif ( ! navigationTree.getMenu( menuId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSlideOrigin( slideInOrigin );\n\t\tsetMenu( menuId );\n\t\tonActivateMenu( menuId );\n\t};\n\n\t// Used to prevent the sliding animation on mount\n\tconst isMounted = useRef( false );\n\tuseEffect( () => {\n\t\tif ( ! isMounted.current ) {\n\t\t\tisMounted.current = true;\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( activeMenu !== menu ) {\n\t\t\tsetActiveMenu( activeMenu );\n\t\t}\n\t\t// Ignore exhaustive-deps here, as it would require either a larger refactor or some questionable workarounds.\n\t\t// See https://github.com/WordPress/gutenberg/pull/41612 for context.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ activeMenu ] );\n\n\tconst context = {\n\t\tactiveItem,\n\t\tactiveMenu: menu,\n\t\tsetActiveMenu,\n\t\tnavigationTree,\n\t};\n\n\tconst classes = clsx( 'components-navigation', className );\n\tconst animateClassName = getAnimateClassName( {\n\t\ttype: 'slide-in',\n\t\torigin: slideOrigin,\n\t} );\n\n\treturn (\n\t\t<NavigationUI className={ classes }>\n\t\t\t<div\n\t\t\t\tkey={ menu }\n\t\t\t\tclassName={\n\t\t\t\t\tanimateClassName\n\t\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t\t[ animateClassName ]:\n\t\t\t\t\t\t\t\t\tisMounted.current && slideOrigin,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<NavigationContext.Provider value={ context }>\n\t\t\t\t\t{ children }\n\t\t\t\t</NavigationContext.Provider>\n\t\t\t</div>\n\t\t</NavigationUI>\n\t);\n}\n\nexport default Navigation;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_animate","_constants","_context","_navigationStyles","_useCreateNavigationTree","_jsxRuntime","noop","Navigation","activeItem","activeMenu","ROOT_MENU","children","className","onActivateMenu","menu","setMenu","useState","slideOrigin","setSlideOrigin","navigationTree","useCreateNavigationTree","defaultSlideOrigin","isRTL","setActiveMenu","menuId","slideInOrigin","getMenu","isMountedRef","useRef","useEffect","current","context","classes","clsx","animateClassName","getAnimateClassName","type","origin","jsx","NavigationUI","undefined","NavigationContext","Provider","value","_default","exports","default"],"sources":["@wordpress/components/src/navigation/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getAnimateClassName } from '../animate';\nimport { ROOT_MENU } from './constants';\nimport { NavigationContext } from './context';\nimport { NavigationUI } from './styles/navigation-styles';\nimport { useCreateNavigationTree } from './use-create-navigation-tree';\n\nimport type {\n\tNavigationProps,\n\tNavigationContext as NavigationContextType,\n} from './types';\n\nconst noop = () => {};\n\n/**\n * Render a navigation list with optional groupings and hierarchy.\n *\n * @deprecated Use `Navigator` instead.\n *\n * ```jsx\n * import {\n * __experimentalNavigation as Navigation,\n * __experimentalNavigationGroup as NavigationGroup,\n * __experimentalNavigationItem as NavigationItem,\n * __experimentalNavigationMenu as NavigationMenu,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <Navigation>\n * <NavigationMenu title=\"Home\">\n * <NavigationGroup title=\"Group 1\">\n * <NavigationItem item=\"item-1\" title=\"Item 1\" />\n * <NavigationItem item=\"item-2\" title=\"Item 2\" />\n * </NavigationGroup>\n * <NavigationGroup title=\"Group 2\">\n * <NavigationItem\n * item=\"item-3\"\n * navigateToMenu=\"category\"\n * title=\"Category\"\n * />\n * </NavigationGroup>\n * </NavigationMenu>\n *\n * <NavigationMenu\n * backButtonLabel=\"Home\"\n * menu=\"category\"\n * parentMenu=\"root\"\n * title=\"Category\"\n * >\n * <NavigationItem badge=\"1\" item=\"child-1\" title=\"Child 1\" />\n * <NavigationItem item=\"child-2\" title=\"Child 2\" />\n * </NavigationMenu>\n * </Navigation>\n * );\n * ```\n */\nexport function Navigation( {\n\tactiveItem,\n\tactiveMenu = ROOT_MENU,\n\tchildren,\n\tclassName,\n\tonActivateMenu = noop,\n}: NavigationProps ) {\n\tconst [ menu, setMenu ] = useState( activeMenu );\n\tconst [ slideOrigin, setSlideOrigin ] = useState< 'left' | 'right' >();\n\tconst navigationTree = useCreateNavigationTree();\n\tconst defaultSlideOrigin = isRTL() ? 'right' : 'left';\n\n\tconst setActiveMenu: NavigationContextType[ 'setActiveMenu' ] = (\n\t\tmenuId,\n\t\tslideInOrigin = defaultSlideOrigin\n\t) => {\n\t\tif ( ! navigationTree.getMenu( menuId ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetSlideOrigin( slideInOrigin );\n\t\tsetMenu( menuId );\n\t\tonActivateMenu( menuId );\n\t};\n\n\t// Used to prevent the sliding animation on mount\n\tconst isMountedRef = useRef( false );\n\tuseEffect( () => {\n\t\tif ( ! isMountedRef.current ) {\n\t\t\tisMountedRef.current = true;\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( activeMenu !== menu ) {\n\t\t\tsetActiveMenu( activeMenu );\n\t\t}\n\t\t// Ignore exhaustive-deps here, as it would require either a larger refactor or some questionable workarounds.\n\t\t// See https://github.com/WordPress/gutenberg/pull/41612 for context.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ activeMenu ] );\n\n\tconst context = {\n\t\tactiveItem,\n\t\tactiveMenu: menu,\n\t\tsetActiveMenu,\n\t\tnavigationTree,\n\t};\n\n\tconst classes = clsx( 'components-navigation', className );\n\tconst animateClassName = getAnimateClassName( {\n\t\ttype: 'slide-in',\n\t\torigin: slideOrigin,\n\t} );\n\n\treturn (\n\t\t<NavigationUI className={ classes }>\n\t\t\t<div\n\t\t\t\tkey={ menu }\n\t\t\t\tclassName={\n\t\t\t\t\tanimateClassName\n\t\t\t\t\t\t? clsx( {\n\t\t\t\t\t\t\t\t[ animateClassName ]:\n\t\t\t\t\t\t\t\t\tisMountedRef.current && slideOrigin,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<NavigationContext.Provider value={ context }>\n\t\t\t\t\t{ children }\n\t\t\t\t</NavigationContext.Provider>\n\t\t\t</div>\n\t\t</NavigationUI>\n\t);\n}\n\nexport default Navigation;\n"],"mappings":"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","ignoreList":[]}