@wordpress/block-editor 14.17.0 → 14.19.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 (95) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/background-image-control/index.js +21 -11
  3. package/build/components/background-image-control/index.js.map +1 -1
  4. package/build/components/block-canvas/index.js +6 -3
  5. package/build/components/block-canvas/index.js.map +1 -1
  6. package/build/components/block-settings-menu/block-mode-toggle.js +3 -3
  7. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  8. package/build/components/block-toolbar/use-has-block-toolbar.js +3 -12
  9. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  10. package/build/components/child-layout-control/index.js +1 -0
  11. package/build/components/child-layout-control/index.js.map +1 -1
  12. package/build/components/html-element-control/index.js +107 -0
  13. package/build/components/html-element-control/index.js.map +1 -0
  14. package/build/components/html-element-control/messages.js +25 -0
  15. package/build/components/html-element-control/messages.js.map +1 -0
  16. package/build/components/keyboard-shortcuts/index.js +2 -2
  17. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  18. package/build/components/media-placeholder/index.js +5 -5
  19. package/build/components/media-placeholder/index.js.map +1 -1
  20. package/build/components/rich-text/event-listeners/delete.js +1 -9
  21. package/build/components/rich-text/event-listeners/delete.js.map +1 -1
  22. package/build/components/use-resize-canvas/index.js +1 -1
  23. package/build/components/use-resize-canvas/index.js.map +1 -1
  24. package/build/hooks/duotone.js +1 -1
  25. package/build/hooks/duotone.js.map +1 -1
  26. package/build/hooks/typography.js +1 -1
  27. package/build/hooks/typography.js.map +1 -1
  28. package/build/private-apis.js +2 -0
  29. package/build/private-apis.js.map +1 -1
  30. package/build/private-apis.native.js +4 -1
  31. package/build/private-apis.native.js.map +1 -1
  32. package/build/store/actions.js +1 -1
  33. package/build/store/actions.js.map +1 -1
  34. package/build-module/components/background-image-control/index.js +21 -11
  35. package/build-module/components/background-image-control/index.js.map +1 -1
  36. package/build-module/components/block-canvas/index.js +6 -3
  37. package/build-module/components/block-canvas/index.js.map +1 -1
  38. package/build-module/components/block-settings-menu/block-mode-toggle.js +3 -3
  39. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  40. package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -12
  41. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  42. package/build-module/components/child-layout-control/index.js +1 -0
  43. package/build-module/components/child-layout-control/index.js.map +1 -1
  44. package/build-module/components/html-element-control/index.js +102 -0
  45. package/build-module/components/html-element-control/index.js.map +1 -0
  46. package/build-module/components/html-element-control/messages.js +19 -0
  47. package/build-module/components/html-element-control/messages.js.map +1 -0
  48. package/build-module/components/keyboard-shortcuts/index.js +2 -2
  49. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  50. package/build-module/components/media-placeholder/index.js +5 -5
  51. package/build-module/components/media-placeholder/index.js.map +1 -1
  52. package/build-module/components/rich-text/event-listeners/delete.js +1 -9
  53. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
  54. package/build-module/components/use-resize-canvas/index.js +1 -1
  55. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  56. package/build-module/hooks/duotone.js +1 -1
  57. package/build-module/hooks/duotone.js.map +1 -1
  58. package/build-module/hooks/typography.js +1 -1
  59. package/build-module/hooks/typography.js.map +1 -1
  60. package/build-module/private-apis.js +2 -0
  61. package/build-module/private-apis.js.map +1 -1
  62. package/build-module/private-apis.native.js +3 -1
  63. package/build-module/private-apis.native.js.map +1 -1
  64. package/build-module/store/actions.js +1 -1
  65. package/build-module/store/actions.js.map +1 -1
  66. package/build-style/content-rtl.css +131 -9
  67. package/build-style/content.css +131 -9
  68. package/build-style/default-editor-styles-rtl.css +130 -9
  69. package/build-style/default-editor-styles.css +130 -9
  70. package/build-style/style-rtl.css +137 -11
  71. package/build-style/style.css +138 -11
  72. package/package.json +34 -34
  73. package/src/components/background-image-control/index.js +21 -13
  74. package/src/components/block-canvas/index.js +5 -3
  75. package/src/components/block-inspector/style.scss +4 -2
  76. package/src/components/block-list/content.scss +1 -0
  77. package/src/components/block-settings-menu/block-mode-toggle.js +3 -3
  78. package/src/components/block-settings-menu/test/block-mode-toggle.js +1 -1
  79. package/src/components/block-toolbar/use-has-block-toolbar.js +7 -13
  80. package/src/components/child-layout-control/index.js +1 -0
  81. package/src/components/html-element-control/index.js +109 -0
  82. package/src/components/html-element-control/messages.js +34 -0
  83. package/src/components/keyboard-shortcuts/index.js +2 -2
  84. package/src/components/media-placeholder/index.js +5 -5
  85. package/src/components/media-placeholder/style.scss +6 -0
  86. package/src/components/rich-text/README.md +1 -1
  87. package/src/components/rich-text/event-listeners/delete.js +1 -6
  88. package/src/components/url-popover/stories/index.story.js +9 -1
  89. package/src/components/use-resize-canvas/index.js +1 -1
  90. package/src/hooks/duotone.js +4 -3
  91. package/src/hooks/typography.js +5 -3
  92. package/src/private-apis.js +2 -0
  93. package/src/private-apis.native.js +2 -0
  94. package/src/store/actions.js +5 -1
  95. package/src/store/test/actions.js +122 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 14.19.0 (2025-05-22)
6
+
7
+ ## 14.18.0 (2025-05-07)
8
+
5
9
  ## 14.17.0 (2025-04-11)
