@wordpress/components 32.0.2-next.v.0 → 32.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/build/alignment-matrix-control/cell.cjs +6 -121
  3. package/build/alignment-matrix-control/cell.cjs.map +2 -2
  4. package/build/alignment-matrix-control/icon.cjs +2 -3
  5. package/build/alignment-matrix-control/icon.cjs.map +2 -2
  6. package/build/alignment-matrix-control/index.cjs +6 -121
  7. package/build/alignment-matrix-control/index.cjs.map +2 -2
  8. package/build/angle-picker-control/angle-circle.cjs +6 -85
  9. package/build/angle-picker-control/angle-circle.cjs.map +2 -2
  10. package/build/autocomplete/autocompleter-ui.cjs +1 -2
  11. package/build/autocomplete/autocompleter-ui.cjs.map +2 -2
  12. package/build/box-control/input-control.cjs +8 -12
  13. package/build/box-control/input-control.cjs.map +2 -2
  14. package/build/button/index.cjs +6 -12
  15. package/build/button/index.cjs.map +2 -2
  16. package/build/calendar/date-calendar/index.cjs +2 -2
  17. package/build/calendar/date-calendar/index.cjs.map +2 -2
  18. package/build/calendar/date-range-calendar/index.cjs +4 -6
  19. package/build/calendar/date-range-calendar/index.cjs.map +2 -2
  20. package/build/card/card/hook.cjs +1 -2
  21. package/build/card/card/hook.cjs.map +2 -2
  22. package/build/color-palette/utils.cjs +2 -2
  23. package/build/color-palette/utils.cjs.map +2 -2
  24. package/build/combobox-control/index.cjs +1 -2
  25. package/build/combobox-control/index.cjs.map +2 -2
  26. package/build/composite/group-label.cjs +1 -2
  27. package/build/composite/group-label.cjs.map +2 -2
  28. package/build/composite/group.cjs +1 -2
  29. package/build/composite/group.cjs.map +2 -2
  30. package/build/composite/hover.cjs +1 -2
  31. package/build/composite/hover.cjs.map +2 -2
  32. package/build/composite/index.cjs +1 -1
  33. package/build/composite/index.cjs.map +2 -2
  34. package/build/composite/item.cjs +1 -2
  35. package/build/composite/item.cjs.map +2 -2
  36. package/build/composite/legacy/index.cjs +1 -2
  37. package/build/composite/legacy/index.cjs.map +2 -2
  38. package/build/composite/row.cjs +1 -2
  39. package/build/composite/row.cjs.map +2 -2
  40. package/build/composite/typeahead.cjs +1 -2
  41. package/build/composite/typeahead.cjs.map +2 -2
  42. package/build/confirm-dialog/component.cjs +2 -2
  43. package/build/confirm-dialog/component.cjs.map +2 -2
  44. package/build/context/context-system-provider.cjs +1 -1
  45. package/build/context/context-system-provider.cjs.map +2 -2
  46. package/build/custom-gradient-picker/index.cjs +1 -2
  47. package/build/custom-gradient-picker/index.cjs.map +2 -2
  48. package/build/custom-gradient-picker/utils.cjs +1 -1
  49. package/build/custom-gradient-picker/utils.cjs.map +2 -2
  50. package/build/custom-select-control/index.cjs +2 -3
  51. package/build/custom-select-control/index.cjs.map +2 -2
  52. package/build/custom-select-control-v2/custom-select.cjs +1 -1
  53. package/build/custom-select-control-v2/custom-select.cjs.map +2 -2
  54. package/build/custom-select-control-v2/item.cjs +2 -3
  55. package/build/custom-select-control-v2/item.cjs.map +2 -2
  56. package/build/date-time/date/index.cjs +1 -1
  57. package/build/date-time/date/index.cjs.map +2 -2
  58. package/build/date-time/time/index.cjs +2 -2
  59. package/build/date-time/time/index.cjs.map +2 -2
  60. package/build/date-time/utils.cjs +1 -2
  61. package/build/date-time/utils.cjs.map +2 -2
  62. package/build/divider/styles.cjs +2 -2
  63. package/build/divider/styles.cjs.map +2 -2
  64. package/build/dropdown-menu/index.cjs +2 -3
  65. package/build/dropdown-menu/index.cjs.map +2 -2
  66. package/build/duotone-picker/duotone-picker.cjs +1 -1
  67. package/build/duotone-picker/duotone-picker.cjs.map +2 -2
  68. package/build/flex/flex/hook.cjs +1 -1
  69. package/build/flex/flex/hook.cjs.map +2 -2
  70. package/build/focal-point-picker/index.cjs +1 -2
  71. package/build/focal-point-picker/index.cjs.map +2 -2
  72. package/build/font-size-picker/font-size-picker-select.cjs +1 -2
  73. package/build/font-size-picker/font-size-picker-select.cjs.map +2 -2
  74. package/build/font-size-picker/index.cjs +2 -2
  75. package/build/font-size-picker/index.cjs.map +2 -2
  76. package/build/guide/index.cjs +2 -3
  77. package/build/guide/index.cjs.map +2 -2
  78. package/build/higher-order/navigate-regions/index.cjs +1 -2
  79. package/build/higher-order/navigate-regions/index.cjs.map +2 -2
  80. package/build/input-control/input-field.cjs +1 -1
  81. package/build/input-control/input-field.cjs.map +2 -2
  82. package/build/input-control/reducer/reducer.cjs +2 -4
  83. package/build/input-control/reducer/reducer.cjs.map +2 -2
  84. package/build/keyboard-shortcuts/index.cjs +1 -1
  85. package/build/keyboard-shortcuts/index.cjs.map +2 -2
  86. package/build/menu/index.cjs +1 -1
  87. package/build/menu/index.cjs.map +2 -2
  88. package/build/menu/item.cjs +1 -1
  89. package/build/menu/item.cjs.map +2 -2
  90. package/build/menu/popover.cjs +2 -2
  91. package/build/menu/popover.cjs.map +2 -2
  92. package/build/modal/index.cjs +2 -4
  93. package/build/modal/index.cjs.map +2 -2
  94. package/build/navigator/navigator/component.cjs +8 -13
  95. package/build/navigator/navigator/component.cjs.map +2 -2
  96. package/build/navigator/navigator-screen/component.cjs +1 -1
  97. package/build/navigator/navigator-screen/component.cjs.map +2 -2
  98. package/build/number-control/index.cjs +2 -3
  99. package/build/number-control/index.cjs.map +2 -2
  100. package/build/palette-edit/index.cjs +3 -4
  101. package/build/palette-edit/index.cjs.map +2 -2
  102. package/build/popover/index.cjs +1 -2
  103. package/build/popover/index.cjs.map +2 -2
  104. package/build/popover/overlay-middlewares.cjs +1 -2
  105. package/build/popover/overlay-middlewares.cjs.map +2 -2
  106. package/build/popover/utils.cjs +3 -8
  107. package/build/popover/utils.cjs.map +2 -2
  108. package/build/private-apis.cjs +1 -0
  109. package/build/private-apis.cjs.map +2 -2
  110. package/build/radio-group/index.cjs +1 -1
  111. package/build/radio-group/index.cjs.map +2 -2
  112. package/build/range-control/index.cjs +4 -4
  113. package/build/range-control/index.cjs.map +2 -2
  114. package/build/range-control/utils.cjs +1 -1
  115. package/build/range-control/utils.cjs.map +2 -2
  116. package/build/search-control/index.cjs +3 -3
  117. package/build/search-control/index.cjs.map +2 -2
  118. package/build/slot-fill/fill.cjs +1 -2
  119. package/build/slot-fill/fill.cjs.map +2 -2
  120. package/build/slot-fill/slot.cjs +1 -2
  121. package/build/slot-fill/slot.cjs.map +2 -2
  122. package/build/tabs/tab.cjs +1 -2
  123. package/build/tabs/tab.cjs.map +2 -2
  124. package/build/tabs/tablist.cjs +7 -11
  125. package/build/tabs/tablist.cjs.map +2 -2
  126. package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs +1 -1
  127. package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs.map +2 -2
  128. package/build/toggle-group-control/toggle-group-control/utils.cjs +1 -1
  129. package/build/toggle-group-control/toggle-group-control/utils.cjs.map +2 -2
  130. package/build/tree-grid/index.cjs +1 -2
  131. package/build/tree-grid/index.cjs.map +2 -2
  132. package/build/unit-control/index.cjs +4 -5
  133. package/build/unit-control/index.cjs.map +2 -2
  134. package/build/unit-control/utils.cjs +2 -2
  135. package/build/unit-control/utils.cjs.map +2 -2
  136. package/build/utils/element-rect.cjs +3 -4
  137. package/build/utils/element-rect.cjs.map +2 -2
  138. package/build/utils/font.cjs +1 -2
  139. package/build/utils/font.cjs.map +2 -2
  140. package/build/utils/strings.cjs +1 -2
  141. package/build/utils/strings.cjs.map +2 -2
  142. package/build/utils/use-deprecated-props.cjs +1 -1
  143. package/build/utils/use-deprecated-props.cjs.map +2 -2
  144. package/build/utils/values.cjs +1 -2
  145. package/build/utils/values.cjs.map +2 -2
  146. package/build/validated-form-controls/components/combobox-control.cjs +1 -1
  147. package/build/validated-form-controls/components/combobox-control.cjs.map +2 -2
  148. package/build/validated-form-controls/components/toggle-control.cjs +1 -1
  149. package/build/validated-form-controls/components/toggle-control.cjs.map +2 -2
  150. package/build/validated-form-controls/control-with-error.cjs +3 -6
  151. package/build/validated-form-controls/control-with-error.cjs.map +2 -2
  152. package/build-module/alignment-matrix-control/cell.mjs +6 -121
  153. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  154. package/build-module/alignment-matrix-control/icon.mjs +2 -3
  155. package/build-module/alignment-matrix-control/icon.mjs.map +2 -2
  156. package/build-module/alignment-matrix-control/index.mjs +6 -121
  157. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  158. package/build-module/angle-picker-control/angle-circle.mjs +6 -85
  159. package/build-module/angle-picker-control/angle-circle.mjs.map +2 -2
  160. package/build-module/autocomplete/autocompleter-ui.mjs +1 -2
  161. package/build-module/autocomplete/autocompleter-ui.mjs.map +2 -2
  162. package/build-module/box-control/input-control.mjs +8 -12
  163. package/build-module/box-control/input-control.mjs.map +2 -2
  164. package/build-module/button/index.mjs +6 -12
  165. package/build-module/button/index.mjs.map +2 -2
  166. package/build-module/calendar/date-calendar/index.mjs +2 -2
  167. package/build-module/calendar/date-calendar/index.mjs.map +2 -2
  168. package/build-module/calendar/date-range-calendar/index.mjs +4 -6
  169. package/build-module/calendar/date-range-calendar/index.mjs.map +2 -2
  170. package/build-module/card/card/hook.mjs +1 -2
  171. package/build-module/card/card/hook.mjs.map +2 -2
  172. package/build-module/color-palette/utils.mjs +2 -2
  173. package/build-module/color-palette/utils.mjs.map +2 -2
  174. package/build-module/combobox-control/index.mjs +1 -2
  175. package/build-module/combobox-control/index.mjs.map +2 -2
  176. package/build-module/composite/group-label.mjs +1 -2
  177. package/build-module/composite/group-label.mjs.map +2 -2
  178. package/build-module/composite/group.mjs +1 -2
  179. package/build-module/composite/group.mjs.map +2 -2
  180. package/build-module/composite/hover.mjs +1 -2
  181. package/build-module/composite/hover.mjs.map +2 -2
  182. package/build-module/composite/index.mjs +1 -1
  183. package/build-module/composite/index.mjs.map +2 -2
  184. package/build-module/composite/item.mjs +1 -2
  185. package/build-module/composite/item.mjs.map +2 -2
  186. package/build-module/composite/legacy/index.mjs +1 -2
  187. package/build-module/composite/legacy/index.mjs.map +2 -2
  188. package/build-module/composite/row.mjs +1 -2
  189. package/build-module/composite/row.mjs.map +2 -2
  190. package/build-module/composite/typeahead.mjs +1 -2
  191. package/build-module/composite/typeahead.mjs.map +2 -2
  192. package/build-module/confirm-dialog/component.mjs +2 -2
  193. package/build-module/confirm-dialog/component.mjs.map +2 -2
  194. package/build-module/context/context-system-provider.mjs +1 -1
  195. package/build-module/context/context-system-provider.mjs.map +2 -2
  196. package/build-module/custom-gradient-picker/index.mjs +1 -2
  197. package/build-module/custom-gradient-picker/index.mjs.map +2 -2
  198. package/build-module/custom-gradient-picker/utils.mjs +1 -1
  199. package/build-module/custom-gradient-picker/utils.mjs.map +2 -2
  200. package/build-module/custom-select-control/index.mjs +2 -3
  201. package/build-module/custom-select-control/index.mjs.map +2 -2
  202. package/build-module/custom-select-control-v2/custom-select.mjs +1 -1
  203. package/build-module/custom-select-control-v2/custom-select.mjs.map +2 -2
  204. package/build-module/custom-select-control-v2/item.mjs +2 -3
  205. package/build-module/custom-select-control-v2/item.mjs.map +2 -2
  206. package/build-module/date-time/date/index.mjs +1 -1
  207. package/build-module/date-time/date/index.mjs.map +2 -2
  208. package/build-module/date-time/time/index.mjs +2 -2
  209. package/build-module/date-time/time/index.mjs.map +2 -2
  210. package/build-module/date-time/utils.mjs +1 -2
  211. package/build-module/date-time/utils.mjs.map +2 -2
  212. package/build-module/divider/styles.mjs +2 -2
  213. package/build-module/divider/styles.mjs.map +2 -2
  214. package/build-module/dropdown-menu/index.mjs +2 -3
  215. package/build-module/dropdown-menu/index.mjs.map +2 -2
  216. package/build-module/duotone-picker/duotone-picker.mjs +1 -1
  217. package/build-module/duotone-picker/duotone-picker.mjs.map +2 -2
  218. package/build-module/flex/flex/hook.mjs +1 -1
  219. package/build-module/flex/flex/hook.mjs.map +2 -2
  220. package/build-module/focal-point-picker/index.mjs +1 -2
  221. package/build-module/focal-point-picker/index.mjs.map +2 -2
  222. package/build-module/font-size-picker/font-size-picker-select.mjs +1 -2
  223. package/build-module/font-size-picker/font-size-picker-select.mjs.map +2 -2
  224. package/build-module/font-size-picker/index.mjs +2 -2
  225. package/build-module/font-size-picker/index.mjs.map +2 -2
  226. package/build-module/guide/index.mjs +2 -3
  227. package/build-module/guide/index.mjs.map +2 -2
  228. package/build-module/higher-order/navigate-regions/index.mjs +1 -2
  229. package/build-module/higher-order/navigate-regions/index.mjs.map +2 -2
  230. package/build-module/input-control/input-field.mjs +1 -1
  231. package/build-module/input-control/input-field.mjs.map +2 -2
  232. package/build-module/input-control/reducer/reducer.mjs +2 -4
  233. package/build-module/input-control/reducer/reducer.mjs.map +2 -2
  234. package/build-module/keyboard-shortcuts/index.mjs +1 -1
  235. package/build-module/keyboard-shortcuts/index.mjs.map +2 -2
  236. package/build-module/menu/index.mjs +1 -1
  237. package/build-module/menu/index.mjs.map +2 -2
  238. package/build-module/menu/item.mjs +1 -1
  239. package/build-module/menu/item.mjs.map +2 -2
  240. package/build-module/menu/popover.mjs +2 -2
  241. package/build-module/menu/popover.mjs.map +2 -2
  242. package/build-module/modal/index.mjs +2 -4
  243. package/build-module/modal/index.mjs.map +2 -2
  244. package/build-module/navigator/navigator/component.mjs +8 -13
  245. package/build-module/navigator/navigator/component.mjs.map +2 -2
  246. package/build-module/navigator/navigator-screen/component.mjs +1 -1
  247. package/build-module/navigator/navigator-screen/component.mjs.map +2 -2
  248. package/build-module/number-control/index.mjs +2 -3
  249. package/build-module/number-control/index.mjs.map +2 -2
  250. package/build-module/palette-edit/index.mjs +3 -4
  251. package/build-module/palette-edit/index.mjs.map +2 -2
  252. package/build-module/popover/index.mjs +1 -2
  253. package/build-module/popover/index.mjs.map +2 -2
  254. package/build-module/popover/overlay-middlewares.mjs +1 -2
  255. package/build-module/popover/overlay-middlewares.mjs.map +2 -2
  256. package/build-module/popover/utils.mjs +3 -8
  257. package/build-module/popover/utils.mjs.map +2 -2
  258. package/build-module/private-apis.mjs +2 -1
  259. package/build-module/private-apis.mjs.map +2 -2
  260. package/build-module/radio-group/index.mjs +1 -1
  261. package/build-module/radio-group/index.mjs.map +2 -2
  262. package/build-module/range-control/index.mjs +4 -4
  263. package/build-module/range-control/index.mjs.map +2 -2
  264. package/build-module/range-control/utils.mjs +1 -1
  265. package/build-module/range-control/utils.mjs.map +2 -2
  266. package/build-module/search-control/index.mjs +3 -3
  267. package/build-module/search-control/index.mjs.map +2 -2
  268. package/build-module/slot-fill/fill.mjs +1 -2
  269. package/build-module/slot-fill/fill.mjs.map +2 -2
  270. package/build-module/slot-fill/slot.mjs +1 -2
  271. package/build-module/slot-fill/slot.mjs.map +2 -2
  272. package/build-module/tabs/tab.mjs +1 -2
  273. package/build-module/tabs/tab.mjs.map +2 -2
  274. package/build-module/tabs/tablist.mjs +7 -11
  275. package/build-module/tabs/tablist.mjs.map +2 -2
  276. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs +1 -1
  277. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs.map +2 -2
  278. package/build-module/toggle-group-control/toggle-group-control/utils.mjs +1 -1
  279. package/build-module/toggle-group-control/toggle-group-control/utils.mjs.map +2 -2
  280. package/build-module/tree-grid/index.mjs +1 -2
  281. package/build-module/tree-grid/index.mjs.map +2 -2
  282. package/build-module/unit-control/index.mjs +4 -5
  283. package/build-module/unit-control/index.mjs.map +2 -2
  284. package/build-module/unit-control/utils.mjs +2 -2
  285. package/build-module/unit-control/utils.mjs.map +2 -2
  286. package/build-module/utils/element-rect.mjs +3 -4
  287. package/build-module/utils/element-rect.mjs.map +2 -2
  288. package/build-module/utils/font.mjs +1 -2
  289. package/build-module/utils/font.mjs.map +2 -2
  290. package/build-module/utils/strings.mjs +1 -2
  291. package/build-module/utils/strings.mjs.map +2 -2
  292. package/build-module/utils/use-deprecated-props.mjs +1 -1
  293. package/build-module/utils/use-deprecated-props.mjs.map +2 -2
  294. package/build-module/utils/values.mjs +1 -2
  295. package/build-module/utils/values.mjs.map +2 -2
  296. package/build-module/validated-form-controls/components/combobox-control.mjs +1 -1
  297. package/build-module/validated-form-controls/components/combobox-control.mjs.map +2 -2
  298. package/build-module/validated-form-controls/components/toggle-control.mjs +1 -1
  299. package/build-module/validated-form-controls/components/toggle-control.mjs.map +2 -2
  300. package/build-module/validated-form-controls/control-with-error.mjs +3 -6
  301. package/build-module/validated-form-controls/control-with-error.mjs.map +2 -2
  302. package/build-types/private-apis.d.ts.map +1 -1
  303. package/package.json +21 -21
  304. package/src/private-apis.ts +2 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/navigator/navigator/component.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { useMemo, useReducer } from '@wordpress/element';\nimport { isShallowEqual } from '@wordpress/is-shallow-equal';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\n\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 { jsx as _jsx } from \"react/jsx-runtime\";\nfunction addScreen({\n screens\n}, screen) {\n if (screens.some(s => s.path === screen.path)) {\n globalThis.SCRIPT_DEBUG === true ? warning(`Navigator: a screen with path ${screen.path} already exists.\nThe screen with id ${screen.id} will not be added.`) : void 0;\n return screens;\n }\n return [...screens, screen];\n}\nfunction removeScreen({\n screens\n}, screen) {\n return screens.filter(s => s.id !== screen.id);\n}\nfunction goTo(state, path, options = {}) {\n var _focusSelectorsCopy2;\n const {\n focusSelectors\n } = state;\n const currentLocation = {\n ...state.currentLocation\n };\n const {\n // Default assignments\n isBack = false,\n skipFocus = false,\n // Extract to avoid forwarding\n replace,\n focusTargetSelector,\n // Rest\n ...restOptions\n } = options;\n if (currentLocation.path === path) {\n return {\n currentLocation,\n focusSelectors\n };\n }\n let focusSelectorsCopy;\n function getFocusSelectorsCopy() {\n var _focusSelectorsCopy;\n focusSelectorsCopy = (_focusSelectorsCopy = focusSelectorsCopy) !== null && _focusSelectorsCopy !== void 0 ? _focusSelectorsCopy : new Map(state.focusSelectors);\n return focusSelectorsCopy;\n }\n\n // Set a focus selector that will be used when navigating\n // back to the current location.\n if (focusTargetSelector && currentLocation.path) {\n getFocusSelectorsCopy().set(currentLocation.path, focusTargetSelector);\n }\n\n // Get the focus selector for the new location.\n let currentFocusSelector;\n if (focusSelectors.get(path)) {\n if (isBack) {\n // Use the found focus selector only when navigating back.\n currentFocusSelector = focusSelectors.get(path);\n }\n // Make a copy of the focusSelectors map to remove the focus selector\n // only if necessary (ie. a focus selector was found).\n getFocusSelectorsCopy().delete(path);\n }\n return {\n currentLocation: {\n ...restOptions,\n isInitial: false,\n path,\n isBack,\n hasRestoredFocus: false,\n focusTargetSelector: currentFocusSelector,\n skipFocus\n },\n focusSelectors: (_focusSelectorsCopy2 = focusSelectorsCopy) !== null && _focusSelectorsCopy2 !== void 0 ? _focusSelectorsCopy2 : focusSelectors\n };\n}\nfunction goToParent(state, options = {}) {\n const {\n screens,\n focusSelectors\n } = state;\n const currentLocation = {\n ...state.currentLocation\n };\n const currentPath = currentLocation.path;\n if (currentPath === undefined) {\n return {\n currentLocation,\n focusSelectors\n };\n }\n const parentPath = findParent(currentPath, screens);\n if (parentPath === undefined) {\n return {\n currentLocation,\n focusSelectors\n };\n }\n return goTo(state, parentPath, {\n ...options,\n isBack: true\n });\n}\nfunction routerReducer(state, action) {\n let {\n screens,\n currentLocation,\n matchedPath,\n focusSelectors,\n ...restState\n } = state;\n switch (action.type) {\n case 'add':\n screens = addScreen(state, action.screen);\n break;\n case 'remove':\n screens = removeScreen(state, action.screen);\n break;\n case 'goto':\n ({\n currentLocation,\n focusSelectors\n } = goTo(state, action.path, action.options));\n break;\n case 'gotoparent':\n ({\n currentLocation,\n focusSelectors\n } = goToParent(state, action.options));\n break;\n }\n\n // Return early in case there is no change\n if (screens === state.screens && currentLocation === state.currentLocation) {\n return state;\n }\n\n // Compute the matchedPath\n const currentPath = currentLocation.path;\n matchedPath = currentPath !== undefined ? patternMatch(currentPath, screens) : undefined;\n\n // If the new match is the same as the previous match,\n // return the previous one to keep immutability.\n if (matchedPath && state.matchedPath && matchedPath.id === state.matchedPath.id && isShallowEqual(matchedPath.params, state.matchedPath.params)) {\n matchedPath = state.matchedPath;\n }\n return {\n ...restState,\n screens,\n currentLocation,\n matchedPath,\n focusSelectors\n };\n}\nfunction UnconnectedNavigator(props, forwardedRef) {\n const {\n initialPath: initialPathProp,\n children,\n className,\n ...otherProps\n } = useContextSystem(props, 'Navigator');\n const [routerState, dispatch] = useReducer(routerReducer, initialPathProp, path => ({\n screens: [],\n currentLocation: {\n path,\n isInitial: true\n },\n matchedPath: undefined,\n focusSelectors: new Map(),\n initialPath: initialPathProp\n }));\n\n // The methods are constant forever, create stable references to them.\n const methods = useMemo(() => ({\n // Note: calling goBack calls `goToParent` internally, as it was established\n // that `goBack` should behave like `goToParent`, and `goToParent` should\n // be marked as deprecated.\n goBack: options => dispatch({\n type: 'gotoparent',\n options\n }),\n goTo: (path, options) => dispatch({\n type: 'goto',\n path,\n options\n }),\n goToParent: options => {\n deprecated(`wp.components.useNavigator().goToParent`, {\n since: '6.7',\n alternative: 'wp.components.useNavigator().goBack'\n });\n dispatch({\n type: 'gotoparent',\n options\n });\n },\n addScreen: screen => dispatch({\n type: 'add',\n screen\n }),\n removeScreen: screen => dispatch({\n type: 'remove',\n screen\n })\n }), []);\n const {\n currentLocation,\n matchedPath\n } = routerState;\n const navigatorContextValue = useMemo(() => {\n var _matchedPath$params;\n return {\n location: currentLocation,\n params: (_matchedPath$params = matchedPath?.params) !== null && _matchedPath$params !== void 0 ? _matchedPath$params : {},\n match: matchedPath?.id,\n ...methods\n };\n }, [currentLocation, matchedPath, methods]);\n const cx = useCx();\n const classes = useMemo(() => cx(styles.navigatorWrapper, className), [className, cx]);\n return /*#__PURE__*/_jsx(View, {\n ref: forwardedRef,\n className: classes,\n ...otherProps,\n children: /*#__PURE__*/_jsx(NavigatorContext.Provider, {\n value: navigatorContextValue,\n children: children\n })\n });\n}\nexport const Navigator = contextConnect(UnconnectedNavigator, 'Navigator');"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { useMemo, useReducer } from '@wordpress/element';\nimport { isShallowEqual } from '@wordpress/is-shallow-equal';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\n\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 { jsx as _jsx } from \"react/jsx-runtime\";\nfunction addScreen({\n screens\n}, screen) {\n if (screens.some(s => s.path === screen.path)) {\n globalThis.SCRIPT_DEBUG === true ? warning(`Navigator: a screen with path ${screen.path} already exists.\nThe screen with id ${screen.id} will not be added.`) : void 0;\n return screens;\n }\n return [...screens, screen];\n}\nfunction removeScreen({\n screens\n}, screen) {\n return screens.filter(s => s.id !== screen.id);\n}\nfunction goTo(state, path, options = {}) {\n const {\n focusSelectors\n } = state;\n const currentLocation = {\n ...state.currentLocation\n };\n const {\n // Default assignments\n isBack = false,\n skipFocus = false,\n // Extract to avoid forwarding\n replace,\n focusTargetSelector,\n // Rest\n ...restOptions\n } = options;\n if (currentLocation.path === path) {\n return {\n currentLocation,\n focusSelectors\n };\n }\n let focusSelectorsCopy;\n function getFocusSelectorsCopy() {\n focusSelectorsCopy = focusSelectorsCopy ?? new Map(state.focusSelectors);\n return focusSelectorsCopy;\n }\n\n // Set a focus selector that will be used when navigating\n // back to the current location.\n if (focusTargetSelector && currentLocation.path) {\n getFocusSelectorsCopy().set(currentLocation.path, focusTargetSelector);\n }\n\n // Get the focus selector for the new location.\n let currentFocusSelector;\n if (focusSelectors.get(path)) {\n if (isBack) {\n // Use the found focus selector only when navigating back.\n currentFocusSelector = focusSelectors.get(path);\n }\n // Make a copy of the focusSelectors map to remove the focus selector\n // only if necessary (ie. a focus selector was found).\n getFocusSelectorsCopy().delete(path);\n }\n return {\n currentLocation: {\n ...restOptions,\n isInitial: false,\n path,\n isBack,\n hasRestoredFocus: false,\n focusTargetSelector: currentFocusSelector,\n skipFocus\n },\n focusSelectors: focusSelectorsCopy ?? focusSelectors\n };\n}\nfunction goToParent(state, options = {}) {\n const {\n screens,\n focusSelectors\n } = state;\n const currentLocation = {\n ...state.currentLocation\n };\n const currentPath = currentLocation.path;\n if (currentPath === undefined) {\n return {\n currentLocation,\n focusSelectors\n };\n }\n const parentPath = findParent(currentPath, screens);\n if (parentPath === undefined) {\n return {\n currentLocation,\n focusSelectors\n };\n }\n return goTo(state, parentPath, {\n ...options,\n isBack: true\n });\n}\nfunction routerReducer(state, action) {\n let {\n screens,\n currentLocation,\n matchedPath,\n focusSelectors,\n ...restState\n } = state;\n switch (action.type) {\n case 'add':\n screens = addScreen(state, action.screen);\n break;\n case 'remove':\n screens = removeScreen(state, action.screen);\n break;\n case 'goto':\n ({\n currentLocation,\n focusSelectors\n } = goTo(state, action.path, action.options));\n break;\n case 'gotoparent':\n ({\n currentLocation,\n focusSelectors\n } = goToParent(state, action.options));\n break;\n }\n\n // Return early in case there is no change\n if (screens === state.screens && currentLocation === state.currentLocation) {\n return state;\n }\n\n // Compute the matchedPath\n const currentPath = currentLocation.path;\n matchedPath = currentPath !== undefined ? patternMatch(currentPath, screens) : undefined;\n\n // If the new match is the same as the previous match,\n // return the previous one to keep immutability.\n if (matchedPath && state.matchedPath && matchedPath.id === state.matchedPath.id && isShallowEqual(matchedPath.params, state.matchedPath.params)) {\n matchedPath = state.matchedPath;\n }\n return {\n ...restState,\n screens,\n currentLocation,\n matchedPath,\n focusSelectors\n };\n}\nfunction UnconnectedNavigator(props, forwardedRef) {\n const {\n initialPath: initialPathProp,\n children,\n className,\n ...otherProps\n } = useContextSystem(props, 'Navigator');\n const [routerState, dispatch] = useReducer(routerReducer, initialPathProp, path => ({\n screens: [],\n currentLocation: {\n path,\n isInitial: true\n },\n matchedPath: undefined,\n focusSelectors: new Map(),\n initialPath: initialPathProp\n }));\n\n // The methods are constant forever, create stable references to them.\n const methods = useMemo(() => ({\n // Note: calling goBack calls `goToParent` internally, as it was established\n // that `goBack` should behave like `goToParent`, and `goToParent` should\n // be marked as deprecated.\n goBack: options => dispatch({\n type: 'gotoparent',\n options\n }),\n goTo: (path, options) => dispatch({\n type: 'goto',\n path,\n options\n }),\n goToParent: options => {\n deprecated(`wp.components.useNavigator().goToParent`, {\n since: '6.7',\n alternative: 'wp.components.useNavigator().goBack'\n });\n dispatch({\n type: 'gotoparent',\n options\n });\n },\n addScreen: screen => dispatch({\n type: 'add',\n screen\n }),\n removeScreen: screen => dispatch({\n type: 'remove',\n screen\n })\n }), []);\n const {\n currentLocation,\n matchedPath\n } = routerState;\n const navigatorContextValue = useMemo(() => ({\n location: currentLocation,\n params: matchedPath?.params ?? {},\n match: matchedPath?.id,\n ...methods\n }), [currentLocation, matchedPath, methods]);\n const cx = useCx();\n const classes = useMemo(() => cx(styles.navigatorWrapper, className), [className, cx]);\n return /*#__PURE__*/_jsx(View, {\n ref: forwardedRef,\n className: classes,\n ...otherProps,\n children: /*#__PURE__*/_jsx(NavigatorContext.Provider, {\n value: navigatorContextValue,\n children: children\n })\n });\n}\nexport const Navigator = contextConnect(UnconnectedNavigator, 'Navigator');"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -77,7 +77,7 @@ function UnconnectedNavigatorScreen(props, forwardedRef) {
77
77
  }
