@wordpress/block-editor 14.11.0 → 14.12.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 (57) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/grid/grid-visualizer.js +11 -19
  3. package/build/components/grid/grid-visualizer.js.map +1 -1
  4. package/build/components/grid/utils.js +6 -4
  5. package/build/components/grid/utils.js.map +1 -1
  6. package/build/components/inserter/menu.js +13 -2
  7. package/build/components/inserter/menu.js.map +1 -1
  8. package/build/components/inspector-controls-tabs/position-controls-panel.js +49 -21
  9. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  10. package/build/components/spacing-sizes-control/index.js +44 -2
  11. package/build/components/spacing-sizes-control/index.js.map +1 -1
  12. package/build/components/spacing-sizes-control/linked-button.js +6 -9
  13. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  14. package/build/components/spacing-sizes-control/utils.js +0 -108
  15. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  16. package/build/hooks/contrast-checker.js +41 -22
  17. package/build/hooks/contrast-checker.js.map +1 -1
  18. package/build/hooks/custom-class-name.js +2 -1
  19. package/build/hooks/custom-class-name.js.map +1 -1
  20. package/build/store/selectors.js +13 -2
  21. package/build/store/selectors.js.map +1 -1
  22. package/build-module/components/grid/grid-visualizer.js +11 -19
  23. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  24. package/build-module/components/grid/utils.js +6 -4
  25. package/build-module/components/grid/utils.js.map +1 -1
  26. package/build-module/components/inserter/menu.js +13 -2
  27. package/build-module/components/inserter/menu.js.map +1 -1
  28. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +51 -23
  29. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  30. package/build-module/components/spacing-sizes-control/index.js +45 -1
  31. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  32. package/build-module/components/spacing-sizes-control/linked-button.js +7 -10
  33. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  34. package/build-module/components/spacing-sizes-control/utils.js +0 -104
  35. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  36. package/build-module/hooks/contrast-checker.js +42 -23
  37. package/build-module/hooks/contrast-checker.js.map +1 -1
  38. package/build-module/hooks/custom-class-name.js +2 -1
  39. package/build-module/hooks/custom-class-name.js.map +1 -1
  40. package/build-module/store/selectors.js +13 -2
  41. package/build-module/store/selectors.js.map +1 -1
  42. package/build-style/style-rtl.css +1 -0
  43. package/build-style/style.css +1 -0
  44. package/package.json +34 -34
  45. package/src/components/grid/grid-visualizer.js +10 -21
  46. package/src/components/grid/style.scss +1 -0
  47. package/src/components/grid/utils.js +6 -4
  48. package/src/components/inserter/menu.js +11 -9
  49. package/src/components/inspector-controls-tabs/position-controls-panel.js +62 -27
  50. package/src/components/spacing-sizes-control/README.md +93 -0
  51. package/src/components/spacing-sizes-control/index.js +44 -1
  52. package/src/components/spacing-sizes-control/linked-button.js +8 -10
  53. package/src/components/spacing-sizes-control/test/utils.js +0 -151
  54. package/src/components/spacing-sizes-control/utils.js +0 -106
  55. package/src/hooks/contrast-checker.js +64 -30
  56. package/src/hooks/custom-class-name.js +2 -1
  57. package/src/store/selectors.js +15 -7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 14.12.0 (2025-01-29)
6
+
5
7
  ## 14.11.0 (2025-01-15)
6
8
 
7
9
  ## 14.10.0 (2025-01-02)