6
10
 
7
11
  ## 14.16.0 (2025-03-27)
@@ -209,7 +209,8 @@ function BackgroundImageControls({
209
209
  onRemoveImage = noop,
210
210
  onResetImage = noop,
211
211
  displayInPanel,
212
- defaultValues
212
+ defaultValues,
213
+ containerRef
213
214
  }) {
214
215
  const [isUploading, setIsUploading] = (0, _element.useState)(false);
215
216
  const {
@@ -222,7 +223,6 @@ function BackgroundImageControls({
222
223
  } = style?.background?.backgroundImage || {
223
224
  ...inheritedValue?.background?.backgroundImage
224
225
  };
225
- const replaceContainerRef = (0, _element.useRef)();
226
226
  const {
227
227
  createErrorNotice
228
228
  } = (0, _data.useDispatch)(_notices.store);
@@ -270,6 +270,8 @@ function BackgroundImageControls({
270
270
  backgroundSize: sizeValue
271
271
  }));
272
272
  setIsUploading(false);
273
+ // Close the dropdown and focus the toggle button.
274
+ closeAndFocus();
273
275
  };
274
276
 
275
277
  // Drag and drop callback, restricting image to one.
@@ -286,12 +288,17 @@ function BackgroundImageControls({
286
288
  };
287
289
  const hasValue = (0, _backgroundPanel.hasBackgroundImageValue)(style);
288
290
  const closeAndFocus = () => {
289
- const [toggleButton] = _dom.focus.tabbable.find(replaceContainerRef.current);
290
- // Focus the toggle button and close the dropdown menu.
291
- // This ensures similar behaviour as to selecting an image, where the dropdown is
292
- // closed and focus is redirected to the dropdown toggle button.
293
- toggleButton?.focus();
294
- toggleButton?.click();
291
+ // Use requestAnimationFrame to ensure DOM updates are complete
292
+ window.requestAnimationFrame(() => {
293
+ const [toggleButton] = _dom.focus.tabbable.find(containerRef?.current);
294
+ if (!toggleButton) {
295
+ return;
296
+ }
297
+ // Focus the toggle button and close the dropdown menu.
298
+ // This ensures similar behaviour as to selecting an image, where the dropdown is
299
+ // closed and focus is redirected to the dropdown toggle button.
300
+ toggleButton.focus();
301
+ });
295
302
  };
296
303
  const onRemove = () => onChange((0, _object.setImmutably)(style, ['background'], {
297
304
  backgroundImage: 'none'
@@ -299,7 +306,6 @@ function BackgroundImageControls({
299
306
  const canRemove = !hasValue && (0, _backgroundPanel.hasBackgroundImageValue)(inheritedValue);
300
307
  const imgLabel = title || (0, _url.getFilename)(url) || (0, _i18n.__)('Add background image');
301
308
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
302
- ref: replaceContainerRef,
303
309
  className: "block-editor-global-styles-background-panel__image-tools-panel-item",
304
310
  children: [isUploading && /*#__PURE__*/(0, _jsxRuntime.jsx)(LoadingSpinner, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_mediaReplaceFlow.default, {
305
311
  mediaId: id,
@@ -527,7 +533,9 @@ function BackgroundImagePanel({
527
533
  const imageValue = value?.background?.backgroundImage || inheritedValue?.background?.backgroundImage;
528
534
  const shouldShowBackgroundImageControls = hasImageValue && 'none' !== imageValue && (settings?.background?.backgroundSize || settings?.background?.backgroundPosition || settings?.background?.backgroundRepeat);
529
535
  const [isDropDownOpen, setIsDropDownOpen] = (0, _element.useState)(false);
536
+ const containerRef = (0, _element.useRef)();
530
537
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
538
+ ref: containerRef,
531
539
  className: (0, _clsx.default)('block-editor-global-styles-background-panel__inspector-media-replace-container', {
532
540
  'is-open': isDropDownOpen
533
541
  }),
@@ -550,7 +558,8 @@ function BackgroundImagePanel({
550
558
  resetBackground();
551
559
  },
552
560
  onRemoveImage: () => setIsDropDownOpen(false),
553
- defaultValues: defaultValues
561
+ defaultValues: defaultValues,
562
+ containerRef: containerRef
554
563
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(BackgroundSizeControls, {
555
564
  onChange: onChange,
556
565
  style: value,
@@ -567,7 +576,8 @@ function BackgroundImagePanel({
567
576
  setIsDropDownOpen(false);
568
577
  resetBackground();
569
578
  },
570
- onRemoveImage: () => setIsDropDownOpen(false)
579
+ onRemoveImage: () => setIsDropDownOpen(false),
580
+ containerRef: containerRef
571
581
  })
572
582
  });
573
583
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_backgroundPanel","_object","_mediaReplaceFlow","_store","_privateKeys","_jsxRuntime","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","useEffect","renderPreviewContent","jsxs","__experimentalHStack","justify","children","jsx","style","backgroundImage","FlexItem","flexGrow","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","Button","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","getFilename","Dropdown","popoverProps","renderToggle","onClick","renderContent","__experimentalDropdownContentWrapper","paddingSize","LoadingSpinner","Placeholder","Spinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","isUploading","setIsUploading","useState","getSettings","useSelect","blockEditorStore","id","title","background","replaceContainerRef","useRef","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","hasBackgroundImageValue","closeAndFocus","toggleButton","focus","tabbable","find","current","click","onRemove","canRemove","ref","default","mediaId","mediaURL","accept","onSelect","clsx","name","props","onReset","MenuItem","DropZone","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","__experimentalVStack","spacing","FocalPointPicker","__nextHasNoMarginBottom","ToggleControl","checked","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","globalStylesDataKey","globalStylesLinksDataKey","resolvedInheritedValue","useMemo","resolvedValues","Object","entries","forEach","key","backgroundValue","getResolvedValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tclassName,\n\tonToggleCallback = noop,\n} ) {\n\tconst { isOpen, ...restToggleProps } = toggleProps;\n\n\tuseEffect( () => {\n\t\tif ( typeof isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( isOpen );\n\t\t}\n\t}, [ isOpen, onToggleCallback ] );\n\n\tconst renderPreviewContent = () => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t);\n\t};\n\n\treturn as === 'button' ? (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\t{ ...restToggleProps }\n\t\t\taria-expanded={ isOpen }\n\t\t>\n\t\t\t{ renderPreviewContent() }\n\t\t</Button>\n\t) : (\n\t\trenderPreviewContent()\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst replaceContainerRef = useRef();\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\treplaceContainerRef.current\n\t\t);\n\t\t// Focus the toggle button and close the dropdown menu.\n\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\ttoggleButton?.focus();\n\t\ttoggleButton?.click();\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div\n\t\t\tref={ replaceContainerRef }\n\t\t\tclassName=\"block-editor-global-styles-background-panel__image-tools-panel-item\"\n\t\t>\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__image-preview\"\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_backgroundPanel","_object","_mediaReplaceFlow","_store","_privateKeys","_jsxRuntime","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","useEffect","renderPreviewContent","jsxs","__experimentalHStack","justify","children","jsx","style","backgroundImage","FlexItem","flexGrow","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","Button","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","getFilename","Dropdown","popoverProps","renderToggle","onClick","renderContent","__experimentalDropdownContentWrapper","paddingSize","LoadingSpinner","Placeholder","Spinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","containerRef","isUploading","setIsUploading","useState","getSettings","useSelect","blockEditorStore","id","title","background","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","closeAndFocus","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","hasBackgroundImageValue","window","requestAnimationFrame","toggleButton","focus","tabbable","find","current","onRemove","canRemove","default","mediaId","mediaURL","accept","onSelect","clsx","name","props","onReset","MenuItem","DropZone","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","__experimentalVStack","spacing","FocalPointPicker","__nextHasNoMarginBottom","ToggleControl","checked","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","globalStylesDataKey","globalStylesLinksDataKey","resolvedInheritedValue","useMemo","resolvedValues","Object","entries","forEach","key","backgroundValue","getResolvedValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen","useRef","ref"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tclassName,\n\tonToggleCallback = noop,\n} ) {\n\tconst { isOpen, ...restToggleProps } = toggleProps;\n\n\tuseEffect( () => {\n\t\tif ( typeof isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( isOpen );\n\t\t}\n\t}, [ isOpen, onToggleCallback ] );\n\n\tconst renderPreviewContent = () => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t);\n\t};\n\n\treturn as === 'button' ? (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\t{ ...restToggleProps }\n\t\t\taria-expanded={ isOpen }\n\t\t>\n\t\t\t{ renderPreviewContent() }\n\t\t</Button>\n\t) : (\n\t\trenderPreviewContent()\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n\tcontainerRef,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t\t// Close the dropdown and focus the toggle button.\n\t\tcloseAndFocus();\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\t// Use requestAnimationFrame to ensure DOM updates are complete\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\tcontainerRef?.current\n\t\t\t);\n\t\t\tif ( ! toggleButton ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\ttoggleButton.focus();\n\t\t} );\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-background-panel__image-tools-panel-item\">\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__image-preview\"\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -56,9 +56,9 @@ function ExperimentalBlockCanvas({
56
56
  if (!shouldIframe) {
57
57
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockTools.default, {
58
58
  __unstableContentRef: localRef,
59
- className: "block-editor-block-canvas",
60
59
  style: {
61
- height
60
+ height,
61
+ display: 'flex'
62
62
  },
63
63
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_editorStyles.default, {
64
64
  styles: styles,
@@ -68,13 +68,16 @@ function ExperimentalBlockCanvas({
68
68
  ref: contentRef,
69
69
  className: "editor-styles-wrapper",
70
70
  tabIndex: -1,
71
+ style: {
72
+ height: '100%',
73
+ width: '100%'
74
+ },
71
75
  children: children
72
76
  })]
73
77
  });
74
78
  }
75
79
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockTools.default, {
76
80
  __unstableContentRef: localRef,
77
- className: "block-editor-block-canvas",
78
81
  style: {
79
82
  height,
80
83
  display: 'flex'
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_element","_data","_blockList","_interopRequireDefault","_blockTools","_editorStyles","_iframe","_writingFlow","_observeTyping","_blockSelectionClearer","_useBlockCommands","_store","_lockUnlock","_jsxRuntime","EDITOR_STYLE_TRANSFORM_OPTIONS","ignoredSelectors","ExperimentalBlockCanvas","shouldIframe","height","children","jsx","default","styles","contentRef","contentRefProp","iframeProps","useBlockCommands","isTabletViewport","useViewportMatch","resetTypingRef","useMouseMoveTypingReset","clearerRef","useBlockSelectionClearer","localRef","useRef","useMergeRefs","zoomLevel","useSelect","select","unlock","blockEditorStore","getZoomLevel","zoomOutIframeProps","scale","frameSize","jsxs","__unstableContentRef","className","style","scope","transformOptions","ref","tabIndex","display","name","BlockCanvas","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-canvas/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockTools from '../block-tools';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useBlockCommands } from '../use-block-commands';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n// EditorStyles is a memoized component, so avoid passing a new\n// object reference on each render.\nconst EDITOR_STYLE_TRANSFORM_OPTIONS = {\n\t// Don't transform selectors that already specify `.editor-styles-wrapper`.\n\tignoredSelectors: [ /\\.editor-styles-wrapper/gi ],\n};\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tuseBlockCommands();\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst localRef = useRef();\n\tconst contentRef = useMergeRefs( [ contentRefProp, clearerRef, localRef ] );\n\tconst zoomLevel = useSelect(\n\t\t( select ) => unlock( select( blockEditorStore ) ).getZoomLevel(),\n\t\t[]\n\t);\n\tconst zoomOutIframeProps =\n\t\tzoomLevel !== 100 && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: zoomLevel,\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<BlockTools\n\t\t\t\t__unstableContentRef={ localRef }\n\t\t\t\tclassName=\"block-editor-block-canvas\"\n\t\t\t\tstyle={ { height } }\n\t\t\t>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\":where(.editor-styles-wrapper)\"\n\t\t\t\t\ttransformOptions={ EDITOR_STYLE_TRANSFORM_OPTIONS }\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</BlockTools>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ localRef }\n\t\t\tclassName=\"block-editor-block-canvas\"\n\t\t\tstyle={ { height, display: 'flex' } }\n\t\t>\n\t\t\t<Iframe\n\t\t\t\t{ ...iframeProps }\n\t\t\t\t{ ...zoomOutIframeProps }\n\t\t\t\tref={ resetTypingRef }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t} }\n\t\t\t\tname=\"editor-canvas\"\n\t\t\t>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t{ children }\n\t\t\t</Iframe>\n\t\t</BlockTools>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {Element} props.children Content of the canvas, defaults to the BlockList component.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_compose","require","_element","_data","_blockList","_interopRequireDefault","_blockTools","_editorStyles","_iframe","_writingFlow","_observeTyping","_blockSelectionClearer","_useBlockCommands","_store","_lockUnlock","_jsxRuntime","EDITOR_STYLE_TRANSFORM_OPTIONS","ignoredSelectors","ExperimentalBlockCanvas","shouldIframe","height","children","jsx","default","styles","contentRef","contentRefProp","iframeProps","useBlockCommands","isTabletViewport","useViewportMatch","resetTypingRef","useMouseMoveTypingReset","clearerRef","useBlockSelectionClearer","localRef","useRef","useMergeRefs","zoomLevel","useSelect","select","unlock","blockEditorStore","getZoomLevel","zoomOutIframeProps","scale","frameSize","jsxs","__unstableContentRef","style","display","scope","transformOptions","ref","className","tabIndex","width","name","BlockCanvas","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-canvas/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport BlockTools from '../block-tools';\nimport EditorStyles from '../editor-styles';\nimport Iframe from '../iframe';\nimport WritingFlow from '../writing-flow';\nimport { useMouseMoveTypingReset } from '../observe-typing';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useBlockCommands } from '../use-block-commands';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n// EditorStyles is a memoized component, so avoid passing a new\n// object reference on each render.\nconst EDITOR_STYLE_TRANSFORM_OPTIONS = {\n\t// Don't transform selectors that already specify `.editor-styles-wrapper`.\n\tignoredSelectors: [ /\\.editor-styles-wrapper/gi ],\n};\n\nexport function ExperimentalBlockCanvas( {\n\tshouldIframe = true,\n\theight = '300px',\n\tchildren = <BlockList />,\n\tstyles,\n\tcontentRef: contentRefProp,\n\tiframeProps,\n} ) {\n\tuseBlockCommands();\n\tconst isTabletViewport = useViewportMatch( 'medium', '<' );\n\tconst resetTypingRef = useMouseMoveTypingReset();\n\tconst clearerRef = useBlockSelectionClearer();\n\tconst localRef = useRef();\n\tconst contentRef = useMergeRefs( [ contentRefProp, clearerRef, localRef ] );\n\tconst zoomLevel = useSelect(\n\t\t( select ) => unlock( select( blockEditorStore ) ).getZoomLevel(),\n\t\t[]\n\t);\n\tconst zoomOutIframeProps =\n\t\tzoomLevel !== 100 && ! isTabletViewport\n\t\t\t? {\n\t\t\t\t\tscale: zoomLevel,\n\t\t\t\t\tframeSize: '40px',\n\t\t\t }\n\t\t\t: {};\n\n\tif ( ! shouldIframe ) {\n\t\treturn (\n\t\t\t<BlockTools\n\t\t\t\t__unstableContentRef={ localRef }\n\t\t\t\tstyle={ { height, display: 'flex' } }\n\t\t\t>\n\t\t\t\t<EditorStyles\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tscope=\":where(.editor-styles-wrapper)\"\n\t\t\t\t\ttransformOptions={ EDITOR_STYLE_TRANSFORM_OPTIONS }\n\t\t\t\t/>\n\t\t\t\t<WritingFlow\n\t\t\t\t\tref={ contentRef }\n\t\t\t\t\tclassName=\"editor-styles-wrapper\"\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</WritingFlow>\n\t\t\t</BlockTools>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockTools\n\t\t\t__unstableContentRef={ localRef }\n\t\t\tstyle={ { height, display: 'flex' } }\n\t\t>\n\t\t\t<Iframe\n\t\t\t\t{ ...iframeProps }\n\t\t\t\t{ ...zoomOutIframeProps }\n\t\t\t\tref={ resetTypingRef }\n\t\t\t\tcontentRef={ contentRef }\n\t\t\t\tstyle={ {\n\t\t\t\t\t...iframeProps?.style,\n\t\t\t\t} }\n\t\t\t\tname=\"editor-canvas\"\n\t\t\t>\n\t\t\t\t<EditorStyles styles={ styles } />\n\t\t\t\t{ children }\n\t\t\t</Iframe>\n\t\t</BlockTools>\n\t);\n}\n\n/**\n * BlockCanvas component is a component used to display the canvas of the block editor.\n * What we call the canvas is an iframe containing the block list that you can manipulate.\n * The component is also responsible of wiring up all the necessary hooks to enable\n * the keyboard navigation across blocks in the editor and inject content styles into the iframe.\n *\n * @example\n *\n * ```jsx\n * function MyBlockEditor() {\n * const [ blocks, updateBlocks ] = useState([]);\n * return (\n * <BlockEditorProvider\n * value={ blocks }\n * onInput={ updateBlocks }\n * onChange={ persistBlocks }\n * >\n * <BlockCanvas height=\"400px\" />\n * </BlockEditorProvider>\n * );\n * }\n * ```\n *\n * @param {Object} props Component props.\n * @param {string} props.height Canvas height, defaults to 300px.\n * @param {Array} props.styles Content styles to inject into the iframe.\n * @param {Element} props.children Content of the canvas, defaults to the BlockList component.\n * @return {Element} Block Breadcrumb.\n */\nfunction BlockCanvas( { children, height, styles } ) {\n\treturn (\n\t\t<ExperimentalBlockCanvas height={ height } styles={ styles }>\n\t\t\t{ children }\n\t\t</ExperimentalBlockCanvas>\n\t);\n}\n\nexport default BlockCanvas;\n"],"mappings":"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","ignoreList":[]}
@@ -26,7 +26,7 @@ function BlockModeToggle({
26
26
  const {
27
27
  blockType,
28
28
  mode,
29
- isCodeEditingEnabled
29
+ enabled
30
30
  } = (0, _data.useSelect)(select => {
31
31
  const {
32
32
  getBlock,
@@ -37,13 +37,13 @@ function BlockModeToggle({
37
37
  return {
38
38
  mode: getBlockMode(clientId),
39
39
  blockType: block ? (0, _blocks.getBlockType)(block.name) : null,
40
- isCodeEditingEnabled: getSettings().codeEditingEnabled
40
+ enabled: getSettings().codeEditingEnabled && !!block?.isValid
41
41
  };
42
42
  }, [clientId]);
43
43
  const {
44
44
  toggleBlockMode
45
45
  } = (0, _data.useDispatch)(_store.store);
46
- if (!blockType || !(0, _blocks.hasBlockSupport)(blockType, 'html', true) || !isCodeEditingEnabled) {
46
+ if (!blockType || !(0, _blocks.hasBlockSupport)(blockType, 'html', true) || !enabled) {
47
47
  return null;
48
48
  }
49
49
  const label = mode === 'visual' ? (0, _i18n.__)('Edit as HTML') : (0, _i18n.__)('Edit visually');
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_blocks","_data","_store","_jsxRuntime","noop","BlockModeToggle","clientId","onToggle","blockType","mode","isCodeEditingEnabled","useSelect","select","getBlock","getBlockMode","getSettings","blockEditorStore","block","getBlockType","name","codeEditingEnabled","toggleBlockMode","useDispatch","hasBlockSupport","label","__","jsx","MenuItem","onClick","children"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport default function BlockModeToggle( { clientId, onToggle = noop } ) {\n\tconst { blockType, mode, isCodeEditingEnabled } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\tisCodeEditingEnabled: getSettings().codeEditingEnabled,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { toggleBlockMode } = useDispatch( blockEditorStore );\n\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\ttoggleBlockMode( clientId );\n\t\t\t\tonToggle();\n\t\t\t} }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAAwD,IAAAK,WAAA,GAAAL,OAAA;AAXxD;AACA;AACA;;AAMA;AACA;AACA;;AAGA,MAAMM,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEN,SAASC,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAGH;AAAK,CAAC,EAAG;EACxE,MAAM;IAAEI,SAAS;IAAEC,IAAI;IAAEC;EAAqB,CAAC,GAAG,IAAAC,eAAS,EACxDC,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5CH,MAAM,CAAEI,YAAiB,CAAC;IAC3B,MAAMC,KAAK,GAAGJ,QAAQ,CAAEP,QAAS,CAAC;IAElC,OAAO;MACNG,IAAI,EAAEK,YAAY,CAAER,QAAS,CAAC;MAC9BE,SAAS,EAAES,KAAK,GAAG,IAAAC,oBAAY,EAAED,KAAK,CAACE,IAAK,CAAC,GAAG,IAAI;MACpDT,oBAAoB,EAAEK,WAAW,CAAC,CAAC,CAACK;IACrC,CAAC;EACF,CAAC,EACD,CAAEd,QAAQ,CACX,CAAC;EACD,MAAM;IAAEe;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEN,YAAiB,CAAC;EAE3D,IACC,CAAER,SAAS,IACX,CAAE,IAAAe,uBAAe,EAAEf,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEE,oBAAoB,EACrB;IACD,OAAO,IAAI;EACZ;EAEA,MAAMc,KAAK,GACVf,IAAI,KAAK,QAAQ,GAAG,IAAAgB,QAAE,EAAE,cAAe,CAAC,GAAG,IAAAA,QAAE,EAAE,eAAgB,CAAC;EAEjE,oBACC,IAAAtB,WAAA,CAAAuB,GAAA,EAAC3B,WAAA,CAAA4B,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAM;MACfP,eAAe,CAAEf,QAAS,CAAC;MAC3BC,QAAQ,CAAC,CAAC;IACX,CAAG;IAAAsB,QAAA,EAEDL;EAAK,CACE,CAAC;AAEb","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_blocks","_data","_store","_jsxRuntime","noop","BlockModeToggle","clientId","onToggle","blockType","mode","enabled","useSelect","select","getBlock","getBlockMode","getSettings","blockEditorStore","block","getBlockType","name","codeEditingEnabled","isValid","toggleBlockMode","useDispatch","hasBlockSupport","label","__","jsx","MenuItem","onClick","children"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport default function BlockModeToggle( { clientId, onToggle = noop } ) {\n\tconst { blockType, mode, enabled } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\tenabled: getSettings().codeEditingEnabled && !! block?.isValid,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { toggleBlockMode } = useDispatch( blockEditorStore );\n\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! enabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\ttoggleBlockMode( clientId );\n\t\t\t\tonToggle();\n\t\t\t} }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AAAwD,IAAAK,WAAA,GAAAL,OAAA;AAXxD;AACA;AACA;;AAMA;AACA;AACA;;AAGA,MAAMM,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEN,SAASC,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAGH;AAAK,CAAC,EAAG;EACxE,MAAM;IAAEI,SAAS;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAG,IAAAC,eAAS,EAC3CC,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5CH,MAAM,CAAEI,YAAiB,CAAC;IAC3B,MAAMC,KAAK,GAAGJ,QAAQ,CAAEP,QAAS,CAAC;IAElC,OAAO;MACNG,IAAI,EAAEK,YAAY,CAAER,QAAS,CAAC;MAC9BE,SAAS,EAAES,KAAK,GAAG,IAAAC,oBAAY,EAAED,KAAK,CAACE,IAAK,CAAC,GAAG,IAAI;MACpDT,OAAO,EAAEK,WAAW,CAAC,CAAC,CAACK,kBAAkB,IAAI,CAAC,CAAEH,KAAK,EAAEI;IACxD,CAAC;EACF,CAAC,EACD,CAAEf,QAAQ,CACX,CAAC;EACD,MAAM;IAAEgB;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEP,YAAiB,CAAC;EAE3D,IACC,CAAER,SAAS,IACX,CAAE,IAAAgB,uBAAe,EAAEhB,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEE,OAAO,EACR;IACD,OAAO,IAAI;EACZ;EAEA,MAAMe,KAAK,GACVhB,IAAI,KAAK,QAAQ,GAAG,IAAAiB,QAAE,EAAE,cAAe,CAAC,GAAG,IAAAA,QAAE,EAAE,eAAgB,CAAC;EAEjE,oBACC,IAAAvB,WAAA,CAAAwB,GAAA,EAAC5B,WAAA,CAAA6B,QAAQ;IACRC,OAAO,EAAGA,CAAA,KAAM;MACfP,eAAe,CAAEhB,QAAS,CAAC;MAC3BC,QAAQ,CAAC,CAAC;IACX,CAAG;IAAAuB,QAAA,EAEDL;EAAK,CACE,CAAC;AAEb","ignoreList":[]}
@@ -21,10 +21,7 @@ var _store = require("../../store");
21
21
  * @return {boolean} Whether the block toolbar component will be rendered.
22
22
  */
23
23
  function useHasBlockToolbar() {
24
- const {
25
- isToolbarEnabled,
26
- isBlockDisabled
27
- } = (0, _data.useSelect)(select => {
24
+ const enabled = (0, _data.useSelect)(select => {
28
25
  const {
29
26
  getBlockEditingMode,
30
27
  getBlockName,
@@ -36,14 +33,8 @@ function useHasBlockToolbar() {
36
33
  // instead of getSelectedBlockClientIds
37
34
  const selectedBlockClientId = getBlockSelectionStart();
38
35
  const blockType = selectedBlockClientId && (0, _blocks.getBlockType)(getBlockName(selectedBlockClientId));
39
- return {
40
- isToolbarEnabled: blockType && (0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true),
41
- isBlockDisabled: getBlockEditingMode(selectedBlockClientId) === 'disabled'
42
- };
36
+ return blockType && (0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true) && getBlockEditingMode(selectedBlockClientId) !== 'disabled';
43
37
  }, []);
44
- if (!isToolbarEnabled || isBlockDisabled) {
45
- return false;
46
- }
47
- return true;
38
+ return enabled;
48
39
  }
49
40
  //# sourceMappingURL=use-has-block-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_blocks","_store","useHasBlockToolbar","isToolbarEnabled","isBlockDisabled","useSelect","select","getBlockEditingMode","getBlockName","getBlockSelectionStart","blockEditorStore","selectedBlockClientId","blockType","getBlockType","hasBlockSupport"],"sources":["@wordpress/block-editor/src/components/block-toolbar/use-has-block-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns true if the block toolbar should be shown.\n *\n * @return {boolean} Whether the block toolbar component will be rendered.\n */\nexport function useHasBlockToolbar() {\n\tconst { isToolbarEnabled, isBlockDisabled } = useSelect( ( select ) => {\n\t\tconst { getBlockEditingMode, getBlockName, getBlockSelectionStart } =\n\t\t\tselect( blockEditorStore );\n\n\t\t// we only care about the 1st selected block\n\t\t// for the toolbar, so we use getBlockSelectionStart\n\t\t// instead of getSelectedBlockClientIds\n\t\tconst selectedBlockClientId = getBlockSelectionStart();\n\n\t\tconst blockType =\n\t\t\tselectedBlockClientId &&\n\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) );\n\n\t\treturn {\n\t\t\tisToolbarEnabled:\n\t\t\t\tblockType &&\n\t\t\t\thasBlockSupport( blockType, '__experimentalToolbar', true ),\n\t\t\tisBlockDisabled:\n\t\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'disabled',\n\t\t};\n\t}, [] );\n\n\tif ( ! isToolbarEnabled || isBlockDisabled ) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAAA,EAAG;EACpC,MAAM;IAAEC,gBAAgB;IAAEC;EAAgB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACtE,MAAM;MAAEC,mBAAmB;MAAEC,YAAY;MAAEC;IAAuB,CAAC,GAClEH,MAAM,CAAEI,YAAiB,CAAC;;IAE3B;IACA;IACA;IACA,MAAMC,qBAAqB,GAAGF,sBAAsB,CAAC,CAAC;IAEtD,MAAMG,SAAS,GACdD,qBAAqB,IACrB,IAAAE,oBAAY,EAAEL,YAAY,CAAEG,qBAAsB,CAAE,CAAC;IAEtD,OAAO;MACNR,gBAAgB,EACfS,SAAS,IACT,IAAAE,uBAAe,EAAEF,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC;MAC5DR,eAAe,EACdG,mBAAmB,CAAEI,qBAAsB,CAAC,KAAK;IACnD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAER,gBAAgB,IAAIC,eAAe,EAAG;IAC5C,OAAO,KAAK;EACb;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_blocks","_store","useHasBlockToolbar","enabled","useSelect","select","getBlockEditingMode","getBlockName","getBlockSelectionStart","blockEditorStore","selectedBlockClientId","blockType","getBlockType","hasBlockSupport"],"sources":["@wordpress/block-editor/src/components/block-toolbar/use-has-block-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns true if the block toolbar should be shown.\n *\n * @return {boolean} Whether the block toolbar component will be rendered.\n */\nexport function useHasBlockToolbar() {\n\tconst enabled = useSelect( ( select ) => {\n\t\tconst { getBlockEditingMode, getBlockName, getBlockSelectionStart } =\n\t\t\tselect( blockEditorStore );\n\n\t\t// we only care about the 1st selected block\n\t\t// for the toolbar, so we use getBlockSelectionStart\n\t\t// instead of getSelectedBlockClientIds\n\t\tconst selectedBlockClientId = getBlockSelectionStart();\n\n\t\tconst blockType =\n\t\t\tselectedBlockClientId &&\n\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) );\n\n\t\treturn (\n\t\t\tblockType &&\n\t\t\thasBlockSupport( blockType, '__experimentalToolbar', true ) &&\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) !== 'disabled'\n\t\t);\n\t}, [] );\n\n\treturn enabled;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAAA,EAAG;EACpC,MAAMC,OAAO,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxC,MAAM;MAAEC,mBAAmB;MAAEC,YAAY;MAAEC;IAAuB,CAAC,GAClEH,MAAM,CAAEI,YAAiB,CAAC;;IAE3B;IACA;IACA;IACA,MAAMC,qBAAqB,GAAGF,sBAAsB,CAAC,CAAC;IAEtD,MAAMG,SAAS,GACdD,qBAAqB,IACrB,IAAAE,oBAAY,EAAEL,YAAY,CAAEG,qBAAsB,CAAE,CAAC;IAEtD,OACCC,SAAS,IACT,IAAAE,uBAAe,EAAEF,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC,IAC3DL,mBAAmB,CAAEI,qBAAsB,CAAC,KAAK,UAAU;EAE7D,CAAC,EAAE,EAAG,CAAC;EAEP,OAAOP,OAAO;AACf","ignoreList":[]}
@@ -157,6 +157,7 @@ function FlexControls({
157
157
  });
158
158
  },
159
159
  value: flexSize,
160
+ min: 0,
160
161
  label: flexResetLabel,
161
162
  hideLabelFromVision: true
162
163
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_element","_data","_useGetNumberOfBlocksBeforeCell","_store","_useSettings","_jsxRuntime","helpText","selfStretch","parentLayout","orientation","__","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","jsx","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","availableUnits","useSettings","units","useCustomUnits","resetFlex","undefined","useEffect","jsxs","__experimentalVStack","as","ToolsPanelItem","spacing","hasValue","label","onDeselect","children","__experimentalToggleGroupControl","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","hideLabelFromVision","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","useSelect","select","blockEditorStore","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","Fragment","__experimentalHStack","__experimentalInputControl","newColumnSpan","parseInt","min","newRowSpan","window","__experimentalEnableGridInteractivity","Flex","FlexItem","style","width","newColumnStart","max","newRowStart"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\nimport { useSettings } from '../use-settings';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vh',\n\t\t\t'vw',\n\t\t],\n\t} );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fit',\n\t\t\t\t\t\t'Intrinsic block width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Grow',\n\t\t\t\t\t\t'Block with expanding width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fixed',\n\t\t\t\t\t\t'Block with fixed width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t\tlabel={ flexResetLabel }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount = 3, rowCount } = parentLayout ?? {};\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tcolumnCount\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newColumnSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\tcolumnSpan: newColumnSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ columnSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newRowSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\trowSpan: newRowSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ rowSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t{ window.__experimentalEnableGridInteractivity && columnCount && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newColumnStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tnewColumnStart,\n\t\t\t\t\t\t\t\t\t\trowStart\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\tvalue={ columnStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tcolumnCount\n\t\t\t\t\t\t\t\t\t? columnCount - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newRowStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tnewRowStart\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\tvalue={ rowStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\trowCount\n\t\t\t\t\t\t\t\t\t? rowCount - ( rowSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_element","_data","_useGetNumberOfBlocksBeforeCell","_store","_useSettings","_jsxRuntime","helpText","selfStretch","parentLayout","orientation","__","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","jsx","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","availableUnits","useSettings","units","useCustomUnits","resetFlex","undefined","useEffect","jsxs","__experimentalVStack","as","ToolsPanelItem","spacing","hasValue","label","onDeselect","children","__experimentalToggleGroupControl","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","min","hideLabelFromVision","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","useSelect","select","blockEditorStore","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","Fragment","__experimentalHStack","__experimentalInputControl","newColumnSpan","parseInt","newRowSpan","window","__experimentalEnableGridInteractivity","Flex","FlexItem","style","width","newColumnStart","max","newRowStart"],"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalInputControl as InputControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useGetNumberOfBlocksBeforeCell } from '../grid/use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\nimport { useSettings } from '../use-settings';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @param {boolean} props.isShownByDefault\n * @param {string} props.panelId\n * @return {Element} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst {\n\t\ttype: parentType,\n\t\tdefault: { type: defaultParentType = 'default' } = {},\n\t} = parentLayout ?? {};\n\tconst parentLayoutType = parentType || defaultParentType;\n\n\tif ( parentLayoutType === 'flex' ) {\n\t\treturn (\n\t\t\t<FlexControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t} else if ( parentLayoutType === 'grid' ) {\n\t\treturn (\n\t\t\t<GridControls\n\t\t\t\tchildLayout={ childLayout }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tparentLayout={ parentLayout }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n\nfunction FlexControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\tconst { orientation = 'horizontal' } = parentLayout ?? {};\n\tconst hasFlexValue = () => !! selfStretch;\n\tconst flexResetLabel =\n\t\torientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vh',\n\t\t\t'vw',\n\t\t],\n\t} );\n\tconst resetFlex = () => {\n\t\tonChange( {\n\t\t\tselfStretch: undefined,\n\t\t\tflexSize: undefined,\n\t\t} );\n\t};\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<VStack\n\t\t\tas={ ToolsPanelItem }\n\t\t\tspacing={ 2 }\n\t\t\thasValue={ hasFlexValue }\n\t\t\tlabel={ flexResetLabel }\n\t\t\tonDeselect={ resetFlex }\n\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\tpanelId={ panelId }\n\t\t>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fit\"\n\t\t\t\t\tvalue=\"fit\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fit',\n\t\t\t\t\t\t'Intrinsic block width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fill\"\n\t\t\t\t\tvalue=\"fill\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Grow',\n\t\t\t\t\t\t'Block with expanding width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"fixed\"\n\t\t\t\t\tvalue=\"fixed\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Fixed',\n\t\t\t\t\t\t'Block with fixed width in flex layout'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tselfStretch,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tlabel={ flexResetLabel }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n\nfunction GridControls( {\n\tchildLayout,\n\tonChange,\n\tparentLayout,\n\tisShownByDefault,\n\tpanelId,\n} ) {\n\tconst { columnStart, rowStart, columnSpan, rowSpan } = childLayout;\n\tconst { columnCount = 3, rowCount } = parentLayout ?? {};\n\tconst rootClientId = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).getBlockRootClientId( panelId )\n\t);\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\trootClientId,\n\t\tcolumnCount\n\t);\n\tconst hasStartValue = () => !! columnStart || !! rowStart;\n\tconst hasSpanValue = () => !! columnSpan || !! rowSpan;\n\tconst resetGridStarts = () => {\n\t\tonChange( {\n\t\t\tcolumnStart: undefined,\n\t\t\trowStart: undefined,\n\t\t} );\n\t};\n\tconst resetGridSpans = () => {\n\t\tonChange( {\n\t\t\tcolumnSpan: undefined,\n\t\t\trowSpan: undefined,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\thasValue={ hasSpanValue }\n\t\t\t\tlabel={ __( 'Grid span' ) }\n\t\t\t\tonDeselect={ resetGridSpans }\n\t\t\t\tisShownByDefault={ isShownByDefault }\n\t\t\t\tpanelId={ panelId }\n\t\t\t>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Column span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newColumnSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\tcolumnSpan: newColumnSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ columnSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t\t<InputControl\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tlabel={ __( 'Row span' ) }\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\tconst newRowSpan =\n\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\trowSpan: newRowSpan,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ rowSpan ?? 1 }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t{ window.__experimentalEnableGridInteractivity && columnCount && (\n\t\t\t\t// Use Flex with an explicit width on the FlexItem instead of HStack to\n\t\t\t\t// work around an issue in webkit where inputs with a max attribute are\n\t\t\t\t// sized incorrectly.\n\t\t\t\t<Flex\n\t\t\t\t\tas={ ToolsPanelItem }\n\t\t\t\t\thasValue={ hasStartValue }\n\t\t\t\t\tlabel={ __( 'Grid placement' ) }\n\t\t\t\t\tonDeselect={ resetGridStarts }\n\t\t\t\t\tisShownByDefault={ false }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Column' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newColumnStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart: newColumnStart,\n\t\t\t\t\t\t\t\t\trowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tnewColumnStart,\n\t\t\t\t\t\t\t\t\t\trowStart\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\tvalue={ columnStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\tcolumnCount\n\t\t\t\t\t\t\t\t\t? columnCount - ( columnSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem style={ { width: '50%' } }>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t\tlabel={ __( 'Row' ) }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t// Don't allow unsetting.\n\t\t\t\t\t\t\t\tconst newRowStart =\n\t\t\t\t\t\t\t\t\tvalue === '' ? 1 : parseInt( value, 10 );\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart: newRowStart,\n\t\t\t\t\t\t\t\t\tcolumnSpan,\n\t\t\t\t\t\t\t\t\trowSpan,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t[ panelId ],\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\t\tnewRowStart\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\tvalue={ rowStart ?? 1 }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t\trowCount\n\t\t\t\t\t\t\t\t\t? rowCount - ( rowSpan ?? 1 ) + 1\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}