@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
@@ -198,7 +198,8 @@ function BackgroundImageControls({
198
198
  onRemoveImage = noop,
199
199
  onResetImage = noop,
200
200
  displayInPanel,
201
- defaultValues
201
+ defaultValues,
202
+ containerRef
202
203
  }) {
203
204
  const [isUploading, setIsUploading] = useState(false);
204
205
  const {
@@ -211,7 +212,6 @@ function BackgroundImageControls({
211
212
  } = style?.background?.backgroundImage || {
212
213
  ...inheritedValue?.background?.backgroundImage
213
214
  };
214
- const replaceContainerRef = useRef();
215
215
  const {
216
216
  createErrorNotice
217
217
  } = useDispatch(noticesStore);
@@ -259,6 +259,8 @@ function BackgroundImageControls({
259
259
  backgroundSize: sizeValue
260
260
  }));
261
261
  setIsUploading(false);
262
+ // Close the dropdown and focus the toggle button.
263
+ closeAndFocus();
262
264
  };
263
265
 
264
266
  // Drag and drop callback, restricting image to one.
@@ -275,12 +277,17 @@ function BackgroundImageControls({
275
277
  };
276
278
  const hasValue = hasBackgroundImageValue(style);
277
279
  const closeAndFocus = () => {
278
- const [toggleButton] = focus.tabbable.find(replaceContainerRef.current);
279
- // Focus the toggle button and close the dropdown menu.
280
- // This ensures similar behaviour as to selecting an image, where the dropdown is
281
- // closed and focus is redirected to the dropdown toggle button.
282
- toggleButton?.focus();
283
- toggleButton?.click();
280
+ // Use requestAnimationFrame to ensure DOM updates are complete
281
+ window.requestAnimationFrame(() => {
282
+ const [toggleButton] = focus.tabbable.find(containerRef?.current);
283
+ if (!toggleButton) {
284
+ return;
285
+ }
286
+ // Focus the toggle button and close the dropdown menu.
287
+ // This ensures similar behaviour as to selecting an image, where the dropdown is
288
+ // closed and focus is redirected to the dropdown toggle button.
289
+ toggleButton.focus();
290
+ });
284
291
  };
285
292
  const onRemove = () => onChange(setImmutably(style, ['background'], {
286
293
  backgroundImage: 'none'
@@ -288,7 +295,6 @@ function BackgroundImageControls({
288
295
  const canRemove = !hasValue && hasBackgroundImageValue(inheritedValue);
289
296
  const imgLabel = title || getFilename(url) || __('Add background image');
290
297
  return /*#__PURE__*/_jsxs("div", {
291
- ref: replaceContainerRef,
292
298
  className: "block-editor-global-styles-background-panel__image-tools-panel-item",
293
299
  children: [isUploading && /*#__PURE__*/_jsx(LoadingSpinner, {}), /*#__PURE__*/_jsx(MediaReplaceFlow, {
294
300
  mediaId: id,
@@ -516,7 +522,9 @@ export default function BackgroundImagePanel({
516
522
  const imageValue = value?.background?.backgroundImage || inheritedValue?.background?.backgroundImage;
517
523
  const shouldShowBackgroundImageControls = hasImageValue && 'none' !== imageValue && (settings?.background?.backgroundSize || settings?.background?.backgroundPosition || settings?.background?.backgroundRepeat);
518
524
  const [isDropDownOpen, setIsDropDownOpen] = useState(false);
525
+ const containerRef = useRef();
519
526
  return /*#__PURE__*/_jsx("div", {
527
+ ref: containerRef,
520
528
  className: clsx('block-editor-global-styles-background-panel__inspector-media-replace-container', {
521
529
  'is-open': isDropDownOpen
522
530
  }),
@@ -539,7 +547,8 @@ export default function BackgroundImagePanel({
539
547
  resetBackground();
540
548
  },
541
549
  onRemoveImage: () => setIsDropDownOpen(false),
542
- defaultValues: defaultValues
550
+ defaultValues: defaultValues,
551
+ containerRef: containerRef
543
552
  }), /*#__PURE__*/_jsx(BackgroundSizeControls, {
544
553
  onChange: onChange,
545
554
  style: value,
@@ -556,7 +565,8 @@ export default function BackgroundImagePanel({
556
565
  setIsDropDownOpen(false);
557
566
  resetBackground();
558
567
  },
559
- onRemoveImage: () => setIsDropDownOpen(false)
568
+ onRemoveImage: () => setIsDropDownOpen(false),
569
+ containerRef: containerRef
560
570
  })
561
571
  });
562
572
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalVStack","VStack","DropZone","FlexItem","FocalPointPicker","MenuItem","VisuallyHidden","__experimentalHStack","HStack","__experimentalTruncate","Truncate","Dropdown","Placeholder","Spinner","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","__","_x","sprintf","store","noticesStore","getFilename","useRef","useState","useEffect","useMemo","useDispatch","useSelect","focus","isBlobURL","getResolvedValue","hasBackgroundImageValue","setImmutably","MediaReplaceFlow","blockEditorStore","globalStylesDataKey","globalStylesLinksDataKey","jsx","_jsx","jsxs","_jsxs","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","renderPreviewContent","justify","children","style","backgroundImage","flexGrow","numberOfLines","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","popoverProps","renderToggle","onClick","renderContent","paddingSize","LoadingSpinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","isUploading","setIsUploading","getSettings","id","title","background","replaceContainerRef","createErrorNotice","onUploadError","message","type","resetBackgroundImage","onSelectMedia","media","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","closeAndFocus","toggleButton","tabbable","find","current","click","onRemove","canRemove","ref","mediaId","mediaURL","accept","onSelect","name","props","onReset","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","spacing","__nextHasNoMarginBottom","checked","size","isBlock","help","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","resolvedInheritedValue","resolvedValues","Object","entries","forEach","key","backgroundValue","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","ToggleControl","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalVStack","VStack","DropZone","FlexItem","FocalPointPicker","MenuItem","VisuallyHidden","__experimentalHStack","HStack","__experimentalTruncate","Truncate","Dropdown","Placeholder","Spinner","__experimentalDropdownContentWrapper","DropdownContentWrapper","Button","__","_x","sprintf","store","noticesStore","getFilename","useRef","useState","useEffect","useMemo","useDispatch","useSelect","focus","isBlobURL","getResolvedValue","hasBackgroundImageValue","setImmutably","MediaReplaceFlow","blockEditorStore","globalStylesDataKey","globalStylesLinksDataKey","jsx","_jsx","jsxs","_jsxs","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","coordsToBackgroundPosition","isNaN","x","y","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","renderPreviewContent","justify","children","style","backgroundImage","flexGrow","numberOfLines","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","popoverProps","renderToggle","onClick","renderContent","paddingSize","LoadingSpinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","containerRef","isUploading","setIsUploading","getSettings","id","title","background","createErrorNotice","onUploadError","message","type","resetBackgroundImage","onSelectMedia","media","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","closeAndFocus","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","window","requestAnimationFrame","toggleButton","tabbable","find","current","onRemove","canRemove","mediaId","mediaURL","accept","onSelect","name","props","onReset","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","spacing","__nextHasNoMarginBottom","checked","size","isBlock","help","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","resolvedInheritedValue","resolvedValues","Object","entries","forEach","key","backgroundValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen","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":[]}
@@ -48,9 +48,9 @@ export function ExperimentalBlockCanvas({
48
48
  if (!shouldIframe) {
49
49
  return /*#__PURE__*/_jsxs(BlockTools, {
50
50
  __unstableContentRef: localRef,
51
- className: "block-editor-block-canvas",
52
51
  style: {
53
- height
52
+ height,
53
+ display: 'flex'
54
54
  },
55
55
  children: [/*#__PURE__*/_jsx(EditorStyles, {
56
56
  styles: styles,
@@ -60,13 +60,16 @@ export function ExperimentalBlockCanvas({
60
60
  ref: contentRef,
61
61
  className: "editor-styles-wrapper",
62
62
  tabIndex: -1,
63
+ style: {
64
+ height: '100%',
65
+ width: '100%'
66
+ },
63
67
  children: children
64
68
  })]
65
69
  });
66
70
  }
67
71
  return /*#__PURE__*/_jsx(BlockTools, {
68
72
  __unstableContentRef: localRef,
69
- className: "block-editor-block-canvas",
70
73
  style: {
71
74
  height,
72
75
  display: 'flex'
@@ -1 +1 @@
1
- {"version":3,"names":["useMergeRefs","useViewportMatch","useRef","useSelect","BlockList","BlockTools","EditorStyles","Iframe","WritingFlow","useMouseMoveTypingReset","useBlockSelectionClearer","useBlockCommands","store","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","EDITOR_STYLE_TRANSFORM_OPTIONS","ignoredSelectors","ExperimentalBlockCanvas","shouldIframe","height","children","styles","contentRef","contentRefProp","iframeProps","isTabletViewport","resetTypingRef","clearerRef","localRef","zoomLevel","select","getZoomLevel","zoomOutIframeProps","scale","frameSize","__unstableContentRef","className","style","scope","transformOptions","ref","tabIndex","display","name","BlockCanvas"],"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":["useMergeRefs","useViewportMatch","useRef","useSelect","BlockList","BlockTools","EditorStyles","Iframe","WritingFlow","useMouseMoveTypingReset","useBlockSelectionClearer","useBlockCommands","store","blockEditorStore","unlock","jsx","_jsx","jsxs","_jsxs","EDITOR_STYLE_TRANSFORM_OPTIONS","ignoredSelectors","ExperimentalBlockCanvas","shouldIframe","height","children","styles","contentRef","contentRefProp","iframeProps","isTabletViewport","resetTypingRef","clearerRef","localRef","zoomLevel","select","getZoomLevel","zoomOutIframeProps","scale","frameSize","__unstableContentRef","style","display","scope","transformOptions","ref","className","tabIndex","width","name","BlockCanvas"],"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":[]}
@@ -19,7 +19,7 @@ export default function BlockModeToggle({
19
19
  const {
20
20
  blockType,
21
21
  mode,
22
- isCodeEditingEnabled
22
+ enabled
23
23
  } = useSelect(select => {
24
24
  const {
25
25
  getBlock,
@@ -30,13 +30,13 @@ export default function BlockModeToggle({
30
30
  return {
31
31
  mode: getBlockMode(clientId),
32
32
  blockType: block ? getBlockType(block.name) : null,
33
- isCodeEditingEnabled: getSettings().codeEditingEnabled
33
+ enabled: getSettings().codeEditingEnabled && !!block?.isValid
34
34
  };
35
35
  }, [clientId]);
36
36
  const {
37
37
  toggleBlockMode
38
38
  } = useDispatch(blockEditorStore);
39
- if (!blockType || !hasBlockSupport(blockType, 'html', true) || !isCodeEditingEnabled) {
39
+ if (!blockType || !hasBlockSupport(blockType, 'html', true) || !enabled) {
40
40
  return null;
41
41
  }
42
42
  const label = mode === 'visual' ? __('Edit as HTML') : __('Edit visually');
@@ -1 +1 @@
1
- {"version":3,"names":["__","MenuItem","getBlockType","hasBlockSupport","useDispatch","useSelect","store","blockEditorStore","jsx","_jsx","noop","BlockModeToggle","clientId","onToggle","blockType","mode","isCodeEditingEnabled","select","getBlock","getBlockMode","getSettings","block","name","codeEditingEnabled","toggleBlockMode","label","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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,eAAe,SAASC,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAGH;AAAK,CAAC,EAAG;EACxE,MAAM;IAAEI,SAAS;IAAEC,IAAI;IAAEC;EAAqB,CAAC,GAAGX,SAAS,CACxDY,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5CH,MAAM,CAAEV,gBAAiB,CAAC;IAC3B,MAAMc,KAAK,GAAGH,QAAQ,CAAEN,QAAS,CAAC;IAElC,OAAO;MACNG,IAAI,EAAEI,YAAY,CAAEP,QAAS,CAAC;MAC9BE,SAAS,EAAEO,KAAK,GAAGnB,YAAY,CAAEmB,KAAK,CAACC,IAAK,CAAC,GAAG,IAAI;MACpDN,oBAAoB,EAAEI,WAAW,CAAC,CAAC,CAACG;IACrC,CAAC;EACF,CAAC,EACD,CAAEX,QAAQ,CACX,CAAC;EACD,MAAM;IAAEY;EAAgB,CAAC,GAAGpB,WAAW,CAAEG,gBAAiB,CAAC;EAE3D,IACC,CAAEO,SAAS,IACX,CAAEX,eAAe,CAAEW,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEE,oBAAoB,EACrB;IACD,OAAO,IAAI;EACZ;EAEA,MAAMS,KAAK,GACVV,IAAI,KAAK,QAAQ,GAAGf,EAAE,CAAE,cAAe,CAAC,GAAGA,EAAE,CAAE,eAAgB,CAAC;EAEjE,oBACCS,IAAA,CAACR,QAAQ;IACRyB,OAAO,EAAGA,CAAA,KAAM;MACfF,eAAe,CAAEZ,QAAS,CAAC;MAC3BC,QAAQ,CAAC,CAAC;IACX,CAAG;IAAAc,QAAA,EAEDF;EAAK,CACE,CAAC;AAEb","ignoreList":[]}
1
+ {"version":3,"names":["__","MenuItem","getBlockType","hasBlockSupport","useDispatch","useSelect","store","blockEditorStore","jsx","_jsx","noop","BlockModeToggle","clientId","onToggle","blockType","mode","enabled","select","getBlock","getBlockMode","getSettings","block","name","codeEditingEnabled","isValid","toggleBlockMode","label","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":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,eAAe,SAASC,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAGH;AAAK,CAAC,EAAG;EACxE,MAAM;IAAEI,SAAS;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGX,SAAS,CAC3CY,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5CH,MAAM,CAAEV,gBAAiB,CAAC;IAC3B,MAAMc,KAAK,GAAGH,QAAQ,CAAEN,QAAS,CAAC;IAElC,OAAO;MACNG,IAAI,EAAEI,YAAY,CAAEP,QAAS,CAAC;MAC9BE,SAAS,EAAEO,KAAK,GAAGnB,YAAY,CAAEmB,KAAK,CAACC,IAAK,CAAC,GAAG,IAAI;MACpDN,OAAO,EAAEI,WAAW,CAAC,CAAC,CAACG,kBAAkB,IAAI,CAAC,CAAEF,KAAK,EAAEG;IACxD,CAAC;EACF,CAAC,EACD,CAAEZ,QAAQ,CACX,CAAC;EACD,MAAM;IAAEa;EAAgB,CAAC,GAAGrB,WAAW,CAAEG,gBAAiB,CAAC;EAE3D,IACC,CAAEO,SAAS,IACX,CAAEX,eAAe,CAAEW,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEE,OAAO,EACR;IACD,OAAO,IAAI;EACZ;EAEA,MAAMU,KAAK,GACVX,IAAI,KAAK,QAAQ,GAAGf,EAAE,CAAE,cAAe,CAAC,GAAGA,EAAE,CAAE,eAAgB,CAAC;EAEjE,oBACCS,IAAA,CAACR,QAAQ;IACR0B,OAAO,EAAGA,CAAA,KAAM;MACfF,eAAe,CAAEb,QAAS,CAAC;MAC3BC,QAAQ,CAAC,CAAC;IACX,CAAG;IAAAe,QAAA,EAEDF;EAAK,CACE,CAAC;AAEb","ignoreList":[]}
@@ -14,10 +14,7 @@ import { store as blockEditorStore } from '../../store';
14
14
  * @return {boolean} Whether the block toolbar component will be rendered.
15
15
  */
16
16
  export function useHasBlockToolbar() {
17
- const {
18
- isToolbarEnabled,
19
- isBlockDisabled
20
- } = useSelect(select => {
17
+ const enabled = useSelect(select => {
21
18
  const {
22
19
  getBlockEditingMode,
23
20
  getBlockName,
@@ -29,14 +26,8 @@ export function useHasBlockToolbar() {
29
26
  // instead of getSelectedBlockClientIds
30
27
  const selectedBlockClientId = getBlockSelectionStart();
31
28
  const blockType = selectedBlockClientId && getBlockType(getBlockName(selectedBlockClientId));
32
- return {
33
- isToolbarEnabled: blockType && hasBlockSupport(blockType, '__experimentalToolbar', true),
34
- isBlockDisabled: getBlockEditingMode(selectedBlockClientId) === 'disabled'
35
- };
29
+ return blockType && hasBlockSupport(blockType, '__experimentalToolbar', true) && getBlockEditingMode(selectedBlockClientId) !== 'disabled';
36
30
  }, []);
37
- if (!isToolbarEnabled || isBlockDisabled) {
38
- return false;
39
- }
40
- return true;
31
+ return enabled;
41
32
  }
42
33
  //# sourceMappingURL=use-has-block-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","getBlockType","hasBlockSupport","store","blockEditorStore","useHasBlockToolbar","isToolbarEnabled","isBlockDisabled","select","getBlockEditingMode","getBlockName","getBlockSelectionStart","selectedBlockClientId","blockType"],"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":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACpC,MAAM;IAAEC,gBAAgB;IAAEC;EAAgB,CAAC,GAAGP,SAAS,CAAIQ,MAAM,IAAM;IACtE,MAAM;MAAEC,mBAAmB;MAAEC,YAAY;MAAEC;IAAuB,CAAC,GAClEH,MAAM,CAAEJ,gBAAiB,CAAC;;IAE3B;IACA;IACA;IACA,MAAMQ,qBAAqB,GAAGD,sBAAsB,CAAC,CAAC;IAEtD,MAAME,SAAS,GACdD,qBAAqB,IACrBX,YAAY,CAAES,YAAY,CAAEE,qBAAsB,CAAE,CAAC;IAEtD,OAAO;MACNN,gBAAgB,EACfO,SAAS,IACTX,eAAe,CAAEW,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC;MAC5DN,eAAe,EACdE,mBAAmB,CAAEG,qBAAsB,CAAC,KAAK;IACnD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEN,gBAAgB,IAAIC,eAAe,EAAG;IAC5C,OAAO,KAAK;EACb;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","getBlockType","hasBlockSupport","store","blockEditorStore","useHasBlockToolbar","enabled","select","getBlockEditingMode","getBlockName","getBlockSelectionStart","selectedBlockClientId","blockType"],"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":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACpC,MAAMC,OAAO,GAAGN,SAAS,CAAIO,MAAM,IAAM;IACxC,MAAM;MAAEC,mBAAmB;MAAEC,YAAY;MAAEC;IAAuB,CAAC,GAClEH,MAAM,CAAEH,gBAAiB,CAAC;;IAE3B;IACA;IACA;IACA,MAAMO,qBAAqB,GAAGD,sBAAsB,CAAC,CAAC;IAEtD,MAAME,SAAS,GACdD,qBAAqB,IACrBV,YAAY,CAAEQ,YAAY,CAAEE,qBAAsB,CAAE,CAAC;IAEtD,OACCC,SAAS,IACTV,eAAe,CAAEU,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC,IAC3DJ,mBAAmB,CAAEG,qBAAsB,CAAC,KAAK,UAAU;EAE7D,CAAC,EAAE,EAAG,CAAC;EAEP,OAAOL,OAAO;AACf","ignoreList":[]}
@@ -149,6 +149,7 @@ function FlexControls({
149
149
  });
150
150
  },
151
151
  value: flexSize,
152
+ min: 0,
152
153
  label: flexResetLabel,
153
154
  hideLabelFromVision: true
154
155
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","Flex","FlexItem","__","_x","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","useSettings","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","availableUnits","units","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","hideLabelFromVision","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","newColumnSpan","parseInt","min","newRowSpan","window","__experimentalEnableGridInteractivity","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":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__experimentalInputControl","InputControl","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalUseCustomUnits","useCustomUnits","Flex","FlexItem","__","_x","useEffect","useSelect","useDispatch","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","useSettings","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","isShownByDefault","panelId","type","parentType","default","defaultParentType","parentLayoutType","FlexControls","GridControls","flexSize","hasFlexValue","flexResetLabel","availableUnits","units","resetFlex","undefined","as","spacing","hasValue","label","onDeselect","children","__nextHasNoMarginBottom","size","childLayoutOrientation","help","newFlexSize","isBlock","min","hideLabelFromVision","columnStart","rowStart","columnSpan","rowSpan","columnCount","rowCount","rootClientId","select","getBlockRootClientId","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","hasStartValue","hasSpanValue","resetGridStarts","resetGridSpans","newColumnSpan","parseInt","newRowSpan","window","__experimentalEnableGridInteractivity","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":[]}