@wordpress/components 28.4.0 → 28.6.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 (698) hide show
  1. package/CHANGELOG.md +113 -1
  2. package/CONTRIBUTING.md +155 -64
  3. package/build/alignment-matrix-control/cell.js +2 -2
  4. package/build/alignment-matrix-control/cell.js.map +1 -1
  5. package/build/alignment-matrix-control/index.js +6 -5
  6. package/build/alignment-matrix-control/index.js.map +1 -1
  7. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +8 -17
  8. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  9. package/build/angle-picker-control/styles/angle-picker-control-styles.js +4 -4
  10. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  11. package/build/autocomplete/autocompleter-ui.js +2 -0
  12. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  13. package/build/base-control/index.js +54 -41
  14. package/build/base-control/index.js.map +1 -1
  15. package/build/base-control/styles/base-control-styles.js +8 -8
  16. package/build/base-control/styles/base-control-styles.js.map +1 -1
  17. package/build/base-control/types.js.map +1 -1
  18. package/build/border-control/styles.js +18 -24
  19. package/build/border-control/styles.js.map +1 -1
  20. package/build/checkbox-control/index.js +1 -0
  21. package/build/checkbox-control/index.js.map +1 -1
  22. package/build/circular-option-picker/circular-option-picker-option.js +4 -4
  23. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  24. package/build/circular-option-picker/circular-option-picker.js +3 -3
  25. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  26. package/build/circular-option-picker/types.js.map +1 -1
  27. package/build/color-palette/index.js +1 -1
  28. package/build/color-palette/index.js.map +1 -1
  29. package/build/color-palette/utils.js +17 -5
  30. package/build/color-palette/utils.js.map +1 -1
  31. package/build/color-picker/input-with-slider.js +1 -0
  32. package/build/color-picker/input-with-slider.js.map +1 -1
  33. package/build/combobox-control/index.js +1 -0
  34. package/build/combobox-control/index.js.map +1 -1
  35. package/build/composite/context.js +19 -0
  36. package/build/composite/context.js.map +1 -0
  37. package/build/composite/index.js +287 -9
  38. package/build/composite/index.js.map +1 -1
  39. package/build/composite/legacy/index.js +10 -8
  40. package/build/composite/legacy/index.js.map +1 -1
  41. package/build/composite/types.js +6 -0
  42. package/build/composite/types.js.map +1 -0
  43. package/build/custom-select-control/index.js +37 -14
  44. package/build/custom-select-control/index.js.map +1 -1
  45. package/build/custom-select-control/types.js.map +1 -1
  46. package/build/custom-select-control-v2/custom-select.js +3 -2
  47. package/build/custom-select-control-v2/custom-select.js.map +1 -1
  48. package/build/custom-select-control-v2/styles.js +9 -9
  49. package/build/custom-select-control-v2/styles.js.map +1 -1
  50. package/build/date-time/index.js +0 -7
  51. package/build/date-time/index.js.map +1 -1
  52. package/build/date-time/time/index.js +77 -41
  53. package/build/date-time/time/index.js.map +1 -1
  54. package/build/date-time/time/styles.js +11 -11
  55. package/build/date-time/time/styles.js.map +1 -1
  56. package/build/date-time/{time-input → time/time-input}/index.js +7 -7
  57. package/build/date-time/time/time-input/index.js.map +1 -0
  58. package/build/date-time/types.js.map +1 -1
  59. package/build/dimension-control/index.js +25 -8
  60. package/build/dimension-control/index.js.map +1 -1
  61. package/build/dimension-control/types.js.map +1 -1
  62. package/build/dropdown-menu-v2/index.js +3 -2
  63. package/build/dropdown-menu-v2/index.js.map +1 -1
  64. package/build/dropdown-menu-v2/styles.js +23 -21
  65. package/build/dropdown-menu-v2/styles.js.map +1 -1
  66. package/build/focal-point-picker/controls.js +1 -3
  67. package/build/focal-point-picker/controls.js.map +1 -1
  68. package/build/focal-point-picker/index.js +1 -2
  69. package/build/focal-point-picker/index.js.map +1 -1
  70. package/build/focal-point-picker/styles/focal-point-picker-style.js +11 -11
  71. package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  72. package/build/focal-point-picker/types.js.map +1 -1
  73. package/build/form-file-upload/types.js.map +1 -1
  74. package/build/form-toggle/index.js +24 -24
  75. package/build/form-toggle/index.js.map +1 -1
  76. package/build/guide/index.js +2 -0
  77. package/build/guide/index.js.map +1 -1
  78. package/build/heading/types.js.map +1 -1
  79. package/build/index.js +5 -5
  80. package/build/index.js.map +1 -1
  81. package/build/item-group/styles.js +11 -11
  82. package/build/item-group/styles.js.map +1 -1
  83. package/build/mobile/utils/alignments.native.js +1 -1
  84. package/build/mobile/utils/alignments.native.js.map +1 -1
  85. package/build/modal/index.js +18 -11
  86. package/build/modal/index.js.map +1 -1
  87. package/build/navigator/navigator-back-button/component.js +1 -1
  88. package/build/navigator/navigator-back-button/component.js.map +1 -1
  89. package/build/navigator/navigator-back-button/hook.js +3 -9
  90. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  91. package/build/navigator/navigator-provider/component.js +17 -9
  92. package/build/navigator/navigator-provider/component.js.map +1 -1
  93. package/build/navigator/navigator-to-parent-button/component.js +13 -40
  94. package/build/navigator/navigator-to-parent-button/component.js.map +1 -1
  95. package/build/navigator/types.js.map +1 -1
  96. package/build/palette-edit/styles.js +11 -11
  97. package/build/palette-edit/styles.js.map +1 -1
  98. package/build/popover/index.js +6 -1
  99. package/build/popover/index.js.map +1 -1
  100. package/build/private-apis.js +6 -6
  101. package/build/private-apis.js.map +1 -1
  102. package/build/progress-bar/styles.js +5 -5
  103. package/build/progress-bar/styles.js.map +1 -1
  104. package/build/query-controls/index.js +6 -7
  105. package/build/query-controls/index.js.map +1 -1
  106. package/build/query-controls/types.js.map +1 -1
  107. package/build/radio-control/index.js +43 -15
  108. package/build/radio-control/index.js.map +1 -1
  109. package/build/radio-control/types.js.map +1 -1
  110. package/build/radio-group/radio.js +3 -2
  111. package/build/radio-group/radio.js.map +1 -1
  112. package/build/range-control/index.js +32 -9
  113. package/build/range-control/index.js.map +1 -1
  114. package/build/range-control/styles/range-control-styles.js +29 -29
  115. package/build/range-control/styles/range-control-styles.js.map +1 -1
  116. package/build/search-control/index.js +5 -4
  117. package/build/search-control/index.js.map +1 -1
  118. package/build/select-control/index.js +21 -8
  119. package/build/select-control/index.js.map +1 -1
  120. package/build/select-control/types.js.map +1 -1
  121. package/build/tab-panel/index.js +3 -2
  122. package/build/tab-panel/index.js.map +1 -1
  123. package/build/tabs/index.js +3 -2
  124. package/build/tabs/index.js.map +1 -1
  125. package/build/tabs/tablist.js +6 -4
  126. package/build/tabs/tablist.js.map +1 -1
  127. package/build/tabs/tabpanel.js +6 -1
  128. package/build/tabs/tabpanel.js.map +1 -1
  129. package/build/text/styles.js +7 -7
  130. package/build/text/styles.js.map +1 -1
  131. package/build/text-control/index.js +2 -0
  132. package/build/text-control/index.js.map +1 -1
  133. package/build/textarea-control/index.js +1 -0
  134. package/build/textarea-control/index.js.map +1 -1
  135. package/build/textarea-control/styles/textarea-control-styles.js +8 -2
  136. package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
  137. package/build/toggle-control/index.js +35 -25
  138. package/build/toggle-control/index.js.map +1 -1
  139. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +3 -2
  140. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  141. package/build/toggle-group-control/toggle-group-control/component.js +7 -1
  142. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  143. package/build/toggle-group-control/toggle-group-control/styles.js +7 -7
  144. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  145. package/build/toggle-group-control/toggle-group-control-option/component.js +6 -1
  146. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  147. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  148. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  149. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +14 -14
  150. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  151. package/build/tools-panel/styles.js +13 -13
  152. package/build/tools-panel/styles.js.map +1 -1
  153. package/build/tooltip/index.js +14 -2
  154. package/build/tooltip/index.js.map +1 -1
  155. package/build/tree-select/index.js +20 -8
  156. package/build/tree-select/index.js.map +1 -1
  157. package/build/unit-control/styles/unit-control-styles.js +7 -7
  158. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  159. package/build/utils/config-values.js +10 -3
  160. package/build/utils/config-values.js.map +1 -1
  161. package/build-module/alignment-matrix-control/cell.js +2 -2
  162. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  163. package/build-module/alignment-matrix-control/index.js +4 -3
  164. package/build-module/alignment-matrix-control/index.js.map +1 -1
  165. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -18
  166. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  167. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +4 -4
  168. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  169. package/build-module/autocomplete/autocompleter-ui.js +2 -0
  170. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  171. package/build-module/base-control/index.js +54 -42
  172. package/build-module/base-control/index.js.map +1 -1
  173. package/build-module/base-control/styles/base-control-styles.js +8 -8
  174. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  175. package/build-module/base-control/types.js.map +1 -1
  176. package/build-module/border-control/styles.js +13 -23
  177. package/build-module/border-control/styles.js.map +1 -1
  178. package/build-module/checkbox-control/index.js +1 -0
  179. package/build-module/checkbox-control/index.js.map +1 -1
  180. package/build-module/circular-option-picker/circular-option-picker-option.js +4 -4
  181. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  182. package/build-module/circular-option-picker/circular-option-picker.js +1 -1
  183. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  184. package/build-module/circular-option-picker/types.js.map +1 -1
  185. package/build-module/color-palette/index.js +1 -1
  186. package/build-module/color-palette/index.js.map +1 -1
  187. package/build-module/color-palette/utils.js +17 -5
  188. package/build-module/color-palette/utils.js.map +1 -1
  189. package/build-module/color-picker/input-with-slider.js +1 -0
  190. package/build-module/color-picker/input-with-slider.js.map +1 -1
  191. package/build-module/combobox-control/index.js +1 -0
  192. package/build-module/combobox-control/index.js.map +1 -1
  193. package/build-module/composite/context.js +12 -0
  194. package/build-module/composite/context.js.map +1 -0
  195. package/build-module/composite/index.js +284 -6
  196. package/build-module/composite/index.js.map +1 -1
  197. package/build-module/composite/legacy/index.js +10 -6
  198. package/build-module/composite/legacy/index.js.map +1 -1
  199. package/build-module/composite/types.js +2 -0
  200. package/build-module/composite/types.js.map +1 -0
  201. package/build-module/custom-select-control/index.js +38 -14
  202. package/build-module/custom-select-control/index.js.map +1 -1
  203. package/build-module/custom-select-control/types.js.map +1 -1
  204. package/build-module/custom-select-control-v2/custom-select.js +2 -1
  205. package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
  206. package/build-module/custom-select-control-v2/styles.js +9 -9
  207. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  208. package/build-module/date-time/index.js +1 -2
  209. package/build-module/date-time/index.js.map +1 -1
  210. package/build-module/date-time/time/index.js +77 -41
  211. package/build-module/date-time/time/index.js.map +1 -1
  212. package/build-module/date-time/time/styles.js +11 -11
  213. package/build-module/date-time/time/styles.js.map +1 -1
  214. package/build-module/date-time/{time-input → time/time-input}/index.js +7 -7
  215. package/build-module/date-time/time/time-input/index.js.map +1 -0
  216. package/build-module/date-time/types.js.map +1 -1
  217. package/build-module/dimension-control/index.js +25 -8
  218. package/build-module/dimension-control/index.js.map +1 -1
  219. package/build-module/dimension-control/types.js.map +1 -1
  220. package/build-module/dropdown-menu-v2/index.js +2 -1
  221. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  222. package/build-module/dropdown-menu-v2/styles.js +23 -21
  223. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  224. package/build-module/focal-point-picker/controls.js +1 -3
  225. package/build-module/focal-point-picker/controls.js.map +1 -1
  226. package/build-module/focal-point-picker/index.js +1 -2
  227. package/build-module/focal-point-picker/index.js.map +1 -1
  228. package/build-module/focal-point-picker/styles/focal-point-picker-style.js +11 -11
  229. package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  230. package/build-module/focal-point-picker/types.js.map +1 -1
  231. package/build-module/form-file-upload/types.js.map +1 -1
  232. package/build-module/form-toggle/index.js +23 -22
  233. package/build-module/form-toggle/index.js.map +1 -1
  234. package/build-module/guide/index.js +2 -0
  235. package/build-module/guide/index.js.map +1 -1
  236. package/build-module/heading/types.js.map +1 -1
  237. package/build-module/index.js +1 -1
  238. package/build-module/index.js.map +1 -1
  239. package/build-module/item-group/styles.js +11 -11
  240. package/build-module/item-group/styles.js.map +1 -1
  241. package/build-module/mobile/utils/alignments.native.js +1 -1
  242. package/build-module/mobile/utils/alignments.native.js.map +1 -1
  243. package/build-module/modal/index.js +17 -11
  244. package/build-module/modal/index.js.map +1 -1
  245. package/build-module/navigator/navigator-back-button/component.js +1 -1
  246. package/build-module/navigator/navigator-back-button/component.js.map +1 -1
  247. package/build-module/navigator/navigator-back-button/hook.js +3 -9
  248. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  249. package/build-module/navigator/navigator-provider/component.js +17 -9
  250. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  251. package/build-module/navigator/navigator-to-parent-button/component.js +12 -41
  252. package/build-module/navigator/navigator-to-parent-button/component.js.map +1 -1
  253. package/build-module/navigator/types.js.map +1 -1
  254. package/build-module/palette-edit/styles.js +11 -11
  255. package/build-module/palette-edit/styles.js.map +1 -1
  256. package/build-module/popover/index.js +6 -1
  257. package/build-module/popover/index.js.map +1 -1
  258. package/build-module/private-apis.js +6 -6
  259. package/build-module/private-apis.js.map +1 -1
  260. package/build-module/progress-bar/styles.js +5 -5
  261. package/build-module/progress-bar/styles.js.map +1 -1
  262. package/build-module/query-controls/index.js +6 -7
  263. package/build-module/query-controls/index.js.map +1 -1
  264. package/build-module/query-controls/types.js.map +1 -1
  265. package/build-module/radio-control/index.js +44 -17
  266. package/build-module/radio-control/index.js.map +1 -1
  267. package/build-module/radio-control/types.js.map +1 -1
  268. package/build-module/radio-group/radio.js +2 -1
  269. package/build-module/radio-group/radio.js.map +1 -1
  270. package/build-module/range-control/index.js +32 -9
  271. package/build-module/range-control/index.js.map +1 -1
  272. package/build-module/range-control/styles/range-control-styles.js +29 -29
  273. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  274. package/build-module/search-control/index.js +5 -4
  275. package/build-module/search-control/index.js.map +1 -1
  276. package/build-module/select-control/index.js +21 -8
  277. package/build-module/select-control/index.js.map +1 -1
  278. package/build-module/select-control/types.js.map +1 -1
  279. package/build-module/tab-panel/index.js +2 -1
  280. package/build-module/tab-panel/index.js.map +1 -1
  281. package/build-module/tabs/index.js +2 -1
  282. package/build-module/tabs/index.js.map +1 -1
  283. package/build-module/tabs/tablist.js +5 -3
  284. package/build-module/tabs/tablist.js.map +1 -1
  285. package/build-module/tabs/tabpanel.js +6 -2
  286. package/build-module/tabs/tabpanel.js.map +1 -1
  287. package/build-module/text/styles.js +7 -7
  288. package/build-module/text/styles.js.map +1 -1
  289. package/build-module/text-control/index.js +2 -0
  290. package/build-module/text-control/index.js.map +1 -1
  291. package/build-module/textarea-control/index.js +1 -0
  292. package/build-module/textarea-control/index.js.map +1 -1
  293. package/build-module/textarea-control/styles/textarea-control-styles.js +9 -2
  294. package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
  295. package/build-module/toggle-control/index.js +34 -24
  296. package/build-module/toggle-control/index.js.map +1 -1
  297. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +2 -1
  298. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  299. package/build-module/toggle-group-control/toggle-group-control/component.js +7 -1
  300. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  301. package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -7
  302. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  303. package/build-module/toggle-group-control/toggle-group-control-option/component.js +6 -1
  304. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  305. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  306. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  307. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +14 -14
  308. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  309. package/build-module/tools-panel/styles.js +13 -13
  310. package/build-module/tools-panel/styles.js.map +1 -1
  311. package/build-module/tooltip/index.js +14 -2
  312. package/build-module/tooltip/index.js.map +1 -1
  313. package/build-module/tree-select/index.js +20 -8
  314. package/build-module/tree-select/index.js.map +1 -1
  315. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  316. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  317. package/build-module/utils/config-values.js +10 -3
  318. package/build-module/utils/config-values.js.map +1 -1
  319. package/build-style/style-rtl.css +79 -33
  320. package/build-style/style.css +79 -33
  321. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  322. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +1 -1
  323. package/build-types/angle-picker-control/styles/angle-picker-control-styles.d.ts.map +1 -1
  324. package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
  325. package/build-types/base-control/hooks.d.ts +1 -0
  326. package/build-types/base-control/hooks.d.ts.map +1 -1
  327. package/build-types/base-control/index.d.ts +44 -0
  328. package/build-types/base-control/index.d.ts.map +1 -1
  329. package/build-types/base-control/types.d.ts +7 -0
  330. package/build-types/base-control/types.d.ts.map +1 -1
  331. package/build-types/border-control/styles.d.ts.map +1 -1
  332. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  333. package/build-types/checkbox-control/index.d.ts.map +1 -1
  334. package/build-types/checkbox-control/stories/index.story.d.ts.map +1 -1
  335. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  336. package/build-types/circular-option-picker/types.d.ts +2 -3
  337. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  338. package/build-types/color-palette/index.d.ts.map +1 -1
  339. package/build-types/color-palette/styles.d.ts +2 -2
  340. package/build-types/color-palette/utils.d.ts.map +1 -1
  341. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  342. package/build-types/color-picker/styles.d.ts +3 -1
  343. package/build-types/color-picker/styles.d.ts.map +1 -1
  344. package/build-types/combobox-control/index.d.ts.map +1 -1
  345. package/build-types/combobox-control/stories/index.story.d.ts.map +1 -1
  346. package/build-types/composite/context.d.ts +7 -0
  347. package/build-types/composite/context.d.ts.map +1 -0
  348. package/build-types/composite/index.d.ts +181 -1
  349. package/build-types/composite/index.d.ts.map +1 -1
  350. package/build-types/composite/legacy/index.d.ts +7 -2
  351. package/build-types/composite/legacy/index.d.ts.map +1 -1
  352. package/build-types/composite/legacy/stories/utils.d.ts +19 -0
  353. package/build-types/composite/legacy/stories/utils.d.ts.map +1 -1
  354. package/build-types/composite/stories/index.story.d.ts +13 -0
  355. package/build-types/composite/stories/index.story.d.ts.map +1 -0
  356. package/build-types/composite/stories/utils.d.ts +29 -0
  357. package/build-types/composite/stories/utils.d.ts.map +1 -0
  358. package/build-types/composite/types.d.ts +288 -0
  359. package/build-types/composite/types.d.ts.map +1 -0
  360. package/build-types/custom-select-control/index.d.ts +2 -2
  361. package/build-types/custom-select-control/index.d.ts.map +1 -1
  362. package/build-types/custom-select-control/stories/index.story.d.ts +3 -3
  363. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
  364. package/build-types/custom-select-control/types.d.ts +7 -7
  365. package/build-types/custom-select-control/types.d.ts.map +1 -1
  366. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  367. package/build-types/custom-select-control-v2/styles.d.ts +16 -28
  368. package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
  369. package/build-types/date-time/date/styles.d.ts +2 -2
  370. package/build-types/date-time/date-time/index.d.ts +1 -1
  371. package/build-types/date-time/index.d.ts +1 -2
  372. package/build-types/date-time/index.d.ts.map +1 -1
  373. package/build-types/date-time/stories/time.story.d.ts +5 -0
  374. package/build-types/date-time/stories/time.story.d.ts.map +1 -1
  375. package/build-types/date-time/time/index.d.ts +4 -1
  376. package/build-types/date-time/time/index.d.ts.map +1 -1
  377. package/build-types/date-time/time/styles.d.ts.map +1 -1
  378. package/build-types/date-time/{time-input → time/time-input}/index.d.ts +1 -1
  379. package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
  380. package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
  381. package/build-types/date-time/types.d.ts +7 -1
  382. package/build-types/date-time/types.d.ts.map +1 -1
  383. package/build-types/dimension-control/index.d.ts +1 -0
  384. package/build-types/dimension-control/index.d.ts.map +1 -1
  385. package/build-types/dimension-control/stories/index.story.d.ts +8 -1
  386. package/build-types/dimension-control/stories/index.story.d.ts.map +1 -1
  387. package/build-types/dimension-control/types.d.ts +2 -7
  388. package/build-types/dimension-control/types.d.ts.map +1 -1
  389. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  390. package/build-types/dropdown-menu-v2/styles.d.ts +24 -42
  391. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  392. package/build-types/focal-point-picker/controls.d.ts +1 -1
  393. package/build-types/focal-point-picker/controls.d.ts.map +1 -1
  394. package/build-types/focal-point-picker/index.d.ts +1 -1
  395. package/build-types/focal-point-picker/index.d.ts.map +1 -1
  396. package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
  397. package/build-types/focal-point-picker/types.d.ts +2 -2
  398. package/build-types/focal-point-picker/types.d.ts.map +1 -1
  399. package/build-types/form-file-upload/types.d.ts +6 -0
  400. package/build-types/form-file-upload/types.d.ts.map +1 -1
  401. package/build-types/form-toggle/index.d.ts +2 -5
  402. package/build-types/form-toggle/index.d.ts.map +1 -1
  403. package/build-types/guide/index.d.ts.map +1 -1
  404. package/build-types/heading/component.d.ts +1 -1
  405. package/build-types/heading/types.d.ts +1 -1
  406. package/build-types/heading/types.d.ts.map +1 -1
  407. package/build-types/index.d.ts +1 -1
  408. package/build-types/index.d.ts.map +1 -1
  409. package/build-types/modal/index.d.ts.map +1 -1
  410. package/build-types/navigation/styles/navigation-styles.d.ts +2 -2
  411. package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
  412. package/build-types/navigator/navigator-back-button/hook.d.ts +2 -2
  413. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  414. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  415. package/build-types/navigator/navigator-to-parent-button/component.d.ts +6 -0
  416. package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
  417. package/build-types/navigator/types.d.ts +45 -9
  418. package/build-types/navigator/types.d.ts.map +1 -1
  419. package/build-types/palette-edit/styles.d.ts +2 -2
  420. package/build-types/popover/index.d.ts +1 -1
  421. package/build-types/popover/index.d.ts.map +1 -1
  422. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  423. package/build-types/private-apis.d.ts.map +1 -1
  424. package/build-types/query-controls/index.d.ts +1 -1
  425. package/build-types/query-controls/index.d.ts.map +1 -1
  426. package/build-types/query-controls/types.d.ts +2 -1
  427. package/build-types/query-controls/types.d.ts.map +1 -1
  428. package/build-types/radio-control/index.d.ts.map +1 -1
  429. package/build-types/radio-control/stories/index.story.d.ts +1 -0
  430. package/build-types/radio-control/stories/index.story.d.ts.map +1 -1
  431. package/build-types/radio-control/test/index.d.ts +2 -0
  432. package/build-types/radio-control/test/index.d.ts.map +1 -0
  433. package/build-types/radio-control/types.d.ts +4 -0
  434. package/build-types/radio-control/types.d.ts.map +1 -1
  435. package/build-types/radio-group/radio.d.ts.map +1 -1
  436. package/build-types/range-control/index.d.ts.map +1 -1
  437. package/build-types/range-control/stories/index.story.d.ts.map +1 -1
  438. package/build-types/search-control/index.d.ts.map +1 -1
  439. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  440. package/build-types/select-control/index.d.ts +4 -1
  441. package/build-types/select-control/index.d.ts.map +1 -1
  442. package/build-types/select-control/stories/index.story.d.ts +13 -5
  443. package/build-types/select-control/stories/index.story.d.ts.map +1 -1
  444. package/build-types/select-control/types.d.ts +27 -27
  445. package/build-types/select-control/types.d.ts.map +1 -1
  446. package/build-types/tab-panel/index.d.ts.map +1 -1
  447. package/build-types/tabs/index.d.ts.map +1 -1
  448. package/build-types/tabs/styles.d.ts +8 -14
  449. package/build-types/tabs/styles.d.ts.map +1 -1
  450. package/build-types/tabs/tablist.d.ts.map +1 -1
  451. package/build-types/tabs/tabpanel.d.ts +0 -3
  452. package/build-types/tabs/tabpanel.d.ts.map +1 -1
  453. package/build-types/text-control/index.d.ts +1 -0
  454. package/build-types/text-control/index.d.ts.map +1 -1
  455. package/build-types/text-control/stories/index.story.d.ts.map +1 -1
  456. package/build-types/textarea-control/index.d.ts.map +1 -1
  457. package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -1
  458. package/build-types/toggle-control/index.d.ts +3 -9
  459. package/build-types/toggle-control/index.d.ts.map +1 -1
  460. package/build-types/toggle-control/stories/index.story.d.ts.map +1 -1
  461. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  462. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +6 -1
  463. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  464. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -1
  465. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  466. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +14 -14
  467. package/build-types/tooltip/index.d.ts.map +1 -1
  468. package/build-types/tooltip/test/utils/index.d.ts +1 -5
  469. package/build-types/tooltip/test/utils/index.d.ts.map +1 -1
  470. package/build-types/tree-select/index.d.ts +1 -1
  471. package/build-types/tree-select/index.d.ts.map +1 -1
  472. package/build-types/utils/config-values.d.ts +10 -3
  473. package/package.json +20 -20
  474. package/src/alignment-matrix-control/cell.tsx +3 -3
  475. package/src/alignment-matrix-control/index.tsx +5 -4
  476. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.ts +2 -2
  477. package/src/alignment-matrix-control/test/index.tsx +1 -3
  478. package/src/angle-picker-control/styles/angle-picker-control-styles.tsx +2 -2
  479. package/src/autocomplete/autocompleter-ui.tsx +2 -0
  480. package/src/autocomplete/style.scss +0 -6
  481. package/src/base-control/README.md +5 -2
  482. package/src/base-control/index.tsx +61 -41
  483. package/src/base-control/styles/base-control-styles.ts +1 -1
  484. package/src/base-control/types.ts +7 -0
  485. package/src/border-box-control/border-box-control/README.md +7 -0
  486. package/src/border-control/border-control/README.md +7 -0
  487. package/src/border-control/styles.ts +1 -6
  488. package/src/button/README.md +7 -0
  489. package/src/button/stories/e2e/index.story.tsx +103 -21
  490. package/src/button/style.scss +51 -23
  491. package/src/button/test/index.tsx +18 -40
  492. package/src/button-group/style.scss +2 -2
  493. package/src/checkbox-control/index.tsx +1 -0
  494. package/src/checkbox-control/stories/index.story.tsx +1 -0
  495. package/src/checkbox-control/test/index.tsx +8 -1
  496. package/src/circular-option-picker/circular-option-picker-option.tsx +8 -6
  497. package/src/circular-option-picker/circular-option-picker.tsx +1 -1
  498. package/src/circular-option-picker/style.scss +3 -3
  499. package/src/circular-option-picker/test/index.tsx +1 -4
  500. package/src/circular-option-picker/types.ts +2 -3
  501. package/src/color-indicator/style.scss +1 -1
  502. package/src/color-palette/index.tsx +22 -20
  503. package/src/color-palette/style.scss +2 -2
  504. package/src/color-palette/utils.ts +23 -10
  505. package/src/color-picker/input-with-slider.tsx +1 -0
  506. package/src/combobox-control/README.md +8 -0
  507. package/src/combobox-control/index.tsx +1 -0
  508. package/src/combobox-control/stories/index.story.tsx +3 -4
  509. package/src/combobox-control/test/index.tsx +5 -1
  510. package/src/composite/README.md +325 -0
  511. package/src/composite/context.ts +14 -0
  512. package/src/composite/index.tsx +341 -0
  513. package/src/composite/legacy/index.tsx +15 -14
  514. package/src/composite/legacy/stories/utils.tsx +19 -0
  515. package/src/composite/legacy/test/index.tsx +2 -18
  516. package/src/composite/stories/index.story.tsx +466 -0
  517. package/src/composite/{current/stories → stories}/utils.tsx +22 -7
  518. package/src/composite/types.ts +298 -0
  519. package/src/custom-gradient-picker/style.scss +2 -2
  520. package/src/custom-select-control/README.md +7 -0
  521. package/src/custom-select-control/index.tsx +55 -25
  522. package/src/custom-select-control/test/index.tsx +172 -30
  523. package/src/custom-select-control/types.ts +7 -7
  524. package/src/custom-select-control-v2/custom-select.tsx +2 -1
  525. package/src/custom-select-control-v2/styles.ts +7 -6
  526. package/src/custom-select-control-v2/test/index.tsx +15 -19
  527. package/src/date-time/index.ts +1 -2
  528. package/src/date-time/stories/time.story.tsx +17 -0
  529. package/src/date-time/time/index.tsx +72 -28
  530. package/src/date-time/time/styles.ts +1 -0
  531. package/src/date-time/{time-input → time/time-input}/index.tsx +9 -9
  532. package/src/date-time/types.ts +11 -1
  533. package/src/dimension-control/README.md +17 -0
  534. package/src/dimension-control/index.tsx +26 -9
  535. package/src/dimension-control/stories/index.story.tsx +1 -0
  536. package/src/dimension-control/test/__snapshots__/index.test.js.snap +0 -16
  537. package/src/dimension-control/test/index.test.js +5 -1
  538. package/src/dimension-control/types.ts +5 -7
  539. package/src/drop-zone/style.scss +1 -1
  540. package/src/dropdown-menu-v2/index.tsx +5 -3
  541. package/src/dropdown-menu-v2/styles.ts +35 -32
  542. package/src/dropdown-menu-v2/test/index.tsx +1 -4
  543. package/src/focal-point-picker/README.md +9 -1
  544. package/src/focal-point-picker/controls.tsx +1 -3
  545. package/src/focal-point-picker/index.tsx +1 -2
  546. package/src/focal-point-picker/stories/index.story.tsx +3 -0
  547. package/src/focal-point-picker/styles/focal-point-picker-style.ts +1 -1
  548. package/src/focal-point-picker/test/index.tsx +5 -1
  549. package/src/focal-point-picker/types.ts +2 -2
  550. package/src/font-size-picker/README.md +7 -0
  551. package/src/font-size-picker/test/index.tsx +50 -43
  552. package/src/form-file-upload/README.md +8 -0
  553. package/src/form-file-upload/types.ts +6 -0
  554. package/src/form-toggle/index.tsx +23 -21
  555. package/src/form-token-field/README.md +1 -0
  556. package/src/guide/index.tsx +2 -0
  557. package/src/guide/style.scss +0 -1
  558. package/src/heading/types.ts +1 -4
  559. package/src/index.ts +1 -1
  560. package/src/input-control/README.md +8 -0
  561. package/src/item-group/styles.ts +1 -1
  562. package/src/mobile/utils/alignments.native.js +1 -0
  563. package/src/modal/index.tsx +21 -20
  564. package/src/modal/style.scss +3 -3
  565. package/src/navigator/navigator-back-button/component.tsx +1 -1
  566. package/src/navigator/navigator-back-button/hook.ts +6 -10
  567. package/src/navigator/navigator-provider/README.md +38 -36
  568. package/src/navigator/navigator-provider/component.tsx +13 -7
  569. package/src/navigator/navigator-screen/README.md +13 -1
  570. package/src/navigator/navigator-to-parent-button/README.md +2 -0
  571. package/src/navigator/navigator-to-parent-button/component.tsx +14 -43
  572. package/src/navigator/test/index.tsx +136 -6
  573. package/src/navigator/types.ts +45 -10
  574. package/src/number-control/README.md +8 -0
  575. package/src/palette-edit/styles.ts +5 -5
  576. package/src/placeholder/style.scss +15 -3
  577. package/src/popover/index.tsx +9 -3
  578. package/src/popover/style.scss +2 -2
  579. package/src/popover/test/index.tsx +34 -0
  580. package/src/private-apis.ts +6 -12
  581. package/src/progress-bar/styles.ts +2 -2
  582. package/src/query-controls/README.md +7 -0
  583. package/src/query-controls/index.tsx +10 -7
  584. package/src/query-controls/types.ts +2 -1
  585. package/src/radio-control/index.tsx +62 -13
  586. package/src/radio-control/stories/index.story.tsx +23 -0
  587. package/src/radio-control/style.scss +38 -3
  588. package/src/radio-control/test/index.tsx +277 -0
  589. package/src/radio-control/types.ts +4 -0
  590. package/src/radio-group/radio.tsx +2 -1
  591. package/src/range-control/README.md +7 -0
  592. package/src/range-control/index.tsx +39 -9
  593. package/src/range-control/stories/index.story.tsx +7 -0
  594. package/src/range-control/styles/range-control-styles.ts +2 -2
  595. package/src/range-control/test/index.tsx +54 -14
  596. package/src/search-control/index.tsx +7 -4
  597. package/src/search-control/stories/index.story.tsx +1 -0
  598. package/src/search-control/test/index.tsx +1 -0
  599. package/src/select-control/README.md +16 -1
  600. package/src/select-control/index.tsx +34 -22
  601. package/src/select-control/stories/index.story.tsx +8 -5
  602. package/src/select-control/test/select-control.tsx +155 -5
  603. package/src/select-control/types.ts +70 -65
  604. package/src/snackbar/style.scss +2 -2
  605. package/src/tab-panel/index.tsx +4 -1
  606. package/src/tab-panel/style.scss +1 -1
  607. package/src/tab-panel/test/index.tsx +1 -8
  608. package/src/tabs/index.tsx +2 -1
  609. package/src/tabs/tablist.tsx +6 -4
  610. package/src/tabs/tabpanel.tsx +6 -2
  611. package/src/tabs/test/index.tsx +68 -84
  612. package/src/text/styles.ts +1 -1
  613. package/src/text-control/README.md +9 -0
  614. package/src/text-control/index.tsx +2 -0
  615. package/src/text-control/stories/index.story.tsx +3 -1
  616. package/src/text-control/style.scss +5 -0
  617. package/src/text-control/test/text-control.tsx +5 -1
  618. package/src/textarea-control/index.tsx +1 -0
  619. package/src/textarea-control/stories/index.story.tsx +2 -0
  620. package/src/textarea-control/styles/textarea-control-styles.ts +75 -2
  621. package/src/toggle-control/README.md +9 -0
  622. package/src/toggle-control/index.tsx +34 -22
  623. package/src/toggle-control/stories/index.story.tsx +1 -0
  624. package/src/toggle-control/style.scss +2 -1
  625. package/src/toggle-control/test/index.tsx +7 -1
  626. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +14 -30
  627. package/src/toggle-group-control/test/index.tsx +5 -7
  628. package/src/toggle-group-control/toggle-group-control/README.md +20 -1
  629. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +2 -1
  630. package/src/toggle-group-control/toggle-group-control/component.tsx +7 -1
  631. package/src/toggle-group-control/toggle-group-control/styles.ts +1 -1
  632. package/src/toggle-group-control/toggle-group-control-option/README.md +6 -1
  633. package/src/toggle-group-control/toggle-group-control-option/component.tsx +6 -1
  634. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +2 -2
  635. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
  636. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +14 -14
  637. package/src/toolbar/toolbar/style.scss +2 -2
  638. package/src/tools-panel/styles.ts +1 -1
  639. package/src/tooltip/index.tsx +16 -2
  640. package/src/tooltip/style.scss +1 -1
  641. package/src/tooltip/test/index.tsx +0 -5
  642. package/src/tooltip/test/utils/index.tsx +5 -5
  643. package/src/tree-select/index.tsx +17 -7
  644. package/src/tree-select/stories/index.story.tsx +1 -0
  645. package/src/unit-control/README.md +7 -0
  646. package/src/unit-control/styles/unit-control-styles.ts +1 -1
  647. package/src/utils/config-values.js +10 -3
  648. package/tsconfig.tsbuildinfo +1 -1
  649. package/build/composite/current/index.js +0 -43
  650. package/build/composite/current/index.js.map +0 -1
  651. package/build/composite/v2.js +0 -17
  652. package/build/composite/v2.js.map +0 -1
  653. package/build/date-time/time-input/index.js.map +0 -1
  654. package/build/utils/input/base.js +0 -20
  655. package/build/utils/input/base.js.map +0 -1
  656. package/build/utils/input/index.js +0 -17
  657. package/build/utils/input/index.js.map +0 -1
  658. package/build/utils/input/input-control.js +0 -21
  659. package/build/utils/input/input-control.js.map +0 -1
  660. package/build-module/composite/current/index.js +0 -12
  661. package/build-module/composite/current/index.js.map +0 -1
  662. package/build-module/composite/v2.js +0 -5
  663. package/build-module/composite/v2.js.map +0 -1
  664. package/build-module/date-time/time-input/index.js.map +0 -1
  665. package/build-module/utils/input/base.js +0 -13
  666. package/build-module/utils/input/base.js.map +0 -1
  667. package/build-module/utils/input/index.js +0 -2
  668. package/build-module/utils/input/index.js.map +0 -1
  669. package/build-module/utils/input/input-control.js +0 -14
  670. package/build-module/utils/input/input-control.js.map +0 -1
  671. package/build-types/composite/current/index.d.ts +0 -12
  672. package/build-types/composite/current/index.d.ts.map +0 -1
  673. package/build-types/composite/current/stories/index.story.d.ts +0 -13
  674. package/build-types/composite/current/stories/index.story.d.ts.map +0 -1
  675. package/build-types/composite/current/stories/utils.d.ts +0 -14
  676. package/build-types/composite/current/stories/utils.d.ts.map +0 -1
  677. package/build-types/composite/v2.d.ts +0 -2
  678. package/build-types/composite/v2.d.ts.map +0 -1
  679. package/build-types/date-time/stories/time-input.story.d.ts +0 -12
  680. package/build-types/date-time/stories/time-input.story.d.ts.map +0 -1
  681. package/build-types/date-time/time-input/index.d.ts.map +0 -1
  682. package/build-types/date-time/time-input/test/index.d.ts.map +0 -1
  683. package/build-types/utils/input/base.d.ts +0 -3
  684. package/build-types/utils/input/base.d.ts.map +0 -1
  685. package/build-types/utils/input/index.d.ts +0 -2
  686. package/build-types/utils/input/index.d.ts.map +0 -1
  687. package/build-types/utils/input/input-control.d.ts +0 -2
  688. package/build-types/utils/input/input-control.d.ts.map +0 -1
  689. package/src/composite/current/index.ts +0 -20
  690. package/src/composite/current/stories/index.story.tsx +0 -86
  691. package/src/composite/index.ts +0 -7
  692. package/src/composite/v2.ts +0 -4
  693. package/src/date-time/stories/time-input.story.tsx +0 -36
  694. package/src/utils/input/base.js +0 -30
  695. package/src/utils/input/index.js +0 -1
  696. package/src/utils/input/input-control.js +0 -63
  697. /package/build-types/date-time/{time-input → time/time-input}/test/index.d.ts +0 -0
  698. /package/src/date-time/{time-input → time/time-input}/test/index.tsx +0 -0