@@ -56,27 +56,19 @@ const GridVisualizerGrid = (0, _element.forwardRef)(({
56
56
  const [gridInfo, setGridInfo] = (0, _element.useState)(() => (0, _utils.getGridInfo)(gridElement));
57
57
  const [isDroppingAllowed, setIsDroppingAllowed] = (0, _element.useState)(false);
58
58
  (0, _element.useEffect)(() => {
59
- const observers = [];
60
- for (const element of [gridElement, ...gridElement.children]) {
61
- const observer = new window.ResizeObserver(() => {
62
- setGridInfo((0, _utils.getGridInfo)(gridElement));
63
- });
64
- observer.observe(element);
65
- observers.push(observer);
66
- }
67
- const mutationObserver = new window.MutationObserver(() => {
68
- setGridInfo((0, _utils.getGridInfo)(gridElement));
59
+ const resizeCallback = () => setGridInfo((0, _utils.getGridInfo)(gridElement));
60
+ // Both border-box and content-box are observed as they may change
61
+ // independently. This requires two observers because a single one
62
+ // can’t be made to monitor both on the same element.
63
+ const borderBoxSpy = new window.ResizeObserver(resizeCallback);
64
+ borderBoxSpy.observe(gridElement, {
65
+ box: 'border-box'
69
66
  });
70
- mutationObserver.observe(gridElement, {
71
- attributeFilter: ['style', 'class'],
72
- childList: true,
73
- subtree: true
74
- });
75
- observers.push(mutationObserver);
67
+ const contentBoxSpy = new window.ResizeObserver(resizeCallback);
68
+ contentBoxSpy.observe(gridElement);
76
69
  return () => {
77
- for (const observer of observers) {
78
- observer.disconnect();
79
- }
70
+ borderBoxSpy.disconnect();
71
+ contentBoxSpy.disconnect();
80
72
  };
81
73
  }, [gridElement]);
82
74
  (0, _element.useEffect)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_useBlockRefs","_cover","_utils","_store","_useGetNumberOfBlocksBeforeCell","_buttonBlockAppender","_lockUnlock","_jsxRuntime","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","useSelect","select","blockEditorStore","getSettings","gridElement","useBlockElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","jsx","GridVisualizerGrid","gridClientId","ref","forwardRef","gridInfo","setGridInfo","useState","getGridInfo","isDroppingAllowed","setIsDroppingAllowed","useEffect","observers","element","children","observer","ResizeObserver","observe","push","mutationObserver","MutationObserver","attributeFilter","childList","subtree","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","default","className","clsx","__unstablePopoverSlot","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItemStyles","getBlockOrder","getBlockStyles","unlock","blockOrder","occupiedRects","useMemo","rects","Object","values","_style$layout","columnStart","rowStart","columnSpan","rowSpan","layout","GridRect","range","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","canInsertBlockType","getBlockName","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","blockName","attributes","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","block","getDraggedBlockClientIds","useDropZone"],"sources":["@wordpress/block-editor/src/components/grid/grid-visualizer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, forwardRef, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockPopoverCover from '../block-popover/cover';\nimport { range, GridRect, getGridInfo } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { unlock } from '../../lock-unlock';\n\nexport function GridVisualizer( { clientId, contentRef, parentLayout } ) {\n\tconst isDistractionFree = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree,\n\t\t[]\n\t);\n\tconst gridElement = useBlockElement( clientId );\n\n\tif ( isDistractionFree || ! gridElement ) {\n\t\treturn null;\n\t}\n\n\tconst isManualGrid =\n\t\tparentLayout?.isManualPlacement &&\n\t\twindow.__experimentalEnableGridInteractivity;\n\treturn (\n\t\t<GridVisualizerGrid\n\t\t\tgridClientId={ clientId }\n\t\t\tgridElement={ gridElement }\n\t\t\tisManualGrid={ isManualGrid }\n\t\t\tref={ contentRef }\n\t\t/>\n\t);\n}\n\nconst GridVisualizerGrid = forwardRef(\n\t( { gridClientId, gridElement, isManualGrid }, ref ) => {\n\t\tconst [ gridInfo, setGridInfo ] = useState( () =>\n\t\t\tgetGridInfo( gridElement )\n\t\t);\n\t\tconst [ isDroppingAllowed, setIsDroppingAllowed ] = useState( false );\n\n\t\tuseEffect( () => {\n\t\t\tconst observers = [];\n\t\t\tfor ( const element of [ gridElement, ...gridElement.children ] ) {\n\t\t\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\t\t\tsetGridInfo( getGridInfo( gridElement ) );\n\t\t\t\t} );\n\t\t\t\tobserver.observe( element );\n\t\t\t\tobservers.push( observer );\n\t\t\t}\n\n\t\t\tconst mutationObserver = new window.MutationObserver( () => {\n\t\t\t\tsetGridInfo( getGridInfo( gridElement ) );\n\t\t\t} );\n\t\t\tmutationObserver.observe( gridElement, {\n\t\t\t\tattributeFilter: [ 'style', 'class' ],\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t} );\n\t\t\tobservers.push( mutationObserver );\n\n\t\t\treturn () => {\n\t\t\t\tfor ( const observer of observers ) {\n\t\t\t\t\tobserver.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t}, [ gridElement ] );\n\n\t\tuseEffect( () => {\n\t\t\tfunction onGlobalDrag() {\n\t\t\t\tsetIsDroppingAllowed( true );\n\t\t\t}\n\t\t\tfunction onGlobalDragEnd() {\n\t\t\t\tsetIsDroppingAllowed( false );\n\t\t\t}\n\t\t\tdocument.addEventListener( 'drag', onGlobalDrag );\n\t\t\tdocument.addEventListener( 'dragend', onGlobalDragEnd );\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener( 'drag', onGlobalDrag );\n\t\t\t\tdocument.removeEventListener( 'dragend', onGlobalDragEnd );\n\t\t\t};\n\t\t}, [] );\n\n\t\treturn (\n\t\t\t<BlockPopoverCover\n\t\t\t\tclassName={ clsx( 'block-editor-grid-visualizer', {\n\t\t\t\t\t'is-dropping-allowed': isDroppingAllowed,\n\t\t\t\t} ) }\n\t\t\t\tclientId={ gridClientId }\n\t\t\t\t__unstablePopoverSlot=\"__unstable-block-tools-after\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName=\"block-editor-grid-visualizer__grid\"\n\t\t\t\t\tstyle={ gridInfo.style }\n\t\t\t\t>\n\t\t\t\t\t{ isManualGrid ? (\n\t\t\t\t\t\t<ManualGridVisualizer\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tArray.from( { length: gridInfo.numItems }, ( _, i ) => (\n\t\t\t\t\t\t\t<GridVisualizerCell\n\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</BlockPopoverCover>\n\t\t);\n\t}\n);\n\nfunction ManualGridVisualizer( { gridClientId, gridInfo } ) {\n\tconst [ highlightedRect, setHighlightedRect ] = useState( null );\n\n\tconst gridItemStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockStyles } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( gridClientId );\n\t\t\treturn getBlockStyles( blockOrder );\n\t\t},\n\t\t[ gridClientId ]\n\t);\n\tconst occupiedRects = useMemo( () => {\n\t\tconst rects = [];\n\t\tfor ( const style of Object.values( gridItemStyles ) ) {\n\t\t\tconst {\n\t\t\t\tcolumnStart,\n\t\t\t\trowStart,\n\t\t\t\tcolumnSpan = 1,\n\t\t\t\trowSpan = 1,\n\t\t\t} = style?.layout ?? {};\n\t\t\tif ( ! columnStart || ! rowStart ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trects.push(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan,\n\t\t\t\t\trowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t\treturn rects;\n\t}, [ gridItemStyles ] );\n\n\treturn range( 1, gridInfo.numRows ).map( ( row ) =>\n\t\trange( 1, gridInfo.numColumns ).map( ( column ) => {\n\t\t\tconst isCellOccupied = occupiedRects.some( ( rect ) =>\n\t\t\t\trect.contains( column, row )\n\t\t\t);\n\t\t\tconst isHighlighted =\n\t\t\t\thighlightedRect?.contains( column, row ) ?? false;\n\t\t\treturn (\n\t\t\t\t<GridVisualizerCell\n\t\t\t\t\tkey={ `${ row }-${ column }` }\n\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\tclassName={ isHighlighted && 'is-highlighted' }\n\t\t\t\t>\n\t\t\t\t\t{ isCellOccupied ? (\n\t\t\t\t\t\t<GridVisualizerDropZone\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<GridVisualizerAppender\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</GridVisualizerCell>\n\t\t\t);\n\t\t} )\n\t);\n}\n\nfunction GridVisualizerCell( { color, children, className } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-grid-visualizer__cell',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tboxShadow: `inset 0 0 0 1px color-mix(in srgb, ${ color } 20%, #0000)`,\n\t\t\t\tcolor,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction useGridVisualizerDropZone(\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect\n) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tcanInsertBlockType,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn useDropZoneWithValidation( {\n\t\tvalidateDrag( srcClientId ) {\n\t\t\tconst blockName = getBlockName( srcClientId );\n\t\t\tif ( ! canInsertBlockType( blockName, gridClientId ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tconst rect = new GridRect( {\n\t\t\t\tcolumnStart: column,\n\t\t\t\trowStart: row,\n\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t} );\n\t\t\tconst isInBounds = new GridRect( {\n\t\t\t\tcolumnSpan: gridInfo.numColumns,\n\t\t\t\trowSpan: gridInfo.numRows,\n\t\t\t} ).containsRect( rect );\n\t\t\treturn isInBounds;\n\t\t},\n\t\tonDragEnter( srcClientId ) {\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tsetHighlightedRect(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\trowStart: row,\n\t\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tonDragLeave() {\n\t\t\t// onDragEnter can be called before onDragLeave if the user moves\n\t\t\t// their mouse quickly, so only clear the highlight if it was set\n\t\t\t// by this cell.\n\t\t\tsetHighlightedRect( ( prevHighlightedRect ) =>\n\t\t\t\tprevHighlightedRect?.columnStart === column &&\n\t\t\t\tprevHighlightedRect?.rowStart === row\n\t\t\t\t\t? null\n\t\t\t\t\t: prevHighlightedRect\n\t\t\t);\n\t\t},\n\t\tonDrop( srcClientId ) {\n\t\t\tsetHighlightedRect( null );\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tupdateBlockAttributes( srcClientId, {\n\t\t\t\tstyle: {\n\t\t\t\t\t...attributes.style,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...attributes.style?.layout,\n\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tmoveBlocksToPosition(\n\t\t\t\t[ srcClientId ],\n\t\t\t\tgetBlockRootClientId( srcClientId ),\n\t\t\t\tgridClientId,\n\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t);\n\t\t},\n\t} );\n}\n\nfunction GridVisualizerDropZone( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-grid-visualizer__drop-zone\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction GridVisualizerAppender( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ gridClientId }\n\t\t\tclassName=\"block-editor-grid-visualizer__appender\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tcolor: gridInfo.currentColor,\n\t\t\t} }\n\t\t\tonSelect={ ( block ) => {\n\t\t\t\tif ( ! block ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t[ block.clientId ],\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction useDropZoneWithValidation( {\n\tvalidateDrag,\n\tonDragEnter,\n\tonDragLeave,\n\tonDrop,\n} ) {\n\tconst { getDraggedBlockClientIds } = useSelect( blockEditorStore );\n\treturn useDropZone( {\n\t\tonDragEnter() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDragEnter( srcClientId );\n\t\t\t}\n\t\t},\n\t\tonDragLeave() {\n\t\t\tonDragLeave();\n\t\t},\n\t\tonDrop() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDrop( srcClientId );\n\t\t\t}\n\t\t},\n\t} );\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAKA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,+BAAA,GAAAR,OAAA;AACA,IAAAS,oBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AAA2C,IAAAW,WAAA,GAAAX,OAAA;AArB3C;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AASO,SAASY,cAAcA,CAAE;EAAEC,QAAQ;EAAEC,UAAU;EAAEC;AAAa,CAAC,EAAG;EACxE,MAAMC,iBAAiB,GAAG,IAAAC,eAAS,EAChCC,MAAM,IACPA,MAAM,CAAEC,YAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,CAACJ,iBAAiB,EAC3D,EACD,CAAC;EACD,MAAMK,WAAW,GAAG,IAAAC,6BAAe,EAAET,QAAS,CAAC;EAE/C,IAAKG,iBAAiB,IAAI,CAAEK,WAAW,EAAG;IACzC,OAAO,IAAI;EACZ;EAEA,MAAME,YAAY,GACjBR,YAAY,EAAES,iBAAiB,IAC/BC,MAAM,CAACC,qCAAqC;EAC7C,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACC,kBAAkB;IAClBC,YAAY,EAAGhB,QAAU;IACzBQ,WAAW,EAAGA,WAAa;IAC3BE,YAAY,EAAGA,YAAc;IAC7BO,GAAG,EAAGhB;EAAY,CAClB,CAAC;AAEJ;AAEA,MAAMc,kBAAkB,GAAG,IAAAG,mBAAU,EACpC,CAAE;EAAEF,YAAY;EAAER,WAAW;EAAEE;AAAa,CAAC,EAAEO,GAAG,KAAM;EACvD,MAAM,CAAEE,QAAQ,EAAEC,WAAW,CAAE,GAAG,IAAAC,iBAAQ,EAAE,MAC3C,IAAAC,kBAAW,EAAEd,WAAY,CAC1B,CAAC;EACD,MAAM,CAAEe,iBAAiB,EAAEC,oBAAoB,CAAE,GAAG,IAAAH,iBAAQ,EAAE,KAAM,CAAC;EAErE,IAAAI,kBAAS,EAAE,MAAM;IAChB,MAAMC,SAAS,GAAG,EAAE;IACpB,KAAM,MAAMC,OAAO,IAAI,CAAEnB,WAAW,EAAE,GAAGA,WAAW,CAACoB,QAAQ,CAAE,EAAG;MACjE,MAAMC,QAAQ,GAAG,IAAIjB,MAAM,CAACkB,cAAc,CAAE,MAAM;QACjDV,WAAW,CAAE,IAAAE,kBAAW,EAAEd,WAAY,CAAE,CAAC;MAC1C,CAAE,CAAC;MACHqB,QAAQ,CAACE,OAAO,CAAEJ,OAAQ,CAAC;MAC3BD,SAAS,CAACM,IAAI,CAAEH,QAAS,CAAC;IAC3B;IAEA,MAAMI,gBAAgB,GAAG,IAAIrB,MAAM,CAACsB,gBAAgB,CAAE,MAAM;MAC3Dd,WAAW,CAAE,IAAAE,kBAAW,EAAEd,WAAY,CAAE,CAAC;IAC1C,CAAE,CAAC;IACHyB,gBAAgB,CAACF,OAAO,CAAEvB,WAAW,EAAE;MACtC2B,eAAe,EAAE,CAAE,OAAO,EAAE,OAAO,CAAE;MACrCC,SAAS,EAAE,IAAI;MACfC,OAAO,EAAE;IACV,CAAE,CAAC;IACHX,SAAS,CAACM,IAAI,CAAEC,gBAAiB,CAAC;IAElC,OAAO,MAAM;MACZ,KAAM,MAAMJ,QAAQ,IAAIH,SAAS,EAAG;QACnCG,QAAQ,CAACS,UAAU,CAAC,CAAC;MACtB;IACD,CAAC;EACF,CAAC,EAAE,CAAE9B,WAAW,CAAG,CAAC;EAEpB,IAAAiB,kBAAS,EAAE,MAAM;IAChB,SAASc,YAAYA,CAAA,EAAG;MACvBf,oBAAoB,CAAE,IAAK,CAAC;IAC7B;IACA,SAASgB,eAAeA,CAAA,EAAG;MAC1BhB,oBAAoB,CAAE,KAAM,CAAC;IAC9B;IACAiB,QAAQ,CAACC,gBAAgB,CAAE,MAAM,EAAEH,YAAa,CAAC;IACjDE,QAAQ,CAACC,gBAAgB,CAAE,SAAS,EAAEF,eAAgB,CAAC;IACvD,OAAO,MAAM;MACZC,QAAQ,CAACE,mBAAmB,CAAE,MAAM,EAAEJ,YAAa,CAAC;MACpDE,QAAQ,CAACE,mBAAmB,CAAE,SAAS,EAAEH,eAAgB,CAAC;IAC3D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,oBACC,IAAA1C,WAAA,CAAAgB,GAAA,EAACtB,MAAA,CAAAoD,OAAiB;IACjBC,SAAS,EAAG,IAAAC,aAAI,EAAE,8BAA8B,EAAE;MACjD,qBAAqB,EAAEvB;IACxB,CAAE,CAAG;IACLvB,QAAQ,EAAGgB,YAAc;IACzB+B,qBAAqB,EAAC,8BAA8B;IAAAnB,QAAA,eAEpD,IAAA9B,WAAA,CAAAgB,GAAA;MACCG,GAAG,EAAGA,GAAK;MACX4B,SAAS,EAAC,oCAAoC;MAC9CG,KAAK,EAAG7B,QAAQ,CAAC6B,KAAO;MAAApB,QAAA,EAEtBlB,YAAY,gBACb,IAAAZ,WAAA,CAAAgB,GAAA,EAACmC,oBAAoB;QACpBjC,YAAY,EAAGA,YAAc;QAC7BG,QAAQ,EAAGA;MAAU,CACrB,CAAC,GAEF+B,KAAK,CAACC,IAAI,CAAE;QAAEC,MAAM,EAAEjC,QAAQ,CAACkC;MAAS,CAAC,EAAE,CAAEC,CAAC,EAAEC,CAAC,kBAChD,IAAAzD,WAAA,CAAAgB,GAAA,EAAC0C,kBAAkB;QAElBC,KAAK,EAAGtC,QAAQ,CAACuC;MAAc,GADzBH,CAEN,CACA;IACF,CACG;EAAC,CACY,CAAC;AAEtB,CACD,CAAC;AAED,SAASN,oBAAoBA,CAAE;EAAEjC,YAAY;EAAEG;AAAS,CAAC,EAAG;EAC3D,MAAM,CAAEwC,eAAe,EAAEC,kBAAkB,CAAE,GAAG,IAAAvC,iBAAQ,EAAE,IAAK,CAAC;EAEhE,MAAMwC,cAAc,GAAG,IAAAzD,eAAS,EAC7BC,MAAM,IAAM;IACb,MAAM;MAAEyD,aAAa;MAAEC;IAAe,CAAC,GAAG,IAAAC,kBAAM,EAC/C3D,MAAM,CAAEC,YAAiB,CAC1B,CAAC;IACD,MAAM2D,UAAU,GAAGH,aAAa,CAAE9C,YAAa,CAAC;IAChD,OAAO+C,cAAc,CAAEE,UAAW,CAAC;EACpC,CAAC,EACD,CAAEjD,YAAY,CACf,CAAC;EACD,MAAMkD,aAAa,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACpC,MAAMC,KAAK,GAAG,EAAE;IAChB,KAAM,MAAMpB,KAAK,IAAIqB,MAAM,CAACC,MAAM,CAAET,cAAe,CAAC,EAAG;MAAA,IAAAU,aAAA;MACtD,MAAM;QACLC,WAAW;QACXC,QAAQ;QACRC,UAAU,GAAG,CAAC;QACdC,OAAO,GAAG;MACX,CAAC,IAAAJ,aAAA,GAAGvB,KAAK,EAAE4B,MAAM,cAAAL,aAAA,cAAAA,aAAA,GAAI,CAAC,CAAC;MACvB,IAAK,CAAEC,WAAW,IAAI,CAAEC,QAAQ,EAAG;QAClC;MACD;MACAL,KAAK,CAACpC,IAAI,CACT,IAAI6C,eAAQ,CAAE;QACbL,WAAW;QACXC,QAAQ;QACRC,UAAU;QACVC;MACD,CAAE,CACH,CAAC;IACF;IACA,OAAOP,KAAK;EACb,CAAC,EAAE,CAAEP,cAAc,CAAG,CAAC;EAEvB,OAAO,IAAAiB,YAAK,EAAE,CAAC,EAAE3D,QAAQ,CAAC4D,OAAQ,CAAC,CAACC,GAAG,CAAIC,GAAG,IAC7C,IAAAH,YAAK,EAAE,CAAC,EAAE3D,QAAQ,CAAC+D,UAAW,CAAC,CAACF,GAAG,CAAIG,MAAM,IAAM;IAAA,IAAAC,qBAAA;IAClD,MAAMC,cAAc,GAAGnB,aAAa,CAACoB,IAAI,CAAIC,IAAI,IAChDA,IAAI,CAACC,QAAQ,CAAEL,MAAM,EAAEF,GAAI,CAC5B,CAAC;IACD,MAAMQ,aAAa,IAAAL,qBAAA,GAClBzB,eAAe,EAAE6B,QAAQ,CAAEL,MAAM,EAAEF,GAAI,CAAC,cAAAG,qBAAA,cAAAA,qBAAA,GAAI,KAAK;IAClD,oBACC,IAAAtF,WAAA,CAAAgB,GAAA,EAAC0C,kBAAkB;MAElBC,KAAK,EAAGtC,QAAQ,CAACuC,YAAc;MAC/Bb,SAAS,EAAG4C,aAAa,IAAI,gBAAkB;MAAA7D,QAAA,EAE7CyD,cAAc,gBACf,IAAAvF,WAAA,CAAAgB,GAAA,EAAC4E,sBAAsB;QACtBP,MAAM,EAAGA,MAAQ;QACjBF,GAAG,EAAGA,GAAK;QACXjE,YAAY,EAAGA,YAAc;QAC7BG,QAAQ,EAAGA,QAAU;QACrByC,kBAAkB,EAAGA;MAAoB,CACzC,CAAC,gBAEF,IAAA9D,WAAA,CAAAgB,GAAA,EAAC6E,sBAAsB;QACtBR,MAAM,EAAGA,MAAQ;QACjBF,GAAG,EAAGA,GAAK;QACXjE,YAAY,EAAGA,YAAc;QAC7BG,QAAQ,EAAGA,QAAU;QACrByC,kBAAkB,EAAGA;MAAoB,CACzC;IACD,GApBK,GAAIqB,GAAG,IAAME,MAAM,EAqBN,CAAC;EAEvB,CAAE,CACH,CAAC;AACF;AAEA,SAAS3B,kBAAkBA,CAAE;EAAEC,KAAK;EAAE7B,QAAQ;EAAEiB;AAAU,CAAC,EAAG;EAC7D,oBACC,IAAA/C,WAAA,CAAAgB,GAAA;IACC+B,SAAS,EAAG,IAAAC,aAAI,EACf,oCAAoC,EACpCD,SACD,CAAG;IACHG,KAAK,EAAG;MACP4C,SAAS,EAAE,sCAAuCnC,KAAK,cAAe;MACtEA;IACD,CAAG;IAAA7B,QAAA,EAEDA;EAAQ,CACN,CAAC;AAER;AAEA,SAASiE,yBAAyBA,CACjCV,MAAM,EACNF,GAAG,EACHjE,YAAY,EACZG,QAAQ,EACRyC,kBAAkB,EACjB;EACD,MAAM;IACLkC,kBAAkB;IAClBC,oBAAoB;IACpBC,kBAAkB;IAClBC;EACD,CAAC,GAAG,IAAA7F,eAAS,EAAEE,YAAiB,CAAC;EACjC,MAAM;IACL4F,qBAAqB;IACrBC,oBAAoB;IACpBC;EACD,CAAC,GAAG,IAAAC,iBAAW,EAAE/F,YAAiB,CAAC;EAEnC,MAAMgG,2BAA2B,GAAG,IAAAC,8DAA8B,EACjEvF,YAAY,EACZG,QAAQ,CAAC+D,UACV,CAAC;EAED,OAAOsB,yBAAyB,CAAE;IACjCC,YAAYA,CAAEC,WAAW,EAAG;MAC3B,MAAMC,SAAS,GAAGV,YAAY,CAAES,WAAY,CAAC;MAC7C,IAAK,CAAEV,kBAAkB,CAAEW,SAAS,EAAE3F,YAAa,CAAC,EAAG;QACtD,OAAO,KAAK;MACb;MACA,MAAM4F,UAAU,GAAGd,kBAAkB,CAAEY,WAAY,CAAC;MACpD,MAAMnB,IAAI,GAAG,IAAIV,eAAQ,CAAE;QAC1BL,WAAW,EAAEW,MAAM;QACnBV,QAAQ,EAAEQ,GAAG;QACbP,UAAU,EAAEkC,UAAU,CAAC5D,KAAK,EAAE4B,MAAM,EAAEF,UAAU;QAChDC,OAAO,EAAEiC,UAAU,CAAC5D,KAAK,EAAE4B,MAAM,EAAED;MACpC,CAAE,CAAC;MACH,MAAMkC,UAAU,GAAG,IAAIhC,eAAQ,CAAE;QAChCH,UAAU,EAAEvD,QAAQ,CAAC+D,UAAU;QAC/BP,OAAO,EAAExD,QAAQ,CAAC4D;MACnB,CAAE,CAAC,CAAC+B,YAAY,CAAEvB,IAAK,CAAC;MACxB,OAAOsB,UAAU;IAClB,CAAC;IACDE,WAAWA,CAAEL,WAAW,EAAG;MAC1B,MAAME,UAAU,GAAGd,kBAAkB,CAAEY,WAAY,CAAC;MACpD9C,kBAAkB,CACjB,IAAIiB,eAAQ,CAAE;QACbL,WAAW,EAAEW,MAAM;QACnBV,QAAQ,EAAEQ,GAAG;QACbP,UAAU,EAAEkC,UAAU,CAAC5D,KAAK,EAAE4B,MAAM,EAAEF,UAAU;QAChDC,OAAO,EAAEiC,UAAU,CAAC5D,KAAK,EAAE4B,MAAM,EAAED;MACpC,CAAE,CACH,CAAC;IACF,CAAC;IACDqC,WAAWA,CAAA,EAAG;MACb;MACA;MACA;MACApD,kBAAkB,CAAIqD,mBAAmB,IACxCA,mBAAmB,EAAEzC,WAAW,KAAKW,MAAM,IAC3C8B,mBAAmB,EAAExC,QAAQ,KAAKQ,GAAG,GAClC,IAAI,GACJgC,mBACJ,CAAC;IACF,CAAC;IACDC,MAAMA,CAAER,WAAW,EAAG;MACrB9C,kBAAkB,CAAE,IAAK,CAAC;MAC1B,MAAMgD,UAAU,GAAGd,kBAAkB,CAAEY,WAAY,CAAC;MACpDR,qBAAqB,CAAEQ,WAAW,EAAE;QACnC1D,KAAK,EAAE;UACN,GAAG4D,UAAU,CAAC5D,KAAK;UACnB4B,MAAM,EAAE;YACP,GAAGgC,UAAU,CAAC5D,KAAK,EAAE4B,MAAM;YAC3BJ,WAAW,EAAEW,MAAM;YACnBV,QAAQ,EAAEQ;UACX;QACD;MACD,CAAE,CAAC;MACHmB,uCAAuC,CAAC,CAAC;MACzCD,oBAAoB,CACnB,CAAEO,WAAW,CAAE,EACfX,oBAAoB,CAAEW,WAAY,CAAC,EACnC1F,YAAY,EACZsF,2BAA2B,CAAEnB,MAAM,EAAEF,GAAI,CAC1C,CAAC;IACF;EACD,CAAE,CAAC;AACJ;AAEA,SAASS,sBAAsBA,CAAE;EAChCP,MAAM;EACNF,GAAG;EACHjE,YAAY;EACZG,QAAQ;EACRyC;AACD,CAAC,EAAG;EACH,oBACC,IAAA9D,WAAA,CAAAgB,GAAA;IACC+B,SAAS,EAAC,yCAAyC;IACnD5B,GAAG,EAAG4E,yBAAyB,CAC9BV,MAAM,EACNF,GAAG,EACHjE,YAAY,EACZG,QAAQ,EACRyC,kBACD;EAAG,CACH,CAAC;AAEJ;AAEA,SAAS+B,sBAAsBA,CAAE;EAChCR,MAAM;EACNF,GAAG;EACHjE,YAAY;EACZG,QAAQ;EACRyC;AACD,CAAC,EAAG;EACH,MAAM;IACLsC,qBAAqB;IACrBC,oBAAoB;IACpBC;EACD,CAAC,GAAG,IAAAC,iBAAW,EAAE/F,YAAiB,CAAC;EAEnC,MAAMgG,2BAA2B,GAAG,IAAAC,8DAA8B,EACjEvF,YAAY,EACZG,QAAQ,CAAC+D,UACV,CAAC;EAED,oBACC,IAAApF,WAAA,CAAAgB,GAAA,EAAClB,oBAAA,CAAAgD,OAAmB;IACnBuE,YAAY,EAAGnG,YAAc;IAC7B6B,SAAS,EAAC,wCAAwC;IAClD5B,GAAG,EAAG4E,yBAAyB,CAC9BV,MAAM,EACNF,GAAG,EACHjE,YAAY,EACZG,QAAQ,EACRyC,kBACD,CAAG;IACHZ,KAAK,EAAG;MACPS,KAAK,EAAEtC,QAAQ,CAACuC;IACjB,CAAG;IACH0D,QAAQ,EAAKC,KAAK,IAAM;MACvB,IAAK,CAAEA,KAAK,EAAG;QACd;MACD;MACAnB,qBAAqB,CAAEmB,KAAK,CAACrH,QAAQ,EAAE;QACtCgD,KAAK,EAAE;UACN4B,MAAM,EAAE;YACPJ,WAAW,EAAEW,MAAM;YACnBV,QAAQ,EAAEQ;UACX;QACD;MACD,CAAE,CAAC;MACHmB,uCAAuC,CAAC,CAAC;MACzCD,oBAAoB,CACnB,CAAEkB,KAAK,CAACrH,QAAQ,CAAE,EAClBgB,YAAY,EACZA,YAAY,EACZsF,2BAA2B,CAAEnB,MAAM,EAAEF,GAAI,CAC1C,CAAC;IACF;EAAG,CACH,CAAC;AAEJ;AAEA,SAASuB,yBAAyBA,CAAE;EACnCC,YAAY;EACZM,WAAW;EACXC,WAAW;EACXE;AACD,CAAC,EAAG;EACH,MAAM;IAAEI;EAAyB,CAAC,GAAG,IAAAlH,eAAS,EAAEE,YAAiB,CAAC;EAClE,OAAO,IAAAiH,kCAAW,EAAE;IACnBR,WAAWA,CAAA,EAAG;MACb,MAAM,CAAEL,WAAW,CAAE,GAAGY,wBAAwB,CAAC,CAAC;MAClD,IAAKZ,WAAW,IAAID,YAAY,CAAEC,WAAY,CAAC,EAAG;QACjDK,WAAW,CAAEL,WAAY,CAAC;MAC3B;IACD,CAAC;IACDM,WAAWA,CAAA,EAAG;MACbA,WAAW,CAAC,CAAC;IACd,CAAC;IACDE,MAAMA,CAAA,EAAG;MACR,MAAM,CAAER,WAAW,CAAE,GAAGY,wBAAwB,CAAC,CAAC;MAClD,IAAKZ,WAAW,IAAID,YAAY,CAAEC,WAAY,CAAC,EAAG;QACjDQ,MAAM,CAAER,WAAY,CAAC;MACtB;IACD;EACD,CAAE,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_data","_compose","_useBlockRefs","_cover","_utils","_store","_useGetNumberOfBlocksBeforeCell","_buttonBlockAppender","_lockUnlock","_jsxRuntime","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","useSelect","select","blockEditorStore","getSettings","gridElement","useBlockElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","jsx","GridVisualizerGrid","gridClientId","ref","forwardRef","gridInfo","setGridInfo","useState","getGridInfo","isDroppingAllowed","setIsDroppingAllowed","useEffect","resizeCallback","borderBoxSpy","ResizeObserver","observe","box","contentBoxSpy","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","default","className","clsx","__unstablePopoverSlot","children","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItemStyles","getBlockOrder","getBlockStyles","unlock","blockOrder","occupiedRects","useMemo","rects","Object","values","_style$layout","columnStart","rowStart","columnSpan","rowSpan","layout","push","GridRect","range","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","canInsertBlockType","getBlockName","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","useDispatch","getNumberOfBlocksBeforeCell","useGetNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","blockName","attributes","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","block","getDraggedBlockClientIds","useDropZone"],"sources":["@wordpress/block-editor/src/components/grid/grid-visualizer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, forwardRef, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockPopoverCover from '../block-popover/cover';\nimport { range, GridRect, getGridInfo } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { unlock } from '../../lock-unlock';\n\nexport function GridVisualizer( { clientId, contentRef, parentLayout } ) {\n\tconst isDistractionFree = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree,\n\t\t[]\n\t);\n\tconst gridElement = useBlockElement( clientId );\n\n\tif ( isDistractionFree || ! gridElement ) {\n\t\treturn null;\n\t}\n\n\tconst isManualGrid =\n\t\tparentLayout?.isManualPlacement &&\n\t\twindow.__experimentalEnableGridInteractivity;\n\treturn (\n\t\t<GridVisualizerGrid\n\t\t\tgridClientId={ clientId }\n\t\t\tgridElement={ gridElement }\n\t\t\tisManualGrid={ isManualGrid }\n\t\t\tref={ contentRef }\n\t\t/>\n\t);\n}\n\nconst GridVisualizerGrid = forwardRef(\n\t( { gridClientId, gridElement, isManualGrid }, ref ) => {\n\t\tconst [ gridInfo, setGridInfo ] = useState( () =>\n\t\t\tgetGridInfo( gridElement )\n\t\t);\n\t\tconst [ isDroppingAllowed, setIsDroppingAllowed ] = useState( false );\n\n\t\tuseEffect( () => {\n\t\t\tconst resizeCallback = () =>\n\t\t\t\tsetGridInfo( getGridInfo( gridElement ) );\n\t\t\t// Both border-box and content-box are observed as they may change\n\t\t\t// independently. This requires two observers because a single one\n\t\t\t// can’t be made to monitor both on the same element.\n\t\t\tconst borderBoxSpy = new window.ResizeObserver( resizeCallback );\n\t\t\tborderBoxSpy.observe( gridElement, { box: 'border-box' } );\n\t\t\tconst contentBoxSpy = new window.ResizeObserver( resizeCallback );\n\t\t\tcontentBoxSpy.observe( gridElement );\n\t\t\treturn () => {\n\t\t\t\tborderBoxSpy.disconnect();\n\t\t\t\tcontentBoxSpy.disconnect();\n\t\t\t};\n\t\t}, [ gridElement ] );\n\n\t\tuseEffect( () => {\n\t\t\tfunction onGlobalDrag() {\n\t\t\t\tsetIsDroppingAllowed( true );\n\t\t\t}\n\t\t\tfunction onGlobalDragEnd() {\n\t\t\t\tsetIsDroppingAllowed( false );\n\t\t\t}\n\t\t\tdocument.addEventListener( 'drag', onGlobalDrag );\n\t\t\tdocument.addEventListener( 'dragend', onGlobalDragEnd );\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener( 'drag', onGlobalDrag );\n\t\t\t\tdocument.removeEventListener( 'dragend', onGlobalDragEnd );\n\t\t\t};\n\t\t}, [] );\n\n\t\treturn (\n\t\t\t<BlockPopoverCover\n\t\t\t\tclassName={ clsx( 'block-editor-grid-visualizer', {\n\t\t\t\t\t'is-dropping-allowed': isDroppingAllowed,\n\t\t\t\t} ) }\n\t\t\t\tclientId={ gridClientId }\n\t\t\t\t__unstablePopoverSlot=\"__unstable-block-tools-after\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName=\"block-editor-grid-visualizer__grid\"\n\t\t\t\t\tstyle={ gridInfo.style }\n\t\t\t\t>\n\t\t\t\t\t{ isManualGrid ? (\n\t\t\t\t\t\t<ManualGridVisualizer\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tArray.from( { length: gridInfo.numItems }, ( _, i ) => (\n\t\t\t\t\t\t\t<GridVisualizerCell\n\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</BlockPopoverCover>\n\t\t);\n\t}\n);\n\nfunction ManualGridVisualizer( { gridClientId, gridInfo } ) {\n\tconst [ highlightedRect, setHighlightedRect ] = useState( null );\n\n\tconst gridItemStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockOrder, getBlockStyles } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( gridClientId );\n\t\t\treturn getBlockStyles( blockOrder );\n\t\t},\n\t\t[ gridClientId ]\n\t);\n\tconst occupiedRects = useMemo( () => {\n\t\tconst rects = [];\n\t\tfor ( const style of Object.values( gridItemStyles ) ) {\n\t\t\tconst {\n\t\t\t\tcolumnStart,\n\t\t\t\trowStart,\n\t\t\t\tcolumnSpan = 1,\n\t\t\t\trowSpan = 1,\n\t\t\t} = style?.layout ?? {};\n\t\t\tif ( ! columnStart || ! rowStart ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trects.push(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart,\n\t\t\t\t\trowStart,\n\t\t\t\t\tcolumnSpan,\n\t\t\t\t\trowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t}\n\t\treturn rects;\n\t}, [ gridItemStyles ] );\n\n\treturn range( 1, gridInfo.numRows ).map( ( row ) =>\n\t\trange( 1, gridInfo.numColumns ).map( ( column ) => {\n\t\t\tconst isCellOccupied = occupiedRects.some( ( rect ) =>\n\t\t\t\trect.contains( column, row )\n\t\t\t);\n\t\t\tconst isHighlighted =\n\t\t\t\thighlightedRect?.contains( column, row ) ?? false;\n\t\t\treturn (\n\t\t\t\t<GridVisualizerCell\n\t\t\t\t\tkey={ `${ row }-${ column }` }\n\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\tclassName={ isHighlighted && 'is-highlighted' }\n\t\t\t\t>\n\t\t\t\t\t{ isCellOccupied ? (\n\t\t\t\t\t\t<GridVisualizerDropZone\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<GridVisualizerAppender\n\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\tgridClientId={ gridClientId }\n\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\tsetHighlightedRect={ setHighlightedRect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</GridVisualizerCell>\n\t\t\t);\n\t\t} )\n\t);\n}\n\nfunction GridVisualizerCell( { color, children, className } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-grid-visualizer__cell',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tboxShadow: `inset 0 0 0 1px color-mix(in srgb, ${ color } 20%, #0000)`,\n\t\t\t\tcolor,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction useGridVisualizerDropZone(\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect\n) {\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetBlockRootClientId,\n\t\tcanInsertBlockType,\n\t\tgetBlockName,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn useDropZoneWithValidation( {\n\t\tvalidateDrag( srcClientId ) {\n\t\t\tconst blockName = getBlockName( srcClientId );\n\t\t\tif ( ! canInsertBlockType( blockName, gridClientId ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tconst rect = new GridRect( {\n\t\t\t\tcolumnStart: column,\n\t\t\t\trowStart: row,\n\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t} );\n\t\t\tconst isInBounds = new GridRect( {\n\t\t\t\tcolumnSpan: gridInfo.numColumns,\n\t\t\t\trowSpan: gridInfo.numRows,\n\t\t\t} ).containsRect( rect );\n\t\t\treturn isInBounds;\n\t\t},\n\t\tonDragEnter( srcClientId ) {\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tsetHighlightedRect(\n\t\t\t\tnew GridRect( {\n\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\trowStart: row,\n\t\t\t\t\tcolumnSpan: attributes.style?.layout?.columnSpan,\n\t\t\t\t\trowSpan: attributes.style?.layout?.rowSpan,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\tonDragLeave() {\n\t\t\t// onDragEnter can be called before onDragLeave if the user moves\n\t\t\t// their mouse quickly, so only clear the highlight if it was set\n\t\t\t// by this cell.\n\t\t\tsetHighlightedRect( ( prevHighlightedRect ) =>\n\t\t\t\tprevHighlightedRect?.columnStart === column &&\n\t\t\t\tprevHighlightedRect?.rowStart === row\n\t\t\t\t\t? null\n\t\t\t\t\t: prevHighlightedRect\n\t\t\t);\n\t\t},\n\t\tonDrop( srcClientId ) {\n\t\t\tsetHighlightedRect( null );\n\t\t\tconst attributes = getBlockAttributes( srcClientId );\n\t\t\tupdateBlockAttributes( srcClientId, {\n\t\t\t\tstyle: {\n\t\t\t\t\t...attributes.style,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...attributes.style?.layout,\n\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tmoveBlocksToPosition(\n\t\t\t\t[ srcClientId ],\n\t\t\t\tgetBlockRootClientId( srcClientId ),\n\t\t\t\tgridClientId,\n\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t);\n\t\t},\n\t} );\n}\n\nfunction GridVisualizerDropZone( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-grid-visualizer__drop-zone\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction GridVisualizerAppender( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\tsetHighlightedRect,\n} ) {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tmoveBlocksToPosition,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t} = useDispatch( blockEditorStore );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tgridInfo.numColumns\n\t);\n\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ gridClientId }\n\t\t\tclassName=\"block-editor-grid-visualizer__appender\"\n\t\t\tref={ useGridVisualizerDropZone(\n\t\t\t\tcolumn,\n\t\t\t\trow,\n\t\t\t\tgridClientId,\n\t\t\t\tgridInfo,\n\t\t\t\tsetHighlightedRect\n\t\t\t) }\n\t\t\tstyle={ {\n\t\t\t\tcolor: gridInfo.currentColor,\n\t\t\t} }\n\t\t\tonSelect={ ( block ) => {\n\t\t\t\tif ( ! block ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tupdateBlockAttributes( block.clientId, {\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\tcolumnStart: column,\n\t\t\t\t\t\t\trowStart: row,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t[ block.clientId ],\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgridClientId,\n\t\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction useDropZoneWithValidation( {\n\tvalidateDrag,\n\tonDragEnter,\n\tonDragLeave,\n\tonDrop,\n} ) {\n\tconst { getDraggedBlockClientIds } = useSelect( blockEditorStore );\n\treturn useDropZone( {\n\t\tonDragEnter() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDragEnter( srcClientId );\n\t\t\t}\n\t\t},\n\t\tonDragLeave() {\n\t\t\tonDragLeave();\n\t\t},\n\t\tonDrop() {\n\t\t\tconst [ srcClientId ] = getDraggedBlockClientIds();\n\t\t\tif ( srcClientId && validateDrag( srcClientId ) ) {\n\t\t\t\tonDrop( srcClientId );\n\t\t\t}\n\t\t},\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -147,10 +147,12 @@ function getGridInfo(gridElement) {
147
147
  gridTemplateColumns,
148
148
  gridTemplateRows,
149
149
  gap: getComputedCSS(gridElement, 'gap'),
150
- paddingTop: `calc(${paddingTop} + ${borderTopWidth})`,
151
- paddingRight: `calc(${paddingRight} + ${borderRightWidth})`,
152
- paddingBottom: `calc(${paddingBottom} + ${borderBottomWidth})`,
153
- paddingLeft: `calc(${paddingLeft} + ${borderLeftWidth})`
150
+ inset: `
151
+ calc(${paddingTop} + ${borderTopWidth})
152
+ calc(${paddingRight} + ${borderRightWidth})
153
+ calc(${paddingBottom} + ${borderBottomWidth})
154
+ calc(${paddingLeft} + ${borderLeftWidth})
155
+ `
154
156
  }
155
157
  };
156
158
  }
@@ -1 +1 @@
1
- {"version":3,"names":["range","start","length","Array","from","_","i","GridRect","constructor","columnStart","rowStart","columnEnd","rowEnd","columnSpan","rowSpan","undefined","contains","column","row","containsRect","rect","intersectsRect","exports","getComputedCSS","element","property","ownerDocument","defaultView","getComputedStyle","getPropertyValue","getGridTracks","template","gap","tracks","size","split","previousTrack","end","parseFloat","push","getClosestTrack","position","edge","reduce","closest","track","index","Math","abs","getGridRect","gridElement","columnGap","rowGap","gridColumnTracks","gridRowTracks","left","top","right","bottom","getGridItemRect","gridItemElement","parentElement","window","DOMRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","getGridInfo","gridTemplateColumns","gridTemplateRows","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","numColumns","numRows","numItems","currentColor","style"],"sources":["@wordpress/block-editor/src/components/grid/utils.js"],"sourcesContent":["export function range( start, length ) {\n\treturn Array.from( { length }, ( _, i ) => start + i );\n}\n\nexport class GridRect {\n\tconstructor( {\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnEnd,\n\t\trowEnd,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = {} ) {\n\t\tthis.columnStart = columnStart ?? 1;\n\t\tthis.rowStart = rowStart ?? 1;\n\t\tif ( columnSpan !== undefined ) {\n\t\t\tthis.columnEnd = this.columnStart + columnSpan - 1;\n\t\t} else {\n\t\t\tthis.columnEnd = columnEnd ?? this.columnStart;\n\t\t}\n\t\tif ( rowSpan !== undefined ) {\n\t\t\tthis.rowEnd = this.rowStart + rowSpan - 1;\n\t\t} else {\n\t\t\tthis.rowEnd = rowEnd ?? this.rowStart;\n\t\t}\n\t}\n\n\tget columnSpan() {\n\t\treturn this.columnEnd - this.columnStart + 1;\n\t}\n\n\tget rowSpan() {\n\t\treturn this.rowEnd - this.rowStart + 1;\n\t}\n\n\tcontains( column, row ) {\n\t\treturn (\n\t\t\tcolumn >= this.columnStart &&\n\t\t\tcolumn <= this.columnEnd &&\n\t\t\trow >= this.rowStart &&\n\t\t\trow <= this.rowEnd\n\t\t);\n\t}\n\n\tcontainsRect( rect ) {\n\t\treturn (\n\t\t\tthis.contains( rect.columnStart, rect.rowStart ) &&\n\t\t\tthis.contains( rect.columnEnd, rect.rowEnd )\n\t\t);\n\t}\n\n\tintersectsRect( rect ) {\n\t\treturn (\n\t\t\tthis.columnStart <= rect.columnEnd &&\n\t\t\tthis.columnEnd >= rect.columnStart &&\n\t\t\tthis.rowStart <= rect.rowEnd &&\n\t\t\tthis.rowEnd >= rect.rowStart\n\t\t);\n\t}\n}\n\nexport function getComputedCSS( element, property ) {\n\treturn element.ownerDocument.defaultView\n\t\t.getComputedStyle( element )\n\t\t.getPropertyValue( property );\n}\n\n/**\n * Given a grid-template-columns or grid-template-rows CSS property value, gets the start and end\n * position in pixels of each grid track.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {string} template The grid-template-columns or grid-template-rows CSS property value.\n * Only supports fixed sizes in pixels.\n * @param {number} gap The gap between grid tracks in pixels.\n *\n * @return {Array<{start: number, end: number}>} An array of objects with the start and end\n * position in pixels of each grid track.\n */\nexport function getGridTracks( template, gap ) {\n\tconst tracks = [];\n\tfor ( const size of template.split( ' ' ) ) {\n\t\tconst previousTrack = tracks[ tracks.length - 1 ];\n\t\tconst start = previousTrack ? previousTrack.end + gap : 0;\n\t\tconst end = start + parseFloat( size );\n\t\ttracks.push( { start, end } );\n\t}\n\treturn tracks;\n}\n\n/**\n * Given an array of grid tracks and a position in pixels, gets the index of the closest track to\n * that position.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {Array<{start: number, end: number}>} tracks An array of objects with the start and end\n * position in pixels of each grid track.\n * @param {number} position The position in pixels.\n * @param {string} edge The edge of the track to compare the\n * position to. Either 'start' or 'end'.\n *\n * @return {number} The index of the closest track to the position. 0-based, unlike CSS grid which\n * is 1-based.\n */\nexport function getClosestTrack( tracks, position, edge = 'start' ) {\n\treturn tracks.reduce(\n\t\t( closest, track, index ) =>\n\t\t\tMath.abs( track[ edge ] - position ) <\n\t\t\tMath.abs( tracks[ closest ][ edge ] - position )\n\t\t\t\t? index\n\t\t\t\t: closest,\n\t\t0\n\t);\n}\n\nexport function getGridRect( gridElement, rect ) {\n\tconst columnGap = parseFloat( getComputedCSS( gridElement, 'column-gap' ) );\n\tconst rowGap = parseFloat( getComputedCSS( gridElement, 'row-gap' ) );\n\tconst gridColumnTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-columns' ),\n\t\tcolumnGap\n\t);\n\tconst gridRowTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-rows' ),\n\t\trowGap\n\t);\n\tconst columnStart = getClosestTrack( gridColumnTracks, rect.left ) + 1;\n\tconst rowStart = getClosestTrack( gridRowTracks, rect.top ) + 1;\n\tconst columnEnd =\n\t\tgetClosestTrack( gridColumnTracks, rect.right, 'end' ) + 1;\n\tconst rowEnd = getClosestTrack( gridRowTracks, rect.bottom, 'end' ) + 1;\n\treturn new GridRect( {\n\t\tcolumnStart,\n\t\tcolumnEnd,\n\t\trowStart,\n\t\trowEnd,\n\t} );\n}\n\nexport function getGridItemRect( gridItemElement ) {\n\treturn getGridRect(\n\t\tgridItemElement.parentElement,\n\t\tnew window.DOMRect(\n\t\t\tgridItemElement.offsetLeft,\n\t\t\tgridItemElement.offsetTop,\n\t\t\tgridItemElement.offsetWidth,\n\t\t\tgridItemElement.offsetHeight\n\t\t)\n\t);\n}\n\nexport function getGridInfo( gridElement ) {\n\tconst gridTemplateColumns = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-columns'\n\t);\n\tconst gridTemplateRows = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-rows'\n\t);\n\tconst borderTopWidth = getComputedCSS( gridElement, 'border-top-width' );\n\tconst borderRightWidth = getComputedCSS(\n\t\tgridElement,\n\t\t'border-right-width'\n\t);\n\tconst borderBottomWidth = getComputedCSS(\n\t\tgridElement,\n\t\t'border-bottom-width'\n\t);\n\tconst borderLeftWidth = getComputedCSS( gridElement, 'border-left-width' );\n\tconst paddingTop = getComputedCSS( gridElement, 'padding-top' );\n\tconst paddingRight = getComputedCSS( gridElement, 'padding-right' );\n\tconst paddingBottom = getComputedCSS( gridElement, 'padding-bottom' );\n\tconst paddingLeft = getComputedCSS( gridElement, 'padding-left' );\n\n\tconst numColumns = gridTemplateColumns.split( ' ' ).length;\n\tconst numRows = gridTemplateRows.split( ' ' ).length;\n\tconst numItems = numColumns * numRows;\n\treturn {\n\t\tnumColumns,\n\t\tnumRows,\n\t\tnumItems,\n\t\tcurrentColor: getComputedCSS( gridElement, 'color' ),\n\t\tstyle: {\n\t\t\tgridTemplateColumns,\n\t\t\tgridTemplateRows,\n\t\t\tgap: getComputedCSS( gridElement, 'gap' ),\n\t\t\tpaddingTop: `calc(${ paddingTop } + ${ borderTopWidth })`,\n\t\t\tpaddingRight: `calc(${ paddingRight } + ${ borderRightWidth })`,\n\t\t\tpaddingBottom: `calc(${ paddingBottom } + ${ borderBottomWidth })`,\n\t\t\tpaddingLeft: `calc(${ paddingLeft } + ${ borderLeftWidth })`,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["range","start","length","Array","from","_","i","GridRect","constructor","columnStart","rowStart","columnEnd","rowEnd","columnSpan","rowSpan","undefined","contains","column","row","containsRect","rect","intersectsRect","exports","getComputedCSS","element","property","ownerDocument","defaultView","getComputedStyle","getPropertyValue","getGridTracks","template","gap","tracks","size","split","previousTrack","end","parseFloat","push","getClosestTrack","position","edge","reduce","closest","track","index","Math","abs","getGridRect","gridElement","columnGap","rowGap","gridColumnTracks","gridRowTracks","left","top","right","bottom","getGridItemRect","gridItemElement","parentElement","window","DOMRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","getGridInfo","gridTemplateColumns","gridTemplateRows","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","numColumns","numRows","numItems","currentColor","style","inset"],"sources":["@wordpress/block-editor/src/components/grid/utils.js"],"sourcesContent":["export function range( start, length ) {\n\treturn Array.from( { length }, ( _, i ) => start + i );\n}\n\nexport class GridRect {\n\tconstructor( {\n\t\tcolumnStart,\n\t\trowStart,\n\t\tcolumnEnd,\n\t\trowEnd,\n\t\tcolumnSpan,\n\t\trowSpan,\n\t} = {} ) {\n\t\tthis.columnStart = columnStart ?? 1;\n\t\tthis.rowStart = rowStart ?? 1;\n\t\tif ( columnSpan !== undefined ) {\n\t\t\tthis.columnEnd = this.columnStart + columnSpan - 1;\n\t\t} else {\n\t\t\tthis.columnEnd = columnEnd ?? this.columnStart;\n\t\t}\n\t\tif ( rowSpan !== undefined ) {\n\t\t\tthis.rowEnd = this.rowStart + rowSpan - 1;\n\t\t} else {\n\t\t\tthis.rowEnd = rowEnd ?? this.rowStart;\n\t\t}\n\t}\n\n\tget columnSpan() {\n\t\treturn this.columnEnd - this.columnStart + 1;\n\t}\n\n\tget rowSpan() {\n\t\treturn this.rowEnd - this.rowStart + 1;\n\t}\n\n\tcontains( column, row ) {\n\t\treturn (\n\t\t\tcolumn >= this.columnStart &&\n\t\t\tcolumn <= this.columnEnd &&\n\t\t\trow >= this.rowStart &&\n\t\t\trow <= this.rowEnd\n\t\t);\n\t}\n\n\tcontainsRect( rect ) {\n\t\treturn (\n\t\t\tthis.contains( rect.columnStart, rect.rowStart ) &&\n\t\t\tthis.contains( rect.columnEnd, rect.rowEnd )\n\t\t);\n\t}\n\n\tintersectsRect( rect ) {\n\t\treturn (\n\t\t\tthis.columnStart <= rect.columnEnd &&\n\t\t\tthis.columnEnd >= rect.columnStart &&\n\t\t\tthis.rowStart <= rect.rowEnd &&\n\t\t\tthis.rowEnd >= rect.rowStart\n\t\t);\n\t}\n}\n\nexport function getComputedCSS( element, property ) {\n\treturn element.ownerDocument.defaultView\n\t\t.getComputedStyle( element )\n\t\t.getPropertyValue( property );\n}\n\n/**\n * Given a grid-template-columns or grid-template-rows CSS property value, gets the start and end\n * position in pixels of each grid track.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {string} template The grid-template-columns or grid-template-rows CSS property value.\n * Only supports fixed sizes in pixels.\n * @param {number} gap The gap between grid tracks in pixels.\n *\n * @return {Array<{start: number, end: number}>} An array of objects with the start and end\n * position in pixels of each grid track.\n */\nexport function getGridTracks( template, gap ) {\n\tconst tracks = [];\n\tfor ( const size of template.split( ' ' ) ) {\n\t\tconst previousTrack = tracks[ tracks.length - 1 ];\n\t\tconst start = previousTrack ? previousTrack.end + gap : 0;\n\t\tconst end = start + parseFloat( size );\n\t\ttracks.push( { start, end } );\n\t}\n\treturn tracks;\n}\n\n/**\n * Given an array of grid tracks and a position in pixels, gets the index of the closest track to\n * that position.\n *\n * https://css-tricks.com/snippets/css/complete-guide-grid/#aa-grid-track\n *\n * @param {Array<{start: number, end: number}>} tracks An array of objects with the start and end\n * position in pixels of each grid track.\n * @param {number} position The position in pixels.\n * @param {string} edge The edge of the track to compare the\n * position to. Either 'start' or 'end'.\n *\n * @return {number} The index of the closest track to the position. 0-based, unlike CSS grid which\n * is 1-based.\n */\nexport function getClosestTrack( tracks, position, edge = 'start' ) {\n\treturn tracks.reduce(\n\t\t( closest, track, index ) =>\n\t\t\tMath.abs( track[ edge ] - position ) <\n\t\t\tMath.abs( tracks[ closest ][ edge ] - position )\n\t\t\t\t? index\n\t\t\t\t: closest,\n\t\t0\n\t);\n}\n\nexport function getGridRect( gridElement, rect ) {\n\tconst columnGap = parseFloat( getComputedCSS( gridElement, 'column-gap' ) );\n\tconst rowGap = parseFloat( getComputedCSS( gridElement, 'row-gap' ) );\n\tconst gridColumnTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-columns' ),\n\t\tcolumnGap\n\t);\n\tconst gridRowTracks = getGridTracks(\n\t\tgetComputedCSS( gridElement, 'grid-template-rows' ),\n\t\trowGap\n\t);\n\tconst columnStart = getClosestTrack( gridColumnTracks, rect.left ) + 1;\n\tconst rowStart = getClosestTrack( gridRowTracks, rect.top ) + 1;\n\tconst columnEnd =\n\t\tgetClosestTrack( gridColumnTracks, rect.right, 'end' ) + 1;\n\tconst rowEnd = getClosestTrack( gridRowTracks, rect.bottom, 'end' ) + 1;\n\treturn new GridRect( {\n\t\tcolumnStart,\n\t\tcolumnEnd,\n\t\trowStart,\n\t\trowEnd,\n\t} );\n}\n\nexport function getGridItemRect( gridItemElement ) {\n\treturn getGridRect(\n\t\tgridItemElement.parentElement,\n\t\tnew window.DOMRect(\n\t\t\tgridItemElement.offsetLeft,\n\t\t\tgridItemElement.offsetTop,\n\t\t\tgridItemElement.offsetWidth,\n\t\t\tgridItemElement.offsetHeight\n\t\t)\n\t);\n}\n\nexport function getGridInfo( gridElement ) {\n\tconst gridTemplateColumns = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-columns'\n\t);\n\tconst gridTemplateRows = getComputedCSS(\n\t\tgridElement,\n\t\t'grid-template-rows'\n\t);\n\tconst borderTopWidth = getComputedCSS( gridElement, 'border-top-width' );\n\tconst borderRightWidth = getComputedCSS(\n\t\tgridElement,\n\t\t'border-right-width'\n\t);\n\tconst borderBottomWidth = getComputedCSS(\n\t\tgridElement,\n\t\t'border-bottom-width'\n\t);\n\tconst borderLeftWidth = getComputedCSS( gridElement, 'border-left-width' );\n\tconst paddingTop = getComputedCSS( gridElement, 'padding-top' );\n\tconst paddingRight = getComputedCSS( gridElement, 'padding-right' );\n\tconst paddingBottom = getComputedCSS( gridElement, 'padding-bottom' );\n\tconst paddingLeft = getComputedCSS( gridElement, 'padding-left' );\n\n\tconst numColumns = gridTemplateColumns.split( ' ' ).length;\n\tconst numRows = gridTemplateRows.split( ' ' ).length;\n\tconst numItems = numColumns * numRows;\n\treturn {\n\t\tnumColumns,\n\t\tnumRows,\n\t\tnumItems,\n\t\tcurrentColor: getComputedCSS( gridElement, 'color' ),\n\t\tstyle: {\n\t\t\tgridTemplateColumns,\n\t\t\tgridTemplateRows,\n\t\t\tgap: getComputedCSS( gridElement, 'gap' ),\n\t\t\tinset: `\n\t\t\t\tcalc(${ paddingTop } + ${ borderTopWidth })\n\t\t\t\tcalc(${ paddingRight } + ${ borderRightWidth })\n\t\t\t\tcalc(${ paddingBottom } + ${ borderBottomWidth })\n\t\t\t\tcalc(${ paddingLeft } + ${ borderLeftWidth })\n\t\t\t`,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -52,8 +52,19 @@ function InserterMenu({
52
52
  __experimentalInitialTab,
53
53
  __experimentalInitialCategory
54
54
  }, ref) {
55
- const isZoomOutMode = (0, _data.useSelect)(select => (0, _lockUnlock.unlock)(select(_store.store)).isZoomOut(), []);
56
- const hasSectionRootClientId = (0, _data.useSelect)(select => !!(0, _lockUnlock.unlock)(select(_store.store)).getSectionRootClientId(), []);
55
+ const {
56
+ isZoomOutMode,
57
+ hasSectionRootClientId
58
+ } = (0, _data.useSelect)(select => {
59
+ const {
60
+ isZoomOut,
61
+ getSectionRootClientId
62
+ } = (0, _lockUnlock.unlock)(select(_store.store));
63
+ return {
64
+ isZoomOutMode: isZoomOut(),
65
+ hasSectionRootClientId: !!getSectionRootClientId()
66
+ };
67
+ }, []);
57
68
  const [filterValue, setFilterValue, delayedFilterValue] = (0, _compose.useDebouncedInput)(__experimentalFilterValue);
58
69
  const [hoveredItem, setHoveredItem] = (0, _element.useState)(null);
59
70
  const [selectedPatternCategory, setSelectedPatternCategory] = (0, _element.useState)(__experimentalInitialCategory);
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_components","_i18n","_compose","_data","_tips","_previewPanel","_blockTypesTab","_blockPatternsTab","_patternCategoryPreviews","_mediaTab","_searchResults","_useInsertionPoint","_store","_tabbedSidebar","_useZoomOut","_lockUnlock","_jsxRuntime","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","onPatternCategorySelection","onClose","__experimentalInitialTab","__experimentalInitialCategory","ref","isZoomOutMode","useSelect","select","unlock","blockEditorStore","isZoomOut","hasSectionRootClientId","getSectionRootClientId","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","hoveredItem","setHoveredItem","useState","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","isLargeViewport","useViewportMatch","getInitialTab","selectedTab","setSelectedTab","shouldUseZoomOut","useZoomOut","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","useInsertionPoint","insertionIndex","blockTypesTabRef","useRef","onInsert","useCallback","blocks","meta","shouldForceFocusBlock","_rootClientId","window","requestAnimationFrame","current","contains","ownerDocument","activeElement","querySelector","focus","onInsertPattern","patternName","args","onHover","item","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","useMemo","jsxs","Fragment","children","jsx","SearchControl","__nextHasNoMarginBottom","className","onChange","value","label","__","placeholder","default","showBlockDirectory","prioritizePatterns","blocksTab","VisuallyHidden","as","patternsTab","onSelectCategory","selectedCategory","PatternCategoryPreviews","category","showTitlesAsTooltip","mediaTab","MediaTab","MediaCategoryPanel","handleSetSelectedTab","tabsRef","useLayoutEffect","clsx","closeButtonLabel","tabs","name","title","panel","Popover","placement","offset","focusOnMount","animate","PrivateInserterMenu","exports","forwardRef","PublicInserterMenu","props","_default"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput, useViewportMatch } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviews } from './block-patterns-tab/pattern-category-previews';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport TabbedSidebar from '../tabbed-sidebar';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\nimport { unlock } from '../../lock-unlock';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\tonPatternCategorySelection,\n\t\tonClose,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t},\n\tref\n) {\n\tconst isZoomOutMode = useSelect(\n\t\t( select ) => unlock( select( blockEditorStore ) ).isZoomOut(),\n\t\t[]\n\t);\n\tconst hasSectionRootClientId = useSelect(\n\t\t( select ) =>\n\t\t\t!! unlock( select( blockEditorStore ) ).getSectionRootClientId(),\n\t\t[]\n\t);\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\t__experimentalInitialCategory\n\t);\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst isLargeViewport = useViewportMatch( 'large' );\n\n\tfunction getInitialTab() {\n\t\tif ( __experimentalInitialTab ) {\n\t\t\treturn __experimentalInitialTab;\n\t\t}\n\n\t\tif ( isZoomOutMode ) {\n\t\t\treturn 'patterns';\n\t\t}\n\n\t\treturn 'blocks';\n\t}\n\tconst [ selectedTab, setSelectedTab ] = useState( getInitialTab() );\n\n\tconst shouldUseZoomOut =\n\t\thasSectionRootClientId &&\n\t\t( selectedTab === 'patterns' || selectedTab === 'media' );\n\n\tuseZoomOut( shouldUseZoomOut && isLargeViewport );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst blockTypesTabRef = useRef();\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock, _rootClientId ) => {\n\t\t\tonInsertBlocks(\n\t\t\t\tblocks,\n\t\t\t\tmeta,\n\t\t\t\tshouldForceFocusBlock,\n\t\t\t\t_rootClientId\n\t\t\t);\n\t\t\tonSelect( blocks );\n\n\t\t\t// Check for focus loss due to filtering blocks by selected block type\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tif (\n\t\t\t\t\t! shouldFocusBlock &&\n\t\t\t\t\t! blockTypesTabRef.current?.contains(\n\t\t\t\t\t\tref.current.ownerDocument.activeElement\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// There has been a focus loss, so focus the first button in the block types tab\n\t\t\t\t\tblockTypesTabRef.current?.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[ onInsertBlocks, onSelect, shouldFocusBlock ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName, ...args ) => {\n\t\t\tonToggleInsertionPoint( false );\n\t\t\tonInsertBlocks( blocks, { patternName }, ...args );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tonPatternCategorySelection?.();\n\t\t},\n\t\t[ setSelectedPatternCategory, onPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\t!! selectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo( () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\tref={ blockTypesTabRef }\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tonHover,\n\t\tshowMostUsedBlocks,\n\t\tshowInserterHelpPanel,\n\t] );\n\n\tconst patternsTab = useMemo( () => {\n\t\treturn (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviews\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsertPattern,\n\t\tonClickPatternCategory,\n\t\tpatternFilter,\n\t\tselectedPatternCategory,\n\t\tshowPatternPanel,\n\t] );\n\n\tconst mediaTab = useMemo( () => {\n\t\treturn (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tselectedMediaCategory,\n\t\tsetSelectedMediaCategory,\n\t\tshowMediaPanel,\n\t] );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t\t'is-zoom-out': isZoomOutMode,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<TabbedSidebar\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tselectedTab={ selectedTab }\n\t\t\t\t\tcloseButtonLabel={ __( 'Close Block Inserter' ) }\n\t\t\t\t\ttabs={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'blocks',\n\t\t\t\t\t\t\ttitle: __( 'Blocks' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'blocks' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tblocksTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'patterns',\n\t\t\t\t\t\t\ttitle: __( 'Patterns' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'patterns' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tpatternsTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'media',\n\t\t\t\t\t\t\ttitle: __( 'Media' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ mediaTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const PrivateInserterMenu = forwardRef( InserterMenu );\n\nfunction PublicInserterMenu( props, ref ) {\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ NOOP }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterMenu );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_components","_i18n","_compose","_data","_tips","_previewPanel","_blockTypesTab","_blockPatternsTab","_patternCategoryPreviews","_mediaTab","_searchResults","_useInsertionPoint","_store","_tabbedSidebar","_useZoomOut","_lockUnlock","_jsxRuntime","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","onPatternCategorySelection","onClose","__experimentalInitialTab","__experimentalInitialCategory","ref","isZoomOutMode","hasSectionRootClientId","useSelect","select","isZoomOut","getSectionRootClientId","unlock","blockEditorStore","filterValue","setFilterValue","delayedFilterValue","useDebouncedInput","hoveredItem","setHoveredItem","useState","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","isLargeViewport","useViewportMatch","getInitialTab","selectedTab","setSelectedTab","shouldUseZoomOut","useZoomOut","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","useInsertionPoint","insertionIndex","blockTypesTabRef","useRef","onInsert","useCallback","blocks","meta","shouldForceFocusBlock","_rootClientId","window","requestAnimationFrame","current","contains","ownerDocument","activeElement","querySelector","focus","onInsertPattern","patternName","args","onHover","item","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","useMemo","jsxs","Fragment","children","jsx","SearchControl","__nextHasNoMarginBottom","className","onChange","value","label","__","placeholder","default","showBlockDirectory","prioritizePatterns","blocksTab","VisuallyHidden","as","patternsTab","onSelectCategory","selectedCategory","PatternCategoryPreviews","category","showTitlesAsTooltip","mediaTab","MediaTab","MediaCategoryPanel","handleSetSelectedTab","tabsRef","useLayoutEffect","clsx","closeButtonLabel","tabs","name","title","panel","Popover","placement","offset","focusOnMount","animate","PrivateInserterMenu","exports","forwardRef","PublicInserterMenu","props","_default"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput, useViewportMatch } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviews } from './block-patterns-tab/pattern-category-previews';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport TabbedSidebar from '../tabbed-sidebar';\nimport { useZoomOut } from '../../hooks/use-zoom-out';\nimport { unlock } from '../../lock-unlock';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\tonPatternCategorySelection,\n\t\tonClose,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t},\n\tref\n) {\n\tconst { isZoomOutMode, hasSectionRootClientId } = useSelect( ( select ) => {\n\t\tconst { isZoomOut, getSectionRootClientId } = unlock(\n\t\t\tselect( blockEditorStore )\n\t\t);\n\n\t\treturn {\n\t\t\tisZoomOutMode: isZoomOut(),\n\t\t\thasSectionRootClientId: !! getSectionRootClientId(),\n\t\t};\n\t}, [] );\n\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\t__experimentalInitialCategory\n\t);\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tconst isLargeViewport = useViewportMatch( 'large' );\n\n\tfunction getInitialTab() {\n\t\tif ( __experimentalInitialTab ) {\n\t\t\treturn __experimentalInitialTab;\n\t\t}\n\n\t\tif ( isZoomOutMode ) {\n\t\t\treturn 'patterns';\n\t\t}\n\n\t\treturn 'blocks';\n\t}\n\tconst [ selectedTab, setSelectedTab ] = useState( getInitialTab() );\n\n\tconst shouldUseZoomOut =\n\t\thasSectionRootClientId &&\n\t\t( selectedTab === 'patterns' || selectedTab === 'media' );\n\n\tuseZoomOut( shouldUseZoomOut && isLargeViewport );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst blockTypesTabRef = useRef();\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock, _rootClientId ) => {\n\t\t\tonInsertBlocks(\n\t\t\t\tblocks,\n\t\t\t\tmeta,\n\t\t\t\tshouldForceFocusBlock,\n\t\t\t\t_rootClientId\n\t\t\t);\n\t\t\tonSelect( blocks );\n\n\t\t\t// Check for focus loss due to filtering blocks by selected block type\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tif (\n\t\t\t\t\t! shouldFocusBlock &&\n\t\t\t\t\t! blockTypesTabRef.current?.contains(\n\t\t\t\t\t\tref.current.ownerDocument.activeElement\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// There has been a focus loss, so focus the first button in the block types tab\n\t\t\t\t\tblockTypesTabRef.current?.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[ onInsertBlocks, onSelect, shouldFocusBlock ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName, ...args ) => {\n\t\t\tonToggleInsertionPoint( false );\n\t\t\tonInsertBlocks( blocks, { patternName }, ...args );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tonPatternCategorySelection?.();\n\t\t},\n\t\t[ setSelectedPatternCategory, onPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\t!! selectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo( () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\tref={ blockTypesTabRef }\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tonHover,\n\t\tshowMostUsedBlocks,\n\t\tshowInserterHelpPanel,\n\t] );\n\n\tconst patternsTab = useMemo( () => {\n\t\treturn (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviews\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsertPattern,\n\t\tonClickPatternCategory,\n\t\tpatternFilter,\n\t\tselectedPatternCategory,\n\t\tshowPatternPanel,\n\t] );\n\n\tconst mediaTab = useMemo( () => {\n\t\treturn (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tselectedMediaCategory,\n\t\tsetSelectedMediaCategory,\n\t\tshowMediaPanel,\n\t] );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t\t'is-zoom-out': isZoomOutMode,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<TabbedSidebar\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tselectedTab={ selectedTab }\n\t\t\t\t\tcloseButtonLabel={ __( 'Close Block Inserter' ) }\n\t\t\t\t\ttabs={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'blocks',\n\t\t\t\t\t\t\ttitle: __( 'Blocks' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'blocks' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tblocksTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'patterns',\n\t\t\t\t\t\t\ttitle: __( 'Patterns' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'patterns' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tpatternsTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'media',\n\t\t\t\t\t\t\ttitle: __( 'Media' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ mediaTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const PrivateInserterMenu = forwardRef( InserterMenu );\n\nfunction PublicInserterMenu( props, ref ) {\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ NOOP }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterMenu );\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -8,11 +7,12 @@ Object.defineProperty(exports, "__esModule", {
8
7
  exports.default = void 0;
9
8
  var _components = require("@wordpress/components");
10
9
  var _data = require("@wordpress/data");
11
- var _element = require("@wordpress/element");
12
10
  var _i18n = require("@wordpress/i18n");
13
11
  var _groups = _interopRequireDefault(require("../inspector-controls/groups"));
14
12
  var _inspectorControls = _interopRequireDefault(require("../inspector-controls"));
15
13
  var _store = require("../../store");
14
+ var _utils = require("../global-styles/utils");
15
+ var _utils2 = require("../../hooks/utils");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  /**
18
18
  * WordPress dependencies
@@ -23,36 +23,64 @@ var _jsxRuntime = require("react/jsx-runtime");
23
23
  */
24
24
 
25
25
  const PositionControlsPanel = () => {
26
- const [initialOpen, setInitialOpen] = (0, _element.useState)();
27
-
28
- // Determine whether the panel should be expanded.
29
26
  const {
30
- multiSelectedBlocks
27
+ selectedClientIds,
28
+ selectedBlocks,
29
+ hasPositionAttribute
31
30
  } = (0, _data.useSelect)(select => {
32
31
  const {
33
32
  getBlocksByClientId,
34
33
  getSelectedBlockClientIds
35
34
  } = select(_store.store);
36
- const clientIds = getSelectedBlockClientIds();
35
+ const selectedBlockClientIds = getSelectedBlockClientIds();
36
+ const _selectedBlocks = getBlocksByClientId(selectedBlockClientIds);
37
37
  return {
38
- multiSelectedBlocks: getBlocksByClientId(clientIds)
38
+ selectedClientIds: selectedBlockClientIds,
39
+ selectedBlocks: _selectedBlocks,
40
+ hasPositionAttribute: _selectedBlocks?.some(({
41
+ attributes
42
+ }) => !!attributes?.style?.position?.type)
39
43
  };
40
44
  }, []);
41
- (0, _element.useLayoutEffect)(() => {
42
- // If any selected block has a position set, open the panel by default.
43
- // The first block's value will still be used within the control though.
44
- if (initialOpen === undefined) {
45
- setInitialOpen(multiSelectedBlocks.some(({
46
- attributes
47
- }) => !!attributes?.style?.position?.type));
45
+ const {
46
+ updateBlockAttributes
47
+ } = (0, _data.useDispatch)(_store.store);
48
+ const dropdownMenuProps = (0, _utils.useToolsPanelDropdownMenuProps)();
49
+ function resetPosition() {
50
+ if (!selectedClientIds?.length || !selectedBlocks?.length) {
51
+ return;
48
52
  }
49
- }, [initialOpen, multiSelectedBlocks, setInitialOpen]);
50
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PanelBody, {
53
+ const attributesByClientId = Object.fromEntries(selectedBlocks?.map(({
54
+ clientId,
55
+ attributes
56
+ }) => [clientId, {
57
+ style: (0, _utils2.cleanEmptyObject)({
58
+ ...attributes?.style,
59
+ position: {
60
+ ...attributes?.style?.position,
61
+ type: undefined,
62
+ top: undefined,
63
+ right: undefined,
64
+ bottom: undefined,
65
+ left: undefined
66
+ }
67
+ })
68
+ }]));
69
+ updateBlockAttributes(selectedClientIds, attributesByClientId, true);
70
+ }
71
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanel, {
51
72
  className: "block-editor-block-inspector__position",
52
- title: (0, _i18n.__)('Position'),
53
- initialOpen: initialOpen !== null && initialOpen !== void 0 ? initialOpen : false,
54
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_inspectorControls.default.Slot, {
55
- group: "position"
73
+ label: (0, _i18n.__)('Position'),
74
+ resetAll: resetPosition,
75
+ dropdownMenuProps: dropdownMenuProps,
76
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
77
+ isShownByDefault: hasPositionAttribute,
78
+ label: (0, _i18n.__)('Position'),
79
+ hasValue: () => hasPositionAttribute,
80
+ onDeselect: resetPosition,
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_inspectorControls.default.Slot, {
82
+ group: "position"
83
+ })
56
84
  })
57
85
  });
58
86
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_element","_i18n","_groups","_interopRequireDefault","_inspectorControls","_store","_jsxRuntime","PositionControlsPanel","initialOpen","setInitialOpen","useState","multiSelectedBlocks","useSelect","select","getBlocksByClientId","getSelectedBlockClientIds","blockEditorStore","clientIds","useLayoutEffect","undefined","some","attributes","style","position","type","jsx","PanelBody","className","title","__","children","default","Slot","group","PositionControls","fills","useSlotFills","InspectorControlsGroups","name","hasFills","Boolean","length","_default","exports"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/position-controls-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { store as blockEditorStore } from '../../store';\n\nconst PositionControlsPanel = () => {\n\tconst [ initialOpen, setInitialOpen ] = useState();\n\n\t// Determine whether the panel should be expanded.\n\tconst { multiSelectedBlocks } = useSelect( ( select ) => {\n\t\tconst { getBlocksByClientId, getSelectedBlockClientIds } =\n\t\t\tselect( blockEditorStore );\n\t\tconst clientIds = getSelectedBlockClientIds();\n\t\treturn {\n\t\t\tmultiSelectedBlocks: getBlocksByClientId( clientIds ),\n\t\t};\n\t}, [] );\n\n\tuseLayoutEffect( () => {\n\t\t// If any selected block has a position set, open the panel by default.\n\t\t// The first block's value will still be used within the control though.\n\t\tif ( initialOpen === undefined ) {\n\t\t\tsetInitialOpen(\n\t\t\t\tmultiSelectedBlocks.some(\n\t\t\t\t\t( { attributes } ) => !! attributes?.style?.position?.type\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ initialOpen, multiSelectedBlocks, setInitialOpen ] );\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__position\"\n\t\t\ttitle={ __( 'Position' ) }\n\t\t\tinitialOpen={ initialOpen ?? false }\n\t\t>\n\t\t\t<InspectorControls.Slot group=\"position\" />\n\t\t</PanelBody>\n\t);\n};\n\nconst PositionControls = () => {\n\tconst fills = useSlotFills( InspectorControlsGroups.position.name );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn <PositionControlsPanel />;\n};\n\nexport default PositionControls;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,OAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAAwD,IAAAQ,WAAA,GAAAR,OAAA;AAhBxD;AACA;AACA;;AASA;AACA;AACA;;AAKA,MAAMS,qBAAqB,GAAGA,CAAA,KAAM;EACnC,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAC,CAAC;;EAElD;EACA,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxD,MAAM;MAAEC,mBAAmB;MAAEC;IAA0B,CAAC,GACvDF,MAAM,CAAEG,YAAiB,CAAC;IAC3B,MAAMC,SAAS,GAAGF,yBAAyB,CAAC,CAAC;IAC7C,OAAO;MACNJ,mBAAmB,EAAEG,mBAAmB,CAAEG,SAAU;IACrD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAAC,wBAAe,EAAE,MAAM;IACtB;IACA;IACA,IAAKV,WAAW,KAAKW,SAAS,EAAG;MAChCV,cAAc,CACbE,mBAAmB,CAACS,IAAI,CACvB,CAAE;QAAEC;MAAW,CAAC,KAAM,CAAC,CAAEA,UAAU,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IACvD,CACD,CAAC;IACF;EACD,CAAC,EAAE,CAAEhB,WAAW,EAAEG,mBAAmB,EAAEF,cAAc,CAAG,CAAC;EAEzD,oBACC,IAAAH,WAAA,CAAAmB,GAAA,EAAC5B,WAAA,CAAA6B,SAAS;IACTC,SAAS,EAAC,wCAAwC;IAClDC,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW,CAAG;IAC1BrB,WAAW,EAAGA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,KAAO;IAAAsB,QAAA,eAEpC,IAAAxB,WAAA,CAAAmB,GAAA,EAACrB,kBAAA,CAAA2B,OAAiB,CAACC,IAAI;MAACC,KAAK,EAAC;IAAU,CAAE;EAAC,CACjC,CAAC;AAEd,CAAC;AAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC9B,MAAMC,KAAK,GAAG,IAAAC,sCAAY,EAAEC,eAAuB,CAACd,QAAQ,CAACe,IAAK,CAAC;EACnE,MAAMC,QAAQ,GAAGC,OAAO,CAAEL,KAAK,IAAIA,KAAK,CAACM,MAAO,CAAC;EAEjD,IAAK,CAAEF,QAAQ,EAAG;IACjB,OAAO,IAAI;EACZ;EAEA,oBAAO,IAAAjC,WAAA,CAAAmB,GAAA,EAAClB,qBAAqB,IAAE,CAAC;AACjC,CAAC;AAAC,IAAAmC,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAEaG,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_i18n","_groups","_interopRequireDefault","_inspectorControls","_store","_utils","_utils2","_jsxRuntime","PositionControlsPanel","selectedClientIds","selectedBlocks","hasPositionAttribute","useSelect","select","getBlocksByClientId","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","_selectedBlocks","some","attributes","style","position","type","updateBlockAttributes","useDispatch","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetPosition","length","attributesByClientId","Object","fromEntries","map","clientId","cleanEmptyObject","undefined","top","right","bottom","left","jsx","__experimentalToolsPanel","className","label","__","resetAll","children","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","default","Slot","group","PositionControls","fills","useSlotFills","InspectorControlsGroups","name","hasFills","Boolean","_default","exports"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/position-controls-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseSlotFills as useSlotFills,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { useToolsPanelDropdownMenuProps } from '../global-styles/utils';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nconst PositionControlsPanel = () => {\n\tconst { selectedClientIds, selectedBlocks, hasPositionAttribute } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getBlocksByClientId, getSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlocks = getBlocksByClientId(\n\t\t\t\tselectedBlockClientIds\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tselectedClientIds: selectedBlockClientIds,\n\t\t\t\tselectedBlocks: _selectedBlocks,\n\t\t\t\thasPositionAttribute: _selectedBlocks?.some(\n\t\t\t\t\t( { attributes } ) => !! attributes?.style?.position?.type\n\t\t\t\t),\n\t\t\t};\n\t\t}, [] );\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tfunction resetPosition() {\n\t\tif ( ! selectedClientIds?.length || ! selectedBlocks?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tselectedBlocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tposition: {\n\t\t\t\t\t\t\t...attributes?.style?.position,\n\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t\ttop: undefined,\n\t\t\t\t\t\t\tright: undefined,\n\t\t\t\t\t\t\tbottom: undefined,\n\t\t\t\t\t\t\tleft: undefined,\n\t\t\t\t\t\t},\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\n\t\tupdateBlockAttributes( selectedClientIds, attributesByClientId, true );\n\t}\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName=\"block-editor-block-inspector__position\"\n\t\t\tlabel={ __( 'Position' ) }\n\t\t\tresetAll={ resetPosition }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tisShownByDefault={ hasPositionAttribute }\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\thasValue={ () => hasPositionAttribute }\n\t\t\t\tonDeselect={ resetPosition }\n\t\t\t>\n\t\t\t\t<InspectorControls.Slot group=\"position\" />\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n};\n\nconst PositionControls = () => {\n\tconst fills = useSlotFills( InspectorControlsGroups.position.name );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn <PositionControlsPanel />;\n};\n\nexport default PositionControls;\n"],"mappings":"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","ignoreList":[]}
@@ -8,11 +8,11 @@ exports.default = SpacingSizesControl;
8
8
  var _components = require("@wordpress/components");
9
9
  var _element = require("@wordpress/element");
10
10
  var _i18n = require("@wordpress/i18n");
11
+ var _useSpacingSizes = _interopRequireDefault(require("./hooks/use-spacing-sizes"));
11
12
  var _axial = _interopRequireDefault(require("./input-controls/axial"));
12
13
  var _separated = _interopRequireDefault(require("./input-controls/separated"));
13
14
  var _single = _interopRequireDefault(require("./input-controls/single"));
14
15
  var _linkedButton = _interopRequireDefault(require("./linked-button"));
15
- var _useSpacingSizes = _interopRequireDefault(require("./hooks/use-spacing-sizes"));
16
16
  var _utils = require("./utils");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  /**
@@ -23,7 +23,49 @@ var _jsxRuntime = require("react/jsx-runtime");
23
23
  * Internal dependencies
24
24
  */
25
25
 
26
- function SpacingSizesControl({
26
+ /**
27
+ * A flexible control for managing spacing values in the block editor. Supports single, axial,
28
+ * and separated input controls for different spacing configurations with automatic view selection
29
+ * based on current values and available sides.
30
+ *
31
+ * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/spacing-sizes-control/README.md
32
+ *
33
+ * @example
34
+ * ```jsx
35
+ * import { __experimentalSpacingSizesControl as SpacingSizesControl } from '@wordpress/block-editor';
36
+ * import { useState } from '@wordpress/element';
37
+ *
38
+ * function Example() {
39
+ * const [ sides, setSides ] = useState( {
40
+ * top: '0px',
41
+ * right: '0px',
42
+ * bottom: '0px',
43
+ * left: '0px',
44
+ * } );
45
+ *
46
+ * return (
47
+ * <SpacingSizesControl
48
+ * values={ sides }
49
+ * onChange={ setSides }
50
+ * label="Sides"
51
+ * />
52
+ * );
53
+ * }
54
+ * ```
55
+ *
56
+ * @param {Object} props Component props.
57
+ * @param {Object} props.inputProps Additional props for input controls.
58
+ * @param {string} props.label Label for the control.
59
+ * @param {number} props.minimumCustomValue Minimum value for custom input.
60
+ * @param {Function} props.onChange Called when spacing values change.
61
+ * @param {Function} props.onMouseOut Called when mouse leaves the control.
62
+ * @param {Function} props.onMouseOver Called when mouse enters the control.
63
+ * @param {boolean} props.showSideInLabel Show side in control label.
64
+ * @param {Array} props.sides Available sides for control.
65
+ * @param {boolean} props.useSelect Use select control for predefined values.
66
+ * @param {Object} props.values Current spacing values.
67
+ * @return {Element} Spacing sizes control component.
68
+ */function SpacingSizesControl({
27
69
  inputProps,
28
70
  label: labelProp,
29
71
  minimumCustomValue = 0,