78
78
  if (!elementToFocus) {
79
79
  const [firstTabbable] = focus.tabbable.find(wrapperEl);
80
- elementToFocus = firstTabbable !== null && firstTabbable !== void 0 ? firstTabbable : wrapperEl;
80
+ elementToFocus = firstTabbable ?? wrapperEl;
81
81
  }
82
82
  locationRef.current.hasRestoredFocus = true;
83
83
  elementToFocus.focus();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/navigator/navigator-screen/component.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport { useContext, useEffect, useMemo, useRef, useId } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { escapeAttribute } from '@wordpress/escape-html';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\n\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport * as styles from '../styles';\nimport { useScreenAnimatePresence } from './use-screen-animate-presence';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction UnconnectedNavigatorScreen(props, forwardedRef) {\n if (!/^\\//.test(props.path)) {\n globalThis.SCRIPT_DEBUG === true ? warning('wp.components.Navigator.Screen: the `path` should follow a URL-like scheme; it should start with and be separated by the `/` character.') : void 0;\n }\n const screenId = useId();\n const {\n children,\n className,\n path,\n onAnimationEnd: onAnimationEndProp,\n ...otherProps\n } = useContextSystem(props, 'Navigator.Screen');\n const {\n location,\n match,\n addScreen,\n removeScreen\n } = useContext(NavigatorContext);\n const {\n isInitial,\n isBack,\n focusTargetSelector,\n skipFocus\n } = location;\n const isMatch = match === screenId;\n const wrapperRef = useRef(null);\n const skipAnimationAndFocusRestoration = !!isInitial && !isBack;\n\n // Register / unregister screen with the navigator context.\n useEffect(() => {\n const screen = {\n id: screenId,\n path: escapeAttribute(path)\n };\n addScreen(screen);\n return () => removeScreen(screen);\n }, [screenId, path, addScreen, removeScreen]);\n\n // Animation.\n const {\n animationStyles,\n shouldRenderScreen,\n screenProps\n } = useScreenAnimatePresence({\n isMatch,\n isBack,\n onAnimationEnd: onAnimationEndProp,\n skipAnimation: skipAnimationAndFocusRestoration\n });\n const cx = useCx();\n const classes = useMemo(() => cx(styles.navigatorScreen, animationStyles, className), [className, cx, animationStyles]);\n\n // Focus restoration\n const locationRef = useRef(location);\n useEffect(() => {\n locationRef.current = location;\n }, [location]);\n useEffect(() => {\n const wrapperEl = wrapperRef.current;\n // Only attempt to restore focus:\n // - if the current location is not the initial one (to avoid moving focus on page load)\n // - when the screen becomes visible\n // - if the wrapper ref has been assigned\n // - if focus hasn't already been restored for the current location\n // - if the `skipFocus` option is not set to `true`. This is useful when we trigger the navigation outside of NavigatorScreen.\n if (skipAnimationAndFocusRestoration || !isMatch || !wrapperEl || locationRef.current.hasRestoredFocus || skipFocus) {\n return;\n }\n const activeElement = wrapperEl.ownerDocument.activeElement;\n\n // If an element is already focused within the wrapper do not focus the\n // element. This prevents inputs or buttons from losing focus unnecessarily.\n if (wrapperEl.contains(activeElement)) {\n return;\n }\n let elementToFocus = null;\n\n // When navigating back, if a selector is provided, use it to look for the\n // target element (assumed to be a node inside the current NavigatorScreen)\n if (isBack && focusTargetSelector) {\n elementToFocus = wrapperEl.querySelector(focusTargetSelector);\n }\n\n // If the previous query didn't run or find any element to focus, fallback\n // to the first tabbable element in the screen (or the screen itself).\n if (!elementToFocus) {\n const [firstTabbable] = focus.tabbable.find(wrapperEl);\n elementToFocus = firstTabbable !== null && firstTabbable !== void 0 ? firstTabbable : wrapperEl;\n }\n locationRef.current.hasRestoredFocus = true;\n elementToFocus.focus();\n }, [skipAnimationAndFocusRestoration, isMatch, isBack, focusTargetSelector, skipFocus]);\n const mergedWrapperRef = useMergeRefs([forwardedRef, wrapperRef]);\n return shouldRenderScreen ? /*#__PURE__*/_jsx(View, {\n ref: mergedWrapperRef,\n className: classes,\n ...screenProps,\n ...otherProps,\n children: children\n }) : null;\n}\nexport const NavigatorScreen = contextConnect(UnconnectedNavigatorScreen, 'Navigator.Screen');"],
5
- "mappings": ";AAOA,SAAS,aAAa;AACtB,SAAS,YAAY,WAAW,SAAS,QAAQ,aAAa;AAC9D,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,OAAO,aAAa;AAMpB,SAAS,gBAAgB,wBAAwB;AACjD,SAAS,aAAa;AACtB,SAAS,YAAY;AACrB,SAAS,wBAAwB;AACjC,YAAY,YAAY;AACxB,SAAS,gCAAgC;AACzC,SAAS,OAAO,YAAY;AAC5B,SAAS,2BAA2B,OAAO,cAAc;AACvD,MAAI,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG;AAC3B,eAAW,iBAAiB,OAAO,QAAQ,yIAAyI,IAAI;AAAA,EAC1L;AACA,QAAM,WAAW,MAAM;AACvB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,kBAAkB;AAC9C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,gBAAgB;AAC/B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,UAAU,UAAU;AAC1B,QAAM,aAAa,OAAO,IAAI;AAC9B,QAAM,mCAAmC,CAAC,CAAC,aAAa,CAAC;AAGzD,YAAU,MAAM;AACd,UAAM,SAAS;AAAA,MACb,IAAI;AAAA,MACJ,MAAM,gBAAgB,IAAI;AAAA,IAC5B;AACA,cAAU,MAAM;AAChB,WAAO,MAAM,aAAa,MAAM;AAAA,EAClC,GAAG,CAAC,UAAU,MAAM,WAAW,YAAY,CAAC;AAG5C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,yBAAyB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,eAAe;AAAA,EACjB,CAAC;AACD,QAAM,KAAK,MAAM;AACjB,QAAM,UAAU,QAAQ,MAAM,GAAU,wBAAiB,iBAAiB,SAAS,GAAG,CAAC,WAAW,IAAI,eAAe,CAAC;AAGtH,QAAM,cAAc,OAAO,QAAQ;AACnC,YAAU,MAAM;AACd,gBAAY,UAAU;AAAA,EACxB,GAAG,CAAC,QAAQ,CAAC;AACb,YAAU,MAAM;AACd,UAAM,YAAY,WAAW;AAO7B,QAAI,oCAAoC,CAAC,WAAW,CAAC,aAAa,YAAY,QAAQ,oBAAoB,WAAW;AACnH;AAAA,IACF;AACA,UAAM,gBAAgB,UAAU,cAAc;AAI9C,QAAI,UAAU,SAAS,aAAa,GAAG;AACrC;AAAA,IACF;AACA,QAAI,iBAAiB;AAIrB,QAAI,UAAU,qBAAqB;AACjC,uBAAiB,UAAU,cAAc,mBAAmB;AAAA,IAC9D;AAIA,QAAI,CAAC,gBAAgB;AACnB,YAAM,CAAC,aAAa,IAAI,MAAM,SAAS,KAAK,SAAS;AACrD,uBAAiB,kBAAkB,QAAQ,kBAAkB,SAAS,gBAAgB;AAAA,IACxF;AACA,gBAAY,QAAQ,mBAAmB;AACvC,mBAAe,MAAM;AAAA,EACvB,GAAG,CAAC,kCAAkC,SAAS,QAAQ,qBAAqB,SAAS,CAAC;AACtF,QAAM,mBAAmB,aAAa,CAAC,cAAc,UAAU,CAAC;AAChE,SAAO,qBAAkC,qBAAK,MAAM;AAAA,IAClD,KAAK;AAAA,IACL,WAAW;AAAA,IACX,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACF,CAAC,IAAI;AACP;AACO,IAAM,kBAAkB,eAAe,4BAA4B,kBAAkB;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport { useContext, useEffect, useMemo, useRef, useId } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { escapeAttribute } from '@wordpress/escape-html';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\n\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport { View } from '../../view';\nimport { NavigatorContext } from '../context';\nimport * as styles from '../styles';\nimport { useScreenAnimatePresence } from './use-screen-animate-presence';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction UnconnectedNavigatorScreen(props, forwardedRef) {\n if (!/^\\//.test(props.path)) {\n globalThis.SCRIPT_DEBUG === true ? warning('wp.components.Navigator.Screen: the `path` should follow a URL-like scheme; it should start with and be separated by the `/` character.') : void 0;\n }\n const screenId = useId();\n const {\n children,\n className,\n path,\n onAnimationEnd: onAnimationEndProp,\n ...otherProps\n } = useContextSystem(props, 'Navigator.Screen');\n const {\n location,\n match,\n addScreen,\n removeScreen\n } = useContext(NavigatorContext);\n const {\n isInitial,\n isBack,\n focusTargetSelector,\n skipFocus\n } = location;\n const isMatch = match === screenId;\n const wrapperRef = useRef(null);\n const skipAnimationAndFocusRestoration = !!isInitial && !isBack;\n\n // Register / unregister screen with the navigator context.\n useEffect(() => {\n const screen = {\n id: screenId,\n path: escapeAttribute(path)\n };\n addScreen(screen);\n return () => removeScreen(screen);\n }, [screenId, path, addScreen, removeScreen]);\n\n // Animation.\n const {\n animationStyles,\n shouldRenderScreen,\n screenProps\n } = useScreenAnimatePresence({\n isMatch,\n isBack,\n onAnimationEnd: onAnimationEndProp,\n skipAnimation: skipAnimationAndFocusRestoration\n });\n const cx = useCx();\n const classes = useMemo(() => cx(styles.navigatorScreen, animationStyles, className), [className, cx, animationStyles]);\n\n // Focus restoration\n const locationRef = useRef(location);\n useEffect(() => {\n locationRef.current = location;\n }, [location]);\n useEffect(() => {\n const wrapperEl = wrapperRef.current;\n // Only attempt to restore focus:\n // - if the current location is not the initial one (to avoid moving focus on page load)\n // - when the screen becomes visible\n // - if the wrapper ref has been assigned\n // - if focus hasn't already been restored for the current location\n // - if the `skipFocus` option is not set to `true`. This is useful when we trigger the navigation outside of NavigatorScreen.\n if (skipAnimationAndFocusRestoration || !isMatch || !wrapperEl || locationRef.current.hasRestoredFocus || skipFocus) {\n return;\n }\n const activeElement = wrapperEl.ownerDocument.activeElement;\n\n // If an element is already focused within the wrapper do not focus the\n // element. This prevents inputs or buttons from losing focus unnecessarily.\n if (wrapperEl.contains(activeElement)) {\n return;\n }\n let elementToFocus = null;\n\n // When navigating back, if a selector is provided, use it to look for the\n // target element (assumed to be a node inside the current NavigatorScreen)\n if (isBack && focusTargetSelector) {\n elementToFocus = wrapperEl.querySelector(focusTargetSelector);\n }\n\n // If the previous query didn't run or find any element to focus, fallback\n // to the first tabbable element in the screen (or the screen itself).\n if (!elementToFocus) {\n const [firstTabbable] = focus.tabbable.find(wrapperEl);\n elementToFocus = firstTabbable ?? wrapperEl;\n }\n locationRef.current.hasRestoredFocus = true;\n elementToFocus.focus();\n }, [skipAnimationAndFocusRestoration, isMatch, isBack, focusTargetSelector, skipFocus]);\n const mergedWrapperRef = useMergeRefs([forwardedRef, wrapperRef]);\n return shouldRenderScreen ? /*#__PURE__*/_jsx(View, {\n ref: mergedWrapperRef,\n className: classes,\n ...screenProps,\n ...otherProps,\n children: children\n }) : null;\n}\nexport const NavigatorScreen = contextConnect(UnconnectedNavigatorScreen, 'Navigator.Screen');"],
5
+ "mappings": ";AAOA,SAAS,aAAa;AACtB,SAAS,YAAY,WAAW,SAAS,QAAQ,aAAa;AAC9D,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC,OAAO,aAAa;AAMpB,SAAS,gBAAgB,wBAAwB;AACjD,SAAS,aAAa;AACtB,SAAS,YAAY;AACrB,SAAS,wBAAwB;AACjC,YAAY,YAAY;AACxB,SAAS,gCAAgC;AACzC,SAAS,OAAO,YAAY;AAC5B,SAAS,2BAA2B,OAAO,cAAc;AACvD,MAAI,CAAC,MAAM,KAAK,MAAM,IAAI,GAAG;AAC3B,eAAW,iBAAiB,OAAO,QAAQ,yIAAyI,IAAI;AAAA,EAC1L;AACA,QAAM,WAAW,MAAM;AACvB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,kBAAkB;AAC9C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,WAAW,gBAAgB;AAC/B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,UAAU,UAAU;AAC1B,QAAM,aAAa,OAAO,IAAI;AAC9B,QAAM,mCAAmC,CAAC,CAAC,aAAa,CAAC;AAGzD,YAAU,MAAM;AACd,UAAM,SAAS;AAAA,MACb,IAAI;AAAA,MACJ,MAAM,gBAAgB,IAAI;AAAA,IAC5B;AACA,cAAU,MAAM;AAChB,WAAO,MAAM,aAAa,MAAM;AAAA,EAClC,GAAG,CAAC,UAAU,MAAM,WAAW,YAAY,CAAC;AAG5C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,yBAAyB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,eAAe;AAAA,EACjB,CAAC;AACD,QAAM,KAAK,MAAM;AACjB,QAAM,UAAU,QAAQ,MAAM,GAAU,wBAAiB,iBAAiB,SAAS,GAAG,CAAC,WAAW,IAAI,eAAe,CAAC;AAGtH,QAAM,cAAc,OAAO,QAAQ;AACnC,YAAU,MAAM;AACd,gBAAY,UAAU;AAAA,EACxB,GAAG,CAAC,QAAQ,CAAC;AACb,YAAU,MAAM;AACd,UAAM,YAAY,WAAW;AAO7B,QAAI,oCAAoC,CAAC,WAAW,CAAC,aAAa,YAAY,QAAQ,oBAAoB,WAAW;AACnH;AAAA,IACF;AACA,UAAM,gBAAgB,UAAU,cAAc;AAI9C,QAAI,UAAU,SAAS,aAAa,GAAG;AACrC;AAAA,IACF;AACA,QAAI,iBAAiB;AAIrB,QAAI,UAAU,qBAAqB;AACjC,uBAAiB,UAAU,cAAc,mBAAmB;AAAA,IAC9D;AAIA,QAAI,CAAC,gBAAgB;AACnB,YAAM,CAAC,aAAa,IAAI,MAAM,SAAS,KAAK,SAAS;AACrD,uBAAiB,iBAAiB;AAAA,IACpC;AACA,gBAAY,QAAQ,mBAAmB;AACvC,mBAAe,MAAM;AAAA,EACvB,GAAG,CAAC,kCAAkC,SAAS,QAAQ,qBAAqB,SAAS,CAAC;AACtF,QAAM,mBAAmB,aAAa,CAAC,cAAc,UAAU,CAAC;AAChE,SAAO,qBAAkC,qBAAK,MAAM;AAAA,IAClD,KAAK;AAAA,IACL,WAAW;AAAA,IACX,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,EACF,CAAC,IAAI;AACP;AACO,IAAM,kBAAkB,eAAe,4BAA4B,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -61,7 +61,7 @@ function UnforwardedNumberControl(props, forwardedRef) {
61
61
  const baseSpin = ensureNumber(spinFactor) * baseStep;
62
62
  const constrainValue = (value, stepOverride) => {
63
63
  if (!isStepAny) {
64
- value = ensureValidStep(value, min, stepOverride !== null && stepOverride !== void 0 ? stepOverride : baseStep);
64
+ value = ensureValidStep(value, min, stepOverride ?? baseStep);
65
65
  }
66
66
  return `${clamp(value, min, max)}`;
67
67
  };
@@ -163,9 +163,8 @@ function UnforwardedNumberControl(props, forwardedRef) {
163
163
  type: typeProp,
164
164
  value: valueProp,
165
165
  __unstableStateReducer: (state, action) => {
166
- var _stateReducerProp;
167
166
  const baseState = numberControlStateReducer(state, action);
168
- return (_stateReducerProp = stateReducerProp?.(baseState, action)) !== null && _stateReducerProp !== void 0 ? _stateReducerProp : baseState;
167
+ return stateReducerProp?.(baseState, action) ?? baseState;
169
168
  },
170
169
  size,
171
170
  __shouldNotWarnDeprecated36pxSize: true,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/number-control/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useRef, forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { plus as plusIcon, reset as resetIcon } from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { Input, SpinButton, styles } from './styles/number-control-styles';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { add, subtract, clamp, ensureValidStep } from '../utils/math';\nimport { ensureNumber, isValueEmpty } from '../utils/values';\nimport { HStack } from '../h-stack';\nimport { Spacer } from '../spacer';\nimport { useCx } from '../utils';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst noop = () => {};\nfunction UnforwardedNumberControl(props, forwardedRef) {\n const {\n __unstableStateReducer: stateReducerProp,\n className,\n dragDirection = 'n',\n hideHTMLArrows = false,\n spinControls = hideHTMLArrows ? 'none' : 'native',\n isDragEnabled = true,\n isShiftStepEnabled = true,\n label,\n max = Infinity,\n min = -Infinity,\n required = false,\n shiftStep = 10,\n step = 1,\n spinFactor = 1,\n type: typeProp = 'number',\n value: valueProp,\n size = 'default',\n suffix,\n onChange = noop,\n __shouldNotWarnDeprecated36pxSize,\n ...restProps\n } = useDeprecated36pxDefaultSizeProp(props);\n maybeWarnDeprecated36pxSize({\n componentName: 'NumberControl',\n size,\n __next40pxDefaultSize: restProps.__next40pxDefaultSize,\n __shouldNotWarnDeprecated36pxSize\n });\n if (hideHTMLArrows) {\n deprecated('wp.components.NumberControl hideHTMLArrows prop ', {\n alternative: 'spinControls=\"none\"',\n since: '6.2',\n version: '6.3'\n });\n }\n const inputRef = useRef();\n const mergedRef = useMergeRefs([inputRef, forwardedRef]);\n const isStepAny = step === 'any';\n const baseStep = isStepAny ? 1 : ensureNumber(step);\n const baseSpin = ensureNumber(spinFactor) * baseStep;\n const constrainValue = (value, stepOverride) => {\n // When step is not \"any\" the value must be a valid step.\n if (!isStepAny) {\n value = ensureValidStep(value, min, stepOverride !== null && stepOverride !== void 0 ? stepOverride : baseStep);\n }\n return `${clamp(value, min, max)}`;\n };\n const baseValue = constrainValue(0);\n const autoComplete = typeProp === 'number' ? 'off' : undefined;\n const classes = clsx('components-number-control', className);\n const cx = useCx();\n const spinButtonClasses = cx(size === 'small' && styles.smallSpinButtons);\n const spinValue = (value, direction, event) => {\n event?.preventDefault();\n const shift = event?.shiftKey && isShiftStepEnabled;\n const delta = shift ? ensureNumber(shiftStep) * baseSpin : baseSpin;\n let nextValue = isValueEmpty(value) ? baseValue : value;\n if (direction === 'up') {\n nextValue = add(nextValue, delta);\n } else if (direction === 'down') {\n nextValue = subtract(nextValue, delta);\n }\n return constrainValue(nextValue, shift ? delta : undefined);\n };\n\n /**\n * \"Middleware\" function that intercepts updates from InputControl.\n * This allows us to tap into actions to transform the (next) state for\n * InputControl.\n *\n * @return The updated state to apply to InputControl\n */\n const numberControlStateReducer = (state, action) => {\n const nextState = {\n ...state\n };\n const {\n type,\n payload\n } = action;\n const event = payload.event;\n const currentValue = nextState.value;\n\n /**\n * Handles custom UP and DOWN Keyboard events\n */\n if (type === inputControlActionTypes.PRESS_UP || type === inputControlActionTypes.PRESS_DOWN) {\n nextState.value = spinValue(currentValue, type === inputControlActionTypes.PRESS_UP ? 'up' : 'down', event);\n }\n\n /**\n * Handles drag to update events\n */\n if (type === inputControlActionTypes.DRAG && isDragEnabled) {\n const [x, y] = payload.delta;\n const enableShift = payload.shiftKey && isShiftStepEnabled;\n const modifier = enableShift ? ensureNumber(shiftStep) * baseSpin : baseSpin;\n let directionModifier;\n let delta;\n switch (dragDirection) {\n case 'n':\n delta = y;\n directionModifier = -1;\n break;\n case 'e':\n delta = x;\n directionModifier = isRTL() ? -1 : 1;\n break;\n case 's':\n delta = y;\n directionModifier = 1;\n break;\n case 'w':\n delta = x;\n directionModifier = isRTL() ? 1 : -1;\n break;\n }\n if (delta !== 0) {\n delta = Math.ceil(Math.abs(delta)) * Math.sign(delta);\n const distance = delta * modifier * directionModifier;\n nextState.value = constrainValue(\n // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n add(currentValue, distance), enableShift ? modifier : undefined);\n }\n }\n\n /**\n * Handles commit (ENTER key press or blur)\n */\n if (type === inputControlActionTypes.PRESS_ENTER || type === inputControlActionTypes.COMMIT) {\n const applyEmptyValue = required === false && currentValue === '';\n nextState.value = applyEmptyValue ? currentValue :\n // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n constrainValue(currentValue);\n }\n return nextState;\n };\n const buildSpinButtonClickHandler = direction => event => onChange(String(spinValue(valueProp, direction, event)), {\n // Set event.target to the <input> so that consumers can use\n // e.g. event.target.validity.\n event: {\n ...event,\n target: inputRef.current\n }\n });\n return /*#__PURE__*/_jsx(Input, {\n autoComplete: autoComplete,\n inputMode: \"numeric\",\n ...restProps,\n className: classes,\n dragDirection: dragDirection,\n hideHTMLArrows: spinControls !== 'native',\n isDragEnabled: isDragEnabled,\n label: label,\n max: max === Infinity ? undefined : max,\n min: min === -Infinity ? undefined : min,\n ref: mergedRef,\n required: required,\n step: step,\n type: typeProp\n // @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n ,\n value: valueProp,\n __unstableStateReducer: (state, action) => {\n var _stateReducerProp;\n const baseState = numberControlStateReducer(state, action);\n return (_stateReducerProp = stateReducerProp?.(baseState, action)) !== null && _stateReducerProp !== void 0 ? _stateReducerProp : baseState;\n },\n size: size,\n __shouldNotWarnDeprecated36pxSize: true,\n suffix: spinControls === 'custom' ? /*#__PURE__*/_jsxs(_Fragment, {\n children: [suffix, /*#__PURE__*/_jsx(Spacer, {\n marginBottom: 0,\n marginRight: 2,\n children: /*#__PURE__*/_jsxs(HStack, {\n spacing: 1,\n children: [/*#__PURE__*/_jsx(SpinButton, {\n className: spinButtonClasses,\n icon: plusIcon,\n size: \"small\",\n label: __('Increment'),\n onClick: buildSpinButtonClickHandler('up')\n }), /*#__PURE__*/_jsx(SpinButton, {\n className: spinButtonClasses,\n icon: resetIcon,\n size: \"small\",\n label: __('Decrement'),\n onClick: buildSpinButtonClickHandler('down')\n })]\n })\n })]\n }) : suffix,\n onChange: onChange\n });\n}\nexport const NumberControl = forwardRef(UnforwardedNumberControl);\nNumberControl.displayName = 'NumberControl';\nexport default NumberControl;"],
5
- "mappings": ";AAGA,OAAO,UAAU;AAIjB,SAAS,QAAQ,kBAAkB;AACnC,SAAS,OAAO,UAAU;AAC1B,SAAS,QAAQ,UAAU,SAAS,iBAAiB;AACrD,SAAS,oBAAoB;AAC7B,OAAO,gBAAgB;AAKvB,SAAS,OAAO,YAAY,cAAc;AAC1C,YAAY,6BAA6B;AACzC,SAAS,KAAK,UAAU,OAAO,uBAAuB;AACtD,SAAS,cAAc,oBAAoB;AAC3C,SAAS,cAAc;AACvB,SAAS,cAAc;AACvB,SAAS,aAAa;AACtB,SAAS,wCAAwC;AACjD,SAAS,mCAAmC;AAC5C,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY,iBAAiB;AAClE,IAAM,OAAO,MAAM;AAAC;AACpB,SAAS,yBAAyB,OAAO,cAAc;AACrD,QAAM;AAAA,IACJ,wBAAwB;AAAA,IACxB;AAAA,IACA,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,eAAe,iBAAiB,SAAS;AAAA,IACzC,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,IACrB;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,MAAM,WAAW;AAAA,IACjB,OAAO;AAAA,IACP,OAAO;AAAA,IACP;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,IAAI,iCAAiC,KAAK;AAC1C,8BAA4B;AAAA,IAC1B,eAAe;AAAA,IACf;AAAA,IACA,uBAAuB,UAAU;AAAA,IACjC;AAAA,EACF,CAAC;AACD,MAAI,gBAAgB;AAClB,eAAW,oDAAoD;AAAA,MAC7D,aAAa;AAAA,MACb,OAAO;AAAA,MACP,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,QAAM,WAAW,OAAO;AACxB,QAAM,YAAY,aAAa,CAAC,UAAU,YAAY,CAAC;AACvD,QAAM,YAAY,SAAS;AAC3B,QAAM,WAAW,YAAY,IAAI,aAAa,IAAI;AAClD,QAAM,WAAW,aAAa,UAAU,IAAI;AAC5C,QAAM,iBAAiB,CAAC,OAAO,iBAAiB;AAE9C,QAAI,CAAC,WAAW;AACd,cAAQ,gBAAgB,OAAO,KAAK,iBAAiB,QAAQ,iBAAiB,SAAS,eAAe,QAAQ;AAAA,IAChH;AACA,WAAO,GAAG,MAAM,OAAO,KAAK,GAAG,CAAC;AAAA,EAClC;AACA,QAAM,YAAY,eAAe,CAAC;AAClC,QAAM,eAAe,aAAa,WAAW,QAAQ;AACrD,QAAM,UAAU,KAAK,6BAA6B,SAAS;AAC3D,QAAM,KAAK,MAAM;AACjB,QAAM,oBAAoB,GAAG,SAAS,WAAW,OAAO,gBAAgB;AACxE,QAAM,YAAY,CAAC,OAAO,WAAW,UAAU;AAC7C,WAAO,eAAe;AACtB,UAAM,QAAQ,OAAO,YAAY;AACjC,UAAM,QAAQ,QAAQ,aAAa,SAAS,IAAI,WAAW;AAC3D,QAAI,YAAY,aAAa,KAAK,IAAI,YAAY;AAClD,QAAI,cAAc,MAAM;AACtB,kBAAY,IAAI,WAAW,KAAK;AAAA,IAClC,WAAW,cAAc,QAAQ;AAC/B,kBAAY,SAAS,WAAW,KAAK;AAAA,IACvC;AACA,WAAO,eAAe,WAAW,QAAQ,QAAQ,MAAS;AAAA,EAC5D;AASA,QAAM,4BAA4B,CAAC,OAAO,WAAW;AACnD,UAAM,YAAY;AAAA,MAChB,GAAG;AAAA,IACL;AACA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,IAAI;AACJ,UAAM,QAAQ,QAAQ;AACtB,UAAM,eAAe,UAAU;AAK/B,QAAI,SAAiC,oCAAY,SAAiC,oCAAY;AAC5F,gBAAU,QAAQ,UAAU,cAAc,SAAiC,mCAAW,OAAO,QAAQ,KAAK;AAAA,IAC5G;AAKA,QAAI,SAAiC,gCAAQ,eAAe;AAC1D,YAAM,CAAC,GAAG,CAAC,IAAI,QAAQ;AACvB,YAAM,cAAc,QAAQ,YAAY;AACxC,YAAM,WAAW,cAAc,aAAa,SAAS,IAAI,WAAW;AACpE,UAAI;AACJ,UAAI;AACJ,cAAQ,eAAe;AAAA,QACrB,KAAK;AACH,kBAAQ;AACR,8BAAoB;AACpB;AAAA,QACF,KAAK;AACH,kBAAQ;AACR,8BAAoB,MAAM,IAAI,KAAK;AACnC;AAAA,QACF,KAAK;AACH,kBAAQ;AACR,8BAAoB;AACpB;AAAA,QACF,KAAK;AACH,kBAAQ;AACR,8BAAoB,MAAM,IAAI,IAAI;AAClC;AAAA,MACJ;AACA,UAAI,UAAU,GAAG;AACf,gBAAQ,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK;AACpD,cAAM,WAAW,QAAQ,WAAW;AACpC,kBAAU,QAAQ;AAAA;AAAA,UAElB,IAAI,cAAc,QAAQ;AAAA,UAAG,cAAc,WAAW;AAAA,QAAS;AAAA,MACjE;AAAA,IACF;AAKA,QAAI,SAAiC,uCAAe,SAAiC,gCAAQ;AAC3F,YAAM,kBAAkB,aAAa,SAAS,iBAAiB;AAC/D,gBAAU,QAAQ,kBAAkB;AAAA;AAAA,QAEpC,eAAe,YAAY;AAAA;AAAA,IAC7B;AACA,WAAO;AAAA,EACT;AACA,QAAM,8BAA8B,eAAa,WAAS,SAAS,OAAO,UAAU,WAAW,WAAW,KAAK,CAAC,GAAG;AAAA;AAAA;AAAA,IAGjH,OAAO;AAAA,MACL,GAAG;AAAA,MACH,QAAQ,SAAS;AAAA,IACnB;AAAA,EACF,CAAC;AACD,SAAoB,qBAAK,OAAO;AAAA,IAC9B;AAAA,IACA,WAAW;AAAA,IACX,GAAG;AAAA,IACH,WAAW;AAAA,IACX;AAAA,IACA,gBAAgB,iBAAiB;AAAA,IACjC;AAAA,IACA;AAAA,IACA,KAAK,QAAQ,WAAW,SAAY;AAAA,IACpC,KAAK,QAAQ,YAAY,SAAY;AAAA,IACrC,KAAK;AAAA,IACL;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IAGN,OAAO;AAAA,IACP,wBAAwB,CAAC,OAAO,WAAW;AACzC,UAAI;AACJ,YAAM,YAAY,0BAA0B,OAAO,MAAM;AACzD,cAAQ,oBAAoB,mBAAmB,WAAW,MAAM,OAAO,QAAQ,sBAAsB,SAAS,oBAAoB;AAAA,IACpI;AAAA,IACA;AAAA,IACA,mCAAmC;AAAA,IACnC,QAAQ,iBAAiB,WAAwB,sBAAM,WAAW;AAAA,MAChE,UAAU,CAAC,QAAqB,qBAAK,QAAQ;AAAA,QAC3C,cAAc;AAAA,QACd,aAAa;AAAA,QACb,UAAuB,sBAAM,QAAQ;AAAA,UACnC,SAAS;AAAA,UACT,UAAU,CAAc,qBAAK,YAAY;AAAA,YACvC,WAAW;AAAA,YACX,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO,GAAG,WAAW;AAAA,YACrB,SAAS,4BAA4B,IAAI;AAAA,UAC3C,CAAC,GAAgB,qBAAK,YAAY;AAAA,YAChC,WAAW;AAAA,YACX,MAAM;AAAA,YACN,MAAM;AAAA,YACN,OAAO,GAAG,WAAW;AAAA,YACrB,SAAS,4BAA4B,MAAM;AAAA,UAC7C,CAAC,CAAC;AAAA,QACJ,CAAC;AAAA,MACH,CAAC,CAAC;AAAA,IACJ,CAAC,IAAI;AAAA,IACL;AAAA,EACF,CAAC;AACH;AACO,IAAM,gBAAgB,WAAW,wBAAwB;AAChE,cAAc,cAAc;AAC5B,IAAO,yBAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useRef, forwardRef } from '@wordpress/element';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { plus as plusIcon, reset as resetIcon } from '@wordpress/icons';\nimport { useMergeRefs } from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { Input, SpinButton, styles } from './styles/number-control-styles';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { add, subtract, clamp, ensureValidStep } from '../utils/math';\nimport { ensureNumber, isValueEmpty } from '../utils/values';\nimport { HStack } from '../h-stack';\nimport { Spacer } from '../spacer';\nimport { useCx } from '../utils';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst noop = () => {};\nfunction UnforwardedNumberControl(props, forwardedRef) {\n const {\n __unstableStateReducer: stateReducerProp,\n className,\n dragDirection = 'n',\n hideHTMLArrows = false,\n spinControls = hideHTMLArrows ? 'none' : 'native',\n isDragEnabled = true,\n isShiftStepEnabled = true,\n label,\n max = Infinity,\n min = -Infinity,\n required = false,\n shiftStep = 10,\n step = 1,\n spinFactor = 1,\n type: typeProp = 'number',\n value: valueProp,\n size = 'default',\n suffix,\n onChange = noop,\n __shouldNotWarnDeprecated36pxSize,\n ...restProps\n } = useDeprecated36pxDefaultSizeProp(props);\n maybeWarnDeprecated36pxSize({\n componentName: 'NumberControl',\n size,\n __next40pxDefaultSize: restProps.__next40pxDefaultSize,\n __shouldNotWarnDeprecated36pxSize\n });\n if (hideHTMLArrows) {\n deprecated('wp.components.NumberControl hideHTMLArrows prop ', {\n alternative: 'spinControls=\"none\"',\n since: '6.2',\n version: '6.3'\n });\n }\n const inputRef = useRef();\n const mergedRef = useMergeRefs([inputRef, forwardedRef]);\n const isStepAny = step === 'any';\n const baseStep = isStepAny ? 1 : ensureNumber(step);\n const baseSpin = ensureNumber(spinFactor) * baseStep;\n const constrainValue = (value, stepOverride) => {\n // When step is not \"any\" the value must be a valid step.\n if (!isStepAny) {\n value = ensureValidStep(value, min, stepOverride ?? baseStep);\n }\n return `${clamp(value, min, max)}`;\n };\n const baseValue = constrainValue(0);\n const autoComplete = typeProp === 'number' ? 'off' : undefined;\n const classes = clsx('components-number-control', className);\n const cx = useCx();\n const spinButtonClasses = cx(size === 'small' && styles.smallSpinButtons);\n const spinValue = (value, direction, event) => {\n event?.preventDefault();\n const shift = event?.shiftKey && isShiftStepEnabled;\n const delta = shift ? ensureNumber(shiftStep) * baseSpin : baseSpin;\n let nextValue = isValueEmpty(value) ? baseValue : value;\n if (direction === 'up') {\n nextValue = add(nextValue, delta);\n } else if (direction === 'down') {\n nextValue = subtract(nextValue, delta);\n }\n return constrainValue(nextValue, shift ? delta : undefined);\n };\n\n /**\n * \"Middleware\" function that intercepts updates from InputControl.\n * This allows us to tap into actions to transform the (next) state for\n * InputControl.\n *\n * @return The updated state to apply to InputControl\n */\n const numberControlStateReducer = (state, action) => {\n const nextState = {\n ...state\n };\n const {\n type,\n payload\n } = action;\n const event = payload.event;\n const currentValue = nextState.value;\n\n /**\n * Handles custom UP and DOWN Keyboard events\n */\n if (type === inputControlActionTypes.PRESS_UP || type === inputControlActionTypes.PRESS_DOWN) {\n nextState.value = spinValue(currentValue, type === inputControlActionTypes.PRESS_UP ? 'up' : 'down', event);\n }\n\n /**\n * Handles drag to update events\n */\n if (type === inputControlActionTypes.DRAG && isDragEnabled) {\n const [x, y] = payload.delta;\n const enableShift = payload.shiftKey && isShiftStepEnabled;\n const modifier = enableShift ? ensureNumber(shiftStep) * baseSpin : baseSpin;\n let directionModifier;\n let delta;\n switch (dragDirection) {\n case 'n':\n delta = y;\n directionModifier = -1;\n break;\n case 'e':\n delta = x;\n directionModifier = isRTL() ? -1 : 1;\n break;\n case 's':\n delta = y;\n directionModifier = 1;\n break;\n case 'w':\n delta = x;\n directionModifier = isRTL() ? 1 : -1;\n break;\n }\n if (delta !== 0) {\n delta = Math.ceil(Math.abs(delta)) * Math.sign(delta);\n const distance = delta * modifier * directionModifier;\n nextState.value = constrainValue(\n // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n add(currentValue, distance), enableShift ? modifier : undefined);\n }\n }\n\n /**\n * Handles commit (ENTER key press or blur)\n */\n if (type === inputControlActionTypes.PRESS_ENTER || type === inputControlActionTypes.COMMIT) {\n const applyEmptyValue = required === false && currentValue === '';\n nextState.value = applyEmptyValue ? currentValue :\n // @ts-expect-error TODO: Investigate if it's ok for currentValue to be undefined\n constrainValue(currentValue);\n }\n return nextState;\n };\n const buildSpinButtonClickHandler = direction => event => onChange(String(spinValue(valueProp, direction, event)), {\n // Set event.target to the <input> so that consumers can use\n // e.g. event.target.validity.\n event: {\n ...event,\n target: inputRef.current\n }\n });\n return /*#__PURE__*/_jsx(Input, {\n autoComplete: autoComplete,\n inputMode: \"numeric\",\n ...restProps,\n className: classes,\n dragDirection: dragDirection,\n hideHTMLArrows: spinControls !== 'native',\n isDragEnabled: isDragEnabled,\n label: label,\n max: max === Infinity ? undefined : max,\n min: min === -Infinity ? undefined : min,\n ref: mergedRef,\n required: required,\n step: step,\n type: typeProp\n // @ts-expect-error TODO: Resolve discrepancy between `value` types in InputControl based components\n ,\n value: valueProp,\n __unstableStateReducer: (state, action) => {\n const baseState = numberControlStateReducer(state, action);\n return stateReducerProp?.(baseState, action) ?? baseState;\n },\n size: size,\n __shouldNotWarnDeprecated36pxSize: true,\n suffix: spinControls === 'custom' ? /*#__PURE__*/_jsxs(_Fragment, {\n children: [suffix, /*#__PURE__*/_jsx(Spacer, {\n marginBottom: 0,\n marginRight: 2,\n children: /*#__PURE__*/_jsxs(HStack, {\n spacing: 1,\n children: [/*#__PURE__*/_jsx(SpinButton, {\n className: spinButtonClasses,\n icon: plusIcon,\n size: \"small\",\n label: __('Increment'),\n onClick: buildSpinButtonClickHandler('up')\n }), /*#__PURE__*/_jsx(SpinButton, {\n className: spinButtonClasses,\n icon: resetIcon,\n size: \"small\",\n label: __('Decrement'),\n onClick: buildSpinButtonClickHandler('down')\n })]\n })\n })]\n }) : suffix,\n onChange: onChange\n });\n}\nexport const NumberControl = forwardRef(UnforwardedNumberControl);\nNumberControl.displayName = 'NumberControl';\nexport default NumberControl;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -37,7 +37,6 @@ function NameInput({
37
37
  function deduplicateElementSlugs(elements) {
38
38
  const slugCounts = {};
39
39
  return elements.map((element) => {
40
- var _newSlug;
41
40
  let newSlug;
42
41
  const {
43
42
  slug
@@ -48,7 +47,7 @@ function deduplicateElementSlugs(elements) {
48
47
  }
49
48
  return {
50
49
  ...element,
51
- slug: (_newSlug = newSlug) !== null && _newSlug !== void 0 ? _newSlug : slug
50
+ slug: newSlug ?? slug
52
51
  };
53
52
  });
54
53
  }
@@ -166,7 +165,7 @@ function Option({
166
165
  onChange: (nextName) => onChange({
167
166
  ...element,
168
167
  name: nextName,
169
- slug: slugPrefix + kebabCase(nextName !== null && nextName !== void 0 ? nextName : "")
168
+ slug: slugPrefix + kebabCase(nextName ?? "")
170
169
  })
171
170
  }) : /* @__PURE__ */ _jsx(NameContainer, {
172
171
  children: element.name.trim().length ? element.name : (
@@ -383,7 +382,7 @@ function PaletteEdit({
383
382
  })
384
383
  );
385
384
  },
386
- element: elements[editingElement !== null && editingElement !== void 0 ? editingElement : -1],
385
+ element: elements[editingElement ?? -1],
387
386
  popoverProps
388
387
  }), !isEditing && (isGradient ? /* @__PURE__ */ _jsx(GradientPicker, {
389
388
  gradients,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/palette-edit/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect, useCallback, useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexBlock, FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { Item, ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport { PaletteActionsContainer, PaletteEditStyles, PaletteHeading, IndicatorStyled, NameContainer, NameInputControl, DoneButton, RemoveButton, PaletteEditContents } from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst DEFAULT_COLOR = '#000';\nfunction NameInput({\n value,\n onChange,\n label\n}) {\n return /*#__PURE__*/_jsx(NameInputControl, {\n size: \"compact\",\n label: label,\n hideLabelFromVision: true,\n value: value,\n onChange: onChange\n });\n}\n\n/*\n * Deduplicates the slugs of the provided elements.\n */\nexport function deduplicateElementSlugs(elements) {\n const slugCounts = {};\n return elements.map(element => {\n var _newSlug;\n let newSlug;\n const {\n slug\n } = element;\n slugCounts[slug] = (slugCounts[slug] || 0) + 1;\n if (slugCounts[slug] > 1) {\n newSlug = `${slug}-${slugCounts[slug] - 1}`;\n }\n return {\n ...element,\n slug: (_newSlug = newSlug) !== null && _newSlug !== void 0 ? _newSlug : slug\n };\n });\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(elements, slugPrefix) {\n const nameRegex = new RegExp(`^${slugPrefix}color-([\\\\d]+)$`);\n const position = elements.reduce((previousValue, currentValue) => {\n if (typeof currentValue?.slug === 'string') {\n const matches = currentValue?.slug.match(nameRegex);\n if (matches) {\n const id = parseInt(matches[1], 10);\n if (id >= previousValue) {\n return id + 1;\n }\n }\n }\n return previousValue;\n }, 1);\n return {\n name: sprintf(/* translators: %d: is an id for a custom color */\n __('Color %d'), position),\n slug: `${slugPrefix}color-${position}`\n };\n}\nfunction ColorPickerPopover({\n isGradient,\n element,\n onChange,\n popoverProps: receivedPopoverProps,\n onClose = () => {}\n}) {\n const popoverProps = useMemo(() => ({\n shift: true,\n offset: 20,\n // Disabling resize as it would otherwise cause the popover to show\n // scrollbars while dragging the color picker's handle close to the\n // popover edge.\n resize: false,\n placement: 'left-start',\n ...receivedPopoverProps,\n className: clsx('components-palette-edit__popover', receivedPopoverProps?.className)\n }), [receivedPopoverProps]);\n return /*#__PURE__*/_jsxs(Popover, {\n ...popoverProps,\n onClose: onClose,\n children: [!isGradient && /*#__PURE__*/_jsx(ColorPicker, {\n color: element.color,\n enableAlpha: true,\n onChange: newColor => {\n onChange({\n ...element,\n color: newColor\n });\n }\n }), isGradient && /*#__PURE__*/_jsx(\"div\", {\n className: \"components-palette-edit__popover-gradient-picker\",\n children: /*#__PURE__*/_jsx(CustomGradientPicker, {\n __experimentalIsRenderedInSidebar: true,\n value: element.gradient,\n onChange: newGradient => {\n onChange({\n ...element,\n gradient: newGradient\n });\n }\n })\n })]\n });\n}\nfunction Option({\n canOnlyChangeValues,\n element,\n onChange,\n onRemove,\n popoverProps: receivedPopoverProps,\n slugPrefix,\n isGradient\n}) {\n const value = isGradient ? element.gradient : element.color;\n const [isEditingColor, setIsEditingColor] = useState(false);\n\n // Use internal state instead of a ref to make sure that the component\n // re-renders when the popover's anchor updates.\n const [popoverAnchor, setPopoverAnchor] = useState(null);\n const popoverProps = useMemo(() => ({\n ...receivedPopoverProps,\n // Use the custom palette color item as the popover anchor.\n anchor: popoverAnchor\n }), [popoverAnchor, receivedPopoverProps]);\n return /*#__PURE__*/_jsxs(Item, {\n ref: setPopoverAnchor,\n size: \"small\",\n children: [/*#__PURE__*/_jsxs(HStack, {\n justify: \"flex-start\",\n children: [/*#__PURE__*/_jsx(Button, {\n size: \"small\",\n onClick: () => {\n setIsEditingColor(true);\n },\n \"aria-label\": sprintf(\n // translators: %s is a color or gradient name, e.g. \"Red\".\n __('Edit: %s'), element.name.trim().length ? element.name : value || ''),\n style: {\n padding: 0\n },\n children: /*#__PURE__*/_jsx(IndicatorStyled, {\n colorValue: value\n })\n }), /*#__PURE__*/_jsx(FlexBlock, {\n children: !canOnlyChangeValues ? /*#__PURE__*/_jsx(NameInput, {\n label: isGradient ? __('Gradient name') : __('Color name'),\n value: element.name,\n onChange: nextName => onChange({\n ...element,\n name: nextName,\n slug: slugPrefix + kebabCase(nextName !== null && nextName !== void 0 ? nextName : '')\n })\n }) : /*#__PURE__*/_jsx(NameContainer, {\n children: element.name.trim().length ? element.name : /* Fall back to non-breaking space to maintain height */\n '\\u00A0'\n })\n }), !canOnlyChangeValues && /*#__PURE__*/_jsx(FlexItem, {\n children: /*#__PURE__*/_jsx(RemoveButton, {\n size: \"small\",\n icon: lineSolid,\n label: sprintf(\n // translators: %s is a color or gradient name, e.g. \"Red\".\n __('Remove color: %s'), element.name.trim().length ? element.name : value || ''),\n onClick: onRemove\n })\n })]\n }), isEditingColor && /*#__PURE__*/_jsx(ColorPickerPopover, {\n isGradient: isGradient,\n onChange: onChange,\n element: element,\n popoverProps: popoverProps,\n onClose: () => setIsEditingColor(false)\n })]\n });\n}\nfunction PaletteEditListView({\n elements,\n onChange,\n canOnlyChangeValues,\n slugPrefix,\n isGradient,\n popoverProps,\n addColorRef\n}) {\n // When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n const elementsReferenceRef = useRef();\n useEffect(() => {\n elementsReferenceRef.current = elements;\n }, [elements]);\n const debounceOnChange = useDebounce(updatedElements => onChange(deduplicateElementSlugs(updatedElements)), 100);\n return /*#__PURE__*/_jsx(VStack, {\n spacing: 3,\n children: /*#__PURE__*/_jsx(ItemGroup, {\n isRounded: true,\n isBordered: true,\n isSeparated: true,\n children: elements.map((element, index) => /*#__PURE__*/_jsx(Option, {\n isGradient: isGradient,\n canOnlyChangeValues: canOnlyChangeValues,\n element: element,\n onChange: newElement => {\n debounceOnChange(elements.map((currentElement, currentIndex) => {\n if (currentIndex === index) {\n return newElement;\n }\n return currentElement;\n }));\n },\n onRemove: () => {\n const newElements = elements.filter((_currentElement, currentIndex) => {\n if (currentIndex === index) {\n return false;\n }\n return true;\n });\n onChange(newElements.length ? newElements : undefined);\n addColorRef.current?.focus();\n },\n slugPrefix: slugPrefix,\n popoverProps: popoverProps\n }, index))\n })\n });\n}\nconst EMPTY_ARRAY = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit({\n gradients,\n colors = EMPTY_ARRAY,\n onChange,\n paletteLabel,\n paletteLabelHeadingLevel = 2,\n emptyMessage,\n canOnlyChangeValues,\n canReset,\n slugPrefix = '',\n popoverProps\n}) {\n const isGradient = !!gradients;\n const elements = isGradient ? gradients : colors;\n const [isEditing, setIsEditing] = useState(false);\n const [editingElement, setEditingElement] = useState(null);\n const isAdding = isEditing && !!editingElement && elements[editingElement] && !elements[editingElement].slug;\n const elementsLength = elements.length;\n const hasElements = elementsLength > 0;\n const debounceOnChange = useDebounce(onChange, 100);\n const onSelectPaletteItem = useCallback((value, newEditingElementIndex) => {\n const selectedElement = newEditingElementIndex === undefined ? undefined : elements[newEditingElementIndex];\n const key = isGradient ? 'gradient' : 'color';\n // Ensures that the index returned matches a known element value.\n if (!!selectedElement && selectedElement[key] === value) {\n setEditingElement(newEditingElementIndex);\n } else {\n setIsEditing(true);\n }\n }, [isGradient, elements]);\n const addColorRef = useRef(null);\n return /*#__PURE__*/_jsxs(PaletteEditStyles, {\n children: [/*#__PURE__*/_jsxs(HStack, {\n children: [/*#__PURE__*/_jsx(PaletteHeading, {\n level: paletteLabelHeadingLevel,\n children: paletteLabel\n }), /*#__PURE__*/_jsxs(PaletteActionsContainer, {\n children: [hasElements && isEditing && /*#__PURE__*/_jsx(DoneButton, {\n size: \"small\",\n onClick: () => {\n setIsEditing(false);\n setEditingElement(null);\n },\n children: __('Done')\n }), !canOnlyChangeValues && /*#__PURE__*/_jsx(Button, {\n ref: addColorRef,\n size: \"small\",\n isPressed: isAdding,\n icon: plus,\n label: isGradient ? __('Add gradient') : __('Add color'),\n onClick: () => {\n const {\n name,\n slug\n } = getNameAndSlugForPosition(elements, slugPrefix);\n if (!!gradients) {\n onChange([...gradients, {\n gradient: DEFAULT_GRADIENT,\n name,\n slug\n }]);\n } else {\n onChange([...colors, {\n color: DEFAULT_COLOR,\n name,\n slug\n }]);\n }\n setIsEditing(true);\n setEditingElement(elements.length);\n }\n }), hasElements && (!isEditing || !canOnlyChangeValues || canReset) && /*#__PURE__*/_jsx(DropdownMenu, {\n icon: moreVertical,\n label: isGradient ? __('Gradient options') : __('Color options'),\n toggleProps: {\n size: 'small'\n },\n children: ({\n onClose\n }) => /*#__PURE__*/_jsx(_Fragment, {\n children: /*#__PURE__*/_jsxs(NavigableMenu, {\n role: \"menu\",\n children: [!isEditing && /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n variant: \"tertiary\",\n onClick: () => {\n setIsEditing(true);\n onClose();\n },\n className: \"components-palette-edit__menu-button\",\n children: __('Show details')\n }), !canOnlyChangeValues && /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n variant: \"tertiary\",\n onClick: () => {\n setEditingElement(null);\n setIsEditing(false);\n onChange();\n onClose();\n },\n className: \"components-palette-edit__menu-button\",\n children: isGradient ? __('Remove all gradients') : __('Remove all colors')\n }), canReset && /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n className: \"components-palette-edit__menu-button\",\n variant: \"tertiary\",\n onClick: () => {\n setEditingElement(null);\n onChange();\n onClose();\n },\n children: isGradient ? __('Reset gradient') : __('Reset colors')\n })]\n })\n })\n })]\n })]\n }), hasElements && /*#__PURE__*/_jsxs(PaletteEditContents, {\n children: [isEditing && /*#__PURE__*/_jsx(PaletteEditListView, {\n canOnlyChangeValues: canOnlyChangeValues,\n elements: elements\n // @ts-expect-error TODO: Don't know how to resolve\n ,\n onChange: onChange,\n slugPrefix: slugPrefix,\n isGradient: isGradient,\n popoverProps: popoverProps,\n addColorRef: addColorRef\n }), !isEditing && editingElement !== null && /*#__PURE__*/_jsx(ColorPickerPopover, {\n isGradient: isGradient,\n onClose: () => setEditingElement(null),\n onChange: newElement => {\n debounceOnChange(\n // @ts-expect-error TODO: Don't know how to resolve\n elements.map((currentElement, currentIndex) => {\n if (currentIndex === editingElement) {\n return newElement;\n }\n return currentElement;\n }));\n },\n element: elements[editingElement !== null && editingElement !== void 0 ? editingElement : -1],\n popoverProps: popoverProps\n }), !isEditing && (isGradient ? /*#__PURE__*/_jsx(GradientPicker, {\n gradients: gradients,\n onChange: onSelectPaletteItem,\n clearable: false,\n disableCustomGradients: true\n }) : /*#__PURE__*/_jsx(ColorPalette, {\n colors: colors,\n onChange: onSelectPaletteItem,\n clearable: false,\n disableCustomColors: true\n }))]\n }), !hasElements && emptyMessage && /*#__PURE__*/_jsx(PaletteEditContents, {\n children: emptyMessage\n })]\n });\n}\nexport default PaletteEdit;"],
5
- "mappings": ";AAGA,OAAO,UAAU;AAKjB,SAAS,UAAU,QAAQ,WAAW,aAAa,eAAe;AAClE,SAAS,IAAI,eAAe;AAC5B,SAAS,WAAW,cAAc,YAAY;AAC9C,SAAS,mBAAmB;AAK5B,OAAO,YAAY;AACnB,SAAS,mBAAmB;AAC5B,SAAS,WAAW,gBAAgB;AACpC,SAAS,cAAc;AACvB,SAAS,MAAM,iBAAiB;AAChC,SAAS,cAAc;AACvB,OAAO,oBAAoB;AAC3B,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AACzB,OAAO,aAAa;AACpB,SAAS,yBAAyB,mBAAmB,gBAAgB,iBAAiB,eAAe,kBAAkB,YAAY,cAAc,2BAA2B;AAC5K,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,OAAO,0BAA0B;AACjC,SAAS,iBAAiB;AAC1B,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY,iBAAiB;AAClE,IAAM,gBAAgB;AACtB,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,GAAG;AACD,SAAoB,qBAAK,kBAAkB;AAAA,IACzC,MAAM;AAAA,IACN;AAAA,IACA,qBAAqB;AAAA,IACrB;AAAA,IACA;AAAA,EACF,CAAC;AACH;AAKO,SAAS,wBAAwB,UAAU;AAChD,QAAM,aAAa,CAAC;AACpB,SAAO,SAAS,IAAI,aAAW;AAC7B,QAAI;AACJ,QAAI;AACJ,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,eAAW,IAAI,KAAK,WAAW,IAAI,KAAK,KAAK;AAC7C,QAAI,WAAW,IAAI,IAAI,GAAG;AACxB,gBAAU,GAAG,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC;AAAA,IAC3C;AACA,WAAO;AAAA,MACL,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,QAAQ,aAAa,SAAS,WAAW;AAAA,IAC1E;AAAA,EACF,CAAC;AACH;AAaO,SAAS,0BAA0B,UAAU,YAAY;AAC9D,QAAM,YAAY,IAAI,OAAO,IAAI,UAAU,iBAAiB;AAC5D,QAAM,WAAW,SAAS,OAAO,CAAC,eAAe,iBAAiB;AAChE,QAAI,OAAO,cAAc,SAAS,UAAU;AAC1C,YAAM,UAAU,cAAc,KAAK,MAAM,SAAS;AAClD,UAAI,SAAS;AACX,cAAM,KAAK,SAAS,QAAQ,CAAC,GAAG,EAAE;AAClC,YAAI,MAAM,eAAe;AACvB,iBAAO,KAAK;AAAA,QACd;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT,GAAG,CAAC;AACJ,SAAO;AAAA,IACL,MAAM;AAAA;AAAA,MACN,GAAG,UAAU;AAAA,MAAG;AAAA,IAAQ;AAAA,IACxB,MAAM,GAAG,UAAU,SAAS,QAAQ;AAAA,EACtC;AACF;AACA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,UAAU,MAAM;AAAA,EAAC;AACnB,GAAG;AACD,QAAM,eAAe,QAAQ,OAAO;AAAA,IAClC,OAAO;AAAA,IACP,QAAQ;AAAA;AAAA;AAAA;AAAA,IAIR,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,GAAG;AAAA,IACH,WAAW,KAAK,oCAAoC,sBAAsB,SAAS;AAAA,EACrF,IAAI,CAAC,oBAAoB,CAAC;AAC1B,SAAoB,sBAAM,SAAS;AAAA,IACjC,GAAG;AAAA,IACH;AAAA,IACA,UAAU,CAAC,CAAC,cAA2B,qBAAK,aAAa;AAAA,MACvD,OAAO,QAAQ;AAAA,MACf,aAAa;AAAA,MACb,UAAU,cAAY;AACpB,iBAAS;AAAA,UACP,GAAG;AAAA,UACH,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF,CAAC,GAAG,cAA2B,qBAAK,OAAO;AAAA,MACzC,WAAW;AAAA,MACX,UAAuB,qBAAK,sBAAsB;AAAA,QAChD,mCAAmC;AAAA,QACnC,OAAO,QAAQ;AAAA,QACf,UAAU,iBAAe;AACvB,mBAAS;AAAA,YACP,GAAG;AAAA,YACH,UAAU;AAAA,UACZ,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAAG;AACD,QAAM,QAAQ,aAAa,QAAQ,WAAW,QAAQ;AACtD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAI1D,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,IAAI;AACvD,QAAM,eAAe,QAAQ,OAAO;AAAA,IAClC,GAAG;AAAA;AAAA,IAEH,QAAQ;AAAA,EACV,IAAI,CAAC,eAAe,oBAAoB,CAAC;AACzC,SAAoB,sBAAM,MAAM;AAAA,IAC9B,KAAK;AAAA,IACL,MAAM;AAAA,IACN,UAAU,CAAc,sBAAM,QAAQ;AAAA,MACpC,SAAS;AAAA,MACT,UAAU,CAAc,qBAAK,QAAQ;AAAA,QACnC,MAAM;AAAA,QACN,SAAS,MAAM;AACb,4BAAkB,IAAI;AAAA,QACxB;AAAA,QACA,cAAc;AAAA;AAAA,UAEd,GAAG,UAAU;AAAA,UAAG,QAAQ,KAAK,KAAK,EAAE,SAAS,QAAQ,OAAO,SAAS;AAAA,QAAE;AAAA,QACvE,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,QACA,UAAuB,qBAAK,iBAAiB;AAAA,UAC3C,YAAY;AAAA,QACd,CAAC;AAAA,MACH,CAAC,GAAgB,qBAAK,WAAW;AAAA,QAC/B,UAAU,CAAC,sBAAmC,qBAAK,WAAW;AAAA,UAC5D,OAAO,aAAa,GAAG,eAAe,IAAI,GAAG,YAAY;AAAA,UACzD,OAAO,QAAQ;AAAA,UACf,UAAU,cAAY,SAAS;AAAA,YAC7B,GAAG;AAAA,YACH,MAAM;AAAA,YACN,MAAM,aAAa,UAAU,aAAa,QAAQ,aAAa,SAAS,WAAW,EAAE;AAAA,UACvF,CAAC;AAAA,QACH,CAAC,IAAiB,qBAAK,eAAe;AAAA,UACpC,UAAU,QAAQ,KAAK,KAAK,EAAE,SAAS,QAAQ;AAAA;AAAA,YAC/C;AAAA;AAAA,QACF,CAAC;AAAA,MACH,CAAC,GAAG,CAAC,uBAAoC,qBAAK,UAAU;AAAA,QACtD,UAAuB,qBAAK,cAAc;AAAA,UACxC,MAAM;AAAA,UACN,MAAM;AAAA,UACN,OAAO;AAAA;AAAA,YAEP,GAAG,kBAAkB;AAAA,YAAG,QAAQ,KAAK,KAAK,EAAE,SAAS,QAAQ,OAAO,SAAS;AAAA,UAAE;AAAA,UAC/E,SAAS;AAAA,QACX,CAAC;AAAA,MACH,CAAC,CAAC;AAAA,IACJ,CAAC,GAAG,kBAA+B,qBAAK,oBAAoB;AAAA,MAC1D;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,MAAM,kBAAkB,KAAK;AAAA,IACxC,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAG;AAED,QAAM,uBAAuB,OAAO;AACpC,YAAU,MAAM;AACd,yBAAqB,UAAU;AAAA,EACjC,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,mBAAmB,YAAY,qBAAmB,SAAS,wBAAwB,eAAe,CAAC,GAAG,GAAG;AAC/G,SAAoB,qBAAK,QAAQ;AAAA,IAC/B,SAAS;AAAA,IACT,UAAuB,qBAAK,WAAW;AAAA,MACrC,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,UAAU,SAAS,IAAI,CAAC,SAAS,UAAuB,qBAAK,QAAQ;AAAA,QACnE;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,gBAAc;AACtB,2BAAiB,SAAS,IAAI,CAAC,gBAAgB,iBAAiB;AAC9D,gBAAI,iBAAiB,OAAO;AAC1B,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT,CAAC,CAAC;AAAA,QACJ;AAAA,QACA,UAAU,MAAM;AACd,gBAAM,cAAc,SAAS,OAAO,CAAC,iBAAiB,iBAAiB;AACrE,gBAAI,iBAAiB,OAAO;AAC1B,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT,CAAC;AACD,mBAAS,YAAY,SAAS,cAAc,MAAS;AACrD,sBAAY,SAAS,MAAM;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,MACF,GAAG,KAAK,CAAC;AAAA,IACX,CAAC;AAAA,EACH,CAAC;AACH;AACA,IAAM,cAAc,CAAC;AAsBd,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb;AACF,GAAG;AACD,QAAM,aAAa,CAAC,CAAC;AACrB,QAAM,WAAW,aAAa,YAAY;AAC1C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,IAAI;AACzD,QAAM,WAAW,aAAa,CAAC,CAAC,kBAAkB,SAAS,cAAc,KAAK,CAAC,SAAS,cAAc,EAAE;AACxG,QAAM,iBAAiB,SAAS;AAChC,QAAM,cAAc,iBAAiB;AACrC,QAAM,mBAAmB,YAAY,UAAU,GAAG;AAClD,QAAM,sBAAsB,YAAY,CAAC,OAAO,2BAA2B;AACzE,UAAM,kBAAkB,2BAA2B,SAAY,SAAY,SAAS,sBAAsB;AAC1G,UAAM,MAAM,aAAa,aAAa;AAEtC,QAAI,CAAC,CAAC,mBAAmB,gBAAgB,GAAG,MAAM,OAAO;AACvD,wBAAkB,sBAAsB;AAAA,IAC1C,OAAO;AACL,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,YAAY,QAAQ,CAAC;AACzB,QAAM,cAAc,OAAO,IAAI;AAC/B,SAAoB,sBAAM,mBAAmB;AAAA,IAC3C,UAAU,CAAc,sBAAM,QAAQ;AAAA,MACpC,UAAU,CAAc,qBAAK,gBAAgB;AAAA,QAC3C,OAAO;AAAA,QACP,UAAU;AAAA,MACZ,CAAC,GAAgB,sBAAM,yBAAyB;AAAA,QAC9C,UAAU,CAAC,eAAe,aAA0B,qBAAK,YAAY;AAAA,UACnE,MAAM;AAAA,UACN,SAAS,MAAM;AACb,yBAAa,KAAK;AAClB,8BAAkB,IAAI;AAAA,UACxB;AAAA,UACA,UAAU,GAAG,MAAM;AAAA,QACrB,CAAC,GAAG,CAAC,uBAAoC,qBAAK,QAAQ;AAAA,UACpD,KAAK;AAAA,UACL,MAAM;AAAA,UACN,WAAW;AAAA,UACX,MAAM;AAAA,UACN,OAAO,aAAa,GAAG,cAAc,IAAI,GAAG,WAAW;AAAA,UACvD,SAAS,MAAM;AACb,kBAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF,IAAI,0BAA0B,UAAU,UAAU;AAClD,gBAAI,CAAC,CAAC,WAAW;AACf,uBAAS,CAAC,GAAG,WAAW;AAAA,gBACtB,UAAU;AAAA,gBACV;AAAA,gBACA;AAAA,cACF,CAAC,CAAC;AAAA,YACJ,OAAO;AACL,uBAAS,CAAC,GAAG,QAAQ;AAAA,gBACnB,OAAO;AAAA,gBACP;AAAA,gBACA;AAAA,cACF,CAAC,CAAC;AAAA,YACJ;AACA,yBAAa,IAAI;AACjB,8BAAkB,SAAS,MAAM;AAAA,UACnC;AAAA,QACF,CAAC,GAAG,gBAAgB,CAAC,aAAa,CAAC,uBAAuB,aAA0B,qBAAK,cAAc;AAAA,UACrG,MAAM;AAAA,UACN,OAAO,aAAa,GAAG,kBAAkB,IAAI,GAAG,eAAe;AAAA,UAC/D,aAAa;AAAA,YACX,MAAM;AAAA,UACR;AAAA,UACA,UAAU,CAAC;AAAA,YACT;AAAA,UACF,MAAmB,qBAAK,WAAW;AAAA,YACjC,UAAuB,sBAAM,eAAe;AAAA,cAC1C,MAAM;AAAA,cACN,UAAU,CAAC,CAAC,aAA0B,qBAAK,QAAQ;AAAA,gBACjD,uBAAuB;AAAA,gBACvB,SAAS;AAAA,gBACT,SAAS,MAAM;AACb,+BAAa,IAAI;AACjB,0BAAQ;AAAA,gBACV;AAAA,gBACA,WAAW;AAAA,gBACX,UAAU,GAAG,cAAc;AAAA,cAC7B,CAAC,GAAG,CAAC,uBAAoC,qBAAK,QAAQ;AAAA,gBACpD,uBAAuB;AAAA,gBACvB,SAAS;AAAA,gBACT,SAAS,MAAM;AACb,oCAAkB,IAAI;AACtB,+BAAa,KAAK;AAClB,2BAAS;AACT,0BAAQ;AAAA,gBACV;AAAA,gBACA,WAAW;AAAA,gBACX,UAAU,aAAa,GAAG,sBAAsB,IAAI,GAAG,mBAAmB;AAAA,cAC5E,CAAC,GAAG,YAAyB,qBAAK,QAAQ;AAAA,gBACxC,uBAAuB;AAAA,gBACvB,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,SAAS,MAAM;AACb,oCAAkB,IAAI;AACtB,2BAAS;AACT,0BAAQ;AAAA,gBACV;AAAA,gBACA,UAAU,aAAa,GAAG,gBAAgB,IAAI,GAAG,cAAc;AAAA,cACjE,CAAC,CAAC;AAAA,YACJ,CAAC;AAAA,UACH,CAAC;AAAA,QACH,CAAC,CAAC;AAAA,MACJ,CAAC,CAAC;AAAA,IACJ,CAAC,GAAG,eAA4B,sBAAM,qBAAqB;AAAA,MACzD,UAAU,CAAC,aAA0B,qBAAK,qBAAqB;AAAA,QAC7D;AAAA,QACA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,GAAG,CAAC,aAAa,mBAAmB,QAAqB,qBAAK,oBAAoB;AAAA,QACjF;AAAA,QACA,SAAS,MAAM,kBAAkB,IAAI;AAAA,QACrC,UAAU,gBAAc;AACtB;AAAA;AAAA,YAEA,SAAS,IAAI,CAAC,gBAAgB,iBAAiB;AAC7C,kBAAI,iBAAiB,gBAAgB;AACnC,uBAAO;AAAA,cACT;AACA,qBAAO;AAAA,YACT,CAAC;AAAA,UAAC;AAAA,QACJ;AAAA,QACA,SAAS,SAAS,mBAAmB,QAAQ,mBAAmB,SAAS,iBAAiB,EAAE;AAAA,QAC5F;AAAA,MACF,CAAC,GAAG,CAAC,cAAc,aAA0B,qBAAK,gBAAgB;AAAA,QAChE;AAAA,QACA,UAAU;AAAA,QACV,WAAW;AAAA,QACX,wBAAwB;AAAA,MAC1B,CAAC,IAAiB,qBAAK,cAAc;AAAA,QACnC;AAAA,QACA,UAAU;AAAA,QACV,WAAW;AAAA,QACX,qBAAqB;AAAA,MACvB,CAAC,EAAE;AAAA,IACL,CAAC,GAAG,CAAC,eAAe,gBAA6B,qBAAK,qBAAqB;AAAA,MACzE,UAAU;AAAA,IACZ,CAAC,CAAC;AAAA,EACJ,CAAC;AACH;AACA,IAAO,uBAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect, useCallback, useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { useDebounce } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexBlock, FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { Item, ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport { PaletteActionsContainer, PaletteEditStyles, PaletteHeading, IndicatorStyled, NameContainer, NameInputControl, DoneButton, RemoveButton, PaletteEditContents } from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst DEFAULT_COLOR = '#000';\nfunction NameInput({\n value,\n onChange,\n label\n}) {\n return /*#__PURE__*/_jsx(NameInputControl, {\n size: \"compact\",\n label: label,\n hideLabelFromVision: true,\n value: value,\n onChange: onChange\n });\n}\n\n/*\n * Deduplicates the slugs of the provided elements.\n */\nexport function deduplicateElementSlugs(elements) {\n const slugCounts = {};\n return elements.map(element => {\n let newSlug;\n const {\n slug\n } = element;\n slugCounts[slug] = (slugCounts[slug] || 0) + 1;\n if (slugCounts[slug] > 1) {\n newSlug = `${slug}-${slugCounts[slug] - 1}`;\n }\n return {\n ...element,\n slug: newSlug ?? slug\n };\n });\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(elements, slugPrefix) {\n const nameRegex = new RegExp(`^${slugPrefix}color-([\\\\d]+)$`);\n const position = elements.reduce((previousValue, currentValue) => {\n if (typeof currentValue?.slug === 'string') {\n const matches = currentValue?.slug.match(nameRegex);\n if (matches) {\n const id = parseInt(matches[1], 10);\n if (id >= previousValue) {\n return id + 1;\n }\n }\n }\n return previousValue;\n }, 1);\n return {\n name: sprintf(/* translators: %d: is an id for a custom color */\n __('Color %d'), position),\n slug: `${slugPrefix}color-${position}`\n };\n}\nfunction ColorPickerPopover({\n isGradient,\n element,\n onChange,\n popoverProps: receivedPopoverProps,\n onClose = () => {}\n}) {\n const popoverProps = useMemo(() => ({\n shift: true,\n offset: 20,\n // Disabling resize as it would otherwise cause the popover to show\n // scrollbars while dragging the color picker's handle close to the\n // popover edge.\n resize: false,\n placement: 'left-start',\n ...receivedPopoverProps,\n className: clsx('components-palette-edit__popover', receivedPopoverProps?.className)\n }), [receivedPopoverProps]);\n return /*#__PURE__*/_jsxs(Popover, {\n ...popoverProps,\n onClose: onClose,\n children: [!isGradient && /*#__PURE__*/_jsx(ColorPicker, {\n color: element.color,\n enableAlpha: true,\n onChange: newColor => {\n onChange({\n ...element,\n color: newColor\n });\n }\n }), isGradient && /*#__PURE__*/_jsx(\"div\", {\n className: \"components-palette-edit__popover-gradient-picker\",\n children: /*#__PURE__*/_jsx(CustomGradientPicker, {\n __experimentalIsRenderedInSidebar: true,\n value: element.gradient,\n onChange: newGradient => {\n onChange({\n ...element,\n gradient: newGradient\n });\n }\n })\n })]\n });\n}\nfunction Option({\n canOnlyChangeValues,\n element,\n onChange,\n onRemove,\n popoverProps: receivedPopoverProps,\n slugPrefix,\n isGradient\n}) {\n const value = isGradient ? element.gradient : element.color;\n const [isEditingColor, setIsEditingColor] = useState(false);\n\n // Use internal state instead of a ref to make sure that the component\n // re-renders when the popover's anchor updates.\n const [popoverAnchor, setPopoverAnchor] = useState(null);\n const popoverProps = useMemo(() => ({\n ...receivedPopoverProps,\n // Use the custom palette color item as the popover anchor.\n anchor: popoverAnchor\n }), [popoverAnchor, receivedPopoverProps]);\n return /*#__PURE__*/_jsxs(Item, {\n ref: setPopoverAnchor,\n size: \"small\",\n children: [/*#__PURE__*/_jsxs(HStack, {\n justify: \"flex-start\",\n children: [/*#__PURE__*/_jsx(Button, {\n size: \"small\",\n onClick: () => {\n setIsEditingColor(true);\n },\n \"aria-label\": sprintf(\n // translators: %s is a color or gradient name, e.g. \"Red\".\n __('Edit: %s'), element.name.trim().length ? element.name : value || ''),\n style: {\n padding: 0\n },\n children: /*#__PURE__*/_jsx(IndicatorStyled, {\n colorValue: value\n })\n }), /*#__PURE__*/_jsx(FlexBlock, {\n children: !canOnlyChangeValues ? /*#__PURE__*/_jsx(NameInput, {\n label: isGradient ? __('Gradient name') : __('Color name'),\n value: element.name,\n onChange: nextName => onChange({\n ...element,\n name: nextName,\n slug: slugPrefix + kebabCase(nextName ?? '')\n })\n }) : /*#__PURE__*/_jsx(NameContainer, {\n children: element.name.trim().length ? element.name : /* Fall back to non-breaking space to maintain height */\n '\\u00A0'\n })\n }), !canOnlyChangeValues && /*#__PURE__*/_jsx(FlexItem, {\n children: /*#__PURE__*/_jsx(RemoveButton, {\n size: \"small\",\n icon: lineSolid,\n label: sprintf(\n // translators: %s is a color or gradient name, e.g. \"Red\".\n __('Remove color: %s'), element.name.trim().length ? element.name : value || ''),\n onClick: onRemove\n })\n })]\n }), isEditingColor && /*#__PURE__*/_jsx(ColorPickerPopover, {\n isGradient: isGradient,\n onChange: onChange,\n element: element,\n popoverProps: popoverProps,\n onClose: () => setIsEditingColor(false)\n })]\n });\n}\nfunction PaletteEditListView({\n elements,\n onChange,\n canOnlyChangeValues,\n slugPrefix,\n isGradient,\n popoverProps,\n addColorRef\n}) {\n // When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n const elementsReferenceRef = useRef();\n useEffect(() => {\n elementsReferenceRef.current = elements;\n }, [elements]);\n const debounceOnChange = useDebounce(updatedElements => onChange(deduplicateElementSlugs(updatedElements)), 100);\n return /*#__PURE__*/_jsx(VStack, {\n spacing: 3,\n children: /*#__PURE__*/_jsx(ItemGroup, {\n isRounded: true,\n isBordered: true,\n isSeparated: true,\n children: elements.map((element, index) => /*#__PURE__*/_jsx(Option, {\n isGradient: isGradient,\n canOnlyChangeValues: canOnlyChangeValues,\n element: element,\n onChange: newElement => {\n debounceOnChange(elements.map((currentElement, currentIndex) => {\n if (currentIndex === index) {\n return newElement;\n }\n return currentElement;\n }));\n },\n onRemove: () => {\n const newElements = elements.filter((_currentElement, currentIndex) => {\n if (currentIndex === index) {\n return false;\n }\n return true;\n });\n onChange(newElements.length ? newElements : undefined);\n addColorRef.current?.focus();\n },\n slugPrefix: slugPrefix,\n popoverProps: popoverProps\n }, index))\n })\n });\n}\nconst EMPTY_ARRAY = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit({\n gradients,\n colors = EMPTY_ARRAY,\n onChange,\n paletteLabel,\n paletteLabelHeadingLevel = 2,\n emptyMessage,\n canOnlyChangeValues,\n canReset,\n slugPrefix = '',\n popoverProps\n}) {\n const isGradient = !!gradients;\n const elements = isGradient ? gradients : colors;\n const [isEditing, setIsEditing] = useState(false);\n const [editingElement, setEditingElement] = useState(null);\n const isAdding = isEditing && !!editingElement && elements[editingElement] && !elements[editingElement].slug;\n const elementsLength = elements.length;\n const hasElements = elementsLength > 0;\n const debounceOnChange = useDebounce(onChange, 100);\n const onSelectPaletteItem = useCallback((value, newEditingElementIndex) => {\n const selectedElement = newEditingElementIndex === undefined ? undefined : elements[newEditingElementIndex];\n const key = isGradient ? 'gradient' : 'color';\n // Ensures that the index returned matches a known element value.\n if (!!selectedElement && selectedElement[key] === value) {\n setEditingElement(newEditingElementIndex);\n } else {\n setIsEditing(true);\n }\n }, [isGradient, elements]);\n const addColorRef = useRef(null);\n return /*#__PURE__*/_jsxs(PaletteEditStyles, {\n children: [/*#__PURE__*/_jsxs(HStack, {\n children: [/*#__PURE__*/_jsx(PaletteHeading, {\n level: paletteLabelHeadingLevel,\n children: paletteLabel\n }), /*#__PURE__*/_jsxs(PaletteActionsContainer, {\n children: [hasElements && isEditing && /*#__PURE__*/_jsx(DoneButton, {\n size: \"small\",\n onClick: () => {\n setIsEditing(false);\n setEditingElement(null);\n },\n children: __('Done')\n }), !canOnlyChangeValues && /*#__PURE__*/_jsx(Button, {\n ref: addColorRef,\n size: \"small\",\n isPressed: isAdding,\n icon: plus,\n label: isGradient ? __('Add gradient') : __('Add color'),\n onClick: () => {\n const {\n name,\n slug\n } = getNameAndSlugForPosition(elements, slugPrefix);\n if (!!gradients) {\n onChange([...gradients, {\n gradient: DEFAULT_GRADIENT,\n name,\n slug\n }]);\n } else {\n onChange([...colors, {\n color: DEFAULT_COLOR,\n name,\n slug\n }]);\n }\n setIsEditing(true);\n setEditingElement(elements.length);\n }\n }), hasElements && (!isEditing || !canOnlyChangeValues || canReset) && /*#__PURE__*/_jsx(DropdownMenu, {\n icon: moreVertical,\n label: isGradient ? __('Gradient options') : __('Color options'),\n toggleProps: {\n size: 'small'\n },\n children: ({\n onClose\n }) => /*#__PURE__*/_jsx(_Fragment, {\n children: /*#__PURE__*/_jsxs(NavigableMenu, {\n role: \"menu\",\n children: [!isEditing && /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n variant: \"tertiary\",\n onClick: () => {\n setIsEditing(true);\n onClose();\n },\n className: \"components-palette-edit__menu-button\",\n children: __('Show details')\n }), !canOnlyChangeValues && /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n variant: \"tertiary\",\n onClick: () => {\n setEditingElement(null);\n setIsEditing(false);\n onChange();\n onClose();\n },\n className: \"components-palette-edit__menu-button\",\n children: isGradient ? __('Remove all gradients') : __('Remove all colors')\n }), canReset && /*#__PURE__*/_jsx(Button, {\n __next40pxDefaultSize: true,\n className: \"components-palette-edit__menu-button\",\n variant: \"tertiary\",\n onClick: () => {\n setEditingElement(null);\n onChange();\n onClose();\n },\n children: isGradient ? __('Reset gradient') : __('Reset colors')\n })]\n })\n })\n })]\n })]\n }), hasElements && /*#__PURE__*/_jsxs(PaletteEditContents, {\n children: [isEditing && /*#__PURE__*/_jsx(PaletteEditListView, {\n canOnlyChangeValues: canOnlyChangeValues,\n elements: elements\n // @ts-expect-error TODO: Don't know how to resolve\n ,\n onChange: onChange,\n slugPrefix: slugPrefix,\n isGradient: isGradient,\n popoverProps: popoverProps,\n addColorRef: addColorRef\n }), !isEditing && editingElement !== null && /*#__PURE__*/_jsx(ColorPickerPopover, {\n isGradient: isGradient,\n onClose: () => setEditingElement(null),\n onChange: newElement => {\n debounceOnChange(\n // @ts-expect-error TODO: Don't know how to resolve\n elements.map((currentElement, currentIndex) => {\n if (currentIndex === editingElement) {\n return newElement;\n }\n return currentElement;\n }));\n },\n element: elements[editingElement ?? -1],\n popoverProps: popoverProps\n }), !isEditing && (isGradient ? /*#__PURE__*/_jsx(GradientPicker, {\n gradients: gradients,\n onChange: onSelectPaletteItem,\n clearable: false,\n disableCustomGradients: true\n }) : /*#__PURE__*/_jsx(ColorPalette, {\n colors: colors,\n onChange: onSelectPaletteItem,\n clearable: false,\n disableCustomColors: true\n }))]\n }), !hasElements && emptyMessage && /*#__PURE__*/_jsx(PaletteEditContents, {\n children: emptyMessage\n })]\n });\n}\nexport default PaletteEdit;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -124,10 +124,9 @@ var UnforwardedPopover = (props, forwardedRef) => {
124
124
  const middleware = [...placementProp === "overlay" ? overlayMiddlewares() : [], offsetMiddleware(offsetProp), computedFlipProp && flipMiddleware(), computedResizeProp && size({
125
125
  padding: OVERFLOW_PADDING,
126
126
  apply(sizeProps) {
127
- var _refs$floating$curren;
128
127
  const {
129
128
  firstElementChild
130
- } = (_refs$floating$curren = refs.floating.current) !== null && _refs$floating$curren !== void 0 ? _refs$floating$curren : {};
129
+ } = refs.floating.current ?? {};
131
130
  if (!(firstElementChild instanceof HTMLElement)) {
132
131
  return;
133
132
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/popover/index.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\nimport clsx from 'clsx';\nimport { useFloating, flip as flipMiddleware, shift as shiftMiddleware, limitShift, autoUpdate, arrow, offset as offsetMiddleware, size } from '@floating-ui/react-dom';\nimport { motion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo, useState, useCallback, createPortal } from '@wordpress/element';\nimport { useReducedMotion, useViewportMatch, useMergeRefs, __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { computePopoverPosition, positionToPlacement, placementToMotionAnimationProps, getReferenceElement } from './utils';\nimport { contextConnect, useContextSystem } from '../context';\nimport { overlayMiddlewares } from './overlay-middlewares';\nimport { StyleProvider } from '../style-provider';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nexport const SLOT_NAME = 'Popover';\n\n/**\n * Virtual padding to account for overflow boundaries.\n *\n * @type {number}\n */\nconst OVERFLOW_PADDING = 8;\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => /*#__PURE__*/_jsxs(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n className: \"components-popover__triangle\",\n role: \"presentation\",\n children: [/*#__PURE__*/_jsx(Path, {\n className: \"components-popover__triangle-bg\",\n d: \"M 0 0 L 50 50 L 100 0\"\n }), /*#__PURE__*/_jsx(Path, {\n className: \"components-popover__triangle-border\",\n d: \"M 0 0 L 50 50 L 100 0\",\n vectorEffect: \"non-scaling-stroke\"\n })]\n});\nconst slotNameContext = createContext(undefined);\nslotNameContext.displayName = '__unstableSlotNameContext';\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n let container = document.body.querySelector('.' + fallbackContainerClassname);\n if (!container) {\n container = document.createElement('div');\n container.className = fallbackContainerClassname;\n document.body.append(container);\n }\n return container;\n};\nconst UnforwardedPopover = (props, forwardedRef) => {\n const {\n animate = true,\n headerTitle,\n constrainTabbing,\n onClose,\n children,\n className,\n noArrow = true,\n position,\n placement: placementProp = 'bottom-start',\n offset: offsetProp = 0,\n focusOnMount = 'firstElement',\n anchor,\n expandOnMobile,\n onFocusOutside,\n __unstableSlotName = SLOT_NAME,\n flip = true,\n resize = true,\n shift = false,\n inline = false,\n variant,\n style: contentStyle,\n // Deprecated props\n __unstableForcePosition,\n anchorRef,\n anchorRect,\n getAnchorRect,\n isAlternate,\n // Rest\n ...contentProps\n } = useContextSystem(props, 'Popover');\n let computedFlipProp = flip;\n let computedResizeProp = resize;\n if (__unstableForcePosition !== undefined) {\n deprecated('`__unstableForcePosition` prop in wp.components.Popover', {\n since: '6.1',\n version: '6.3',\n alternative: '`flip={ false }` and `resize={ false }`'\n });\n\n // Back-compat, set the `flip` and `resize` props\n // to `false` to replicate `__unstableForcePosition`.\n computedFlipProp = !__unstableForcePosition;\n computedResizeProp = !__unstableForcePosition;\n }\n if (anchorRef !== undefined) {\n deprecated('`anchorRef` prop in wp.components.Popover', {\n since: '6.1',\n alternative: '`anchor` prop'\n });\n }\n if (anchorRect !== undefined) {\n deprecated('`anchorRect` prop in wp.components.Popover', {\n since: '6.1',\n alternative: '`anchor` prop'\n });\n }\n if (getAnchorRect !== undefined) {\n deprecated('`getAnchorRect` prop in wp.components.Popover', {\n since: '6.1',\n alternative: '`anchor` prop'\n });\n }\n const computedVariant = isAlternate ? 'toolbar' : variant;\n if (isAlternate !== undefined) {\n deprecated('`isAlternate` prop in wp.components.Popover', {\n since: '6.2',\n alternative: \"`variant` prop with the `'toolbar'` value\"\n });\n }\n const arrowRef = useRef(null);\n const [fallbackReferenceElement, setFallbackReferenceElement] = useState(null);\n const anchorRefFallback = useCallback(node => {\n setFallbackReferenceElement(node);\n }, []);\n const isMobileViewport = useViewportMatch('medium', '<');\n const isExpanded = expandOnMobile && isMobileViewport;\n const hasArrow = !isExpanded && !noArrow;\n const normalizedPlacementFromProps = position ? positionToPlacement(position) : placementProp;\n const middleware = [...(placementProp === 'overlay' ? overlayMiddlewares() : []), offsetMiddleware(offsetProp), computedFlipProp && flipMiddleware(), computedResizeProp && size({\n padding: OVERFLOW_PADDING,\n apply(sizeProps) {\n var _refs$floating$curren;\n const {\n firstElementChild\n } = (_refs$floating$curren = refs.floating.current) !== null && _refs$floating$curren !== void 0 ? _refs$floating$curren : {};\n\n // Only HTMLElement instances have the `style` property.\n if (!(firstElementChild instanceof HTMLElement)) {\n return;\n }\n\n // Reduce the height of the popover to the available space.\n Object.assign(firstElementChild.style, {\n maxHeight: `${Math.max(0, sizeProps.availableHeight)}px`,\n overflow: 'auto'\n });\n }\n }), shift && shiftMiddleware({\n crossAxis: true,\n limiter: limitShift(),\n padding: 1 // Necessary to avoid flickering at the edge of the viewport.\n }), arrow({\n element: arrowRef\n })];\n const slotName = useContext(slotNameContext) || __unstableSlotName;\n const slot = useSlot(slotName);\n let onDialogClose;\n if (onClose || onFocusOutside) {\n onDialogClose = (type, event) => {\n // Ideally the popover should have just a single onClose prop and\n // not three props that potentially do the same thing.\n if (type === 'focus-outside') {\n // Check if this blur event is actually relevant to this popover\n const blurTarget = event?.target;\n const referenceElement = refs.reference.current;\n const floatingElement = refs.floating.current;\n\n // Check if blur is from this popover's reference element or its floating content\n const isBlurFromThisPopover = referenceElement && 'contains' in referenceElement && referenceElement.contains(blurTarget) || floatingElement?.contains(blurTarget);\n // Ignore blur events that don't originate from this popover when there's no\n // relatedTarget (next focus target) and focus moves to document.body.\n // This prevents incorrectly closing the popover when clicking on elements\n // that don't accept focus (like clicking outside to empty space).\n const ownerDocument = floatingElement?.ownerDocument;\n if (!isBlurFromThisPopover && !('relatedTarget' in event && event.relatedTarget) && ownerDocument?.activeElement === ownerDocument?.body) {\n return;\n }\n // Call onFocusOutside if defined or call onClose.\n if (onFocusOutside) {\n onFocusOutside(event);\n } else if (onClose) {\n onClose();\n }\n } else if (onClose) {\n // onClose should be called for other event types if it exists.\n onClose();\n }\n };\n }\n const [dialogRef, dialogProps] = useDialog({\n constrainTabbing,\n focusOnMount,\n __unstableOnClose: onDialogClose,\n // @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n onClose: onDialogClose\n });\n const {\n // Positioning coordinates\n x,\n y,\n // Object with \"regular\" refs to both \"reference\" and \"floating\"\n refs,\n // Type of CSS position property to use (absolute or fixed)\n strategy,\n update,\n placement: computedPlacement,\n middlewareData: {\n arrow: arrowData\n }\n } = useFloating({\n placement: normalizedPlacementFromProps === 'overlay' ? undefined : normalizedPlacementFromProps,\n middleware,\n whileElementsMounted: (referenceParam, floatingParam, updateParam) => autoUpdate(referenceParam, floatingParam, updateParam, {\n layoutShift: false,\n animationFrame: true\n })\n });\n const arrowCallbackRef = useCallback(node => {\n arrowRef.current = node;\n update();\n }, [update]);\n\n // When any of the possible anchor \"sources\" change,\n // recompute the reference element (real or virtual) and its owner document.\n\n const anchorRefTop = anchorRef?.top;\n const anchorRefBottom = anchorRef?.bottom;\n const anchorRefStartContainer = anchorRef?.startContainer;\n const anchorRefCurrent = anchorRef?.current;\n useLayoutEffect(() => {\n const resultingReferenceElement = getReferenceElement({\n anchor,\n anchorRef,\n anchorRect,\n getAnchorRect,\n fallbackReferenceElement\n });\n refs.setReference(resultingReferenceElement);\n }, [anchor, anchorRef, anchorRefTop, anchorRefBottom, anchorRefStartContainer, anchorRefCurrent, anchorRect, getAnchorRect, fallbackReferenceElement, refs]);\n const mergedFloatingRef = useMergeRefs([refs.setFloating, dialogRef, forwardedRef]);\n const style = isExpanded ? undefined : {\n position: strategy,\n top: 0,\n left: 0,\n // `x` and `y` are framer-motion specific props and are shorthands\n // for `translateX` and `translateY`. Currently it is not possible\n // to use `translateX` and `translateY` because those values would\n // be overridden by the return value of the\n // `placementToMotionAnimationProps` function.\n x: computePopoverPosition(x),\n y: computePopoverPosition(y)\n };\n const shouldReduceMotion = useReducedMotion();\n const shouldAnimate = animate && !isExpanded && !shouldReduceMotion;\n const [animationFinished, setAnimationFinished] = useState(false);\n const {\n style: motionInlineStyles,\n ...otherMotionProps\n } = useMemo(() => placementToMotionAnimationProps(computedPlacement), [computedPlacement]);\n const animationProps = shouldAnimate ? {\n style: {\n ...contentStyle,\n ...motionInlineStyles,\n ...style\n },\n onAnimationComplete: () => setAnimationFinished(true),\n ...otherMotionProps\n } : {\n animate: false,\n style: {\n ...contentStyle,\n ...style\n }\n };\n\n // When Floating UI has finished positioning and Framer Motion has finished animating\n // the popover, add the `is-positioned` class to signal that all transitions have finished.\n const isPositioned = (!shouldAnimate || animationFinished) && x !== null && y !== null;\n let content = /*#__PURE__*/_jsxs(motion.div, {\n className: clsx(className, {\n 'is-expanded': isExpanded,\n 'is-positioned': isPositioned,\n // Use the 'alternate' classname for 'toolbar' variant for back compat.\n [`is-${computedVariant === 'toolbar' ? 'alternate' : computedVariant}`]: computedVariant\n }),\n ...animationProps,\n ...contentProps,\n ref: mergedFloatingRef,\n ...dialogProps,\n tabIndex: -1,\n children: [isExpanded && /*#__PURE__*/_jsx(ScrollLock, {}), isExpanded && /*#__PURE__*/_jsxs(\"div\", {\n className: \"components-popover__header\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"components-popover__header-title\",\n children: headerTitle\n }), /*#__PURE__*/_jsx(Button, {\n className: \"components-popover__close\",\n size: \"small\",\n icon: close,\n onClick: onClose,\n label: __('Close')\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"components-popover__content\",\n children: children\n }), hasArrow && /*#__PURE__*/_jsx(\"div\", {\n ref: arrowCallbackRef,\n className: ['components-popover__arrow', `is-${computedPlacement.split('-')[0]}`].join(' '),\n style: {\n left: typeof arrowData?.x !== 'undefined' && Number.isFinite(arrowData.x) ? `${arrowData.x}px` : '',\n top: typeof arrowData?.y !== 'undefined' && Number.isFinite(arrowData.y) ? `${arrowData.y}px` : ''\n },\n children: /*#__PURE__*/_jsx(ArrowTriangle, {})\n })]\n });\n const shouldRenderWithinSlot = slot.ref && !inline;\n const hasAnchor = anchorRef || anchorRect || anchor;\n if (shouldRenderWithinSlot) {\n content = /*#__PURE__*/_jsx(Fill, {\n name: slotName,\n children: content\n });\n } else if (!inline) {\n content = createPortal(/*#__PURE__*/_jsx(StyleProvider, {\n document: document,\n children: content\n }), getPopoverFallbackContainer());\n }\n if (hasAnchor) {\n return content;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n ref: anchorRefFallback\n }), content]\n });\n};\n\n// Export the PopoverSlot individually to allow typescript to pick the types up.\nexport const PopoverSlot = forwardRef(({\n name = SLOT_NAME\n}, ref) => {\n return /*#__PURE__*/_jsx(Slot, {\n bubblesVirtually: true,\n name: name,\n className: \"popover-slot\",\n ref: ref\n });\n});\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = Object.assign(contextConnect(UnforwardedPopover, 'Popover'), {\n /**\n * Renders a slot that is used internally by Popover for rendering content.\n */\n Slot: Object.assign(PopoverSlot, {\n displayName: 'Popover.Slot'\n }),\n /**\n * Provides a context to manage popover slot names.\n *\n * This is marked as unstable and should not be used directly.\n */\n __unstableSlotNameProvider: Object.assign(slotNameContext.Provider, {\n displayName: 'Popover.__unstableSlotNameProvider'\n })\n});\nexport default Popover;"],
5
- "mappings": ";AAIA,OAAO,UAAU;AACjB,SAAS,aAAa,QAAQ,gBAAgB,SAAS,iBAAiB,YAAY,YAAY,OAAO,UAAU,kBAAkB,YAAY;AAC/I,SAAS,cAAc;AAKvB,SAAS,QAAQ,iBAAiB,YAAY,eAAe,YAAY,SAAS,UAAU,aAAa,oBAAoB;AAC7H,SAAS,kBAAkB,kBAAkB,cAAc,2BAA2B,iBAAiB;AACvG,SAAS,aAAa;AACtB,OAAO,gBAAgB;AACvB,SAAS,MAAM,WAAW;AAC1B,SAAS,UAAU;AAKnB,OAAO,YAAY;AACnB,OAAO,gBAAgB;AACvB,SAAS,MAAM,MAAM,eAAe;AACpC,SAAS,wBAAwB,qBAAqB,iCAAiC,2BAA2B;AAClH,SAAS,gBAAgB,wBAAwB;AACjD,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAO9B,SAAS,OAAO,MAAM,QAAQ,OAAO,YAAY,iBAAiB;AAC3D,IAAM,YAAY;AAOzB,IAAM,mBAAmB;AAMzB,IAAM,gBAAgB,MAAmB,sBAAM,KAAK;AAAA,EAClD,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU,CAAc,qBAAK,MAAM;AAAA,IACjC,WAAW;AAAA,IACX,GAAG;AAAA,EACL,CAAC,GAAgB,qBAAK,MAAM;AAAA,IAC1B,WAAW;AAAA,IACX,GAAG;AAAA,IACH,cAAc;AAAA,EAChB,CAAC,CAAC;AACJ,CAAC;AACD,IAAM,kBAAkB,cAAc,MAAS;AAC/C,gBAAgB,cAAc;AAC9B,IAAM,6BAA6B;AACnC,IAAM,8BAA8B,MAAM;AACxC,MAAI,YAAY,SAAS,KAAK,cAAc,MAAM,0BAA0B;AAC5E,MAAI,CAAC,WAAW;AACd,gBAAY,SAAS,cAAc,KAAK;AACxC,cAAU,YAAY;AACtB,aAAS,KAAK,OAAO,SAAS;AAAA,EAChC;AACA,SAAO;AACT;AACA,IAAM,qBAAqB,CAAC,OAAO,iBAAiB;AAClD,QAAM;AAAA,IACJ,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,WAAW,gBAAgB;AAAA,IAC3B,QAAQ,aAAa;AAAA,IACrB,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,qBAAqB;AAAA,IACrB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT;AAAA,IACA,OAAO;AAAA;AAAA,IAEP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA,GAAG;AAAA,EACL,IAAI,iBAAiB,OAAO,SAAS;AACrC,MAAI,mBAAmB;AACvB,MAAI,qBAAqB;AACzB,MAAI,4BAA4B,QAAW;AACzC,eAAW,2DAA2D;AAAA,MACpE,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IACf,CAAC;AAID,uBAAmB,CAAC;AACpB,yBAAqB,CAAC;AAAA,EACxB;AACA,MAAI,cAAc,QAAW;AAC3B,eAAW,6CAA6C;AAAA,MACtD,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACA,MAAI,eAAe,QAAW;AAC5B,eAAW,8CAA8C;AAAA,MACvD,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACA,MAAI,kBAAkB,QAAW;AAC/B,eAAW,iDAAiD;AAAA,MAC1D,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACA,QAAM,kBAAkB,cAAc,YAAY;AAClD,MAAI,gBAAgB,QAAW;AAC7B,eAAW,+CAA+C;AAAA,MACxD,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACA,QAAM,WAAW,OAAO,IAAI;AAC5B,QAAM,CAAC,0BAA0B,2BAA2B,IAAI,SAAS,IAAI;AAC7E,QAAM,oBAAoB,YAAY,UAAQ;AAC5C,gCAA4B,IAAI;AAAA,EAClC,GAAG,CAAC,CAAC;AACL,QAAM,mBAAmB,iBAAiB,UAAU,GAAG;AACvD,QAAM,aAAa,kBAAkB;AACrC,QAAM,WAAW,CAAC,cAAc,CAAC;AACjC,QAAM,+BAA+B,WAAW,oBAAoB,QAAQ,IAAI;AAChF,QAAM,aAAa,CAAC,GAAI,kBAAkB,YAAY,mBAAmB,IAAI,CAAC,GAAI,iBAAiB,UAAU,GAAG,oBAAoB,eAAe,GAAG,sBAAsB,KAAK;AAAA,IAC/K,SAAS;AAAA,IACT,MAAM,WAAW;AACf,UAAI;AACJ,YAAM;AAAA,QACJ;AAAA,MACF,KAAK,wBAAwB,KAAK,SAAS,aAAa,QAAQ,0BAA0B,SAAS,wBAAwB,CAAC;AAG5H,UAAI,EAAE,6BAA6B,cAAc;AAC/C;AAAA,MACF;AAGA,aAAO,OAAO,kBAAkB,OAAO;AAAA,QACrC,WAAW,GAAG,KAAK,IAAI,GAAG,UAAU,eAAe,CAAC;AAAA,QACpD,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF,CAAC,GAAG,SAAS,gBAAgB;AAAA,IAC3B,WAAW;AAAA,IACX,SAAS,WAAW;AAAA,IACpB,SAAS;AAAA;AAAA,EACX,CAAC,GAAG,MAAM;AAAA,IACR,SAAS;AAAA,EACX,CAAC,CAAC;AACF,QAAM,WAAW,WAAW,eAAe,KAAK;AAChD,QAAM,OAAO,QAAQ,QAAQ;AAC7B,MAAI;AACJ,MAAI,WAAW,gBAAgB;AAC7B,oBAAgB,CAAC,MAAM,UAAU;AAG/B,UAAI,SAAS,iBAAiB;AAE5B,cAAM,aAAa,OAAO;AAC1B,cAAM,mBAAmB,KAAK,UAAU;AACxC,cAAM,kBAAkB,KAAK,SAAS;AAGtC,cAAM,wBAAwB,oBAAoB,cAAc,oBAAoB,iBAAiB,SAAS,UAAU,KAAK,iBAAiB,SAAS,UAAU;AAKjK,cAAM,gBAAgB,iBAAiB;AACvC,YAAI,CAAC,yBAAyB,EAAE,mBAAmB,SAAS,MAAM,kBAAkB,eAAe,kBAAkB,eAAe,MAAM;AACxI;AAAA,QACF;AAEA,YAAI,gBAAgB;AAClB,yBAAe,KAAK;AAAA,QACtB,WAAW,SAAS;AAClB,kBAAQ;AAAA,QACV;AAAA,MACF,WAAW,SAAS;AAElB,gBAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AACA,QAAM,CAAC,WAAW,WAAW,IAAI,UAAU;AAAA,IACzC;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA;AAAA,IAEnB,SAAS;AAAA,EACX,CAAC;AACD,QAAM;AAAA;AAAA,IAEJ;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,MACd,OAAO;AAAA,IACT;AAAA,EACF,IAAI,YAAY;AAAA,IACd,WAAW,iCAAiC,YAAY,SAAY;AAAA,IACpE;AAAA,IACA,sBAAsB,CAAC,gBAAgB,eAAe,gBAAgB,WAAW,gBAAgB,eAAe,aAAa;AAAA,MAC3H,aAAa;AAAA,MACb,gBAAgB;AAAA,IAClB,CAAC;AAAA,EACH,CAAC;AACD,QAAM,mBAAmB,YAAY,UAAQ;AAC3C,aAAS,UAAU;AACnB,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAKX,QAAM,eAAe,WAAW;AAChC,QAAM,kBAAkB,WAAW;AACnC,QAAM,0BAA0B,WAAW;AAC3C,QAAM,mBAAmB,WAAW;AACpC,kBAAgB,MAAM;AACpB,UAAM,4BAA4B,oBAAoB;AAAA,MACpD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,SAAK,aAAa,yBAAyB;AAAA,EAC7C,GAAG,CAAC,QAAQ,WAAW,cAAc,iBAAiB,yBAAyB,kBAAkB,YAAY,eAAe,0BAA0B,IAAI,CAAC;AAC3J,QAAM,oBAAoB,aAAa,CAAC,KAAK,aAAa,WAAW,YAAY,CAAC;AAClF,QAAM,QAAQ,aAAa,SAAY;AAAA,IACrC,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMN,GAAG,uBAAuB,CAAC;AAAA,IAC3B,GAAG,uBAAuB,CAAC;AAAA,EAC7B;AACA,QAAM,qBAAqB,iBAAiB;AAC5C,QAAM,gBAAgB,WAAW,CAAC,cAAc,CAAC;AACjD,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,KAAK;AAChE,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI,QAAQ,MAAM,gCAAgC,iBAAiB,GAAG,CAAC,iBAAiB,CAAC;AACzF,QAAM,iBAAiB,gBAAgB;AAAA,IACrC,OAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,IACA,qBAAqB,MAAM,qBAAqB,IAAI;AAAA,IACpD,GAAG;AAAA,EACL,IAAI;AAAA,IACF,SAAS;AAAA,IACT,OAAO;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAIA,QAAM,gBAAgB,CAAC,iBAAiB,sBAAsB,MAAM,QAAQ,MAAM;AAClF,MAAI,UAAuB,sBAAM,OAAO,KAAK;AAAA,IAC3C,WAAW,KAAK,WAAW;AAAA,MACzB,eAAe;AAAA,MACf,iBAAiB;AAAA;AAAA,MAEjB,CAAC,MAAM,oBAAoB,YAAY,cAAc,eAAe,EAAE,GAAG;AAAA,IAC3E,CAAC;AAAA,IACD,GAAG;AAAA,IACH,GAAG;AAAA,IACH,KAAK;AAAA,IACL,GAAG;AAAA,IACH,UAAU;AAAA,IACV,UAAU,CAAC,cAA2B,qBAAK,YAAY,CAAC,CAAC,GAAG,cAA2B,sBAAM,OAAO;AAAA,MAClG,WAAW;AAAA,MACX,UAAU,CAAc,qBAAK,QAAQ;AAAA,QACnC,WAAW;AAAA,QACX,UAAU;AAAA,MACZ,CAAC,GAAgB,qBAAK,QAAQ;AAAA,QAC5B,WAAW;AAAA,QACX,MAAM;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO,GAAG,OAAO;AAAA,MACnB,CAAC,CAAC;AAAA,IACJ,CAAC,GAAgB,qBAAK,OAAO;AAAA,MAC3B,WAAW;AAAA,MACX;AAAA,IACF,CAAC,GAAG,YAAyB,qBAAK,OAAO;AAAA,MACvC,KAAK;AAAA,MACL,WAAW,CAAC,6BAA6B,MAAM,kBAAkB,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG;AAAA,MAC1F,OAAO;AAAA,QACL,MAAM,OAAO,WAAW,MAAM,eAAe,OAAO,SAAS,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO;AAAA,QACjG,KAAK,OAAO,WAAW,MAAM,eAAe,OAAO,SAAS,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO;AAAA,MAClG;AAAA,MACA,UAAuB,qBAAK,eAAe,CAAC,CAAC;AAAA,IAC/C,CAAC,CAAC;AAAA,EACJ,CAAC;AACD,QAAM,yBAAyB,KAAK,OAAO,CAAC;AAC5C,QAAM,YAAY,aAAa,cAAc;AAC7C,MAAI,wBAAwB;AAC1B,cAAuB,qBAAK,MAAM;AAAA,MAChC,MAAM;AAAA,MACN,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,WAAW,CAAC,QAAQ;AAClB,cAAU,aAA0B,qBAAK,eAAe;AAAA,MACtD;AAAA,MACA,UAAU;AAAA,IACZ,CAAC,GAAG,4BAA4B,CAAC;AAAA,EACnC;AACA,MAAI,WAAW;AACb,WAAO;AAAA,EACT;AACA,SAAoB,sBAAM,WAAW;AAAA,IACnC,UAAU,CAAc,qBAAK,QAAQ;AAAA,MACnC,KAAK;AAAA,IACP,CAAC,GAAG,OAAO;AAAA,EACb,CAAC;AACH;AAGO,IAAM,cAAc,WAAW,CAAC;AAAA,EACrC,OAAO;AACT,GAAG,QAAQ;AACT,SAAoB,qBAAK,MAAM;AAAA,IAC7B,kBAAkB;AAAA,IAClB;AAAA,IACA,WAAW;AAAA,IACX;AAAA,EACF,CAAC;AACH,CAAC;AAyBM,IAAM,UAAU,OAAO,OAAO,eAAe,oBAAoB,SAAS,GAAG;AAAA;AAAA;AAAA;AAAA,EAIlF,MAAM,OAAO,OAAO,aAAa;AAAA,IAC/B,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,4BAA4B,OAAO,OAAO,gBAAgB,UAAU;AAAA,IAClE,aAAa;AAAA,EACf,CAAC;AACH,CAAC;AACD,IAAO,kBAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\nimport clsx from 'clsx';\nimport { useFloating, flip as flipMiddleware, shift as shiftMiddleware, limitShift, autoUpdate, arrow, offset as offsetMiddleware, size } from '@floating-ui/react-dom';\nimport { motion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useLayoutEffect, forwardRef, createContext, useContext, useMemo, useState, useCallback, createPortal } from '@wordpress/element';\nimport { useReducedMotion, useViewportMatch, useMergeRefs, __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { computePopoverPosition, positionToPlacement, placementToMotionAnimationProps, getReferenceElement } from './utils';\nimport { contextConnect, useContextSystem } from '../context';\nimport { overlayMiddlewares } from './overlay-middlewares';\nimport { StyleProvider } from '../style-provider';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nexport const SLOT_NAME = 'Popover';\n\n/**\n * Virtual padding to account for overflow boundaries.\n *\n * @type {number}\n */\nconst OVERFLOW_PADDING = 8;\n\n// An SVG displaying a triangle facing down, filled with a solid\n// color and bordered in such a way to create an arrow-like effect.\n// Keeping the SVG's viewbox squared simplify the arrow positioning\n// calculations.\nconst ArrowTriangle = () => /*#__PURE__*/_jsxs(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 100 100\",\n className: \"components-popover__triangle\",\n role: \"presentation\",\n children: [/*#__PURE__*/_jsx(Path, {\n className: \"components-popover__triangle-bg\",\n d: \"M 0 0 L 50 50 L 100 0\"\n }), /*#__PURE__*/_jsx(Path, {\n className: \"components-popover__triangle-border\",\n d: \"M 0 0 L 50 50 L 100 0\",\n vectorEffect: \"non-scaling-stroke\"\n })]\n});\nconst slotNameContext = createContext(undefined);\nslotNameContext.displayName = '__unstableSlotNameContext';\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n let container = document.body.querySelector('.' + fallbackContainerClassname);\n if (!container) {\n container = document.createElement('div');\n container.className = fallbackContainerClassname;\n document.body.append(container);\n }\n return container;\n};\nconst UnforwardedPopover = (props, forwardedRef) => {\n const {\n animate = true,\n headerTitle,\n constrainTabbing,\n onClose,\n children,\n className,\n noArrow = true,\n position,\n placement: placementProp = 'bottom-start',\n offset: offsetProp = 0,\n focusOnMount = 'firstElement',\n anchor,\n expandOnMobile,\n onFocusOutside,\n __unstableSlotName = SLOT_NAME,\n flip = true,\n resize = true,\n shift = false,\n inline = false,\n variant,\n style: contentStyle,\n // Deprecated props\n __unstableForcePosition,\n anchorRef,\n anchorRect,\n getAnchorRect,\n isAlternate,\n // Rest\n ...contentProps\n } = useContextSystem(props, 'Popover');\n let computedFlipProp = flip;\n let computedResizeProp = resize;\n if (__unstableForcePosition !== undefined) {\n deprecated('`__unstableForcePosition` prop in wp.components.Popover', {\n since: '6.1',\n version: '6.3',\n alternative: '`flip={ false }` and `resize={ false }`'\n });\n\n // Back-compat, set the `flip` and `resize` props\n // to `false` to replicate `__unstableForcePosition`.\n computedFlipProp = !__unstableForcePosition;\n computedResizeProp = !__unstableForcePosition;\n }\n if (anchorRef !== undefined) {\n deprecated('`anchorRef` prop in wp.components.Popover', {\n since: '6.1',\n alternative: '`anchor` prop'\n });\n }\n if (anchorRect !== undefined) {\n deprecated('`anchorRect` prop in wp.components.Popover', {\n since: '6.1',\n alternative: '`anchor` prop'\n });\n }\n if (getAnchorRect !== undefined) {\n deprecated('`getAnchorRect` prop in wp.components.Popover', {\n since: '6.1',\n alternative: '`anchor` prop'\n });\n }\n const computedVariant = isAlternate ? 'toolbar' : variant;\n if (isAlternate !== undefined) {\n deprecated('`isAlternate` prop in wp.components.Popover', {\n since: '6.2',\n alternative: \"`variant` prop with the `'toolbar'` value\"\n });\n }\n const arrowRef = useRef(null);\n const [fallbackReferenceElement, setFallbackReferenceElement] = useState(null);\n const anchorRefFallback = useCallback(node => {\n setFallbackReferenceElement(node);\n }, []);\n const isMobileViewport = useViewportMatch('medium', '<');\n const isExpanded = expandOnMobile && isMobileViewport;\n const hasArrow = !isExpanded && !noArrow;\n const normalizedPlacementFromProps = position ? positionToPlacement(position) : placementProp;\n const middleware = [...(placementProp === 'overlay' ? overlayMiddlewares() : []), offsetMiddleware(offsetProp), computedFlipProp && flipMiddleware(), computedResizeProp && size({\n padding: OVERFLOW_PADDING,\n apply(sizeProps) {\n const {\n firstElementChild\n } = refs.floating.current ?? {};\n\n // Only HTMLElement instances have the `style` property.\n if (!(firstElementChild instanceof HTMLElement)) {\n return;\n }\n\n // Reduce the height of the popover to the available space.\n Object.assign(firstElementChild.style, {\n maxHeight: `${Math.max(0, sizeProps.availableHeight)}px`,\n overflow: 'auto'\n });\n }\n }), shift && shiftMiddleware({\n crossAxis: true,\n limiter: limitShift(),\n padding: 1 // Necessary to avoid flickering at the edge of the viewport.\n }), arrow({\n element: arrowRef\n })];\n const slotName = useContext(slotNameContext) || __unstableSlotName;\n const slot = useSlot(slotName);\n let onDialogClose;\n if (onClose || onFocusOutside) {\n onDialogClose = (type, event) => {\n // Ideally the popover should have just a single onClose prop and\n // not three props that potentially do the same thing.\n if (type === 'focus-outside') {\n // Check if this blur event is actually relevant to this popover\n const blurTarget = event?.target;\n const referenceElement = refs.reference.current;\n const floatingElement = refs.floating.current;\n\n // Check if blur is from this popover's reference element or its floating content\n const isBlurFromThisPopover = referenceElement && 'contains' in referenceElement && referenceElement.contains(blurTarget) || floatingElement?.contains(blurTarget);\n // Ignore blur events that don't originate from this popover when there's no\n // relatedTarget (next focus target) and focus moves to document.body.\n // This prevents incorrectly closing the popover when clicking on elements\n // that don't accept focus (like clicking outside to empty space).\n const ownerDocument = floatingElement?.ownerDocument;\n if (!isBlurFromThisPopover && !('relatedTarget' in event && event.relatedTarget) && ownerDocument?.activeElement === ownerDocument?.body) {\n return;\n }\n // Call onFocusOutside if defined or call onClose.\n if (onFocusOutside) {\n onFocusOutside(event);\n } else if (onClose) {\n onClose();\n }\n } else if (onClose) {\n // onClose should be called for other event types if it exists.\n onClose();\n }\n };\n }\n const [dialogRef, dialogProps] = useDialog({\n constrainTabbing,\n focusOnMount,\n __unstableOnClose: onDialogClose,\n // @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n onClose: onDialogClose\n });\n const {\n // Positioning coordinates\n x,\n y,\n // Object with \"regular\" refs to both \"reference\" and \"floating\"\n refs,\n // Type of CSS position property to use (absolute or fixed)\n strategy,\n update,\n placement: computedPlacement,\n middlewareData: {\n arrow: arrowData\n }\n } = useFloating({\n placement: normalizedPlacementFromProps === 'overlay' ? undefined : normalizedPlacementFromProps,\n middleware,\n whileElementsMounted: (referenceParam, floatingParam, updateParam) => autoUpdate(referenceParam, floatingParam, updateParam, {\n layoutShift: false,\n animationFrame: true\n })\n });\n const arrowCallbackRef = useCallback(node => {\n arrowRef.current = node;\n update();\n }, [update]);\n\n // When any of the possible anchor \"sources\" change,\n // recompute the reference element (real or virtual) and its owner document.\n\n const anchorRefTop = anchorRef?.top;\n const anchorRefBottom = anchorRef?.bottom;\n const anchorRefStartContainer = anchorRef?.startContainer;\n const anchorRefCurrent = anchorRef?.current;\n useLayoutEffect(() => {\n const resultingReferenceElement = getReferenceElement({\n anchor,\n anchorRef,\n anchorRect,\n getAnchorRect,\n fallbackReferenceElement\n });\n refs.setReference(resultingReferenceElement);\n }, [anchor, anchorRef, anchorRefTop, anchorRefBottom, anchorRefStartContainer, anchorRefCurrent, anchorRect, getAnchorRect, fallbackReferenceElement, refs]);\n const mergedFloatingRef = useMergeRefs([refs.setFloating, dialogRef, forwardedRef]);\n const style = isExpanded ? undefined : {\n position: strategy,\n top: 0,\n left: 0,\n // `x` and `y` are framer-motion specific props and are shorthands\n // for `translateX` and `translateY`. Currently it is not possible\n // to use `translateX` and `translateY` because those values would\n // be overridden by the return value of the\n // `placementToMotionAnimationProps` function.\n x: computePopoverPosition(x),\n y: computePopoverPosition(y)\n };\n const shouldReduceMotion = useReducedMotion();\n const shouldAnimate = animate && !isExpanded && !shouldReduceMotion;\n const [animationFinished, setAnimationFinished] = useState(false);\n const {\n style: motionInlineStyles,\n ...otherMotionProps\n } = useMemo(() => placementToMotionAnimationProps(computedPlacement), [computedPlacement]);\n const animationProps = shouldAnimate ? {\n style: {\n ...contentStyle,\n ...motionInlineStyles,\n ...style\n },\n onAnimationComplete: () => setAnimationFinished(true),\n ...otherMotionProps\n } : {\n animate: false,\n style: {\n ...contentStyle,\n ...style\n }\n };\n\n // When Floating UI has finished positioning and Framer Motion has finished animating\n // the popover, add the `is-positioned` class to signal that all transitions have finished.\n const isPositioned = (!shouldAnimate || animationFinished) && x !== null && y !== null;\n let content = /*#__PURE__*/_jsxs(motion.div, {\n className: clsx(className, {\n 'is-expanded': isExpanded,\n 'is-positioned': isPositioned,\n // Use the 'alternate' classname for 'toolbar' variant for back compat.\n [`is-${computedVariant === 'toolbar' ? 'alternate' : computedVariant}`]: computedVariant\n }),\n ...animationProps,\n ...contentProps,\n ref: mergedFloatingRef,\n ...dialogProps,\n tabIndex: -1,\n children: [isExpanded && /*#__PURE__*/_jsx(ScrollLock, {}), isExpanded && /*#__PURE__*/_jsxs(\"div\", {\n className: \"components-popover__header\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"components-popover__header-title\",\n children: headerTitle\n }), /*#__PURE__*/_jsx(Button, {\n className: \"components-popover__close\",\n size: \"small\",\n icon: close,\n onClick: onClose,\n label: __('Close')\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"components-popover__content\",\n children: children\n }), hasArrow && /*#__PURE__*/_jsx(\"div\", {\n ref: arrowCallbackRef,\n className: ['components-popover__arrow', `is-${computedPlacement.split('-')[0]}`].join(' '),\n style: {\n left: typeof arrowData?.x !== 'undefined' && Number.isFinite(arrowData.x) ? `${arrowData.x}px` : '',\n top: typeof arrowData?.y !== 'undefined' && Number.isFinite(arrowData.y) ? `${arrowData.y}px` : ''\n },\n children: /*#__PURE__*/_jsx(ArrowTriangle, {})\n })]\n });\n const shouldRenderWithinSlot = slot.ref && !inline;\n const hasAnchor = anchorRef || anchorRect || anchor;\n if (shouldRenderWithinSlot) {\n content = /*#__PURE__*/_jsx(Fill, {\n name: slotName,\n children: content\n });\n } else if (!inline) {\n content = createPortal(/*#__PURE__*/_jsx(StyleProvider, {\n document: document,\n children: content\n }), getPopoverFallbackContainer());\n }\n if (hasAnchor) {\n return content;\n }\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n ref: anchorRefFallback\n }), content]\n });\n};\n\n// Export the PopoverSlot individually to allow typescript to pick the types up.\nexport const PopoverSlot = forwardRef(({\n name = SLOT_NAME\n}, ref) => {\n return /*#__PURE__*/_jsx(Slot, {\n bubblesVirtually: true,\n name: name,\n className: \"popover-slot\",\n ref: ref\n });\n});\n\n/**\n * `Popover` renders its content in a floating modal. If no explicit anchor is passed via props, it anchors to its parent element by default.\n *\n * ```jsx\n * import { Button, Popover } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyPopover = () => {\n * \tconst [ isVisible, setIsVisible ] = useState( false );\n * \tconst toggleVisible = () => {\n * \t\tsetIsVisible( ( state ) => ! state );\n * \t};\n *\n * \treturn (\n * \t\t<Button variant=\"secondary\" onClick={ toggleVisible }>\n * \t\t\tToggle Popover!\n * \t\t\t{ isVisible && <Popover>Popover is toggled!</Popover> }\n * \t\t</Button>\n * \t);\n * };\n * ```\n *\n */\nexport const Popover = Object.assign(contextConnect(UnforwardedPopover, 'Popover'), {\n /**\n * Renders a slot that is used internally by Popover for rendering content.\n */\n Slot: Object.assign(PopoverSlot, {\n displayName: 'Popover.Slot'\n }),\n /**\n * Provides a context to manage popover slot names.\n *\n * This is marked as unstable and should not be used directly.\n */\n __unstableSlotNameProvider: Object.assign(slotNameContext.Provider, {\n displayName: 'Popover.__unstableSlotNameProvider'\n })\n});\nexport default Popover;"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -13,10 +13,9 @@ function overlayMiddlewares() {
13
13
  rects,
14
14
  elements
15
15
  }) {
16
- var _elements$floating;
17
16
  const {
18
17
  firstElementChild
19
- } = (_elements$floating = elements.floating) !== null && _elements$floating !== void 0 ? _elements$floating : {};
18
+ } = elements.floating ?? {};
20
19
  if (!(firstElementChild instanceof HTMLElement)) {
21
20
  return;
22
21
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/popover/overlay-middlewares.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\nimport { size } from '@floating-ui/react-dom';\nexport function overlayMiddlewares() {\n return [{\n name: 'overlay',\n fn({\n rects\n }) {\n return rects.reference;\n }\n }, size({\n apply({\n rects,\n elements\n }) {\n var _elements$floating;\n const {\n firstElementChild\n } = (_elements$floating = elements.floating) !== null && _elements$floating !== void 0 ? _elements$floating : {};\n\n // Only HTMLElement instances have the `style` property.\n if (!(firstElementChild instanceof HTMLElement)) {\n return;\n }\n\n // Reduce the height of the popover to the available space.\n Object.assign(firstElementChild.style, {\n width: `${rects.reference.width}px`,\n height: `${rects.reference.height}px`\n });\n }\n })];\n}"],
5
- "mappings": ";AAIA,SAAS,YAAY;AACd,SAAS,qBAAqB;AACnC,SAAO,CAAC;AAAA,IACN,MAAM;AAAA,IACN,GAAG;AAAA,MACD;AAAA,IACF,GAAG;AACD,aAAO,MAAM;AAAA,IACf;AAAA,EACF,GAAG,KAAK;AAAA,IACN,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,GAAG;AACD,UAAI;AACJ,YAAM;AAAA,QACJ;AAAA,MACF,KAAK,qBAAqB,SAAS,cAAc,QAAQ,uBAAuB,SAAS,qBAAqB,CAAC;AAG/G,UAAI,EAAE,6BAA6B,cAAc;AAC/C;AAAA,MACF;AAGA,aAAO,OAAO,kBAAkB,OAAO;AAAA,QACrC,OAAO,GAAG,MAAM,UAAU,KAAK;AAAA,QAC/B,QAAQ,GAAG,MAAM,UAAU,MAAM;AAAA,MACnC,CAAC;AAAA,IACH;AAAA,EACF,CAAC,CAAC;AACJ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\nimport { size } from '@floating-ui/react-dom';\nexport function overlayMiddlewares() {\n return [{\n name: 'overlay',\n fn({\n rects\n }) {\n return rects.reference;\n }\n }, size({\n apply({\n rects,\n elements\n }) {\n const {\n firstElementChild\n } = elements.floating ?? {};\n\n // Only HTMLElement instances have the `style` property.\n if (!(firstElementChild instanceof HTMLElement)) {\n return;\n }\n\n // Reduce the height of the popover to the available space.\n Object.assign(firstElementChild.style, {\n width: `${rects.reference.width}px`,\n height: `${rects.reference.height}px`\n });\n }\n })];\n}"],
5
+ "mappings": ";AAIA,SAAS,YAAY;AACd,SAAS,qBAAqB;AACnC,SAAO,CAAC;AAAA,IACN,MAAM;AAAA,IACN,GAAG;AAAA,MACD;AAAA,IACF,GAAG;AACD,aAAO,MAAM;AAAA,IACf;AAAA,EACF,GAAG,KAAK;AAAA,IACN,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACF,GAAG;AACD,YAAM;AAAA,QACJ;AAAA,MACF,IAAI,SAAS,YAAY,CAAC;AAG1B,UAAI,EAAE,6BAA6B,cAAc;AAC/C;AAAA,MACF;AAGA,aAAO,OAAO,kBAAkB,OAAO;AAAA,QACrC,OAAO,GAAG,MAAM,UAAU,KAAK;AAAA,QAC/B,QAAQ,GAAG,MAAM,UAAU,MAAM;AAAA,MACnC,CAAC;AAAA,IACH;AAAA,EACF,CAAC,CAAC;AACJ;",
6
6
  "names": []
7
7
  }
@@ -53,10 +53,7 @@ var POSITION_TO_PLACEMENT = {
53
53
  "middle center right": "bottom",
54
54
  "middle center top": "bottom"
55
55
  };
56
- var positionToPlacement = (position) => {
57
- var _POSITION_TO_PLACEMEN;
58
- return (_POSITION_TO_PLACEMEN = POSITION_TO_PLACEMENT[position]) !== null && _POSITION_TO_PLACEMEN !== void 0 ? _POSITION_TO_PLACEMEN : "bottom";
59
- };
56
+ var positionToPlacement = (position) => POSITION_TO_PLACEMENT[position] ?? "bottom";
60
57
  var PLACEMENT_TO_ANIMATION_ORIGIN = {
61
58
  top: {
62
59
  originX: 0.5,
@@ -162,7 +159,6 @@ var getReferenceElement = ({
162
159
  getAnchorRect,
163
160
  fallbackReferenceElement
164
161
  }) => {
165
- var _referenceElement;
166
162
  let referenceElement = null;
167
163
  if (anchor) {
168
164
  referenceElement = anchor;
@@ -187,15 +183,14 @@ var getReferenceElement = ({
187
183
  } else if (getAnchorRect) {
188
184
  referenceElement = {
189
185
  getBoundingClientRect() {
190
- var _rect$x, _rect$y, _rect$width, _rect$height;
191
186
  const rect = getAnchorRect(fallbackReferenceElement);
192
- return new window.DOMRect((_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left, (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top, (_rect$width = rect.width) !== null && _rect$width !== void 0 ? _rect$width : rect.right - rect.left, (_rect$height = rect.height) !== null && _rect$height !== void 0 ? _rect$height : rect.bottom - rect.top);
187
+ return new window.DOMRect(rect.x ?? rect.left, rect.y ?? rect.top, rect.width ?? rect.right - rect.left, rect.height ?? rect.bottom - rect.top);
193
188
  }
194
189
  };
195
190
  } else if (fallbackReferenceElement) {
196
191
  referenceElement = fallbackReferenceElement.parentElement;
197
192
  }
198
- return (_referenceElement = referenceElement) !== null && _referenceElement !== void 0 ? _referenceElement : null;
193
+ return referenceElement ?? null;
199
194
  };
200
195
  var computePopoverPosition = (c) => c === null || Number.isNaN(c) ? void 0 : Math.round(c);
201
196
  export {