@@ -13,6 +13,7 @@ var _router = require("../utils/router");
13
13
  var _view = require("../../view");
14
14
  var _context2 = require("../context");
15
15
  var styles = _interopRequireWildcard(require("../styles"));
16
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -124,9 +125,6 @@ function routerReducer(state, action) {
124
125
  case 'remove':
125
126
  screens = removeScreen(state, action.screen);
126
127
  break;
127
- case 'goback':
128
- locationHistory = goBack(state);
129
- break;
130
128
  case 'goto':
131
129
  locationHistory = goTo(state, action.path, action.options);
132
130
  break;
@@ -172,18 +170,28 @@ function UnconnectedNavigatorProvider(props, forwardedRef) {
172
170
 
173
171
  // The methods are constant forever, create stable references to them.
174
172
  const methods = (0, _element.useMemo)(() => ({
175
- goBack: () => dispatch({
176
- type: 'goback'
173
+ // Note: calling goBack calls `goToParent` internally, as it was established
174
+ // that `goBack` should behave like `goToParent`, and `goToParent` should
175
+ // be marked as deprecated.
176
+ goBack: options => dispatch({
177
+ type: 'gotoparent',
178
+ options
177
179
  }),
178
180
  goTo: (path, options) => dispatch({
179
181
  type: 'goto',
180
182
  path,
181
183
  options
182
184
  }),
183
- goToParent: options => dispatch({
184
- type: 'gotoparent',
185
- options
186
- }),
185
+ goToParent: options => {
186
+ (0, _deprecated.default)(`wp.components.useNavigator().goToParent`, {
187
+ since: '6.7',
188
+ alternative: 'wp.components.useNavigator().goBack'
189
+ });
190
+ dispatch({
191
+ type: 'gotoparent',
192
+ options
193
+ });
194
+ },
187
195
  addScreen: screen => dispatch({
188
196
  type: 'add',
189
197
  screen
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_isShallowEqual","_interopRequireDefault","_context","_useCx","_router","_view","_context2","styles","_interopRequireWildcard","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MAX_HISTORY_LENGTH","addScreen","screens","screen","removeScreen","filter","s","id","goBack","locationHistory","length","slice","isBack","hasRestoredFocus","goTo","state","path","options","focusTargetSelector","skipFocus","replace","restOptions","isNavigatingToSamePath","isNavigatingToPreviousPath","newLocation","newLocationHistory","push","goToParent","currentPath","undefined","parentPath","findParent","routerReducer","action","matchedPath","type","patternMatch","isShallowEqual","params","UnconnectedNavigatorProvider","props","forwardedRef","initialPath","children","className","otherProps","useContextSystem","routerState","dispatch","useReducer","methods","useMemo","navigatorContextValue","_matchedPath$params","location","isInitial","match","cx","useCx","classes","navigatorProviderWrapper","jsx","View","ref","NavigatorContext","Provider","value","NavigatorProvider","exports","contextConnect","_default"],"sources":["@wordpress/components/src/navigator/navigator-provider/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useReducer } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { patternMatch, findParent } from '../utils/router';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport * as styles from '../styles';\nimport type {\n\tNavigatorProviderProps,\n\tNavigatorLocation,\n\tNavigatorContext as NavigatorContextType,\n\tNavigateOptions,\n\tScreen,\n\tNavigateToParentOptions,\n} from '../types';\n\ntype MatchedPath = ReturnType< typeof patternMatch >;\n\ntype RouterAction =\n\t| { type: 'add' | 'remove'; screen: Screen }\n\t| { type: 'goback' }\n\t| { type: 'goto'; path: string; options?: NavigateOptions }\n\t| { type: 'gotoparent'; options?: NavigateToParentOptions };\n\ntype RouterState = {\n\tscreens: Screen[];\n\tlocationHistory: NavigatorLocation[];\n\tmatchedPath: MatchedPath;\n};\n\nconst MAX_HISTORY_LENGTH = 50;\n\nfunction addScreen( { screens }: RouterState, screen: Screen ) {\n\treturn [ ...screens, screen ];\n}\n\nfunction removeScreen( { screens }: RouterState, screen: Screen ) {\n\treturn screens.filter( ( s ) => s.id !== screen.id );\n}\n\nfunction goBack( { locationHistory }: RouterState ) {\n\tif ( locationHistory.length <= 1 ) {\n\t\treturn locationHistory;\n\t}\n\treturn [\n\t\t...locationHistory.slice( 0, -2 ),\n\t\t{\n\t\t\t...locationHistory[ locationHistory.length - 2 ],\n\t\t\tisBack: true,\n\t\t\thasRestoredFocus: false,\n\t\t},\n\t];\n}\n\nfunction goTo(\n\tstate: RouterState,\n\tpath: string,\n\toptions: NavigateOptions = {}\n) {\n\tconst { locationHistory } = state;\n\tconst {\n\t\tfocusTargetSelector,\n\t\tisBack = false,\n\t\tskipFocus = false,\n\t\treplace = false,\n\t\t...restOptions\n\t} = options;\n\n\tconst isNavigatingToSamePath =\n\t\tlocationHistory.length > 0 &&\n\t\tlocationHistory[ locationHistory.length - 1 ].path === path;\n\tif ( isNavigatingToSamePath ) {\n\t\treturn locationHistory;\n\t}\n\n\tconst isNavigatingToPreviousPath =\n\t\tisBack &&\n\t\tlocationHistory.length > 1 &&\n\t\tlocationHistory[ locationHistory.length - 2 ].path === path;\n\n\tif ( isNavigatingToPreviousPath ) {\n\t\treturn goBack( state );\n\t}\n\n\tconst newLocation = {\n\t\t...restOptions,\n\t\tpath,\n\t\tisBack,\n\t\thasRestoredFocus: false,\n\t\tskipFocus,\n\t};\n\n\tif ( locationHistory.length === 0 ) {\n\t\treturn replace ? [] : [ newLocation ];\n\t}\n\n\tconst newLocationHistory = locationHistory.slice(\n\t\tlocationHistory.length > MAX_HISTORY_LENGTH - 1 ? 1 : 0,\n\t\t-1\n\t);\n\n\tif ( ! replace ) {\n\t\tnewLocationHistory.push(\n\t\t\t// Assign `focusTargetSelector` to the previous location in history\n\t\t\t// (the one we just navigated from).\n\t\t\t{\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tfocusTargetSelector,\n\t\t\t}\n\t\t);\n\t}\n\n\tnewLocationHistory.push( newLocation );\n\n\treturn newLocationHistory;\n}\n\nfunction goToParent(\n\tstate: RouterState,\n\toptions: NavigateToParentOptions = {}\n) {\n\tconst { locationHistory, screens } = state;\n\tconst currentPath = locationHistory[ locationHistory.length - 1 ].path;\n\tif ( currentPath === undefined ) {\n\t\treturn locationHistory;\n\t}\n\tconst parentPath = findParent( currentPath, screens );\n\tif ( parentPath === undefined ) {\n\t\treturn locationHistory;\n\t}\n\treturn goTo( state, parentPath, {\n\t\t...options,\n\t\tisBack: true,\n\t} );\n}\n\nfunction routerReducer(\n\tstate: RouterState,\n\taction: RouterAction\n): RouterState {\n\tlet { screens, locationHistory, matchedPath } = state;\n\tswitch ( action.type ) {\n\t\tcase 'add':\n\t\t\tscreens = addScreen( state, action.screen );\n\t\t\tbreak;\n\t\tcase 'remove':\n\t\t\tscreens = removeScreen( state, action.screen );\n\t\t\tbreak;\n\t\tcase 'goback':\n\t\t\tlocationHistory = goBack( state );\n\t\t\tbreak;\n\t\tcase 'goto':\n\t\t\tlocationHistory = goTo( state, action.path, action.options );\n\t\t\tbreak;\n\t\tcase 'gotoparent':\n\t\t\tlocationHistory = goToParent( state, action.options );\n\t\t\tbreak;\n\t}\n\n\t// Return early in case there is no change\n\tif (\n\t\tscreens === state.screens &&\n\t\tlocationHistory === state.locationHistory\n\t) {\n\t\treturn state;\n\t}\n\n\t// Compute the matchedPath\n\tconst currentPath =\n\t\tlocationHistory.length > 0\n\t\t\t? locationHistory[ locationHistory.length - 1 ].path\n\t\t\t: undefined;\n\tmatchedPath =\n\t\tcurrentPath !== undefined\n\t\t\t? patternMatch( currentPath, screens )\n\t\t\t: undefined;\n\n\t// If the new match is the same as the previous match,\n\t// return the previous one to keep immutability.\n\tif (\n\t\tmatchedPath &&\n\t\tstate.matchedPath &&\n\t\tmatchedPath.id === state.matchedPath.id &&\n\t\tisShallowEqual( matchedPath.params, state.matchedPath.params )\n\t) {\n\t\tmatchedPath = state.matchedPath;\n\t}\n\n\treturn { screens, locationHistory, matchedPath };\n}\n\nfunction UnconnectedNavigatorProvider(\n\tprops: WordPressComponentProps< NavigatorProviderProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { initialPath, children, className, ...otherProps } =\n\t\tuseContextSystem( props, 'NavigatorProvider' );\n\n\tconst [ routerState, dispatch ] = useReducer(\n\t\trouterReducer,\n\t\tinitialPath,\n\t\t( path ) => ( {\n\t\t\tscreens: [],\n\t\t\tlocationHistory: [ { path } ],\n\t\t\tmatchedPath: undefined,\n\t\t} )\n\t);\n\n\t// The methods are constant forever, create stable references to them.\n\tconst methods = useMemo(\n\t\t() => ( {\n\t\t\tgoBack: () => dispatch( { type: 'goback' } ),\n\t\t\tgoTo: ( path: string, options?: NavigateOptions ) =>\n\t\t\t\tdispatch( { type: 'goto', path, options } ),\n\t\t\tgoToParent: ( options: NavigateToParentOptions | undefined ) =>\n\t\t\t\tdispatch( { type: 'gotoparent', options } ),\n\t\t\taddScreen: ( screen: Screen ) =>\n\t\t\t\tdispatch( { type: 'add', screen } ),\n\t\t\tremoveScreen: ( screen: Screen ) =>\n\t\t\t\tdispatch( { type: 'remove', screen } ),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst { locationHistory, matchedPath } = routerState;\n\n\tconst navigatorContextValue: NavigatorContextType = useMemo(\n\t\t() => ( {\n\t\t\tlocation: {\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tisInitial: locationHistory.length === 1,\n\t\t\t},\n\t\t\tparams: matchedPath?.params ?? {},\n\t\t\tmatch: matchedPath?.id,\n\t\t\t...methods,\n\t\t} ),\n\t\t[ locationHistory, matchedPath, methods ]\n\t);\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() => cx( styles.navigatorProviderWrapper, className ),\n\t\t[ className, cx ]\n\t);\n\n\treturn (\n\t\t<View ref={ forwardedRef } className={ classes } { ...otherProps }>\n\t\t\t<NavigatorContext.Provider value={ navigatorContextValue }>\n\t\t\t\t{ children }\n\t\t\t</NavigatorContext.Provider>\n\t\t</View>\n\t);\n}\n\n/**\n * The `NavigatorProvider` component allows rendering nested views/panels/menus\n * (via the `NavigatorScreen` component and navigate between these different\n * view (via the `NavigatorButton` and `NavigatorBackButton` components or the\n * `useNavigator` hook).\n *\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorProvider = contextConnect(\n\tUnconnectedNavigatorProvider,\n\t'NavigatorProvider'\n);\n\nexport default NavigatorProvider;\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAMA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAC,uBAAA,CAAAT,OAAA;AAAoC,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAW,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AApBpC;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AA+BA,MAAMW,kBAAkB,GAAG,EAAE;AAE7B,SAASC,SAASA,CAAE;EAAEC;AAAqB,CAAC,EAAEC,MAAc,EAAG;EAC9D,OAAO,CAAE,GAAGD,OAAO,EAAEC,MAAM,CAAE;AAC9B;AAEA,SAASC,YAAYA,CAAE;EAAEF;AAAqB,CAAC,EAAEC,MAAc,EAAG;EACjE,OAAOD,OAAO,CAACG,MAAM,CAAIC,CAAC,IAAMA,CAAC,CAACC,EAAE,KAAKJ,MAAM,CAACI,EAAG,CAAC;AACrD;AAEA,SAASC,MAAMA,CAAE;EAAEC;AAA6B,CAAC,EAAG;EACnD,IAAKA,eAAe,CAACC,MAAM,IAAI,CAAC,EAAG;IAClC,OAAOD,eAAe;EACvB;EACA,OAAO,CACN,GAAGA,eAAe,CAACE,KAAK,CAAE,CAAC,EAAE,CAAC,CAAE,CAAC,EACjC;IACC,GAAGF,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE;IAChDE,MAAM,EAAE,IAAI;IACZC,gBAAgB,EAAE;EACnB,CAAC,CACD;AACF;AAEA,SAASC,IAAIA,CACZC,KAAkB,EAClBC,IAAY,EACZC,OAAwB,GAAG,CAAC,CAAC,EAC5B;EACD,MAAM;IAAER;EAAgB,CAAC,GAAGM,KAAK;EACjC,MAAM;IACLG,mBAAmB;IACnBN,MAAM,GAAG,KAAK;IACdO,SAAS,GAAG,KAAK;IACjBC,OAAO,GAAG,KAAK;IACf,GAAGC;EACJ,CAAC,GAAGJ,OAAO;EAEX,MAAMK,sBAAsB,GAC3Bb,eAAe,CAACC,MAAM,GAAG,CAAC,IAC1BD,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE,CAACM,IAAI,KAAKA,IAAI;EAC5D,IAAKM,sBAAsB,EAAG;IAC7B,OAAOb,eAAe;EACvB;EAEA,MAAMc,0BAA0B,GAC/BX,MAAM,IACNH,eAAe,CAACC,MAAM,GAAG,CAAC,IAC1BD,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE,CAACM,IAAI,KAAKA,IAAI;EAE5D,IAAKO,0BAA0B,EAAG;IACjC,OAAOf,MAAM,CAAEO,KAAM,CAAC;EACvB;EAEA,MAAMS,WAAW,GAAG;IACnB,GAAGH,WAAW;IACdL,IAAI;IACJJ,MAAM;IACNC,gBAAgB,EAAE,KAAK;IACvBM;EACD,CAAC;EAED,IAAKV,eAAe,CAACC,MAAM,KAAK,CAAC,EAAG;IACnC,OAAOU,OAAO,GAAG,EAAE,GAAG,CAAEI,WAAW,CAAE;EACtC;EAEA,MAAMC,kBAAkB,GAAGhB,eAAe,CAACE,KAAK,CAC/CF,eAAe,CAACC,MAAM,GAAGV,kBAAkB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACvD,CAAC,CACF,CAAC;EAED,IAAK,CAAEoB,OAAO,EAAG;IAChBK,kBAAkB,CAACC,IAAI;IACtB;IACA;IACA;MACC,GAAGjB,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE;MAChDQ;IACD,CACD,CAAC;EACF;EAEAO,kBAAkB,CAACC,IAAI,CAAEF,WAAY,CAAC;EAEtC,OAAOC,kBAAkB;AAC1B;AAEA,SAASE,UAAUA,CAClBZ,KAAkB,EAClBE,OAAgC,GAAG,CAAC,CAAC,EACpC;EACD,MAAM;IAAER,eAAe;IAAEP;EAAQ,CAAC,GAAGa,KAAK;EAC1C,MAAMa,WAAW,GAAGnB,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE,CAACM,IAAI;EACtE,IAAKY,WAAW,KAAKC,SAAS,EAAG;IAChC,OAAOpB,eAAe;EACvB;EACA,MAAMqB,UAAU,GAAG,IAAAC,kBAAU,EAAEH,WAAW,EAAE1B,OAAQ,CAAC;EACrD,IAAK4B,UAAU,KAAKD,SAAS,EAAG;IAC/B,OAAOpB,eAAe;EACvB;EACA,OAAOK,IAAI,CAAEC,KAAK,EAAEe,UAAU,EAAE;IAC/B,GAAGb,OAAO;IACVL,MAAM,EAAE;EACT,CAAE,CAAC;AACJ;AAEA,SAASoB,aAAaA,CACrBjB,KAAkB,EAClBkB,MAAoB,EACN;EACd,IAAI;IAAE/B,OAAO;IAAEO,eAAe;IAAEyB;EAAY,CAAC,GAAGnB,KAAK;EACrD,QAASkB,MAAM,CAACE,IAAI;IACnB,KAAK,KAAK;MACTjC,OAAO,GAAGD,SAAS,CAAEc,KAAK,EAAEkB,MAAM,CAAC9B,MAAO,CAAC;MAC3C;IACD,KAAK,QAAQ;MACZD,OAAO,GAAGE,YAAY,CAAEW,KAAK,EAAEkB,MAAM,CAAC9B,MAAO,CAAC;MAC9C;IACD,KAAK,QAAQ;MACZM,eAAe,GAAGD,MAAM,CAAEO,KAAM,CAAC;MACjC;IACD,KAAK,MAAM;MACVN,eAAe,GAAGK,IAAI,CAAEC,KAAK,EAAEkB,MAAM,CAACjB,IAAI,EAAEiB,MAAM,CAAChB,OAAQ,CAAC;MAC5D;IACD,KAAK,YAAY;MAChBR,eAAe,GAAGkB,UAAU,CAAEZ,KAAK,EAAEkB,MAAM,CAAChB,OAAQ,CAAC;MACrD;EACF;;EAEA;EACA,IACCf,OAAO,KAAKa,KAAK,CAACb,OAAO,IACzBO,eAAe,KAAKM,KAAK,CAACN,eAAe,EACxC;IACD,OAAOM,KAAK;EACb;;EAEA;EACA,MAAMa,WAAW,GAChBnB,eAAe,CAACC,MAAM,GAAG,CAAC,GACvBD,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE,CAACM,IAAI,GAClDa,SAAS;EACbK,WAAW,GACVN,WAAW,KAAKC,SAAS,GACtB,IAAAO,oBAAY,EAAER,WAAW,EAAE1B,OAAQ,CAAC,GACpC2B,SAAS;;EAEb;EACA;EACA,IACCK,WAAW,IACXnB,KAAK,CAACmB,WAAW,IACjBA,WAAW,CAAC3B,EAAE,KAAKQ,KAAK,CAACmB,WAAW,CAAC3B,EAAE,IACvC,IAAA8B,uBAAc,EAAEH,WAAW,CAACI,MAAM,EAAEvB,KAAK,CAACmB,WAAW,CAACI,MAAO,CAAC,EAC7D;IACDJ,WAAW,GAAGnB,KAAK,CAACmB,WAAW;EAChC;EAEA,OAAO;IAAEhC,OAAO;IAAEO,eAAe;IAAEyB;EAAY,CAAC;AACjD;AAEA,SAASK,4BAA4BA,CACpCC,KAA+D,EAC/DC,YAAiC,EAChC;EACD,MAAM;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,SAAS;IAAE,GAAGC;EAAW,CAAC,GACxD,IAAAC,yBAAgB,EAAEN,KAAK,EAAE,mBAAoB,CAAC;EAE/C,MAAM,CAAEO,WAAW,EAAEC,QAAQ,CAAE,GAAG,IAAAC,mBAAU,EAC3CjB,aAAa,EACbU,WAAW,EACT1B,IAAI,KAAQ;IACbd,OAAO,EAAE,EAAE;IACXO,eAAe,EAAE,CAAE;MAAEO;IAAK,CAAC,CAAE;IAC7BkB,WAAW,EAAEL;EACd,CAAC,CACF,CAAC;;EAED;EACA,MAAMqB,OAAO,GAAG,IAAAC,gBAAO,EACtB,OAAQ;IACP3C,MAAM,EAAEA,CAAA,KAAMwC,QAAQ,CAAE;MAAEb,IAAI,EAAE;IAAS,CAAE,CAAC;IAC5CrB,IAAI,EAAEA,CAAEE,IAAY,EAAEC,OAAyB,KAC9C+B,QAAQ,CAAE;MAAEb,IAAI,EAAE,MAAM;MAAEnB,IAAI;MAAEC;IAAQ,CAAE,CAAC;IAC5CU,UAAU,EAAIV,OAA4C,IACzD+B,QAAQ,CAAE;MAAEb,IAAI,EAAE,YAAY;MAAElB;IAAQ,CAAE,CAAC;IAC5ChB,SAAS,EAAIE,MAAc,IAC1B6C,QAAQ,CAAE;MAAEb,IAAI,EAAE,KAAK;MAAEhC;IAAO,CAAE,CAAC;IACpCC,YAAY,EAAID,MAAc,IAC7B6C,QAAQ,CAAE;MAAEb,IAAI,EAAE,QAAQ;MAAEhC;IAAO,CAAE;EACvC,CAAC,CAAE,EACH,EACD,CAAC;EAED,MAAM;IAAEM,eAAe;IAAEyB;EAAY,CAAC,GAAGa,WAAW;EAEpD,MAAMK,qBAA2C,GAAG,IAAAD,gBAAO,EAC1D;IAAA,IAAAE,mBAAA;IAAA,OAAQ;MACPC,QAAQ,EAAE;QACT,GAAG7C,eAAe,CAAEA,eAAe,CAACC,MAAM,GAAG,CAAC,CAAE;QAChD6C,SAAS,EAAE9C,eAAe,CAACC,MAAM,KAAK;MACvC,CAAC;MACD4B,MAAM,GAAAe,mBAAA,GAAEnB,WAAW,EAAEI,MAAM,cAAAe,mBAAA,cAAAA,mBAAA,GAAI,CAAC,CAAC;MACjCG,KAAK,EAAEtB,WAAW,EAAE3B,EAAE;MACtB,GAAG2C;IACJ,CAAC;EAAA,CAAE,EACH,CAAEzC,eAAe,EAAEyB,WAAW,EAAEgB,OAAO,CACxC,CAAC;EAED,MAAMO,EAAE,GAAG,IAAAC,YAAK,EAAC,CAAC;EAClB,MAAMC,OAAO,GAAG,IAAAR,gBAAO,EACtB,MAAMM,EAAE,CAAEhF,MAAM,CAACmF,wBAAwB,EAAEhB,SAAU,CAAC,EACtD,CAAEA,SAAS,EAAEa,EAAE,CAChB,CAAC;EAED,oBACC,IAAA9E,WAAA,CAAAkF,GAAA,EAACtF,KAAA,CAAAuF,IAAI;IAACC,GAAG,EAAGtB,YAAc;IAACG,SAAS,EAAGe,OAAS;IAAA,GAAMd,UAAU;IAAAF,QAAA,eAC/D,IAAAhE,WAAA,CAAAkF,GAAA,EAACrF,SAAA,CAAAwF,gBAAgB,CAACC,QAAQ;MAACC,KAAK,EAAGd,qBAAuB;MAAAT,QAAA,EACvDA;IAAQ,CACgB;EAAC,CACvB,CAAC;AAET;;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;AACO,MAAMwB,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,uBAAc,EAC9C9B,4BAA4B,EAC5B,mBACD,CAAC;AAAC,IAAA+B,QAAA,GAAAF,OAAA,CAAAlF,OAAA,GAEaiF,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_isShallowEqual","_interopRequireDefault","_context","_useCx","_router","_view","_context2","styles","_interopRequireWildcard","_deprecated","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MAX_HISTORY_LENGTH","addScreen","screens","screen","removeScreen","filter","s","id","goBack","locationHistory","length","slice","isBack","hasRestoredFocus","goTo","state","path","options","focusTargetSelector","skipFocus","replace","restOptions","isNavigatingToSamePath","isNavigatingToPreviousPath","newLocation","newLocationHistory","push","goToParent","currentPath","undefined","parentPath","findParent","routerReducer","action","matchedPath","type","patternMatch","isShallowEqual","params","UnconnectedNavigatorProvider","props","forwardedRef","initialPath","children","className","otherProps","useContextSystem","routerState","dispatch","useReducer","methods","useMemo","deprecated","since","alternative","navigatorContextValue","_matchedPath$params","location","isInitial","match","cx","useCx","classes","navigatorProviderWrapper","jsx","View","ref","NavigatorContext","Provider","value","NavigatorProvider","exports","contextConnect","_default"],"sources":["@wordpress/components/src/navigator/navigator-provider/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useReducer } from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { patternMatch, findParent } from '../utils/router';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport * as styles from '../styles';\nimport type {\n\tNavigatorProviderProps,\n\tNavigatorLocation,\n\tNavigatorContext as NavigatorContextType,\n\tNavigateOptions,\n\tScreen,\n\tNavigateToParentOptions,\n} from '../types';\nimport deprecated from '@wordpress/deprecated';\n\ntype MatchedPath = ReturnType< typeof patternMatch >;\n\ntype RouterAction =\n\t| { type: 'add' | 'remove'; screen: Screen }\n\t| { type: 'goto'; path: string; options?: NavigateOptions }\n\t| { type: 'gotoparent'; options?: NavigateToParentOptions };\n\ntype RouterState = {\n\tscreens: Screen[];\n\tlocationHistory: NavigatorLocation[];\n\tmatchedPath: MatchedPath;\n};\n\nconst MAX_HISTORY_LENGTH = 50;\n\nfunction addScreen( { screens }: RouterState, screen: Screen ) {\n\treturn [ ...screens, screen ];\n}\n\nfunction removeScreen( { screens }: RouterState, screen: Screen ) {\n\treturn screens.filter( ( s ) => s.id !== screen.id );\n}\n\nfunction goBack( { locationHistory }: RouterState ) {\n\tif ( locationHistory.length <= 1 ) {\n\t\treturn locationHistory;\n\t}\n\treturn [\n\t\t...locationHistory.slice( 0, -2 ),\n\t\t{\n\t\t\t...locationHistory[ locationHistory.length - 2 ],\n\t\t\tisBack: true,\n\t\t\thasRestoredFocus: false,\n\t\t},\n\t];\n}\n\nfunction goTo(\n\tstate: RouterState,\n\tpath: string,\n\toptions: NavigateOptions = {}\n) {\n\tconst { locationHistory } = state;\n\tconst {\n\t\tfocusTargetSelector,\n\t\tisBack = false,\n\t\tskipFocus = false,\n\t\treplace = false,\n\t\t...restOptions\n\t} = options;\n\n\tconst isNavigatingToSamePath =\n\t\tlocationHistory.length > 0 &&\n\t\tlocationHistory[ locationHistory.length - 1 ].path === path;\n\tif ( isNavigatingToSamePath ) {\n\t\treturn locationHistory;\n\t}\n\n\tconst isNavigatingToPreviousPath =\n\t\tisBack &&\n\t\tlocationHistory.length > 1 &&\n\t\tlocationHistory[ locationHistory.length - 2 ].path === path;\n\n\tif ( isNavigatingToPreviousPath ) {\n\t\treturn goBack( state );\n\t}\n\n\tconst newLocation = {\n\t\t...restOptions,\n\t\tpath,\n\t\tisBack,\n\t\thasRestoredFocus: false,\n\t\tskipFocus,\n\t};\n\n\tif ( locationHistory.length === 0 ) {\n\t\treturn replace ? [] : [ newLocation ];\n\t}\n\n\tconst newLocationHistory = locationHistory.slice(\n\t\tlocationHistory.length > MAX_HISTORY_LENGTH - 1 ? 1 : 0,\n\t\t-1\n\t);\n\n\tif ( ! replace ) {\n\t\tnewLocationHistory.push(\n\t\t\t// Assign `focusTargetSelector` to the previous location in history\n\t\t\t// (the one we just navigated from).\n\t\t\t{\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tfocusTargetSelector,\n\t\t\t}\n\t\t);\n\t}\n\n\tnewLocationHistory.push( newLocation );\n\n\treturn newLocationHistory;\n}\n\nfunction goToParent(\n\tstate: RouterState,\n\toptions: NavigateToParentOptions = {}\n) {\n\tconst { locationHistory, screens } = state;\n\tconst currentPath = locationHistory[ locationHistory.length - 1 ].path;\n\tif ( currentPath === undefined ) {\n\t\treturn locationHistory;\n\t}\n\tconst parentPath = findParent( currentPath, screens );\n\tif ( parentPath === undefined ) {\n\t\treturn locationHistory;\n\t}\n\treturn goTo( state, parentPath, {\n\t\t...options,\n\t\tisBack: true,\n\t} );\n}\n\nfunction routerReducer(\n\tstate: RouterState,\n\taction: RouterAction\n): RouterState {\n\tlet { screens, locationHistory, matchedPath } = state;\n\tswitch ( action.type ) {\n\t\tcase 'add':\n\t\t\tscreens = addScreen( state, action.screen );\n\t\t\tbreak;\n\t\tcase 'remove':\n\t\t\tscreens = removeScreen( state, action.screen );\n\t\t\tbreak;\n\t\tcase 'goto':\n\t\t\tlocationHistory = goTo( state, action.path, action.options );\n\t\t\tbreak;\n\t\tcase 'gotoparent':\n\t\t\tlocationHistory = goToParent( state, action.options );\n\t\t\tbreak;\n\t}\n\n\t// Return early in case there is no change\n\tif (\n\t\tscreens === state.screens &&\n\t\tlocationHistory === state.locationHistory\n\t) {\n\t\treturn state;\n\t}\n\n\t// Compute the matchedPath\n\tconst currentPath =\n\t\tlocationHistory.length > 0\n\t\t\t? locationHistory[ locationHistory.length - 1 ].path\n\t\t\t: undefined;\n\tmatchedPath =\n\t\tcurrentPath !== undefined\n\t\t\t? patternMatch( currentPath, screens )\n\t\t\t: undefined;\n\n\t// If the new match is the same as the previous match,\n\t// return the previous one to keep immutability.\n\tif (\n\t\tmatchedPath &&\n\t\tstate.matchedPath &&\n\t\tmatchedPath.id === state.matchedPath.id &&\n\t\tisShallowEqual( matchedPath.params, state.matchedPath.params )\n\t) {\n\t\tmatchedPath = state.matchedPath;\n\t}\n\n\treturn { screens, locationHistory, matchedPath };\n}\n\nfunction UnconnectedNavigatorProvider(\n\tprops: WordPressComponentProps< NavigatorProviderProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst { initialPath, children, className, ...otherProps } =\n\t\tuseContextSystem( props, 'NavigatorProvider' );\n\n\tconst [ routerState, dispatch ] = useReducer(\n\t\trouterReducer,\n\t\tinitialPath,\n\t\t( path ) => ( {\n\t\t\tscreens: [],\n\t\t\tlocationHistory: [ { path } ],\n\t\t\tmatchedPath: undefined,\n\t\t} )\n\t);\n\n\t// The methods are constant forever, create stable references to them.\n\tconst methods = useMemo(\n\t\t() => ( {\n\t\t\t// Note: calling goBack calls `goToParent` internally, as it was established\n\t\t\t// that `goBack` should behave like `goToParent`, and `goToParent` should\n\t\t\t// be marked as deprecated.\n\t\t\tgoBack: ( options: NavigateToParentOptions | undefined ) =>\n\t\t\t\tdispatch( { type: 'gotoparent', options } ),\n\t\t\tgoTo: ( path: string, options?: NavigateOptions ) =>\n\t\t\t\tdispatch( { type: 'goto', path, options } ),\n\t\t\tgoToParent: ( options: NavigateToParentOptions | undefined ) => {\n\t\t\t\tdeprecated( `wp.components.useNavigator().goToParent`, {\n\t\t\t\t\tsince: '6.7',\n\t\t\t\t\talternative: 'wp.components.useNavigator().goBack',\n\t\t\t\t} );\n\t\t\t\tdispatch( { type: 'gotoparent', options } );\n\t\t\t},\n\t\t\taddScreen: ( screen: Screen ) =>\n\t\t\t\tdispatch( { type: 'add', screen } ),\n\t\t\tremoveScreen: ( screen: Screen ) =>\n\t\t\t\tdispatch( { type: 'remove', screen } ),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst { locationHistory, matchedPath } = routerState;\n\n\tconst navigatorContextValue: NavigatorContextType = useMemo(\n\t\t() => ( {\n\t\t\tlocation: {\n\t\t\t\t...locationHistory[ locationHistory.length - 1 ],\n\t\t\t\tisInitial: locationHistory.length === 1,\n\t\t\t},\n\t\t\tparams: matchedPath?.params ?? {},\n\t\t\tmatch: matchedPath?.id,\n\t\t\t...methods,\n\t\t} ),\n\t\t[ locationHistory, matchedPath, methods ]\n\t);\n\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() => cx( styles.navigatorProviderWrapper, className ),\n\t\t[ className, cx ]\n\t);\n\n\treturn (\n\t\t<View ref={ forwardedRef } className={ classes } { ...otherProps }>\n\t\t\t<NavigatorContext.Provider value={ navigatorContextValue }>\n\t\t\t\t{ children }\n\t\t\t</NavigatorContext.Provider>\n\t\t</View>\n\t);\n}\n\n/**\n * The `NavigatorProvider` component allows rendering nested views/panels/menus\n * (via the `NavigatorScreen` component and navigate between these different\n * view (via the `NavigatorButton` and `NavigatorBackButton` components or the\n * `useNavigator` hook).\n *\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorProvider = contextConnect(\n\tUnconnectedNavigatorProvider,\n\t'NavigatorProvider'\n);\n\nexport default NavigatorProvider;\n"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = exports.NavigatorToParentButton = void 0;
8
+ var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
9
+ var _navigatorBackButton = require("../navigator-back-button");
7
10
  var _context = require("../../context");
8
- var _view = require("../../view");
9
- var _hook = require("../navigator-back-button/hook");
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  /**
12
- * External dependencies
13
+ * WordPress dependencies
13
14
  */
14
15
 
15
16
  /**
@@ -17,49 +18,21 @@ var _jsxRuntime = require("react/jsx-runtime");
17
18
  */
18
19
 
19
20
  function UnconnectedNavigatorToParentButton(props, forwardedRef) {
20
- const navigatorToParentButtonProps = (0, _hook.useNavigatorBackButton)({
21
- ...props,
22
- goToParent: true
21
+ (0, _deprecated.default)('wp.components.NavigatorToParentButton', {
22
+ since: '6.7',
23
+ alternative: 'wp.components.NavigatorBackButton'
23
24
  });
24
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_view.View, {
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_navigatorBackButton.NavigatorBackButton, {
25
26
  ref: forwardedRef,
26
- ...navigatorToParentButtonProps
27
+ ...props
27
28
  });
28
29
  }
29
30
 
30
- /*
31
- * The `NavigatorToParentButton` component can be used to navigate to a screen and
32
- * should be used in combination with the `NavigatorProvider`, the
33
- * `NavigatorScreen` and the `NavigatorButton` components (or the `useNavigator`
34
- * hook).
35
- *
36
- * @example
37
- * ```jsx
38
- * import {
39
- * __experimentalNavigatorProvider as NavigatorProvider,
40
- * __experimentalNavigatorScreen as NavigatorScreen,
41
- * __experimentalNavigatorButton as NavigatorButton,
42
- * __experimentalNavigatorToParentButton as NavigatorToParentButton,
43
- * } from '@wordpress/components';
44
- *
45
- * const MyNavigation = () => (
46
- * <NavigatorProvider initialPath="/">
47
- * <NavigatorScreen path="/">
48
- * <p>This is the home screen.</p>
49
- * <NavigatorButton path="/child">
50
- * Navigate to child screen.
51
- * </NavigatorButton>
52
- * </NavigatorScreen>
31
+ /**
32
+ * _Note: this component is deprecated. Please use the `NavigatorBackButton`
33
+ * component instead._
53
34
  *
54
- * <NavigatorScreen path="/child">
55
- * <p>This is the child screen.</p>
56
- * <NavigatorToParentButton>
57
- * Go to parent
58
- * </NavigatorToParentButton>
59
- * </NavigatorScreen>
60
- * </NavigatorProvider>
61
- * );
62
- * ```
35
+ * @deprecated
63
36
  */
64
37
  const NavigatorToParentButton = exports.NavigatorToParentButton = (0, _context.contextConnect)(UnconnectedNavigatorToParentButton, 'NavigatorToParentButton');
65
38
  var _default = exports.default = NavigatorToParentButton;
@@ -1 +1 @@
1
- {"version":3,"names":["_context","require","_view","_hook","_jsxRuntime","UnconnectedNavigatorToParentButton","props","forwardedRef","navigatorToParentButtonProps","useNavigatorBackButton","goToParent","jsx","View","ref","NavigatorToParentButton","exports","contextConnect","_default","default"],"sources":["@wordpress/components/src/navigator/navigator-to-parent-button/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport { View } from '../../view';\nimport { useNavigatorBackButton } from '../navigator-back-button/hook';\nimport type { NavigatorToParentButtonProps } from '../types';\n\nfunction UnconnectedNavigatorToParentButton(\n\tprops: WordPressComponentProps< NavigatorToParentButtonProps, 'button' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst navigatorToParentButtonProps = useNavigatorBackButton( {\n\t\t...props,\n\t\tgoToParent: true,\n\t} );\n\n\treturn <View ref={ forwardedRef } { ...navigatorToParentButtonProps } />;\n}\n\n/*\n * The `NavigatorToParentButton` component can be used to navigate to a screen and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorScreen` and the `NavigatorButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorToParentButton as NavigatorToParentButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorToParentButton>\n * Go to parent\n * </NavigatorToParentButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorToParentButton = contextConnect(\n\tUnconnectedNavigatorToParentButton,\n\t'NavigatorToParentButton'\n);\n\nexport default NavigatorToParentButton;\n"],"mappings":";;;;;;AASA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAuE,IAAAG,WAAA,GAAAH,OAAA;AAXvE;AACA;AACA;;AAGA;AACA;AACA;;AAOA,SAASI,kCAAkCA,CAC1CC,KAAwE,EACxEC,YAAiC,EAChC;EACD,MAAMC,4BAA4B,GAAG,IAAAC,4BAAsB,EAAE;IAC5D,GAAGH,KAAK;IACRI,UAAU,EAAE;EACb,CAAE,CAAC;EAEH,oBAAO,IAAAN,WAAA,CAAAO,GAAA,EAACT,KAAA,CAAAU,IAAI;IAACC,GAAG,EAAGN,YAAc;IAAA,GAAMC;EAA4B,CAAI,CAAC;AACzE;;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;AACO,MAAMM,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAAE,uBAAc,EACpDX,kCAAkC,EAClC,yBACD,CAAC;AAAC,IAAAY,QAAA,GAAAF,OAAA,CAAAG,OAAA,GAEaJ,uBAAuB","ignoreList":[]}
1
+ {"version":3,"names":["_deprecated","_interopRequireDefault","require","_navigatorBackButton","_context","_jsxRuntime","UnconnectedNavigatorToParentButton","props","forwardedRef","deprecated","since","alternative","jsx","NavigatorBackButton","ref","NavigatorToParentButton","exports","contextConnect","_default","default"],"sources":["@wordpress/components/src/navigator/navigator-to-parent-button/component.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { NavigatorBackButton } from '../navigator-back-button';\nimport type { WordPressComponentProps } from '../../context';\nimport { contextConnect } from '../../context';\nimport type { NavigatorBackButtonProps } from '../types';\n\nfunction UnconnectedNavigatorToParentButton(\n\tprops: WordPressComponentProps< NavigatorBackButtonProps, 'button' >,\n\tforwardedRef: React.ForwardedRef< any >\n) {\n\tdeprecated( 'wp.components.NavigatorToParentButton', {\n\t\tsince: '6.7',\n\t\talternative: 'wp.components.NavigatorBackButton',\n\t} );\n\n\treturn <NavigatorBackButton ref={ forwardedRef } { ...props } />;\n}\n\n/**\n * _Note: this component is deprecated. Please use the `NavigatorBackButton`\n * component instead._\n *\n * @deprecated\n */\nexport const NavigatorToParentButton = contextConnect(\n\tUnconnectedNavigatorToParentButton,\n\t'NavigatorToParentButton'\n);\n\nexport default NavigatorToParentButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,oBAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAF,OAAA;AAA+C,IAAAG,WAAA,GAAAH,OAAA;AAV/C;AACA;AACA;;AAGA;AACA;AACA;;AAMA,SAASI,kCAAkCA,CAC1CC,KAAoE,EACpEC,YAAuC,EACtC;EACD,IAAAC,mBAAU,EAAE,uCAAuC,EAAE;IACpDC,KAAK,EAAE,KAAK;IACZC,WAAW,EAAE;EACd,CAAE,CAAC;EAEH,oBAAO,IAAAN,WAAA,CAAAO,GAAA,EAACT,oBAAA,CAAAU,mBAAmB;IAACC,GAAG,EAAGN,YAAc;IAAA,GAAMD;EAAK,CAAI,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMQ,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAAE,uBAAc,EACpDX,kCAAkC,EAClC,yBACD,CAAC;AAAC,IAAAY,QAAA,GAAAF,OAAA,CAAAG,OAAA,GAEaJ,uBAAuB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/navigator/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { ButtonAsButtonProps } from '../button/types';\n\nexport type MatchParams = Record< string, string | string[] >;\n\nexport type NavigateOptions = {\n\tfocusTargetSelector?: string;\n\tisBack?: boolean;\n\tskipFocus?: boolean;\n\treplace?: boolean;\n};\n\nexport type NavigateToParentOptions = Omit< NavigateOptions, 'isBack' >;\n\nexport type NavigatorLocation = NavigateOptions & {\n\tisInitial?: boolean;\n\tpath?: string;\n\thasRestoredFocus?: boolean;\n};\n\n// Returned by the `useNavigator` hook.\nexport type Navigator = {\n\tlocation: NavigatorLocation;\n\tparams: MatchParams;\n\tgoTo: ( path: string, options?: NavigateOptions ) => void;\n\tgoBack: () => void;\n\tgoToParent: ( options?: NavigateToParentOptions ) => void;\n};\n\nexport type NavigatorContext = Navigator & {\n\taddScreen: ( screen: Screen ) => void;\n\tremoveScreen: ( screen: Screen ) => void;\n\tmatch?: string;\n};\n\nexport type NavigatorProviderProps = {\n\t/**\n\t * The initial active path.\n\t */\n\tinitialPath: string;\n\t/**\n\t * The children elements.\n\t */\n\tchildren: ReactNode;\n};\n\nexport type NavigatorScreenProps = {\n\t/**\n\t * The screen's path, matched against the current path stored in the navigator.\n\t */\n\tpath: string;\n\t/**\n\t * The children elements.\n\t */\n\tchildren: ReactNode;\n};\n\nexport type NavigatorBackButtonProps = ButtonAsButtonProps;\n\nexport type NavigatorBackButtonHookProps = NavigatorBackButtonProps & {\n\t/**\n\t * Whether we should navigate to the parent screen.\n\t *\n\t * @default 'false'\n\t */\n\tgoToParent?: boolean;\n};\n\nexport type NavigatorToParentButtonProps = NavigatorBackButtonProps;\n\nexport type NavigatorButtonProps = NavigatorBackButtonProps & {\n\t/**\n\t * The path of the screen to navigate to. The value of this prop needs to be\n\t * a valid value for an HTML attribute.\n\t */\n\tpath: string;\n\t/**\n\t * The HTML attribute used to identify the `NavigatorButton`, which is used\n\t * by `Navigator` to restore focus.\n\t *\n\t * @default 'id'\n\t */\n\tattributeName?: string;\n};\n\nexport type Screen = {\n\tid: string;\n\tpath: string;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/navigator/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { ButtonAsButtonProps } from '../button/types';\n\nexport type MatchParams = Record< string, string | string[] >;\n\nexport type NavigateOptions = {\n\t/**\n\t * Specify the CSS selector used to restore focus on an given element when\n\t * navigating back. When not provided, the component will attempt to restore\n\t * focus on the element that originated the forward navigation.\n\t */\n\tfocusTargetSelector?: string;\n\t/**\n\t * Whether the navigation is a backwards navigation. This enables focus\n\t * restoration (when possible), and causes the animation to be backwards.\n\t */\n\tisBack?: boolean;\n\t/**\n\t * Opt out of focus management. Useful when the consumer of the component\n\t * wants to manage focus themselves.\n\t */\n\tskipFocus?: boolean;\n\t/**\n\t * Whether the navigation should replace the current location in the stack.\n\t */\n\treplace?: boolean;\n};\n\nexport type NavigateToParentOptions = Omit< NavigateOptions, 'isBack' >;\n\nexport type NavigatorLocation = NavigateOptions & {\n\t/**\n\t * Whether the current location is the initial one (ie. first in the stack).\n\t */\n\tisInitial?: boolean;\n\t/**\n\t * The path associated to the location.\n\t */\n\tpath?: string;\n\t/**\n\t * Whether focus was already restored for this location (in case of\n\t * backwards navigation).\n\t */\n\thasRestoredFocus?: boolean;\n};\n\n// Returned by the `useNavigator` hook.\nexport type Navigator = {\n\t/**\n\t * The current location.\n\t */\n\tlocation: NavigatorLocation;\n\t/**\n\t * Params associated with the current location\n\t */\n\tparams: MatchParams;\n\t/**\n\t * Navigate to a new location.\n\t */\n\tgoTo: ( path: string, options?: NavigateOptions ) => void;\n\t/**\n\t * Go back to the parent location (ie. \"/some/path\" will navigate back\n\t * to \"/some\")\n\t */\n\tgoBack: ( options?: NavigateToParentOptions ) => void;\n\t/**\n\t * _Note: This function is deprecated. Please use `goBack` instead._\n\t * @deprecated\n\t * @ignore\n\t */\n\tgoToParent: ( options?: NavigateToParentOptions ) => void;\n};\n\nexport type NavigatorContext = Navigator & {\n\taddScreen: ( screen: Screen ) => void;\n\tremoveScreen: ( screen: Screen ) => void;\n\tmatch?: string;\n};\n\nexport type NavigatorProviderProps = {\n\t/**\n\t * The initial active path.\n\t */\n\tinitialPath: string;\n\t/**\n\t * The children elements.\n\t */\n\tchildren: ReactNode;\n};\n\nexport type NavigatorScreenProps = {\n\t/**\n\t * The screen's path, matched against the current path stored in the navigator.\n\t */\n\tpath: string;\n\t/**\n\t * The children elements.\n\t */\n\tchildren: ReactNode;\n};\n\nexport type NavigatorBackButtonProps = ButtonAsButtonProps;\n\nexport type NavigatorToParentButtonProps = NavigatorBackButtonProps;\n\nexport type NavigatorButtonProps = NavigatorBackButtonProps & {\n\t/**\n\t * The path of the screen to navigate to. The value of this prop needs to be\n\t * a valid value for an HTML attribute.\n\t */\n\tpath: string;\n\t/**\n\t * The HTML attribute used to identify the `NavigatorButton`, which is used\n\t * by `Navigator` to restore focus.\n\t *\n\t * @default 'id'\n\t */\n\tattributeName?: string;\n};\n\nexport type Screen = {\n\tid: string;\n\tpath: string;\n};\n"],"mappings":"","ignoreList":[]}