@wordpress/components 27.1.0 → 27.3.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 (223) hide show
  1. package/CHANGELOG.md +53 -3
  2. package/README.md +13 -0
  3. package/build/button/index.js +3 -4
  4. package/build/button/index.js.map +1 -1
  5. package/build/button/types.js.map +1 -1
  6. package/build/color-picker/component.js +2 -12
  7. package/build/color-picker/component.js.map +1 -1
  8. package/build/color-picker/picker.js +18 -77
  9. package/build/color-picker/picker.js.map +1 -1
  10. package/build/color-picker/types.js.map +1 -1
  11. package/build/custom-select-control-v2/default-component/index.js +4 -2
  12. package/build/custom-select-control-v2/default-component/index.js.map +1 -1
  13. package/build/custom-select-control-v2/index.js +1 -8
  14. package/build/custom-select-control-v2/index.js.map +1 -1
  15. package/build/custom-select-control-v2/{custom-select-item.js → item.js} +2 -1
  16. package/build/custom-select-control-v2/{custom-select-item.js.map → item.js.map} +1 -1
  17. package/build/custom-select-control-v2/legacy-component/index.js +5 -5
  18. package/build/custom-select-control-v2/legacy-component/index.js.map +1 -1
  19. package/build/date-time/date/styles.js +7 -7
  20. package/build/date-time/date/styles.js.map +1 -1
  21. package/build/form-token-field/index.js +1 -1
  22. package/build/form-token-field/index.js.map +1 -1
  23. package/build/input-control/index.js +1 -1
  24. package/build/input-control/index.js.map +1 -1
  25. package/build/input-control/input-field.js +2 -1
  26. package/build/input-control/input-field.js.map +1 -1
  27. package/build/mobile/color-settings/palette.screen.native.js +1 -0
  28. package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
  29. package/build/navigable-container/container.js.map +1 -1
  30. package/build/navigator/navigator-provider/component.js +162 -120
  31. package/build/navigator/navigator-provider/component.js.map +1 -1
  32. package/build/navigator/navigator-screen/component.js +2 -2
  33. package/build/navigator/navigator-screen/component.js.map +1 -1
  34. package/build/palette-edit/index.js +18 -12
  35. package/build/palette-edit/index.js.map +1 -1
  36. package/build/popover/index.js +7 -34
  37. package/build/popover/index.js.map +1 -1
  38. package/build/range-control/styles/range-control-styles.js +29 -29
  39. package/build/range-control/styles/range-control-styles.js.map +1 -1
  40. package/build/text-control/types.js.map +1 -1
  41. package/build/toggle-group-control/toggle-group-control-option-base/component.js +5 -2
  42. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  43. package/build/tools-panel/tools-panel-header/component.js +1 -1
  44. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  45. package/build/utils/config-values.js +1 -1
  46. package/build/utils/config-values.js.map +1 -1
  47. package/build/utils/input/base.js +2 -2
  48. package/build/utils/input/base.js.map +1 -1
  49. package/build-module/button/index.js +3 -4
  50. package/build-module/button/index.js.map +1 -1
  51. package/build-module/button/types.js.map +1 -1
  52. package/build-module/color-picker/component.js +3 -13
  53. package/build-module/color-picker/component.js.map +1 -1
  54. package/build-module/color-picker/picker.js +19 -78
  55. package/build-module/color-picker/picker.js.map +1 -1
  56. package/build-module/color-picker/types.js.map +1 -1
  57. package/build-module/custom-select-control-v2/default-component/index.js +4 -2
  58. package/build-module/custom-select-control-v2/default-component/index.js.map +1 -1
  59. package/build-module/custom-select-control-v2/index.js +1 -2
  60. package/build-module/custom-select-control-v2/index.js.map +1 -1
  61. package/build-module/custom-select-control-v2/{custom-select-item.js → item.js} +2 -1
  62. package/build-module/custom-select-control-v2/{custom-select-item.js.map → item.js.map} +1 -1
  63. package/build-module/custom-select-control-v2/legacy-component/index.js +4 -4
  64. package/build-module/custom-select-control-v2/legacy-component/index.js.map +1 -1
  65. package/build-module/date-time/date/styles.js +7 -7
  66. package/build-module/date-time/date/styles.js.map +1 -1
  67. package/build-module/form-token-field/index.js +1 -1
  68. package/build-module/form-token-field/index.js.map +1 -1
  69. package/build-module/input-control/index.js +1 -1
  70. package/build-module/input-control/index.js.map +1 -1
  71. package/build-module/input-control/input-field.js +2 -1
  72. package/build-module/input-control/input-field.js.map +1 -1
  73. package/build-module/mobile/color-settings/palette.screen.native.js +1 -0
  74. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  75. package/build-module/navigable-container/container.js.map +1 -1
  76. package/build-module/navigator/navigator-provider/component.js +163 -121
  77. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  78. package/build-module/navigator/navigator-screen/component.js +2 -2
  79. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  80. package/build-module/palette-edit/index.js +17 -11
  81. package/build-module/palette-edit/index.js.map +1 -1
  82. package/build-module/popover/index.js +9 -36
  83. package/build-module/popover/index.js.map +1 -1
  84. package/build-module/range-control/styles/range-control-styles.js +29 -29
  85. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  86. package/build-module/text-control/types.js.map +1 -1
  87. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +6 -3
  88. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  89. package/build-module/tools-panel/tools-panel-header/component.js +1 -1
  90. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  91. package/build-module/utils/config-values.js +1 -1
  92. package/build-module/utils/config-values.js.map +1 -1
  93. package/build-module/utils/input/base.js +2 -2
  94. package/build-module/utils/input/base.js.map +1 -1
  95. package/build-style/style-rtl.css +26 -29
  96. package/build-style/style.css +26 -29
  97. package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
  98. package/build-types/button/deprecated.d.ts +4 -10
  99. package/build-types/button/deprecated.d.ts.map +1 -1
  100. package/build-types/button/index.d.ts +3 -3
  101. package/build-types/button/index.d.ts.map +1 -1
  102. package/build-types/button/stories/e2e/index.story.d.ts +1 -1
  103. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  104. package/build-types/button/stories/index.story.d.ts +7 -7
  105. package/build-types/button/stories/index.story.d.ts.map +1 -1
  106. package/build-types/button/types.d.ts +37 -8
  107. package/build-types/button/types.d.ts.map +1 -1
  108. package/build-types/color-picker/component.d.ts.map +1 -1
  109. package/build-types/color-picker/picker.d.ts +1 -1
  110. package/build-types/color-picker/picker.d.ts.map +1 -1
  111. package/build-types/color-picker/styles.d.ts +1 -1
  112. package/build-types/color-picker/types.d.ts +0 -3
  113. package/build-types/color-picker/types.d.ts.map +1 -1
  114. package/build-types/custom-select-control/stories/index.story.d.ts +35 -0
  115. package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -0
  116. package/build-types/custom-select-control-v2/default-component/index.d.ts +5 -2
  117. package/build-types/custom-select-control-v2/default-component/index.d.ts.map +1 -1
  118. package/build-types/custom-select-control-v2/index.d.ts +1 -2
  119. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  120. package/build-types/custom-select-control-v2/{custom-select-item.d.ts → item.d.ts} +4 -1
  121. package/build-types/custom-select-control-v2/item.d.ts.map +1 -0
  122. package/build-types/custom-select-control-v2/legacy-component/index.d.ts +2 -2
  123. package/build-types/custom-select-control-v2/legacy-component/index.d.ts.map +1 -1
  124. package/build-types/custom-select-control-v2/stories/default.story.d.ts +2 -2
  125. package/build-types/custom-select-control-v2/stories/default.story.d.ts.map +1 -1
  126. package/build-types/custom-select-control-v2/stories/legacy.story.d.ts +4 -2
  127. package/build-types/custom-select-control-v2/stories/legacy.story.d.ts.map +1 -1
  128. package/build-types/date-time/date/styles.d.ts +1 -1
  129. package/build-types/dropdown/stories/index.story.d.ts +1 -0
  130. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  131. package/build-types/font-size-picker/styles.d.ts +1 -1
  132. package/build-types/form-token-field/index.d.ts +1 -1
  133. package/build-types/input-control/index.d.ts +1 -1
  134. package/build-types/input-control/input-field.d.ts.map +1 -1
  135. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  136. package/build-types/navigation/styles/navigation-styles.d.ts +1 -1
  137. package/build-types/navigator/navigator-back-button/component.d.ts +0 -1
  138. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -1
  139. package/build-types/navigator/navigator-back-button/hook.d.ts +1 -2
  140. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  141. package/build-types/navigator/navigator-button/component.d.ts +0 -1
  142. package/build-types/navigator/navigator-button/component.d.ts.map +1 -1
  143. package/build-types/navigator/navigator-button/hook.d.ts +1 -2
  144. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  145. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  146. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  147. package/build-types/navigator/navigator-to-parent-button/component.d.ts +0 -1
  148. package/build-types/navigator/navigator-to-parent-button/component.d.ts.map +1 -1
  149. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  150. package/build-types/palette-edit/index.d.ts +6 -3
  151. package/build-types/palette-edit/index.d.ts.map +1 -1
  152. package/build-types/palette-edit/styles.d.ts +2 -2
  153. package/build-types/popover/index.d.ts.map +1 -1
  154. package/build-types/text-control/index.d.ts +1 -1
  155. package/build-types/text-control/types.d.ts +1 -1
  156. package/build-types/text-control/types.d.ts.map +1 -1
  157. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  158. package/build-types/toolbar/toolbar-button/index.d.ts +4 -10
  159. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  160. package/package.json +21 -21
  161. package/src/button/index.tsx +3 -4
  162. package/src/button/test/index.tsx +6 -6
  163. package/src/button/types.ts +37 -9
  164. package/src/color-picker/component.tsx +3 -25
  165. package/src/color-picker/picker.tsx +12 -96
  166. package/src/color-picker/types.ts +0 -3
  167. package/src/confirm-dialog/README.md +7 -0
  168. package/src/custom-select-control/stories/{index.story.js → index.story.tsx} +8 -3
  169. package/src/custom-select-control/test/index.js +24 -0
  170. package/src/custom-select-control-v2/README.md +27 -27
  171. package/src/custom-select-control-v2/default-component/index.tsx +5 -2
  172. package/src/custom-select-control-v2/index.tsx +1 -2
  173. package/src/custom-select-control-v2/{custom-select-item.tsx → item.tsx} +2 -0
  174. package/src/custom-select-control-v2/legacy-component/index.tsx +4 -6
  175. package/src/custom-select-control-v2/legacy-component/test/index.tsx +13 -10
  176. package/src/custom-select-control-v2/stories/default.story.tsx +16 -17
  177. package/src/custom-select-control-v2/stories/legacy.story.tsx +20 -35
  178. package/src/custom-select-control-v2/test/index.tsx +26 -16
  179. package/src/date-time/date/styles.ts +2 -2
  180. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  181. package/src/dropdown/stories/index.story.tsx +19 -0
  182. package/src/dropdown/style.scss +26 -0
  183. package/src/dropdown-menu/style.scss +0 -25
  184. package/src/flex/flex/README.md +2 -2
  185. package/src/form-token-field/README.md +1 -1
  186. package/src/form-token-field/index.tsx +1 -1
  187. package/src/grid/README.md +11 -11
  188. package/src/h-stack/README.md +6 -6
  189. package/src/heading/README.md +1 -1
  190. package/src/heading/test/__snapshots__/index.tsx.snap +3 -3
  191. package/src/input-control/README.md +1 -1
  192. package/src/input-control/index.tsx +1 -1
  193. package/src/input-control/input-field.tsx +2 -1
  194. package/src/input-control/stories/index.story.tsx +1 -0
  195. package/src/item-group/test/__snapshots__/index.js.snap +11 -11
  196. package/src/mobile/bottom-sheet-select-control/README.md +1 -1
  197. package/src/mobile/color-settings/palette.screen.native.js +5 -1
  198. package/src/navigable-container/container.tsx +1 -1
  199. package/src/navigator/navigator-provider/component.tsx +187 -188
  200. package/src/navigator/navigator-screen/component.tsx +2 -4
  201. package/src/palette-edit/index.tsx +21 -21
  202. package/src/palette-edit/test/index.tsx +21 -17
  203. package/src/placeholder/style.scss +5 -1
  204. package/src/popover/index.tsx +59 -99
  205. package/src/popover/style.scss +0 -9
  206. package/src/progress-bar/README.md +1 -1
  207. package/src/radio-control/README.md +3 -3
  208. package/src/range-control/styles/range-control-styles.ts +1 -1
  209. package/src/resizable-box/resize-tooltip/README.md +2 -2
  210. package/src/text/test/__snapshots__/index.tsx.snap +3 -3
  211. package/src/text-control/style.scss +2 -0
  212. package/src/text-control/types.ts +12 -1
  213. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +14 -10
  214. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +14 -12
  215. package/src/toolbar/toolbar/style.scss +1 -1
  216. package/src/tools-panel/tools-panel-header/component.tsx +1 -1
  217. package/src/truncate/README.md +5 -5
  218. package/src/utils/config-values.js +1 -1
  219. package/src/utils/input/base.js +1 -1
  220. package/src/v-stack/README.md +6 -6
  221. package/tsconfig.json +1 -0
  222. package/tsconfig.tsbuildinfo +1 -1
  223. package/build-types/custom-select-control-v2/custom-select-item.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_dom","require","_element","_compose","_i18n","_escapeHtml","_context","_useCx","_view","_context2","styles","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UnconnectedNavigatorScreen","props","forwardedRef","screenId","useId","children","className","path","otherProps","useContextSystem","location","match","addScreen","removeScreen","useContext","NavigatorContext","isMatch","wrapperRef","useRef","useEffect","screen","id","escapeAttribute","isRTL","isRTLFn","isInitial","isBack","cx","useCx","classes","useMemo","navigatorScreen","locationRef","current","isInitialLocation","hasRestoredFocus","skipFocus","activeElement","ownerDocument","contains","elementToFocus","focusTargetSelector","querySelector","firstTabbable","focus","tabbable","find","mergedWrapperRef","useMergeRefs","_react","createElement","View","ref","NavigatorScreen","exports","contextConnect","_default"],"sources":["@wordpress/components/src/navigator/navigator-screen/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseId,\n} from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { isRTL as isRTLFn } from '@wordpress/i18n';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\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 type { NavigatorScreenProps } from '../types';\n\nfunction UnconnectedNavigatorScreen(\n\tprops: WordPressComponentProps< NavigatorScreenProps, 'div', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst screenId = useId();\n\tconst { children, className, path, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'NavigatorScreen'\n\t);\n\n\tconst { location, match, addScreen, removeScreen } =\n\t\tuseContext( NavigatorContext );\n\tconst isMatch = match === screenId;\n\tconst wrapperRef = useRef< HTMLDivElement >( null );\n\n\tuseEffect( () => {\n\t\tconst screen = {\n\t\t\tid: screenId,\n\t\t\tpath: escapeAttribute( path ),\n\t\t};\n\t\taddScreen( screen );\n\t\treturn () => removeScreen( screen );\n\t}, [ screenId, path, addScreen, removeScreen ] );\n\n\tconst isRTL = isRTLFn();\n\tconst { isInitial, isBack } = location;\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tstyles.navigatorScreen( {\n\t\t\t\t\tisInitial,\n\t\t\t\t\tisBack,\n\t\t\t\t\tisRTL,\n\t\t\t\t} ),\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx, isInitial, isBack, isRTL ]\n\t);\n\n\tconst locationRef = useRef( location );\n\n\tuseEffect( () => {\n\t\tlocationRef.current = location;\n\t}, [ location ] );\n\n\t// Focus restoration\n\tconst isInitialLocation = location.isInitial && ! location.isBack;\n\tuseEffect( () => {\n\t\t// Only attempt to restore focus:\n\t\t// - if the current location is not the initial one (to avoid moving focus on page load)\n\t\t// - when the screen becomes visible\n\t\t// - if the wrapper ref has been assigned\n\t\t// - if focus hasn't already been restored for the current location\n\t\t// - if the `skipFocus` option is not set to `true`. This is useful when we trigger the navigation outside of NavigatorScreen.\n\t\tif (\n\t\t\tisInitialLocation ||\n\t\t\t! isMatch ||\n\t\t\t! wrapperRef.current ||\n\t\t\tlocationRef.current.hasRestoredFocus ||\n\t\t\tlocation.skipFocus\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = wrapperRef.current.ownerDocument.activeElement;\n\n\t\t// If an element is already focused within the wrapper do not focus the\n\t\t// element. This prevents inputs or buttons from losing focus unnecessarily.\n\t\tif ( wrapperRef.current.contains( activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet elementToFocus: HTMLElement | null = null;\n\n\t\t// When navigating back, if a selector is provided, use it to look for the\n\t\t// target element (assumed to be a node inside the current NavigatorScreen)\n\t\tif ( location.isBack && location?.focusTargetSelector ) {\n\t\t\telementToFocus = wrapperRef.current.querySelector(\n\t\t\t\tlocation.focusTargetSelector\n\t\t\t);\n\t\t}\n\n\t\t// If the previous query didn't run or find any element to focus, fallback\n\t\t// to the first tabbable element in the screen (or the screen itself).\n\t\tif ( ! elementToFocus ) {\n\t\t\tconst firstTabbable = (\n\t\t\t\tfocus.tabbable.find( wrapperRef.current ) as HTMLElement[]\n\t\t\t )[ 0 ];\n\t\t\telementToFocus = firstTabbable ?? wrapperRef.current;\n\t\t}\n\n\t\tlocationRef.current.hasRestoredFocus = true;\n\t\telementToFocus.focus();\n\t}, [\n\t\tisInitialLocation,\n\t\tisMatch,\n\t\tlocation.isBack,\n\t\tlocation.focusTargetSelector,\n\t\tlocation.skipFocus,\n\t] );\n\n\tconst mergedWrapperRef = useMergeRefs( [ forwardedRef, wrapperRef ] );\n\n\treturn isMatch ? (\n\t\t<View ref={ mergedWrapperRef } className={ classes } { ...otherProps }>\n\t\t\t{ children }\n\t\t</View>\n\t) : null;\n}\n\n/**\n * The `NavigatorScreen` component represents a single view/screen/panel and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorScreen = contextConnect(\n\tUnconnectedNavigatorScreen,\n\t'NavigatorScreen'\n);\n\nexport default NavigatorScreen;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_dom","require","_element","_compose","_i18n","_escapeHtml","_context","_useCx","_view","_context2","styles","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UnconnectedNavigatorScreen","props","forwardedRef","screenId","useId","children","className","path","otherProps","useContextSystem","location","match","addScreen","removeScreen","useContext","NavigatorContext","isMatch","wrapperRef","useRef","useEffect","screen","id","escapeAttribute","isRTL","isRTLFn","isInitial","isBack","cx","useCx","classes","useMemo","navigatorScreen","locationRef","current","isInitialLocation","hasRestoredFocus","skipFocus","activeElement","ownerDocument","contains","elementToFocus","focusTargetSelector","querySelector","firstTabbable","focus","tabbable","find","mergedWrapperRef","useMergeRefs","_react","createElement","View","ref","NavigatorScreen","exports","contextConnect","_default"],"sources":["@wordpress/components/src/navigator/navigator-screen/component.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { focus } from '@wordpress/dom';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseId,\n} from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { isRTL as isRTLFn } from '@wordpress/i18n';\nimport { escapeAttribute } from '@wordpress/escape-html';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\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 type { NavigatorScreenProps } from '../types';\n\nfunction UnconnectedNavigatorScreen(\n\tprops: WordPressComponentProps< NavigatorScreenProps, 'div', false >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst screenId = useId();\n\tconst { children, className, path, ...otherProps } = useContextSystem(\n\t\tprops,\n\t\t'NavigatorScreen'\n\t);\n\n\tconst { location, match, addScreen, removeScreen } =\n\t\tuseContext( NavigatorContext );\n\tconst isMatch = match === screenId;\n\tconst wrapperRef = useRef< HTMLDivElement >( null );\n\n\tuseEffect( () => {\n\t\tconst screen = {\n\t\t\tid: screenId,\n\t\t\tpath: escapeAttribute( path ),\n\t\t};\n\t\taddScreen( screen );\n\t\treturn () => removeScreen( screen );\n\t}, [ screenId, path, addScreen, removeScreen ] );\n\n\tconst isRTL = isRTLFn();\n\tconst { isInitial, isBack } = location;\n\tconst cx = useCx();\n\tconst classes = useMemo(\n\t\t() =>\n\t\t\tcx(\n\t\t\t\tstyles.navigatorScreen( {\n\t\t\t\t\tisInitial,\n\t\t\t\t\tisBack,\n\t\t\t\t\tisRTL,\n\t\t\t\t} ),\n\t\t\t\tclassName\n\t\t\t),\n\t\t[ className, cx, isInitial, isBack, isRTL ]\n\t);\n\n\tconst locationRef = useRef( location );\n\n\tuseEffect( () => {\n\t\tlocationRef.current = location;\n\t}, [ location ] );\n\n\t// Focus restoration\n\tconst isInitialLocation = location.isInitial && ! location.isBack;\n\tuseEffect( () => {\n\t\t// Only attempt to restore focus:\n\t\t// - if the current location is not the initial one (to avoid moving focus on page load)\n\t\t// - when the screen becomes visible\n\t\t// - if the wrapper ref has been assigned\n\t\t// - if focus hasn't already been restored for the current location\n\t\t// - if the `skipFocus` option is not set to `true`. This is useful when we trigger the navigation outside of NavigatorScreen.\n\t\tif (\n\t\t\tisInitialLocation ||\n\t\t\t! isMatch ||\n\t\t\t! wrapperRef.current ||\n\t\t\tlocationRef.current.hasRestoredFocus ||\n\t\t\tlocation.skipFocus\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst activeElement = wrapperRef.current.ownerDocument.activeElement;\n\n\t\t// If an element is already focused within the wrapper do not focus the\n\t\t// element. This prevents inputs or buttons from losing focus unnecessarily.\n\t\tif ( wrapperRef.current.contains( activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet elementToFocus: HTMLElement | null = null;\n\n\t\t// When navigating back, if a selector is provided, use it to look for the\n\t\t// target element (assumed to be a node inside the current NavigatorScreen)\n\t\tif ( location.isBack && location.focusTargetSelector ) {\n\t\t\telementToFocus = wrapperRef.current.querySelector(\n\t\t\t\tlocation.focusTargetSelector\n\t\t\t);\n\t\t}\n\n\t\t// If the previous query didn't run or find any element to focus, fallback\n\t\t// to the first tabbable element in the screen (or the screen itself).\n\t\tif ( ! elementToFocus ) {\n\t\t\tconst [ firstTabbable ] = focus.tabbable.find( wrapperRef.current );\n\t\t\telementToFocus = firstTabbable ?? wrapperRef.current;\n\t\t}\n\n\t\tlocationRef.current.hasRestoredFocus = true;\n\t\telementToFocus.focus();\n\t}, [\n\t\tisInitialLocation,\n\t\tisMatch,\n\t\tlocation.isBack,\n\t\tlocation.focusTargetSelector,\n\t\tlocation.skipFocus,\n\t] );\n\n\tconst mergedWrapperRef = useMergeRefs( [ forwardedRef, wrapperRef ] );\n\n\treturn isMatch ? (\n\t\t<View ref={ mergedWrapperRef } className={ classes } { ...otherProps }>\n\t\t\t{ children }\n\t\t</View>\n\t) : null;\n}\n\n/**\n * The `NavigatorScreen` component represents a single view/screen/panel and\n * should be used in combination with the `NavigatorProvider`, the\n * `NavigatorButton` and the `NavigatorBackButton` components (or the `useNavigator`\n * hook).\n *\n * @example\n * ```jsx\n * import {\n * __experimentalNavigatorProvider as NavigatorProvider,\n * __experimentalNavigatorScreen as NavigatorScreen,\n * __experimentalNavigatorButton as NavigatorButton,\n * __experimentalNavigatorBackButton as NavigatorBackButton,\n * } from '@wordpress/components';\n *\n * const MyNavigation = () => (\n * <NavigatorProvider initialPath=\"/\">\n * <NavigatorScreen path=\"/\">\n * <p>This is the home screen.</p>\n * <NavigatorButton path=\"/child\">\n * Navigate to child screen.\n * </NavigatorButton>\n * </NavigatorScreen>\n *\n * <NavigatorScreen path=\"/child\">\n * <p>This is the child screen.</p>\n * <NavigatorBackButton>\n * Go back\n * </NavigatorBackButton>\n * </NavigatorScreen>\n * </NavigatorProvider>\n * );\n * ```\n */\nexport const NavigatorScreen = contextConnect(\n\tUnconnectedNavigatorScreen,\n\t'NavigatorScreen'\n);\n\nexport default NavigatorScreen;\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.PaletteEdit = PaletteEdit;
8
8
  exports.default = void 0;
9
- exports.getNameForPosition = getNameForPosition;
9
+ exports.getNameAndSlugForPosition = getNameAndSlugForPosition;
10
10
  var _react = require("react");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _element = require("@wordpress/element");
@@ -55,7 +55,7 @@ function NameInput({
55
55
  }
56
56
 
57
57
  /**
58
- * Returns a name for a palette item in the format "Color + id".
58
+ * Returns a name and slug for a palette item. The name takes the format "Color + id".
59
59
  * To ensure there are no duplicate ids, this function checks all slugs.
60
60
  * It expects slugs to be in the format: slugPrefix + color- + number.
61
61
  * It then sets the id component of the new name based on the incremented id of the highest existing slug id.
@@ -63,9 +63,9 @@ function NameInput({
63
63
  * @param elements An array of color palette items.
64
64
  * @param slugPrefix The slug prefix used to match the element slug.
65
65
  *
66
- * @return A unique name for a palette item.
66
+ * @return A name and slug for the new palette item.
67
67
  */
68
- function getNameForPosition(elements, slugPrefix) {
68
+ function getNameAndSlugForPosition(elements, slugPrefix) {
69
69
  const nameRegex = new RegExp(`^${slugPrefix}color-([\\d]+)$`);
70
70
  const position = elements.reduce((previousValue, currentValue) => {
71
71
  if (typeof currentValue?.slug === 'string') {
@@ -79,8 +79,11 @@ function getNameForPosition(elements, slugPrefix) {
79
79
  }
80
80
  return previousValue;
81
81
  }, 1);
82
- return (0, _i18n.sprintf)( /* translators: %s: is an id for a custom color */
83
- (0, _i18n.__)('Color %s'), position);
82
+ return {
83
+ name: (0, _i18n.sprintf)( /* translators: %s: is an id for a custom color */
84
+ (0, _i18n.__)('Color %s'), position),
85
+ slug: `${slugPrefix}color-${position}`
86
+ };
84
87
  }
85
88
  function ColorPickerPopover({
86
89
  isGradient,
@@ -308,18 +311,21 @@ function PaletteEdit({
308
311
  icon: _icons.plus,
309
312
  label: isGradient ? (0, _i18n.__)('Add gradient') : (0, _i18n.__)('Add color'),
310
313
  onClick: () => {
311
- const optionName = getNameForPosition(elements, slugPrefix);
314
+ const {
315
+ name,
316
+ slug
317
+ } = getNameAndSlugForPosition(elements, slugPrefix);
312
318
  if (!!gradients) {
313
319
  onChange([...gradients, {
314
320
  gradient: _constants.DEFAULT_GRADIENT,
315
- name: optionName,
316
- slug: slugPrefix + (0, _strings.kebabCase)(optionName)
321
+ name,
322
+ slug
317
323
  }]);
318
324
  } else {
319
325
  onChange([...colors, {
320
326
  color: DEFAULT_COLOR,
321
- name: optionName,
322
- slug: slugPrefix + (0, _strings.kebabCase)(optionName)
327
+ name,
328
+ slug
323
329
  }]);
324
330
  }
325
331
  setIsEditing(true);
@@ -329,7 +335,7 @@ function PaletteEdit({
329
335
  icon: _icons.moreVertical,
330
336
  label: isGradient ? (0, _i18n.__)('Gradient options') : (0, _i18n.__)('Color options'),
331
337
  toggleProps: {
332
- isSmall: true
338
+ size: 'small'
333
339
  }
334
340
  }, ({
335
341
  onClose
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_i18n","_icons","_compose","_button","_colorPicker","_flex","_hStack","_itemGroup","_vStack","_gradientPicker","_colorPalette","_dropdownMenu","_popover","_styles","_navigableContainer","_constants","_customGradientPicker","_strings","DEFAULT_COLOR","NameInput","value","onChange","label","_react","createElement","NameInputControl","hideLabelFromVision","getNameForPosition","elements","slugPrefix","nameRegex","RegExp","position","reduce","previousValue","currentValue","slug","matches","match","id","parseInt","sprintf","__","ColorPickerPopover","isGradient","element","popoverProps","receivedPopoverProps","onClose","useMemo","shift","offset","resize","placement","className","classnames","default","ColorPicker","color","enableAlpha","newColor","__experimentalIsRenderedInSidebar","gradient","newGradient","Option","canOnlyChangeValues","isEditing","onStartEditing","onRemove","onStopEditing","focusOutsideProps","useFocusOutside","popoverAnchor","setPopoverAnchor","useState","anchor","PaletteItem","undefined","as","onClick","name","trim","length","ref","HStack","justify","IndicatorStyled","colorValue","FlexItem","nextName","kebabCase","NameContainer","RemoveButton","size","icon","lineSolid","PaletteEditListView","editingElement","setEditingElement","elementsReference","useRef","useEffect","current","debounceOnChange","useDebounce","VStack","spacing","ItemGroup","isRounded","map","index","key","newElement","currentElement","currentIndex","newElements","filter","_currentElement","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","setIsEditing","isAdding","elementsLength","hasElements","onSelectPaletteItem","useCallback","newEditingElementIndex","selectedElement","PaletteEditStyles","PaletteHStackHeader","PaletteHeading","level","PaletteActionsContainer","DoneButton","isPressed","plus","optionName","DEFAULT_GRADIENT","moreVertical","toggleProps","isSmall","Fragment","NavigableMenu","role","variant","clearable","disableCustomGradients","disableCustomColors","_default","exports"],"sources":["@wordpress/components/src/palette-edit/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport {\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseDebounce,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tPaletteHStackHeader,\n\tIndicatorStyled,\n\tPaletteItem,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport type {\n\tColor,\n\tColorPickerPopoverProps,\n\tGradient,\n\tNameInputProps,\n\tOptionProps,\n\tPaletteEditListViewProps,\n\tPaletteEditProps,\n\tPaletteElement,\n} from './types';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label }: NameInputProps ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/**\n * Returns a name for a palette item in 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 unique name for a palette item.\n */\nexport function getNameForPosition(\n\telements: PaletteElement[],\n\tslugPrefix: string\n) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn sprintf(\n\t\t/* translators: %s: is an id for a custom color */\n\t\t__( 'Color %s' ),\n\t\tposition\n\t);\n}\n\nfunction ColorPickerPopover< T extends Color | Gradient >( {\n\tisGradient,\n\telement,\n\tonChange,\n\tpopoverProps: receivedPopoverProps,\n\tonClose = () => {},\n}: ColorPickerPopoverProps< T > ) {\n\tconst popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =\n\t\tuseMemo(\n\t\t\t() => ( {\n\t\t\t\tshift: true,\n\t\t\t\toffset: 20,\n\t\t\t\t// Disabling resize as it would otherwise cause the popover to show\n\t\t\t\t// scrollbars while dragging the color picker's handle close to the\n\t\t\t\t// popover edge.\n\t\t\t\tresize: false,\n\t\t\t\tplacement: 'left-start',\n\t\t\t\t...receivedPopoverProps,\n\t\t\t\tclassName: classnames(\n\t\t\t\t\t'components-palette-edit__popover',\n\t\t\t\t\treceivedPopoverProps?.className\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ receivedPopoverProps ]\n\t\t);\n\n\treturn (\n\t\t<Popover { ...popoverProps } onClose={ onClose }>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option< T extends Color | Gradient >( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tisEditing,\n\tonStartEditing,\n\tonRemove,\n\tonStopEditing,\n\tpopoverProps: receivedPopoverProps,\n\tslugPrefix,\n\tisGradient,\n}: OptionProps< T > ) {\n\tconst focusOutsideProps = useFocusOutside( onStopEditing );\n\tconst value = isGradient ? element.gradient : element.color;\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t...receivedPopoverProps,\n\t\t\t// Use the custom palette color item as the popover anchor.\n\t\t\tanchor: popoverAnchor,\n\t\t} ),\n\t\t[ popoverAnchor, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<PaletteItem\n\t\t\tclassName={ isEditing ? 'is-selected' : undefined }\n\t\t\tas={ isEditing ? 'div' : 'button' }\n\t\t\tonClick={ onStartEditing }\n\t\t\taria-label={\n\t\t\t\tisEditing\n\t\t\t\t\t? undefined\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t\t__( 'Edit: %s' ),\n\t\t\t\t\t\t\telement.name.trim().length ? element.name : value\n\t\t\t\t\t )\n\t\t\t}\n\t\t\tref={ setPopoverAnchor }\n\t\t\t{ ...( isEditing ? { ...focusOutsideProps } : {} ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<IndicatorStyled colorValue={ value } />\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ isEditing && ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName?: string ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\tkebabCase( nextName ?? '' ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<NameContainer>\n\t\t\t\t\t\t\t{ element.name.trim().length\n\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t: /* Fall back to non-breaking space to maintain height */\n\t\t\t\t\t\t\t\t '\\u00A0' }\n\t\t\t\t\t\t</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ isEditing && ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ __( 'Remove color' ) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditing && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PaletteItem>\n\t);\n}\n\nfunction PaletteEditListView< T extends Color | Gradient >( {\n\telements,\n\tonChange,\n\teditingElement,\n\tsetEditingElement,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n\tpopoverProps,\n}: PaletteEditListViewProps< T > ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReference = useRef< typeof elements >();\n\tuseEffect( () => {\n\t\telementsReference.current = elements;\n\t}, [ elements ] );\n\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonStartEditing={ () => {\n\t\t\t\t\t\t\tif ( editingElement !== index ) {\n\t\t\t\t\t\t\t\tsetEditingElement( index );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisEditing={ index === editingElement }\n\t\t\t\t\t\tonStopEditing={ () => {\n\t\t\t\t\t\t\tif ( index === editingElement ) {\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY: Color[] = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n\tpopoverProps,\n}: PaletteEditProps ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState<\n\t\tnumber | null | undefined\n\t>( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\t!! editingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t(\n\t\t\tvalue?: PaletteElement[ keyof PaletteElement ],\n\t\t\tnewEditingElementIndex?: number\n\t\t) => {\n\t\t\tconst selectedElement =\n\t\t\t\tnewEditingElementIndex === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<PaletteHStackHeader>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst optionName = getNameForPosition(\n\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( !! gradients ) {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...gradients,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tgradient: DEFAULT_GRADIENT,\n\t\t\t\t\t\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\t\t\tkebabCase( optionName ),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...colors,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcolor: DEFAULT_COLOR,\n\t\t\t\t\t\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\t\t\tkebabCase( optionName ),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose }: { onClose: () => void } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</PaletteHStackHeader>\n\t\t\t{ hasElements && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView< ( typeof elements )[ number ] >\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\teditingElement={ editingElement }\n\t\t\t\t\t\t\tsetEditingElement={ setEditingElement }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\tnewElement: ( typeof elements )[ number ]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcurrentElement: ( typeof elements )[ number ],\n\t\t\t\t\t\t\t\t\t\t\tcurrentIndex: number\n\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ?? -1 ] }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage }\n\t\t</PaletteEditStyles>\n\t);\n}\n\nexport default PaletteEdit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_i18n","_icons","_compose","_button","_colorPicker","_flex","_hStack","_itemGroup","_vStack","_gradientPicker","_colorPalette","_dropdownMenu","_popover","_styles","_navigableContainer","_constants","_customGradientPicker","_strings","DEFAULT_COLOR","NameInput","value","onChange","label","_react","createElement","NameInputControl","hideLabelFromVision","getNameAndSlugForPosition","elements","slugPrefix","nameRegex","RegExp","position","reduce","previousValue","currentValue","slug","matches","match","id","parseInt","name","sprintf","__","ColorPickerPopover","isGradient","element","popoverProps","receivedPopoverProps","onClose","useMemo","shift","offset","resize","placement","className","classnames","default","ColorPicker","color","enableAlpha","newColor","__experimentalIsRenderedInSidebar","gradient","newGradient","Option","canOnlyChangeValues","isEditing","onStartEditing","onRemove","onStopEditing","focusOutsideProps","useFocusOutside","popoverAnchor","setPopoverAnchor","useState","anchor","PaletteItem","undefined","as","onClick","trim","length","ref","HStack","justify","IndicatorStyled","colorValue","FlexItem","nextName","kebabCase","NameContainer","RemoveButton","size","icon","lineSolid","PaletteEditListView","editingElement","setEditingElement","elementsReference","useRef","useEffect","current","debounceOnChange","useDebounce","VStack","spacing","ItemGroup","isRounded","map","index","key","newElement","currentElement","currentIndex","newElements","filter","_currentElement","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","paletteLabelHeadingLevel","emptyMessage","canReset","setIsEditing","isAdding","elementsLength","hasElements","onSelectPaletteItem","useCallback","newEditingElementIndex","selectedElement","PaletteEditStyles","PaletteHStackHeader","PaletteHeading","level","PaletteActionsContainer","DoneButton","isPressed","plus","DEFAULT_GRADIENT","moreVertical","toggleProps","Fragment","NavigableMenu","role","variant","clearable","disableCustomGradients","disableCustomColors","_default","exports"],"sources":["@wordpress/components/src/palette-edit/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport {\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseDebounce,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tPaletteHStackHeader,\n\tIndicatorStyled,\n\tPaletteItem,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\nimport { kebabCase } from '../utils/strings';\nimport type {\n\tColor,\n\tColorPickerPopoverProps,\n\tGradient,\n\tNameInputProps,\n\tOptionProps,\n\tPaletteEditListViewProps,\n\tPaletteEditProps,\n\tPaletteElement,\n} from './types';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label }: NameInputProps ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\n/**\n * Returns a name and slug for a palette item. The name takes the format \"Color + id\".\n * To ensure there are no duplicate ids, this function checks all slugs.\n * It expects slugs to be in the format: slugPrefix + color- + number.\n * It then sets the id component of the new name based on the incremented id of the highest existing slug id.\n *\n * @param elements An array of color palette items.\n * @param slugPrefix The slug prefix used to match the element slug.\n *\n * @return A name and slug for the new palette item.\n */\nexport function getNameAndSlugForPosition(\n\telements: PaletteElement[],\n\tslugPrefix: string\n) {\n\tconst nameRegex = new RegExp( `^${ slugPrefix }color-([\\\\d]+)$` );\n\tconst position = elements.reduce( ( previousValue, currentValue ) => {\n\t\tif ( typeof currentValue?.slug === 'string' ) {\n\t\t\tconst matches = currentValue?.slug.match( nameRegex );\n\t\t\tif ( matches ) {\n\t\t\t\tconst id = parseInt( matches[ 1 ], 10 );\n\t\t\t\tif ( id >= previousValue ) {\n\t\t\t\t\treturn id + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn previousValue;\n\t}, 1 );\n\n\treturn {\n\t\tname: sprintf(\n\t\t\t/* translators: %s: is an id for a custom color */\n\t\t\t__( 'Color %s' ),\n\t\t\tposition\n\t\t),\n\t\tslug: `${ slugPrefix }color-${ position }`,\n\t};\n}\n\nfunction ColorPickerPopover< T extends Color | Gradient >( {\n\tisGradient,\n\telement,\n\tonChange,\n\tpopoverProps: receivedPopoverProps,\n\tonClose = () => {},\n}: ColorPickerPopoverProps< T > ) {\n\tconst popoverProps: ColorPickerPopoverProps< T >[ 'popoverProps' ] =\n\t\tuseMemo(\n\t\t\t() => ( {\n\t\t\t\tshift: true,\n\t\t\t\toffset: 20,\n\t\t\t\t// Disabling resize as it would otherwise cause the popover to show\n\t\t\t\t// scrollbars while dragging the color picker's handle close to the\n\t\t\t\t// popover edge.\n\t\t\t\tresize: false,\n\t\t\t\tplacement: 'left-start',\n\t\t\t\t...receivedPopoverProps,\n\t\t\t\tclassName: classnames(\n\t\t\t\t\t'components-palette-edit__popover',\n\t\t\t\t\treceivedPopoverProps?.className\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ receivedPopoverProps ]\n\t\t);\n\n\treturn (\n\t\t<Popover { ...popoverProps } onClose={ onClose }>\n\t\t\t{ ! isGradient && (\n\t\t\t\t<ColorPicker\n\t\t\t\t\tcolor={ element.color }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColor ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\tcolor: newColor,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isGradient && (\n\t\t\t\t<div className=\"components-palette-edit__popover-gradient-picker\">\n\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\tvalue={ element.gradient }\n\t\t\t\t\t\tonChange={ ( newGradient ) => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\tgradient: newGradient,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nfunction Option< T extends Color | Gradient >( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tisEditing,\n\tonStartEditing,\n\tonRemove,\n\tonStopEditing,\n\tpopoverProps: receivedPopoverProps,\n\tslugPrefix,\n\tisGradient,\n}: OptionProps< T > ) {\n\tconst focusOutsideProps = useFocusOutside( onStopEditing );\n\tconst value = isGradient ? element.gradient : element.color;\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t...receivedPopoverProps,\n\t\t\t// Use the custom palette color item as the popover anchor.\n\t\t\tanchor: popoverAnchor,\n\t\t} ),\n\t\t[ popoverAnchor, receivedPopoverProps ]\n\t);\n\n\treturn (\n\t\t<PaletteItem\n\t\t\tclassName={ isEditing ? 'is-selected' : undefined }\n\t\t\tas={ isEditing ? 'div' : 'button' }\n\t\t\tonClick={ onStartEditing }\n\t\t\taria-label={\n\t\t\t\tisEditing\n\t\t\t\t\t? undefined\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// translators: %s is a color or gradient name, e.g. \"Red\".\n\t\t\t\t\t\t\t__( 'Edit: %s' ),\n\t\t\t\t\t\t\telement.name.trim().length ? element.name : value\n\t\t\t\t\t )\n\t\t\t}\n\t\t\tref={ setPopoverAnchor }\n\t\t\t{ ...( isEditing ? { ...focusOutsideProps } : {} ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<IndicatorStyled colorValue={ value } />\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ isEditing && ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName?: string ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\tkebabCase( nextName ?? '' ),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<NameContainer>\n\t\t\t\t\t\t\t{ element.name.trim().length\n\t\t\t\t\t\t\t\t? element.name\n\t\t\t\t\t\t\t\t: /* Fall back to non-breaking space to maintain height */\n\t\t\t\t\t\t\t\t '\\u00A0' }\n\t\t\t\t\t\t</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ isEditing && ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ __( 'Remove color' ) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditing && (\n\t\t\t\t<ColorPickerPopover\n\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\telement={ element }\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</PaletteItem>\n\t);\n}\n\nfunction PaletteEditListView< T extends Color | Gradient >( {\n\telements,\n\tonChange,\n\teditingElement,\n\tsetEditingElement,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n\tpopoverProps,\n}: PaletteEditListViewProps< T > ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReference = useRef< typeof elements >();\n\tuseEffect( () => {\n\t\telementsReference.current = elements;\n\t}, [ elements ] );\n\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isRounded>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonStartEditing={ () => {\n\t\t\t\t\t\t\tif ( editingElement !== index ) {\n\t\t\t\t\t\t\t\tsetEditingElement( index );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisEditing={ index === editingElement }\n\t\t\t\t\t\tonStopEditing={ () => {\n\t\t\t\t\t\t\tif ( index === editingElement ) {\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY: Color[] = [];\n\n/**\n * Allows editing a palette of colors or gradients.\n *\n * ```jsx\n * import { PaletteEdit } from '@wordpress/components';\n * const MyPaletteEdit = () => {\n * const [ controlledColors, setControlledColors ] = useState( colors );\n *\n * return (\n * <PaletteEdit\n * colors={ controlledColors }\n * onChange={ ( newColors?: Color[] ) => {\n * setControlledColors( newColors );\n * } }\n * paletteLabel=\"Here is a label\"\n * />\n * );\n * };\n * ```\n */\nexport function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\tpaletteLabelHeadingLevel = 2,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n\tpopoverProps,\n}: PaletteEditProps ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState<\n\t\tnumber | null | undefined\n\t>( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\t!! editingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\tconst debounceOnChange = useDebounce( onChange, 100 );\n\tconst onSelectPaletteItem = useCallback(\n\t\t(\n\t\t\tvalue?: PaletteElement[ keyof PaletteElement ],\n\t\t\tnewEditingElementIndex?: number\n\t\t) => {\n\t\t\tconst selectedElement =\n\t\t\t\tnewEditingElementIndex === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: elements[ newEditingElementIndex ];\n\t\t\tconst key = isGradient ? 'gradient' : 'color';\n\t\t\t// Ensures that the index returned matches a known element value.\n\t\t\tif ( !! selectedElement && selectedElement[ key ] === value ) {\n\t\t\t\tsetEditingElement( newEditingElementIndex );\n\t\t\t} else {\n\t\t\t\tsetIsEditing( true );\n\t\t\t}\n\t\t},\n\t\t[ isGradient, elements ]\n\t);\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<PaletteHStackHeader>\n\t\t\t\t<PaletteHeading level={ paletteLabelHeadingLevel }>\n\t\t\t\t\t{ paletteLabel }\n\t\t\t\t</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ hasElements && isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst { name, slug } =\n\t\t\t\t\t\t\t\t\tgetNameAndSlugForPosition(\n\t\t\t\t\t\t\t\t\t\telements,\n\t\t\t\t\t\t\t\t\t\tslugPrefix\n\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif ( !! gradients ) {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...gradients,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tgradient: DEFAULT_GRADIENT,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t\t...colors,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcolor: DEFAULT_COLOR,\n\t\t\t\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tsize: 'small',\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose }: { onClose: () => void } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Show details' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</PaletteHStackHeader>\n\t\t\t{ hasElements && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView< ( typeof elements )[ number ] >\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\teditingElement={ editingElement }\n\t\t\t\t\t\t\tsetEditingElement={ setEditingElement }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing && editingElement !== null && (\n\t\t\t\t\t\t<ColorPickerPopover\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t\tonClose={ () => setEditingElement( null ) }\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\tnewElement: ( typeof elements )[ number ]\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tdebounceOnChange(\n\t\t\t\t\t\t\t\t\t// @ts-expect-error TODO: Don't know how to resolve\n\t\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcurrentElement: ( typeof elements )[ number ],\n\t\t\t\t\t\t\t\t\t\t\tcurrentIndex: number\n\t\t\t\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentIndex === editingElement\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\telement={ elements[ editingElement ?? -1 ] }\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ onSelectPaletteItem }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage }\n\t\t</PaletteEditStyles>\n\t);\n}\n\nexport default PaletteEdit;\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAOA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAQA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,aAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,aAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,QAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,OAAA,GAAAf,OAAA;AAYA,IAAAgB,mBAAA,GAAAhB,OAAA;AACA,IAAAiB,UAAA,GAAAjB,OAAA;AACA,IAAAkB,qBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,QAAA,GAAAnB,OAAA;AAlDA;AACA;AACA;;AAGA;AACA;AACA;;AAeA;AACA;AACA;;AAsCA,MAAMoB,aAAa,GAAG,MAAM;AAE5B,SAASC,SAASA,CAAE;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAsB,CAAC,EAAG;EAChE,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAAY,gBAAgB;IAChBH,KAAK,EAAGA,KAAO;IACfI,mBAAmB;IACnBN,KAAK,EAAGA,KAAO;IACfC,QAAQ,EAAGA;EAAU,CACrB,CAAC;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,yBAAyBA,CACxCC,QAA0B,EAC1BC,UAAkB,EACjB;EACD,MAAMC,SAAS,GAAG,IAAIC,MAAM,CAAG,IAAIF,UAAY,iBAAiB,CAAC;EACjE,MAAMG,QAAQ,GAAGJ,QAAQ,CAACK,MAAM,CAAE,CAAEC,aAAa,EAAEC,YAAY,KAAM;IACpE,IAAK,OAAOA,YAAY,EAAEC,IAAI,KAAK,QAAQ,EAAG;MAC7C,MAAMC,OAAO,GAAGF,YAAY,EAAEC,IAAI,CAACE,KAAK,CAAER,SAAU,CAAC;MACrD,IAAKO,OAAO,EAAG;QACd,MAAME,EAAE,GAAGC,QAAQ,CAAEH,OAAO,CAAE,CAAC,CAAE,EAAE,EAAG,CAAC;QACvC,IAAKE,EAAE,IAAIL,aAAa,EAAG;UAC1B,OAAOK,EAAE,GAAG,CAAC;QACd;MACD;IACD;IACA,OAAOL,aAAa;EACrB,CAAC,EAAE,CAAE,CAAC;EAEN,OAAO;IACNO,IAAI,EAAE,IAAAC,aAAO,GACZ;IACA,IAAAC,QAAE,EAAE,UAAW,CAAC,EAChBX,QACD,CAAC;IACDI,IAAI,EAAG,GAAGP,UAAY,SAASG,QAAU;EAC1C,CAAC;AACF;AAEA,SAASY,kBAAkBA,CAAgC;EAC1DC,UAAU;EACVC,OAAO;EACPzB,QAAQ;EACR0B,YAAY,EAAEC,oBAAoB;EAClCC,OAAO,GAAGA,CAAA,KAAM,CAAC;AACY,CAAC,EAAG;EACjC,MAAMF,YAA4D,GACjE,IAAAG,gBAAO,EACN,OAAQ;IACPC,KAAK,EAAE,IAAI;IACXC,MAAM,EAAE,EAAE;IACV;IACA;IACA;IACAC,MAAM,EAAE,KAAK;IACbC,SAAS,EAAE,YAAY;IACvB,GAAGN,oBAAoB;IACvBO,SAAS,EAAE,IAAAC,mBAAU,EACpB,kCAAkC,EAClCR,oBAAoB,EAAEO,SACvB;EACD,CAAC,CAAE,EACH,CAAEP,oBAAoB,CACvB,CAAC;EAEF,OACC,IAAAzB,MAAA,CAAAC,aAAA,EAACZ,QAAA,CAAA6C,OAAO;IAAA,GAAMV,YAAY;IAAGE,OAAO,EAAGA;EAAS,GAC7C,CAAEJ,UAAU,IACb,IAAAtB,MAAA,CAAAC,aAAA,EAACpB,YAAA,CAAAsD,WAAW;IACXC,KAAK,EAAGb,OAAO,CAACa,KAAO;IACvBC,WAAW;IACXvC,QAAQ,EAAKwC,QAAQ,IAAM;MAC1BxC,QAAQ,CAAE;QACT,GAAGyB,OAAO;QACVa,KAAK,EAAEE;MACR,CAAE,CAAC;IACJ;EAAG,CACH,CACD,EACChB,UAAU,IACX,IAAAtB,MAAA,CAAAC,aAAA;IAAK+B,SAAS,EAAC;EAAkD,GAChE,IAAAhC,MAAA,CAAAC,aAAA,EAACR,qBAAA,CAAAyC,OAAoB;IACpBK,iCAAiC;IACjC1C,KAAK,EAAG0B,OAAO,CAACiB,QAAU;IAC1B1C,QAAQ,EAAK2C,WAAW,IAAM;MAC7B3C,QAAQ,CAAE;QACT,GAAGyB,OAAO;QACViB,QAAQ,EAAEC;MACX,CAAE,CAAC;IACJ;EAAG,CACH,CACG,CAEE,CAAC;AAEZ;AAEA,SAASC,MAAMA,CAAgC;EAC9CC,mBAAmB;EACnBpB,OAAO;EACPzB,QAAQ;EACR8C,SAAS;EACTC,cAAc;EACdC,QAAQ;EACRC,aAAa;EACbvB,YAAY,EAAEC,oBAAoB;EAClCnB,UAAU;EACVgB;AACiB,CAAC,EAAG;EACrB,MAAM0B,iBAAiB,GAAG,IAAAC,sCAAe,EAAEF,aAAc,CAAC;EAC1D,MAAMlD,KAAK,GAAGyB,UAAU,GAAGC,OAAO,CAACiB,QAAQ,GAAGjB,OAAO,CAACa,KAAK;;EAE3D;EACA;EACA,MAAM,CAAEc,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAC,iBAAQ,EAAE,IAAK,CAAC;EAC5D,MAAM5B,YAAY,GAAG,IAAAG,gBAAO,EAC3B,OAAQ;IACP,GAAGF,oBAAoB;IACvB;IACA4B,MAAM,EAAEH;EACT,CAAC,CAAE,EACH,CAAEA,aAAa,EAAEzB,oBAAoB,CACtC,CAAC;EAED,OACC,IAAAzB,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAAgE,WAAW;IACXtB,SAAS,EAAGY,SAAS,GAAG,aAAa,GAAGW,SAAW;IACnDC,EAAE,EAAGZ,SAAS,GAAG,KAAK,GAAG,QAAU;IACnCa,OAAO,EAAGZ,cAAgB;IAC1B,cACCD,SAAS,GACNW,SAAS,GACT,IAAApC,aAAO;IACP;IACA,IAAAC,QAAE,EAAE,UAAW,CAAC,EAChBG,OAAO,CAACL,IAAI,CAACwC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAGpC,OAAO,CAACL,IAAI,GAAGrB,KAC5C,CACH;IACD+D,GAAG,EAAGT,gBAAkB;IAAA,IACjBP,SAAS,GAAG;MAAE,GAAGI;IAAkB,CAAC,GAAG,CAAC,CAAC;EAAA,GAEhD,IAAAhD,MAAA,CAAAC,aAAA,EAAClB,OAAA,CAAA8E,MAAM;IAACC,OAAO,EAAC;EAAY,GAC3B,IAAA9D,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAAyE,eAAe;IAACC,UAAU,EAAGnE;EAAO,CAAE,CAAC,EACxC,IAAAG,MAAA,CAAAC,aAAA,EAACnB,KAAA,CAAAmF,QAAQ,QACNrB,SAAS,IAAI,CAAED,mBAAmB,GACnC,IAAA3C,MAAA,CAAAC,aAAA,EAACL,SAAS;IACTG,KAAK,EACJuB,UAAU,GACP,IAAAF,QAAE,EAAE,eAAgB,CAAC,GACrB,IAAAA,QAAE,EAAE,YAAa,CACpB;IACDvB,KAAK,EAAG0B,OAAO,CAACL,IAAM;IACtBpB,QAAQ,EAAKoE,QAAiB,IAC7BpE,QAAQ,CAAE;MACT,GAAGyB,OAAO;MACVL,IAAI,EAAEgD,QAAQ;MACdrD,IAAI,EACHP,UAAU,GACV,IAAA6D,kBAAS,EAAED,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAG;IAC5B,CAAE;EACF,CACD,CAAC,GAEF,IAAAlE,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAA8E,aAAa,QACX7C,OAAO,CAACL,IAAI,CAACwC,IAAI,CAAC,CAAC,CAACC,MAAM,GACzBpC,OAAO,CAACL,IAAI,GACZ;EACA,QACW,CAEP,CAAC,EACT0B,SAAS,IAAI,CAAED,mBAAmB,IACnC,IAAA3C,MAAA,CAAAC,aAAA,EAACnB,KAAA,CAAAmF,QAAQ,QACR,IAAAjE,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAA+E,YAAY;IACZC,IAAI,EAAC,OAAO;IACZC,IAAI,EAAGC,gBAAW;IAClBzE,KAAK,EAAG,IAAAqB,QAAE,EAAE,cAAe,CAAG;IAC9BqC,OAAO,EAAGX;EAAU,CACpB,CACQ,CAEJ,CAAC,EACPF,SAAS,IACV,IAAA5C,MAAA,CAAAC,aAAA,EAACoB,kBAAkB;IAClBC,UAAU,EAAGA,UAAY;IACzBxB,QAAQ,EAAGA,QAAU;IACrByB,OAAO,EAAGA,OAAS;IACnBC,YAAY,EAAGA;EAAc,CAC7B,CAEU,CAAC;AAEhB;AAEA,SAASiD,mBAAmBA,CAAgC;EAC3DpE,QAAQ;EACRP,QAAQ;EACR4E,cAAc;EACdC,iBAAiB;EACjBhC,mBAAmB;EACnBrC,UAAU;EACVgB,UAAU;EACVE;AAC8B,CAAC,EAAG;EAClC;EACA,MAAMoD,iBAAiB,GAAG,IAAAC,eAAM,EAAoB,CAAC;EACrD,IAAAC,kBAAS,EAAE,MAAM;IAChBF,iBAAiB,CAACG,OAAO,GAAG1E,QAAQ;EACrC,CAAC,EAAE,CAAEA,QAAQ,CAAG,CAAC;EAEjB,MAAM2E,gBAAgB,GAAG,IAAAC,oBAAW,EAAEnF,QAAQ,EAAE,GAAI,CAAC;EAErD,OACC,IAAAE,MAAA,CAAAC,aAAA,EAAChB,OAAA,CAAAiG,MAAM;IAACC,OAAO,EAAG;EAAG,GACpB,IAAAnF,MAAA,CAAAC,aAAA,EAACjB,UAAA,CAAAoG,SAAS;IAACC,SAAS;EAAA,GACjBhF,QAAQ,CAACiF,GAAG,CAAE,CAAE/D,OAAO,EAAEgE,KAAK,KAC/B,IAAAvF,MAAA,CAAAC,aAAA,EAACyC,MAAM;IACNpB,UAAU,EAAGA,UAAY;IACzBqB,mBAAmB,EAAGA,mBAAqB;IAC3C6C,GAAG,EAAGD,KAAO;IACbhE,OAAO,EAAGA,OAAS;IACnBsB,cAAc,EAAGA,CAAA,KAAM;MACtB,IAAK6B,cAAc,KAAKa,KAAK,EAAG;QAC/BZ,iBAAiB,CAAEY,KAAM,CAAC;MAC3B;IACD,CAAG;IACHzF,QAAQ,EAAK2F,UAAU,IAAM;MAC5BT,gBAAgB,CACf3E,QAAQ,CAACiF,GAAG,CACX,CAAEI,cAAc,EAAEC,YAAY,KAAM;QACnC,IAAKA,YAAY,KAAKJ,KAAK,EAAG;UAC7B,OAAOE,UAAU;QAClB;QACA,OAAOC,cAAc;MACtB,CACD,CACD,CAAC;IACF,CAAG;IACH5C,QAAQ,EAAGA,CAAA,KAAM;MAChB6B,iBAAiB,CAAE,IAAK,CAAC;MACzB,MAAMiB,WAAW,GAAGvF,QAAQ,CAACwF,MAAM,CAClC,CAAEC,eAAe,EAAEH,YAAY,KAAM;QACpC,IAAKA,YAAY,KAAKJ,KAAK,EAAG;UAC7B,OAAO,KAAK;QACb;QACA,OAAO,IAAI;MACZ,CACD,CAAC;MACDzF,QAAQ,CACP8F,WAAW,CAACjC,MAAM,GAAGiC,WAAW,GAAGrC,SACpC,CAAC;IACF,CAAG;IACHX,SAAS,EAAG2C,KAAK,KAAKb,cAAgB;IACtC3B,aAAa,EAAGA,CAAA,KAAM;MACrB,IAAKwC,KAAK,KAAKb,cAAc,EAAG;QAC/BC,iBAAiB,CAAE,IAAK,CAAC;MAC1B;IACD,CAAG;IACHrE,UAAU,EAAGA,UAAY;IACzBkB,YAAY,EAAGA;EAAc,CAC7B,CACA,CACQ,CACJ,CAAC;AAEX;AAEA,MAAMuE,WAAoB,GAAG,EAAE;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,WAAWA,CAAE;EAC5BC,SAAS;EACTC,MAAM,GAAGH,WAAW;EACpBjG,QAAQ;EACRqG,YAAY;EACZC,wBAAwB,GAAG,CAAC;EAC5BC,YAAY;EACZ1D,mBAAmB;EACnB2D,QAAQ;EACRhG,UAAU,GAAG,EAAE;EACfkB;AACiB,CAAC,EAAG;EACrB,MAAMF,UAAU,GAAG,CAAC,CAAE2E,SAAS;EAC/B,MAAM5F,QAAQ,GAAGiB,UAAU,GAAG2E,SAAS,GAAGC,MAAM;EAChD,MAAM,CAAEtD,SAAS,EAAE2D,YAAY,CAAE,GAAG,IAAAnD,iBAAQ,EAAE,KAAM,CAAC;EACrD,MAAM,CAAEsB,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAvB,iBAAQ,EAEnD,IAAK,CAAC;EACT,MAAMoD,QAAQ,GACb5D,SAAS,IACT,CAAC,CAAE8B,cAAc,IACjBrE,QAAQ,CAAEqE,cAAc,CAAE,IAC1B,CAAErE,QAAQ,CAAEqE,cAAc,CAAE,CAAC7D,IAAI;EAClC,MAAM4F,cAAc,GAAGpG,QAAQ,CAACsD,MAAM;EACtC,MAAM+C,WAAW,GAAGD,cAAc,GAAG,CAAC;EACtC,MAAMzB,gBAAgB,GAAG,IAAAC,oBAAW,EAAEnF,QAAQ,EAAE,GAAI,CAAC;EACrD,MAAM6G,mBAAmB,GAAG,IAAAC,oBAAW,EACtC,CACC/G,KAA8C,EAC9CgH,sBAA+B,KAC3B;IACJ,MAAMC,eAAe,GACpBD,sBAAsB,KAAKtD,SAAS,GACjCA,SAAS,GACTlD,QAAQ,CAAEwG,sBAAsB,CAAE;IACtC,MAAMrB,GAAG,GAAGlE,UAAU,GAAG,UAAU,GAAG,OAAO;IAC7C;IACA,IAAK,CAAC,CAAEwF,eAAe,IAAIA,eAAe,CAAEtB,GAAG,CAAE,KAAK3F,KAAK,EAAG;MAC7D8E,iBAAiB,CAAEkC,sBAAuB,CAAC;IAC5C,CAAC,MAAM;MACNN,YAAY,CAAE,IAAK,CAAC;IACrB;EACD,CAAC,EACD,CAAEjF,UAAU,EAAEjB,QAAQ,CACvB,CAAC;EAED,OACC,IAAAL,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAAyH,iBAAiB,QACjB,IAAA/G,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAA0H,mBAAmB,QACnB,IAAAhH,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAA2H,cAAc;IAACC,KAAK,EAAGd;EAA0B,GAC/CD,YACa,CAAC,EACjB,IAAAnG,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAA6H,uBAAuB,QACrBT,WAAW,IAAI9D,SAAS,IACzB,IAAA5C,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAA8H,UAAU;IACV9C,IAAI,EAAC,OAAO;IACZb,OAAO,EAAGA,CAAA,KAAM;MACf8C,YAAY,CAAE,KAAM,CAAC;MACrB5B,iBAAiB,CAAE,IAAK,CAAC;IAC1B;EAAG,GAED,IAAAvD,QAAE,EAAE,MAAO,CACF,CACZ,EACC,CAAEuB,mBAAmB,IACtB,IAAA3C,MAAA,CAAAC,aAAA,EAACrB,OAAA,CAAAsD,OAAM;IACNoC,IAAI,EAAC,OAAO;IACZ+C,SAAS,EAAGb,QAAU;IACtBjC,IAAI,EAAG+C,WAAM;IACbvH,KAAK,EACJuB,UAAU,GACP,IAAAF,QAAE,EAAE,cAAe,CAAC,GACpB,IAAAA,QAAE,EAAE,WAAY,CACnB;IACDqC,OAAO,EAAGA,CAAA,KAAM;MACf,MAAM;QAAEvC,IAAI;QAAEL;MAAK,CAAC,GACnBT,yBAAyB,CACxBC,QAAQ,EACRC,UACD,CAAC;MAEF,IAAK,CAAC,CAAE2F,SAAS,EAAG;QACnBnG,QAAQ,CAAE,CACT,GAAGmG,SAAS,EACZ;UACCzD,QAAQ,EAAE+E,2BAAgB;UAC1BrG,IAAI;UACJL;QACD,CAAC,CACA,CAAC;MACJ,CAAC,MAAM;QACNf,QAAQ,CAAE,CACT,GAAGoG,MAAM,EACT;UACC9D,KAAK,EAAEzC,aAAa;UACpBuB,IAAI;UACJL;QACD,CAAC,CACA,CAAC;MACJ;MACA0F,YAAY,CAAE,IAAK,CAAC;MACpB5B,iBAAiB,CAAEtE,QAAQ,CAACsD,MAAO,CAAC;IACrC;EAAG,CACH,CACD,EAEC+C,WAAW,KACV,CAAE9D,SAAS,IACZ,CAAED,mBAAmB,IACrB2D,QAAQ,CAAE,IACV,IAAAtG,MAAA,CAAAC,aAAA,EAACb,aAAA,CAAA8C,OAAY;IACZqC,IAAI,EAAGiD,mBAAc;IACrBzH,KAAK,EACJuB,UAAU,GACP,IAAAF,QAAE,EAAE,kBAAmB,CAAC,GACxB,IAAAA,QAAE,EAAE,eAAgB,CACvB;IACDqG,WAAW,EAAG;MACbnD,IAAI,EAAE;IACP;EAAG,GAED,CAAE;IAAE5C;EAAiC,CAAC,KACvC,IAAA1B,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA0H,QAAA,QACC,IAAA1H,MAAA,CAAAC,aAAA,EAACV,mBAAA,CAAAoI,aAAa;IAACC,IAAI,EAAC;EAAM,GACvB,CAAEhF,SAAS,IACZ,IAAA5C,MAAA,CAAAC,aAAA,EAACrB,OAAA,CAAAsD,OAAM;IACN2F,OAAO,EAAC,UAAU;IAClBpE,OAAO,EAAGA,CAAA,KAAM;MACf8C,YAAY,CAAE,IAAK,CAAC;MACpB7E,OAAO,CAAC,CAAC;IACV,CAAG;IACHM,SAAS,EAAC;EAAsC,GAE9C,IAAAZ,QAAE,EAAE,cAAe,CACd,CACR,EACC,CAAEuB,mBAAmB,IACtB,IAAA3C,MAAA,CAAAC,aAAA,EAACrB,OAAA,CAAAsD,OAAM;IACN2F,OAAO,EAAC,UAAU;IAClBpE,OAAO,EAAGA,CAAA,KAAM;MACfkB,iBAAiB,CAChB,IACD,CAAC;MACD4B,YAAY,CAAE,KAAM,CAAC;MACrBzG,QAAQ,CAAC,CAAC;MACV4B,OAAO,CAAC,CAAC;IACV,CAAG;IACHM,SAAS,EAAC;EAAsC,GAE9CV,UAAU,GACT,IAAAF,QAAE,EACF,sBACA,CAAC,GACD,IAAAA,QAAE,EACF,mBACA,CACI,CACR,EACCkF,QAAQ,IACT,IAAAtG,MAAA,CAAAC,aAAA,EAACrB,OAAA,CAAAsD,OAAM;IACN2F,OAAO,EAAC,UAAU;IAClBpE,OAAO,EAAGA,CAAA,KAAM;MACfkB,iBAAiB,CAChB,IACD,CAAC;MACD7E,QAAQ,CAAC,CAAC;MACV4B,OAAO,CAAC,CAAC;IACV;EAAG,GAEDJ,UAAU,GACT,IAAAF,QAAE,EAAE,gBAAiB,CAAC,GACtB,IAAAA,QAAE,EAAE,cAAe,CACf,CAEK,CACd,CAEU,CAEQ,CACL,CAAC,EACpBsF,WAAW,IACZ,IAAA1G,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA0H,QAAA,QACG9E,SAAS,IACV,IAAA5C,MAAA,CAAAC,aAAA,EAACwE,mBAAmB;IACnB9B,mBAAmB,EAAGA,mBAAqB;IAC3CtC,QAAQ,EAAGA;IACX;IAAA;IACAP,QAAQ,EAAGA,QAAU;IACrB4E,cAAc,EAAGA,cAAgB;IACjCC,iBAAiB,EAAGA,iBAAmB;IACvCrE,UAAU,EAAGA,UAAY;IACzBgB,UAAU,EAAGA,UAAY;IACzBE,YAAY,EAAGA;EAAc,CAC7B,CACD,EACC,CAAEoB,SAAS,IAAI8B,cAAc,KAAK,IAAI,IACvC,IAAA1E,MAAA,CAAAC,aAAA,EAACoB,kBAAkB;IAClBC,UAAU,EAAGA,UAAY;IACzBI,OAAO,EAAGA,CAAA,KAAMiD,iBAAiB,CAAE,IAAK,CAAG;IAC3C7E,QAAQ,EACP2F,UAAyC,IACrC;MACJT,gBAAgB;MACf;MACA3E,QAAQ,CAACiF,GAAG,CACX,CACCI,cAA6C,EAC7CC,YAAoB,KAChB;QACJ,IACCA,YAAY,KAAKjB,cAAc,EAC9B;UACD,OAAOe,UAAU;QAClB;QACA,OAAOC,cAAc;MACtB,CACD,CACD,CAAC;IACF,CAAG;IACHnE,OAAO,EAAGlB,QAAQ,CAAEqE,cAAc,aAAdA,cAAc,cAAdA,cAAc,GAAI,CAAC,CAAC,CAAI;IAC5ClD,YAAY,EAAGA;EAAc,CAC7B,CACD,EACC,CAAEoB,SAAS,KACVtB,UAAU,GACX,IAAAtB,MAAA,CAAAC,aAAA,EAACf,eAAA,CAAAgD,OAAc;IACd+D,SAAS,EAAGA,SAAW;IACvBnG,QAAQ,EAAG6G,mBAAqB;IAChCmB,SAAS,EAAG,KAAO;IACnBC,sBAAsB;EAAA,CACtB,CAAC,GAEF,IAAA/H,MAAA,CAAAC,aAAA,EAACd,aAAA,CAAA+C,OAAY;IACZgE,MAAM,EAAGA,MAAQ;IACjBpG,QAAQ,EAAG6G,mBAAqB;IAChCmB,SAAS,EAAG,KAAO;IACnBE,mBAAmB;EAAA,CACnB,CACD,CACD,CACF,EACC,CAAEtB,WAAW,IAAIL,YACD,CAAC;AAEtB;AAAC,IAAA4B,QAAA,GAAAC,OAAA,CAAAhG,OAAA,GAEc8D,WAAW"}
@@ -70,7 +70,7 @@ const getPopoverFallbackContainer = () => {
70
70
  }
71
71
  return container;
72
72
  };
73
- const UnconnectedPopover = (props, forwardedRef) => {
73
+ const UnforwardedPopover = (props, forwardedRef) => {
74
74
  const {
75
75
  animate = true,
76
76
  headerTitle,
@@ -249,7 +249,7 @@ const UnconnectedPopover = (props, forwardedRef) => {
249
249
  x: (0, _utils.computePopoverPosition)(x),
250
250
  y: (0, _utils.computePopoverPosition)(y)
251
251
  };
252
- const shouldReduceMotion = (0, _framerMotion.useReducedMotion)();
252
+ const shouldReduceMotion = (0, _compose.useReducedMotion)();
253
253
  const shouldAnimate = animate && !isExpanded && !shouldReduceMotion;
254
254
  const [animationFinished, setAnimationFinished] = (0, _element.useState)(false);
255
255
  const {
@@ -271,33 +271,8 @@ const UnconnectedPopover = (props, forwardedRef) => {
271
271
  // When Floating UI has finished positioning and Framer Motion has finished animating
272
272
  // the popover, add the `is-positioned` class to signal that all transitions have finished.
273
273
  const isPositioned = (!shouldAnimate || animationFinished) && x !== null && y !== null;
274
-
275
- // In case a `ColorPicker` component is rendered as a child of `Popover`,
276
- // the `Popover` component can be notified of when the user is dragging
277
- // parts of the `ColorPicker` UI (this is possible because the `ColorPicker`
278
- // component exposes the `onPickerDragStart` and `onPickerDragEnd` props
279
- // via internal context).
280
- // While the user is performing a pointer drag, the `Popover` will render
281
- // a transparent backdrop element that will serve as a "pointer events trap",
282
- // making sure that no pointer events reach any potential `iframe` element
283
- // underneath (like, for example, the editor canvas in the WordPress editor).
284
- const [showBackdrop, setShowBackdrop] = (0, _element.useState)(false);
285
- const contextValue = (0, _element.useMemo)(() => ({
286
- ColorPicker: {
287
- onPickerDragStart() {
288
- setShowBackdrop(true);
289
- },
290
- onPickerDragEnd() {
291
- setShowBackdrop(false);
292
- }
293
- }
294
- }), []);
295
- let content = (0, _react.createElement)(_react.Fragment, null, showBackdrop && (0, _react.createElement)("div", {
296
- className: "components-popover-pointer-events-trap",
297
- "aria-hidden": "true",
298
- onClick: () => setShowBackdrop(false)
299
- }), (0, _react.createElement)(_framerMotion.motion.div, {
300
- className: (0, _classnames.default)('components-popover', className, {
274
+ let content = (0, _react.createElement)(_framerMotion.motion.div, {
275
+ className: (0, _classnames.default)(className, {
301
276
  'is-expanded': isExpanded,
302
277
  'is-positioned': isPositioned,
303
278
  // Use the 'alternate' classname for 'toolbar' variant for back compat.
@@ -318,16 +293,14 @@ const UnconnectedPopover = (props, forwardedRef) => {
318
293
  onClick: onClose
319
294
  })), (0, _react.createElement)("div", {
320
295
  className: "components-popover__content"
321
- }, (0, _react.createElement)(_context.ContextSystemProvider, {
322
- value: contextValue
323
- }, children)), hasArrow && (0, _react.createElement)("div", {
296
+ }, children), hasArrow && (0, _react.createElement)("div", {
324
297
  ref: arrowCallbackRef,
325
298
  className: ['components-popover__arrow', `is-${computedPlacement.split('-')[0]}`].join(' '),
326
299
  style: {
327
300
  left: typeof arrowData?.x !== 'undefined' && Number.isFinite(arrowData.x) ? `${arrowData.x}px` : '',
328
301
  top: typeof arrowData?.y !== 'undefined' && Number.isFinite(arrowData.y) ? `${arrowData.y}px` : ''
329
302
  }
330
- }, (0, _react.createElement)(ArrowTriangle, null))));
303
+ }, (0, _react.createElement)(ArrowTriangle, null)));
331
304
  const shouldRenderWithinSlot = slot.ref && !inline;
332
305
  const hasAnchor = anchorRef || anchorRect || anchor;
333
306
  if (shouldRenderWithinSlot) {
@@ -370,7 +343,7 @@ const UnconnectedPopover = (props, forwardedRef) => {
370
343
  * ```
371
344
  *
372
345
  */
373
- const Popover = exports.Popover = (0, _context.contextConnect)(UnconnectedPopover, 'Popover');
346
+ const Popover = exports.Popover = (0, _context.contextConnect)(UnforwardedPopover, 'Popover');
374
347
  function PopoverSlot({
375
348
  name = SLOT_NAME
376
349
  }, ref) {
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_reactDom","_framerMotion","_element","_compose","_icons","_deprecated","_primitives","_button","_scrollLock","_slotFill","_utils","_context","_overlayMiddlewares","_styleProvider","SLOT_NAME","exports","ArrowTriangle","_react","createElement","SVG","xmlns","viewBox","className","role","Path","d","vectorEffect","slotNameContext","createContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","append","UnconnectedPopover","props","forwardedRef","animate","headerTitle","constrainTabbing","onClose","children","noArrow","position","placement","placementProp","offset","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","flip","resize","shift","inline","variant","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","useContextSystem","computedFlipProp","computedResizeProp","deprecated","since","version","alternative","computedVariant","arrowRef","useRef","fallbackReferenceElement","setFallbackReferenceElement","useState","anchorRefFallback","useCallback","node","isMobileViewport","useViewportMatch","isExpanded","hasArrow","normalizedPlacementFromProps","positionToPlacement","middleware","overlayMiddlewares","offsetMiddleware","flipMiddleware","size","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","style","maxHeight","availableHeight","overflow","shiftMiddleware","crossAxis","limiter","limitShift","padding","arrow","element","slotName","useContext","slot","useSlot","onDialogClose","type","event","dialogRef","dialogProps","useDialog","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","useFloating","whileElementsMounted","referenceParam","floatingParam","updateParam","autoUpdate","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","useLayoutEffect","resultingReferenceElement","getReferenceElement","setReference","mergedFloatingRef","useMergeRefs","setFloating","left","computePopoverPosition","shouldReduceMotion","useReducedMotion","shouldAnimate","animationFinished","setAnimationFinished","motionInlineStyles","otherMotionProps","useMemo","placementToMotionAnimationProps","animationProps","onAnimationComplete","isPositioned","showBackdrop","setShowBackdrop","contextValue","ColorPicker","onPickerDragStart","onPickerDragEnd","content","Fragment","onClick","motion","div","classnames","ref","tabIndex","default","icon","close","ContextSystemProvider","value","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","Fill","name","createPortal","StyleProvider","Popover","contextConnect","PopoverSlot","Slot","bubblesVirtually","forwardRef","__unstableSlotNameProvider","Provider","_default"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tlimitShift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport type { HTMLMotionProps, MotionProps } from 'framer-motion';\n// eslint-disable-next-line no-restricted-imports\nimport { motion, useReducedMotion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tcreatePortal,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tcomputePopoverPosition,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceElement,\n} from './utils';\nimport {\n\tcontextConnect,\n\tuseContextSystem,\n\tContextSystemProvider,\n} from '../context';\nimport type { WordPressComponentProps } from '../context';\nimport type {\n\tPopoverProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\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 */\nexport const SLOT_NAME = 'Popover';\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 = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n\tlet container = document.body.querySelector(\n\t\t'.' + fallbackContainerClassname\n\t);\n\tif ( ! container ) {\n\t\tcontainer = document.createElement( 'div' );\n\t\tcontainer.className = fallbackContainerClassname;\n\t\tdocument.body.append( container );\n\t}\n\n\treturn container;\n};\n\nconst UnconnectedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children`, which are re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tconstrainTabbing,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tinline = false,\n\t\tvariant,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = useContextSystem( props, 'Popover' );\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp && flipMiddleware(),\n\t\tcomputedResizeProp &&\n\t\t\tsize( {\n\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\tconst { firstElementChild } = refs.floating.current ?? {};\n\n\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) )\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }px`,\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\t\tshift &&\n\t\t\tshiftMiddleware( {\n\t\t\t\tcrossAxis: true,\n\t\t\t\tlimiter: limitShift(),\n\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t} ),\n\t\tarrow( { element: arrowRef } ),\n\t];\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tconstrainTabbing,\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData },\n\t} = useFloating( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tlayoutShift: false,\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t} );\n\n\t\trefs.setReference( resultingReferenceElement );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\trefs,\n\t] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\trefs.setFloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\tconst style = isExpanded\n\t\t? undefined\n\t\t: {\n\t\t\t\tposition: strategy,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t// be overridden by the return value of the\n\t\t\t\t// `placementToMotionAnimationProps` function.\n\t\t\t\tx: computePopoverPosition( x ),\n\t\t\t\ty: computePopoverPosition( y ),\n\t\t };\n\n\tconst shouldReduceMotion = useReducedMotion();\n\tconst shouldAnimate = animate && ! isExpanded && ! shouldReduceMotion;\n\n\tconst [ animationFinished, setAnimationFinished ] = useState( false );\n\n\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t() => placementToMotionAnimationProps( computedPlacement ),\n\t\t[ computedPlacement ]\n\t);\n\n\tconst animationProps: HTMLMotionProps< 'div' > = shouldAnimate\n\t\t? {\n\t\t\t\tstyle: {\n\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t\t\tonAnimationComplete: () => setAnimationFinished( true ),\n\t\t\t\t...otherMotionProps,\n\t\t }\n\t\t: {\n\t\t\t\tanimate: false,\n\t\t\t\tstyle,\n\t\t };\n\n\t// When Floating UI has finished positioning and Framer Motion has finished animating\n\t// the popover, add the `is-positioned` class to signal that all transitions have finished.\n\tconst isPositioned =\n\t\t( ! shouldAnimate || animationFinished ) && x !== null && y !== null;\n\n\t// In case a `ColorPicker` component is rendered as a child of `Popover`,\n\t// the `Popover` component can be notified of when the user is dragging\n\t// parts of the `ColorPicker` UI (this is possible because the `ColorPicker`\n\t// component exposes the `onPickerDragStart` and `onPickerDragEnd` props\n\t// via internal context).\n\t// While the user is performing a pointer drag, the `Popover` will render\n\t// a transparent backdrop element that will serve as a \"pointer events trap\",\n\t// making sure that no pointer events reach any potential `iframe` element\n\t// underneath (like, for example, the editor canvas in the WordPress editor).\n\tconst [ showBackdrop, setShowBackdrop ] = useState( false );\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tColorPicker: {\n\t\t\t\tonPickerDragStart() {\n\t\t\t\t\tsetShowBackdrop( true );\n\t\t\t\t},\n\t\t\t\tonPickerDragEnd() {\n\t\t\t\t\tsetShowBackdrop( false );\n\t\t\t\t},\n\t\t\t},\n\t\t} ),\n\t\t[]\n\t);\n\n\tlet content = (\n\t\t<>\n\t\t\t{ showBackdrop && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover-pointer-events-trap\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tonClick={ () => setShowBackdrop( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<motion.div\n\t\t\t\tclassName={ classnames( 'components-popover', className, {\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-positioned': isPositioned,\n\t\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t\t[ `is-${\n\t\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t\t: computedVariant\n\t\t\t\t\t}` ]: computedVariant,\n\t\t\t\t} ) }\n\t\t\t\t{ ...animationProps }\n\t\t\t\t{ ...contentProps }\n\t\t\t\tref={ mergedFloatingRef }\n\t\t\t\t{ ...dialogProps }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t>\n\t\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t\t{ isExpanded && (\n\t\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<div className=\"components-popover__content\">\n\t\t\t\t\t<ContextSystemProvider value={ contextValue }>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</ContextSystemProvider>\n\t\t\t\t</div>\n\t\t\t\t{ hasArrow && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</>\n\t);\n\n\tconst shouldRenderWithinSlot = slot.ref && ! inline;\n\tconst hasAnchor = anchorRef || anchorRect || anchor;\n\n\tif ( shouldRenderWithinSlot ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t} else if ( ! inline ) {\n\t\tcontent = createPortal(\n\t\t\t<StyleProvider document={ document }>{ content }</StyleProvider>,\n\t\t\tgetPopoverFallbackContainer()\n\t\t);\n\t}\n\n\tif ( hasAnchor ) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={ anchorRefFallback } />\n\t\t\t{ content }\n\t\t</>\n\t);\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 = contextConnect( UnconnectedPopover, 'Popover' );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_reactDom","_framerMotion","_element","_compose","_icons","_deprecated","_primitives","_button","_scrollLock","_slotFill","_utils","_context","_overlayMiddlewares","_styleProvider","SLOT_NAME","exports","ArrowTriangle","_react","createElement","SVG","xmlns","viewBox","className","role","Path","d","vectorEffect","slotNameContext","createContext","undefined","fallbackContainerClassname","getPopoverFallbackContainer","container","document","body","querySelector","append","UnforwardedPopover","props","forwardedRef","animate","headerTitle","constrainTabbing","onClose","children","noArrow","position","placement","placementProp","offset","offsetProp","focusOnMount","anchor","expandOnMobile","onFocusOutside","__unstableSlotName","flip","resize","shift","inline","variant","__unstableForcePosition","anchorRef","anchorRect","getAnchorRect","isAlternate","contentProps","useContextSystem","computedFlipProp","computedResizeProp","deprecated","since","version","alternative","computedVariant","arrowRef","useRef","fallbackReferenceElement","setFallbackReferenceElement","useState","anchorRefFallback","useCallback","node","isMobileViewport","useViewportMatch","isExpanded","hasArrow","normalizedPlacementFromProps","positionToPlacement","middleware","overlayMiddlewares","offsetMiddleware","flipMiddleware","size","apply","sizeProps","_refs$floating$curren","firstElementChild","refs","floating","current","HTMLElement","Object","assign","style","maxHeight","availableHeight","overflow","shiftMiddleware","crossAxis","limiter","limitShift","padding","arrow","element","slotName","useContext","slot","useSlot","onDialogClose","type","event","dialogRef","dialogProps","useDialog","__unstableOnClose","x","y","strategy","update","computedPlacement","middlewareData","arrowData","useFloating","whileElementsMounted","referenceParam","floatingParam","updateParam","autoUpdate","layoutShift","animationFrame","arrowCallbackRef","anchorRefTop","top","anchorRefBottom","bottom","anchorRefStartContainer","startContainer","anchorRefCurrent","useLayoutEffect","resultingReferenceElement","getReferenceElement","setReference","mergedFloatingRef","useMergeRefs","setFloating","left","computePopoverPosition","shouldReduceMotion","useReducedMotion","shouldAnimate","animationFinished","setAnimationFinished","motionInlineStyles","otherMotionProps","useMemo","placementToMotionAnimationProps","animationProps","onAnimationComplete","isPositioned","content","motion","div","classnames","ref","tabIndex","default","icon","close","onClick","split","join","Number","isFinite","shouldRenderWithinSlot","hasAnchor","Fill","name","createPortal","StyleProvider","Fragment","Popover","contextConnect","PopoverSlot","Slot","bubblesVirtually","forwardRef","__unstableSlotNameProvider","Provider","_default"],"sources":["@wordpress/components/src/popover/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, SyntheticEvent, RefCallback } from 'react';\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip as flipMiddleware,\n\tshift as shiftMiddleware,\n\tlimitShift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tsize,\n} from '@floating-ui/react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport type { HTMLMotionProps, MotionProps } from 'framer-motion';\n// eslint-disable-next-line no-restricted-imports\nimport { motion } from 'framer-motion';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseState,\n\tuseCallback,\n\tcreatePortal,\n} from '@wordpress/element';\nimport {\n\tuseReducedMotion,\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\nimport { Path, SVG } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport {\n\tcomputePopoverPosition,\n\tpositionToPlacement,\n\tplacementToMotionAnimationProps,\n\tgetReferenceElement,\n} from './utils';\nimport { contextConnect, useContextSystem } from '../context';\nimport type { WordPressComponentProps } from '../context';\nimport type {\n\tPopoverProps,\n\tPopoverAnchorRefReference,\n\tPopoverAnchorRefTopBottom,\n} from './types';\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 */\nexport const SLOT_NAME = 'Popover';\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 = () => (\n\t<SVG\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox={ `0 0 100 100` }\n\t\tclassName=\"components-popover__triangle\"\n\t\trole=\"presentation\"\n\t>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-bg\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t/>\n\t\t<Path\n\t\t\tclassName=\"components-popover__triangle-border\"\n\t\t\td=\"M 0 0 L 50 50 L 100 0\"\n\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t/>\n\t</SVG>\n);\n\nconst slotNameContext = createContext< string | undefined >( undefined );\n\nconst fallbackContainerClassname = 'components-popover__fallback-container';\nconst getPopoverFallbackContainer = () => {\n\tlet container = document.body.querySelector(\n\t\t'.' + fallbackContainerClassname\n\t);\n\tif ( ! container ) {\n\t\tcontainer = document.createElement( 'div' );\n\t\tcontainer.className = fallbackContainerClassname;\n\t\tdocument.body.append( container );\n\t}\n\n\treturn container;\n};\n\nconst UnforwardedPopover = (\n\tprops: Omit<\n\t\tWordPressComponentProps< PopoverProps, 'div', false >,\n\t\t// To avoid overlaps between the standard HTML attributes and the props\n\t\t// expected by `framer-motion`, omit all framer motion props from popover\n\t\t// props (except for `animate` and `children`, which are re-defined in `PopoverProps`).\n\t\tkeyof Omit< MotionProps, 'animate' | 'children' >\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) => {\n\tconst {\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tconstrainTabbing,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tposition,\n\t\tplacement: placementProp = 'bottom-start',\n\t\toffset: offsetProp = 0,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchor,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\tflip = true,\n\t\tresize = true,\n\t\tshift = false,\n\t\tinline = false,\n\t\tvariant,\n\n\t\t// Deprecated props\n\t\t__unstableForcePosition,\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tisAlternate,\n\n\t\t// Rest\n\t\t...contentProps\n\t} = useContextSystem( props, 'Popover' );\n\n\tlet computedFlipProp = flip;\n\tlet computedResizeProp = resize;\n\tif ( __unstableForcePosition !== undefined ) {\n\t\tdeprecated( '`__unstableForcePosition` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t\talternative: '`flip={ false }` and `resize={ false }`',\n\t\t} );\n\n\t\t// Back-compat, set the `flip` and `resize` props\n\t\t// to `false` to replicate `__unstableForcePosition`.\n\t\tcomputedFlipProp = ! __unstableForcePosition;\n\t\tcomputedResizeProp = ! __unstableForcePosition;\n\t}\n\n\tif ( anchorRef !== undefined ) {\n\t\tdeprecated( '`anchorRef` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( anchorRect !== undefined ) {\n\t\tdeprecated( '`anchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tif ( getAnchorRect !== undefined ) {\n\t\tdeprecated( '`getAnchorRect` prop in wp.components.Popover', {\n\t\t\tsince: '6.1',\n\t\t\talternative: '`anchor` prop',\n\t\t} );\n\t}\n\n\tconst computedVariant = isAlternate ? 'toolbar' : variant;\n\tif ( isAlternate !== undefined ) {\n\t\tdeprecated( '`isAlternate` prop in wp.components.Popover', {\n\t\t\tsince: '6.2',\n\t\t\talternative: \"`variant` prop with the `'toolbar'` value\",\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef< HTMLElement | null >( null );\n\n\tconst [ fallbackReferenceElement, setFallbackReferenceElement ] =\n\t\tuseState< HTMLSpanElement | null >( null );\n\n\tconst anchorRefFallback: RefCallback< HTMLSpanElement > = useCallback(\n\t\t( node ) => {\n\t\t\tsetFallbackReferenceElement( node );\n\t\t},\n\t\t[]\n\t);\n\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst normalizedPlacementFromProps = position\n\t\t? positionToPlacement( position )\n\t\t: placementProp;\n\n\tconst middleware = [\n\t\t...( placementProp === 'overlay' ? overlayMiddlewares() : [] ),\n\t\toffsetMiddleware( offsetProp ),\n\t\tcomputedFlipProp && flipMiddleware(),\n\t\tcomputedResizeProp &&\n\t\t\tsize( {\n\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\tconst { firstElementChild } = refs.floating.current ?? {};\n\n\t\t\t\t\t// Only HTMLElement instances have the `style` property.\n\t\t\t\t\tif ( ! ( firstElementChild instanceof HTMLElement ) )\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\tObject.assign( firstElementChild.style, {\n\t\t\t\t\t\tmaxHeight: `${ sizeProps.availableHeight }px`,\n\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ),\n\t\tshift &&\n\t\t\tshiftMiddleware( {\n\t\t\t\tcrossAxis: true,\n\t\t\t\tlimiter: limitShift(),\n\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t} ),\n\t\tarrow( { element: arrowRef } ),\n\t];\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tlet onDialogClose;\n\n\tif ( onClose || onFocusOutside ) {\n\t\tonDialogClose = ( type: string | undefined, event: SyntheticEvent ) => {\n\t\t\t// Ideally the popover should have just a single onClose prop and\n\t\t\t// not three props that potentially do the same thing.\n\t\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\t\tonFocusOutside( event );\n\t\t\t} else if ( onClose ) {\n\t\t\t\tonClose();\n\t\t\t}\n\t\t};\n\t}\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tconstrainTabbing,\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\t// @ts-expect-error The __unstableOnClose property needs to be deprecated first (see https://github.com/WordPress/gutenberg/pull/27675)\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\t// Positioning coordinates\n\t\tx,\n\t\ty,\n\t\t// Object with \"regular\" refs to both \"reference\" and \"floating\"\n\t\trefs,\n\t\t// Type of CSS position property to use (absolute or fixed)\n\t\tstrategy,\n\t\tupdate,\n\t\tplacement: computedPlacement,\n\t\tmiddlewareData: { arrow: arrowData },\n\t} = useFloating( {\n\t\tplacement:\n\t\t\tnormalizedPlacementFromProps === 'overlay'\n\t\t\t\t? undefined\n\t\t\t\t: normalizedPlacementFromProps,\n\t\tmiddleware,\n\t\twhileElementsMounted: ( referenceParam, floatingParam, updateParam ) =>\n\t\t\tautoUpdate( referenceParam, floatingParam, updateParam, {\n\t\t\t\tlayoutShift: false,\n\t\t\t\tanimationFrame: true,\n\t\t\t} ),\n\t} );\n\n\tconst arrowCallbackRef = useCallback(\n\t\t( node: HTMLElement | null ) => {\n\t\t\tarrowRef.current = node;\n\t\t\tupdate();\n\t\t},\n\t\t[ update ]\n\t);\n\n\t// When any of the possible anchor \"sources\" change,\n\t// recompute the reference element (real or virtual) and its owner document.\n\n\tconst anchorRefTop = ( anchorRef as PopoverAnchorRefTopBottom | undefined )\n\t\t?.top;\n\tconst anchorRefBottom = (\n\t\tanchorRef as PopoverAnchorRefTopBottom | undefined\n\t )?.bottom;\n\tconst anchorRefStartContainer = ( anchorRef as Range | undefined )\n\t\t?.startContainer;\n\tconst anchorRefCurrent = ( anchorRef as PopoverAnchorRefReference )\n\t\t?.current;\n\n\tuseLayoutEffect( () => {\n\t\tconst resultingReferenceElement = getReferenceElement( {\n\t\t\tanchor,\n\t\t\tanchorRef,\n\t\t\tanchorRect,\n\t\t\tgetAnchorRect,\n\t\t\tfallbackReferenceElement,\n\t\t} );\n\n\t\trefs.setReference( resultingReferenceElement );\n\t}, [\n\t\tanchor,\n\t\tanchorRef,\n\t\tanchorRefTop,\n\t\tanchorRefBottom,\n\t\tanchorRefStartContainer,\n\t\tanchorRefCurrent,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tfallbackReferenceElement,\n\t\trefs,\n\t] );\n\n\tconst mergedFloatingRef = useMergeRefs( [\n\t\trefs.setFloating,\n\t\tdialogRef,\n\t\tforwardedRef,\n\t] );\n\n\tconst style = isExpanded\n\t\t? undefined\n\t\t: {\n\t\t\t\tposition: strategy,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\t// `x` and `y` are framer-motion specific props and are shorthands\n\t\t\t\t// for `translateX` and `translateY`. Currently it is not possible\n\t\t\t\t// to use `translateX` and `translateY` because those values would\n\t\t\t\t// be overridden by the return value of the\n\t\t\t\t// `placementToMotionAnimationProps` function.\n\t\t\t\tx: computePopoverPosition( x ),\n\t\t\t\ty: computePopoverPosition( y ),\n\t\t };\n\n\tconst shouldReduceMotion = useReducedMotion();\n\tconst shouldAnimate = animate && ! isExpanded && ! shouldReduceMotion;\n\n\tconst [ animationFinished, setAnimationFinished ] = useState( false );\n\n\tconst { style: motionInlineStyles, ...otherMotionProps } = useMemo(\n\t\t() => placementToMotionAnimationProps( computedPlacement ),\n\t\t[ computedPlacement ]\n\t);\n\n\tconst animationProps: HTMLMotionProps< 'div' > = shouldAnimate\n\t\t? {\n\t\t\t\tstyle: {\n\t\t\t\t\t...motionInlineStyles,\n\t\t\t\t\t...style,\n\t\t\t\t},\n\t\t\t\tonAnimationComplete: () => setAnimationFinished( true ),\n\t\t\t\t...otherMotionProps,\n\t\t }\n\t\t: {\n\t\t\t\tanimate: false,\n\t\t\t\tstyle,\n\t\t };\n\n\t// When Floating UI has finished positioning and Framer Motion has finished animating\n\t// the popover, add the `is-positioned` class to signal that all transitions have finished.\n\tconst isPositioned =\n\t\t( ! shouldAnimate || animationFinished ) && x !== null && y !== null;\n\n\tlet content = (\n\t\t<motion.div\n\t\t\tclassName={ classnames( className, {\n\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t'is-positioned': isPositioned,\n\t\t\t\t// Use the 'alternate' classname for 'toolbar' variant for back compat.\n\t\t\t\t[ `is-${\n\t\t\t\t\tcomputedVariant === 'toolbar'\n\t\t\t\t\t\t? 'alternate'\n\t\t\t\t\t\t: computedVariant\n\t\t\t\t}` ]: computedVariant,\n\t\t\t} ) }\n\t\t\t{ ...animationProps }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedFloatingRef }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex={ -1 }\n\t\t>\n\t\t\t{ /* Prevents scroll on the document */ }\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tref={ arrowCallbackRef }\n\t\t\t\t\tclassName={ [\n\t\t\t\t\t\t'components-popover__arrow',\n\t\t\t\t\t\t`is-${ computedPlacement.split( '-' )[ 0 ] }`,\n\t\t\t\t\t].join( ' ' ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\ttypeof arrowData?.x !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.x )\n\t\t\t\t\t\t\t\t? `${ arrowData.x }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\ttypeof arrowData?.y !== 'undefined' &&\n\t\t\t\t\t\t\tNumber.isFinite( arrowData.y )\n\t\t\t\t\t\t\t\t? `${ arrowData.y }px`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<ArrowTriangle />\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</motion.div>\n\t);\n\n\tconst shouldRenderWithinSlot = slot.ref && ! inline;\n\tconst hasAnchor = anchorRef || anchorRect || anchor;\n\n\tif ( shouldRenderWithinSlot ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t} else if ( ! inline ) {\n\t\tcontent = createPortal(\n\t\t\t<StyleProvider document={ document }>{ content }</StyleProvider>,\n\t\t\tgetPopoverFallbackContainer()\n\t\t);\n\t}\n\n\tif ( hasAnchor ) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={ anchorRefFallback } />\n\t\t\t{ content }\n\t\t</>\n\t);\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 = contextConnect( UnforwardedPopover, 'Popover' );\n\nfunction PopoverSlot(\n\t{ name = SLOT_NAME }: { name?: string },\n\tref: ForwardedRef< any >\n) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\n// @ts-expect-error For Legacy Reasons\nPopover.Slot = forwardRef( PopoverSlot );\n// @ts-expect-error For Legacy Reasons\nPopover.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default Popover;\n"],"mappings":";;;;;;;;AAIA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAaA,IAAAE,aAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAH,OAAA;AAWA,IAAAI,QAAA,GAAAJ,OAAA;AAMA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AAKA,IAAAQ,OAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,WAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AAMA,IAAAY,QAAA,GAAAZ,OAAA;AAOA,IAAAa,mBAAA,GAAAb,OAAA;AACA,IAAAc,cAAA,GAAAd,OAAA;AAhEA;AACA;AACA;;AAeA;;AAGA;AACA;AACA;;AAsBA;AACA;AACA;;AAoBA;AACA;AACA;AACA;AACA;AACO,MAAMe,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,SAAS;;AAElC;AACA;AACA;AACA;AACA,MAAME,aAAa,GAAGA,CAAA,KACrB,IAAAC,MAAA,CAAAC,aAAA,EAACZ,WAAA,CAAAa,GAAG;EACHC,KAAK,EAAC,4BAA4B;EAClCC,OAAO,EAAI,aAAc;EACzBC,SAAS,EAAC,8BAA8B;EACxCC,IAAI,EAAC;AAAc,GAEnB,IAAAN,MAAA,CAAAC,aAAA,EAACZ,WAAA,CAAAkB,IAAI;EACJF,SAAS,EAAC,iCAAiC;EAC3CG,CAAC,EAAC;AAAuB,CACzB,CAAC,EACF,IAAAR,MAAA,CAAAC,aAAA,EAACZ,WAAA,CAAAkB,IAAI;EACJF,SAAS,EAAC,qCAAqC;EAC/CG,CAAC,EAAC,uBAAuB;EACzBC,YAAY,EAAC;AAAoB,CACjC,CACG,CACL;AAED,MAAMC,eAAe,GAAG,IAAAC,sBAAa,EAAwBC,SAAU,CAAC;AAExE,MAAMC,0BAA0B,GAAG,wCAAwC;AAC3E,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EACzC,IAAIC,SAAS,GAAGC,QAAQ,CAACC,IAAI,CAACC,aAAa,CAC1C,GAAG,GAAGL,0BACP,CAAC;EACD,IAAK,CAAEE,SAAS,EAAG;IAClBA,SAAS,GAAGC,QAAQ,CAACf,aAAa,CAAE,KAAM,CAAC;IAC3Cc,SAAS,CAACV,SAAS,GAAGQ,0BAA0B;IAChDG,QAAQ,CAACC,IAAI,CAACE,MAAM,CAAEJ,SAAU,CAAC;EAClC;EAEA,OAAOA,SAAS;AACjB,CAAC;AAED,MAAMK,kBAAkB,GAAGA,CAC1BC,KAMC,EACDC,YAAiC,KAC7B;EACJ,MAAM;IACLC,OAAO,GAAG,IAAI;IACdC,WAAW;IACXC,gBAAgB;IAChBC,OAAO;IACPC,QAAQ;IACRtB,SAAS;IACTuB,OAAO,GAAG,IAAI;IACdC,QAAQ;IACRC,SAAS,EAAEC,aAAa,GAAG,cAAc;IACzCC,MAAM,EAAEC,UAAU,GAAG,CAAC;IACtBC,YAAY,GAAG,cAAc;IAC7BC,MAAM;IACNC,cAAc;IACdC,cAAc;IACdC,kBAAkB,GAAGzC,SAAS;IAC9B0C,IAAI,GAAG,IAAI;IACXC,MAAM,GAAG,IAAI;IACbC,KAAK,GAAG,KAAK;IACbC,MAAM,GAAG,KAAK;IACdC,OAAO;IAEP;IACAC,uBAAuB;IACvBC,SAAS;IACTC,UAAU;IACVC,aAAa;IACbC,WAAW;IAEX;IACA,GAAGC;EACJ,CAAC,GAAG,IAAAC,yBAAgB,EAAE7B,KAAK,EAAE,SAAU,CAAC;EAExC,IAAI8B,gBAAgB,GAAGZ,IAAI;EAC3B,IAAIa,kBAAkB,GAAGZ,MAAM;EAC/B,IAAKI,uBAAuB,KAAKhC,SAAS,EAAG;IAC5C,IAAAyC,mBAAU,EAAE,yDAAyD,EAAE;MACtEC,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE;IACd,CAAE,CAAC;;IAEH;IACA;IACAL,gBAAgB,GAAG,CAAEP,uBAAuB;IAC5CQ,kBAAkB,GAAG,CAAER,uBAAuB;EAC/C;EAEA,IAAKC,SAAS,KAAKjC,SAAS,EAAG;IAC9B,IAAAyC,mBAAU,EAAE,2CAA2C,EAAE;MACxDC,KAAK,EAAE,KAAK;MACZE,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EAEA,IAAKV,UAAU,KAAKlC,SAAS,EAAG;IAC/B,IAAAyC,mBAAU,EAAE,4CAA4C,EAAE;MACzDC,KAAK,EAAE,KAAK;MACZE,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EAEA,IAAKT,aAAa,KAAKnC,SAAS,EAAG;IAClC,IAAAyC,mBAAU,EAAE,+CAA+C,EAAE;MAC5DC,KAAK,EAAE,KAAK;MACZE,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EAEA,MAAMC,eAAe,GAAGT,WAAW,GAAG,SAAS,GAAGL,OAAO;EACzD,IAAKK,WAAW,KAAKpC,SAAS,EAAG;IAChC,IAAAyC,mBAAU,EAAE,6CAA6C,EAAE;MAC1DC,KAAK,EAAE,KAAK;MACZE,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EAEA,MAAME,QAAQ,GAAG,IAAAC,eAAM,EAAwB,IAAK,CAAC;EAErD,MAAM,CAAEC,wBAAwB,EAAEC,2BAA2B,CAAE,GAC9D,IAAAC,iBAAQ,EAA4B,IAAK,CAAC;EAE3C,MAAMC,iBAAiD,GAAG,IAAAC,oBAAW,EAClEC,IAAI,IAAM;IACXJ,2BAA2B,CAAEI,IAAK,CAAC;EACpC,CAAC,EACD,EACD,CAAC;EAED,MAAMC,gBAAgB,GAAG,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAC1D,MAAMC,UAAU,GAAGhC,cAAc,IAAI8B,gBAAgB;EACrD,MAAMG,QAAQ,GAAG,CAAED,UAAU,IAAI,CAAExC,OAAO;EAC1C,MAAM0C,4BAA4B,GAAGzC,QAAQ,GAC1C,IAAA0C,0BAAmB,EAAE1C,QAAS,CAAC,GAC/BE,aAAa;EAEhB,MAAMyC,UAAU,GAAG,CAClB,IAAKzC,aAAa,KAAK,SAAS,GAAG,IAAA0C,sCAAkB,EAAC,CAAC,GAAG,EAAE,CAAE,EAC9D,IAAAC,gBAAgB,EAAEzC,UAAW,CAAC,EAC9BkB,gBAAgB,IAAI,IAAAwB,cAAc,EAAC,CAAC,EACpCvB,kBAAkB,IACjB,IAAAwB,cAAI,EAAE;IACLC,KAAKA,CAAEC,SAAS,EAAG;MAAA,IAAAC,qBAAA;MAClB,MAAM;QAAEC;MAAkB,CAAC,IAAAD,qBAAA,GAAGE,IAAI,CAACC,QAAQ,CAACC,OAAO,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;;MAEzD;MACA,IAAK,EAAIC,iBAAiB,YAAYI,WAAW,CAAE,EAClD;;MAED;MACAC,MAAM,CAACC,MAAM,CAAEN,iBAAiB,CAACO,KAAK,EAAE;QACvCC,SAAS,EAAG,GAAGV,SAAS,CAACW,eAAiB,IAAG;QAC7CC,QAAQ,EAAE;MACX,CAAE,CAAC;IACJ;EACD,CAAE,CAAC,EACJjD,KAAK,IACJ,IAAAkD,eAAe,EAAE;IAChBC,SAAS,EAAE,IAAI;IACfC,OAAO,EAAE,IAAAC,oBAAU,EAAC,CAAC;IACrBC,OAAO,EAAE,CAAC,CAAE;EACb,CAAE,CAAC,EACJ,IAAAC,eAAK,EAAE;IAAEC,OAAO,EAAEvC;EAAS,CAAE,CAAC,CAC9B;EACD,MAAMwC,QAAQ,GAAG,IAAAC,mBAAU,EAAEzF,eAAgB,CAAC,IAAI4B,kBAAkB;EACpE,MAAM8D,IAAI,GAAG,IAAAC,iBAAO,EAAEH,QAAS,CAAC;EAEhC,IAAII,aAAa;EAEjB,IAAK5E,OAAO,IAAIW,cAAc,EAAG;IAChCiE,aAAa,GAAGA,CAAEC,IAAwB,EAAEC,KAAqB,KAAM;MACtE;MACA;MACA,IAAKD,IAAI,KAAK,eAAe,IAAIlE,cAAc,EAAG;QACjDA,cAAc,CAAEmE,KAAM,CAAC;MACxB,CAAC,MAAM,IAAK9E,OAAO,EAAG;QACrBA,OAAO,CAAC,CAAC;MACV;IACD,CAAC;EACF;EAEA,MAAM,CAAE+E,SAAS,EAAEC,WAAW,CAAE,GAAG,IAAAC,gCAAS,EAAE;IAC7ClF,gBAAgB;IAChBS,YAAY;IACZ0E,iBAAiB,EAAEN,aAAa;IAChC;IACA5E,OAAO,EAAE4E;EACV,CAAE,CAAC;EAEH,MAAM;IACL;IACAO,CAAC;IACDC,CAAC;IACD;IACA7B,IAAI;IACJ;IACA8B,QAAQ;IACRC,MAAM;IACNlF,SAAS,EAAEmF,iBAAiB;IAC5BC,cAAc,EAAE;MAAElB,KAAK,EAAEmB;IAAU;EACpC,CAAC,GAAG,IAAAC,qBAAW,EAAE;IAChBtF,SAAS,EACRwC,4BAA4B,KAAK,SAAS,GACvC1D,SAAS,GACT0D,4BAA4B;IAChCE,UAAU;IACV6C,oBAAoB,EAAEA,CAAEC,cAAc,EAAEC,aAAa,EAAEC,WAAW,KACjE,IAAAC,oBAAU,EAAEH,cAAc,EAAEC,aAAa,EAAEC,WAAW,EAAE;MACvDE,WAAW,EAAE,KAAK;MAClBC,cAAc,EAAE;IACjB,CAAE;EACJ,CAAE,CAAC;EAEH,MAAMC,gBAAgB,GAAG,IAAA5D,oBAAW,EACjCC,IAAwB,IAAM;IAC/BP,QAAQ,CAACyB,OAAO,GAAGlB,IAAI;IACvB+C,MAAM,CAAC,CAAC;EACT,CAAC,EACD,CAAEA,MAAM,CACT,CAAC;;EAED;EACA;;EAEA,MAAMa,YAAY,GAAKhF,SAAS,EAC7BiF,GAAG;EACN,MAAMC,eAAe,GACpBlF,SAAS,EACNmF,MAAM;EACV,MAAMC,uBAAuB,GAAKpF,SAAS,EACxCqF,cAAc;EACjB,MAAMC,gBAAgB,GAAKtF,SAAS,EACjCsC,OAAO;EAEV,IAAAiD,wBAAe,EAAE,MAAM;IACtB,MAAMC,yBAAyB,GAAG,IAAAC,0BAAmB,EAAE;MACtDnG,MAAM;MACNU,SAAS;MACTC,UAAU;MACVC,aAAa;MACba;IACD,CAAE,CAAC;IAEHqB,IAAI,CAACsD,YAAY,CAAEF,yBAA0B,CAAC;EAC/C,CAAC,EAAE,CACFlG,MAAM,EACNU,SAAS,EACTgF,YAAY,EACZE,eAAe,EACfE,uBAAuB,EACvBE,gBAAgB,EAChBrF,UAAU,EACVC,aAAa,EACba,wBAAwB,EACxBqB,IAAI,CACH,CAAC;EAEH,MAAMuD,iBAAiB,GAAG,IAAAC,qBAAY,EAAE,CACvCxD,IAAI,CAACyD,WAAW,EAChBjC,SAAS,EACTnF,YAAY,CACX,CAAC;EAEH,MAAMiE,KAAK,GAAGnB,UAAU,GACrBxD,SAAS,GACT;IACAiB,QAAQ,EAAEkF,QAAQ;IAClBe,GAAG,EAAE,CAAC;IACNa,IAAI,EAAE,CAAC;IACP;IACA;IACA;IACA;IACA;IACA9B,CAAC,EAAE,IAAA+B,6BAAsB,EAAE/B,CAAE,CAAC;IAC9BC,CAAC,EAAE,IAAA8B,6BAAsB,EAAE9B,CAAE;EAC7B,CAAC;EAEJ,MAAM+B,kBAAkB,GAAG,IAAAC,yBAAgB,EAAC,CAAC;EAC7C,MAAMC,aAAa,GAAGxH,OAAO,IAAI,CAAE6C,UAAU,IAAI,CAAEyE,kBAAkB;EAErE,MAAM,CAAEG,iBAAiB,EAAEC,oBAAoB,CAAE,GAAG,IAAAnF,iBAAQ,EAAE,KAAM,CAAC;EAErE,MAAM;IAAEyB,KAAK,EAAE2D,kBAAkB;IAAE,GAAGC;EAAiB,CAAC,GAAG,IAAAC,gBAAO,EACjE,MAAM,IAAAC,sCAA+B,EAAEpC,iBAAkB,CAAC,EAC1D,CAAEA,iBAAiB,CACpB,CAAC;EAED,MAAMqC,cAAwC,GAAGP,aAAa,GAC3D;IACAxD,KAAK,EAAE;MACN,GAAG2D,kBAAkB;MACrB,GAAG3D;IACJ,CAAC;IACDgE,mBAAmB,EAAEA,CAAA,KAAMN,oBAAoB,CAAE,IAAK,CAAC;IACvD,GAAGE;EACH,CAAC,GACD;IACA5H,OAAO,EAAE,KAAK;IACdgE;EACA,CAAC;;EAEJ;EACA;EACA,MAAMiE,YAAY,GACjB,CAAE,CAAET,aAAa,IAAIC,iBAAiB,KAAMnC,CAAC,KAAK,IAAI,IAAIC,CAAC,KAAK,IAAI;EAErE,IAAI2C,OAAO,GACV,IAAAzJ,MAAA,CAAAC,aAAA,EAACjB,aAAA,CAAA0K,MAAM,CAACC,GAAG;IACVtJ,SAAS,EAAG,IAAAuJ,mBAAU,EAAEvJ,SAAS,EAAE;MAClC,aAAa,EAAE+D,UAAU;MACzB,eAAe,EAAEoF,YAAY;MAC7B;MACA,CAAG,MACF/F,eAAe,KAAK,SAAS,GAC1B,WAAW,GACXA,eACH,EAAC,GAAIA;IACP,CAAE,CAAG;IAAA,GACA6F,cAAc;IAAA,GACdrG,YAAY;IACjB4G,GAAG,EAAGrB,iBAAmB;IAAA,GACpB9B,WAAW;IAChBoD,QAAQ,EAAG,CAAC;EAAG,GAGb1F,UAAU,IAAI,IAAApE,MAAA,CAAAC,aAAA,EAACV,WAAA,CAAAwK,OAAU,MAAE,CAAC,EAC5B3F,UAAU,IACX,IAAApE,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAA4B,GAC1C,IAAAL,MAAA,CAAAC,aAAA;IAAMI,SAAS,EAAC;EAAkC,GAC/CmB,WACG,CAAC,EACP,IAAAxB,MAAA,CAAAC,aAAA,EAACX,OAAA,CAAAyK,OAAM;IACN1J,SAAS,EAAC,2BAA2B;IACrC2J,IAAI,EAAGC,YAAO;IACdC,OAAO,EAAGxI;EAAS,CACnB,CACG,CACL,EACD,IAAA1B,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAA6B,GAAGsB,QAAe,CAAC,EAC7D0C,QAAQ,IACT,IAAArE,MAAA,CAAAC,aAAA;IACC4J,GAAG,EAAGjC,gBAAkB;IACxBvH,SAAS,EAAG,CACX,2BAA2B,EAC1B,MAAM4G,iBAAiB,CAACkD,KAAK,CAAE,GAAI,CAAC,CAAE,CAAC,CAAI,EAAC,CAC7C,CAACC,IAAI,CAAE,GAAI,CAAG;IACf7E,KAAK,EAAG;MACPoD,IAAI,EACH,OAAOxB,SAAS,EAAEN,CAAC,KAAK,WAAW,IACnCwD,MAAM,CAACC,QAAQ,CAAEnD,SAAS,CAACN,CAAE,CAAC,GAC1B,GAAGM,SAAS,CAACN,CAAG,IAAG,GACpB,EAAE;MACNiB,GAAG,EACF,OAAOX,SAAS,EAAEL,CAAC,KAAK,WAAW,IACnCuD,MAAM,CAACC,QAAQ,CAAEnD,SAAS,CAACL,CAAE,CAAC,GAC1B,GAAGK,SAAS,CAACL,CAAG,IAAG,GACpB;IACL;EAAG,GAEH,IAAA9G,MAAA,CAAAC,aAAA,EAACF,aAAa,MAAE,CACZ,CAEK,CACZ;EAED,MAAMwK,sBAAsB,GAAGnE,IAAI,CAACyD,GAAG,IAAI,CAAEnH,MAAM;EACnD,MAAM8H,SAAS,GAAG3H,SAAS,IAAIC,UAAU,IAAIX,MAAM;EAEnD,IAAKoI,sBAAsB,EAAG;IAC7Bd,OAAO,GAAG,IAAAzJ,MAAA,CAAAC,aAAA,EAACT,SAAA,CAAAiL,IAAI;MAACC,IAAI,EAAGxE;IAAU,GAAGuD,OAAe,CAAC;EACrD,CAAC,MAAM,IAAK,CAAE/G,MAAM,EAAG;IACtB+G,OAAO,GAAG,IAAAkB,qBAAY,EACrB,IAAA3K,MAAA,CAAAC,aAAA,EAACL,cAAA,CAAAgL,aAAa;MAAC5J,QAAQ,EAAGA;IAAU,GAAGyI,OAAwB,CAAC,EAChE3I,2BAA2B,CAAC,CAC7B,CAAC;EACF;EAEA,IAAK0J,SAAS,EAAG;IAChB,OAAOf,OAAO;EACf;EAEA,OACC,IAAAzJ,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA6K,QAAA,QACC,IAAA7K,MAAA,CAAAC,aAAA;IAAM4J,GAAG,EAAG9F;EAAmB,CAAE,CAAC,EAChC0F,OACD,CAAC;AAEL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMqB,OAAO,GAAAhL,OAAA,CAAAgL,OAAA,GAAG,IAAAC,uBAAc,EAAE3J,kBAAkB,EAAE,SAAU,CAAC;AAEtE,SAAS4J,WAAWA,CACnB;EAAEN,IAAI,GAAG7K;AAA6B,CAAC,EACvCgK,GAAwB,EACvB;EACD,OACC,IAAA7J,MAAA,CAAAC,aAAA,EAACT,SAAA,CAAAyL,IAAI;IACJC,gBAAgB;IAChBR,IAAI,EAAGA,IAAM;IACbrK,SAAS,EAAC,cAAc;IACxBwJ,GAAG,EAAGA;EAAK,CACX,CAAC;AAEJ;;AAEA;AACAiB,OAAO,CAACG,IAAI,GAAG,IAAAE,mBAAU,EAAEH,WAAY,CAAC;AACxC;AACAF,OAAO,CAACM,0BAA0B,GAAG1K,eAAe,CAAC2K,QAAQ;AAAC,IAAAC,QAAA,GAAAxL,OAAA,CAAAiK,OAAA,GAE/Ce,OAAO"}