@wordpress/block-editor 13.2.0 → 13.4.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.
- package/CHANGELOG.md +4 -0
- package/README.md +0 -5
- package/build/components/alignment-control/ui.js +2 -2
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +1 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +12 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -3
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
- package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +3 -2
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +0 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +5 -7
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +20 -17
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -0
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +4 -12
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/preview-block-popover.js +20 -17
- package/build/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build/components/block-toolbar/shuffle.js +6 -2
- package/build/components/block-toolbar/shuffle.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +7 -58
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build/components/block-tools/index.js +14 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +9 -8
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +58 -0
- package/build/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build/components/block-tools/zoom-out-toolbar.js +138 -0
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build/components/button-block-appender/index.js +3 -1
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/child-layout-control/index.js +26 -18
- package/build/components/child-layout-control/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +7 -4
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/dimensions-tool/index.js +6 -4
- package/build/components/dimensions-tool/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +22 -62
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +185 -116
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +2 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +2 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -1
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -1
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +45 -24
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +121 -0
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +47 -13
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +17 -7
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +90 -48
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-item-resizer.js +2 -2
- package/build/components/grid/grid-item-resizer.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +117 -37
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +60 -41
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/index.js +1 -9
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +1 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +26 -4
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +20 -3
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-draggable-blocks/index.js +10 -3
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/link-control/link-preview.js +1 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +2 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/utils.js +3 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +19 -23
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +1 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +66 -0
- package/build/components/tabbed-sidebar/index.js.map +1 -0
- package/build/components/url-popover/image-url-input-ui.js +3 -3
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/url-popover/index.js +3 -0
- package/build/components/url-popover/index.js.map +1 -1
- package/build/hooks/background.js +26 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +11 -17
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +169 -4
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/duotone.js +16 -11
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/grid-visualizer.js +62 -0
- package/build/hooks/grid-visualizer.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout-child.js +47 -23
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +4 -15
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +96 -55
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/utils.js +2 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +50 -4
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/grid.js +92 -51
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +6 -4
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +18 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +0 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/defaults.native.js +0 -3
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +13 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/format-font-style.js +45 -0
- package/build/utils/format-font-style.js.map +1 -0
- package/build/utils/format-font-weight.js +68 -0
- package/build/utils/format-font-weight.js.map +1 -0
- package/build/utils/get-editor-region.js +34 -0
- package/build/utils/get-editor-region.js.map +1 -0
- package/build/utils/get-font-styles-and-weights.js +167 -0
- package/build/utils/get-font-styles-and-weights.js.map +1 -0
- package/build/utils/pasting.js +5 -13
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +2 -2
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +1 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +12 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -3
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
- package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +3 -2
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +0 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +5 -7
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +20 -17
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +2 -0
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +5 -13
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-switcher/index.js +1 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/preview-block-popover.js +20 -17
- package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
- package/build-module/components/block-toolbar/shuffle.js +6 -2
- package/build-module/components/block-toolbar/shuffle.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +10 -61
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
- package/build-module/components/block-tools/index.js +14 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +9 -8
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +49 -0
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
- package/build-module/components/button-block-appender/index.js +3 -1
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +27 -19
- package/build-module/components/child-layout-control/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -2
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +7 -4
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/dimensions-tool/index.js +6 -4
- package/build-module/components/dimensions-tool/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +24 -62
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +188 -119
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +3 -2
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +3 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +3 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +13 -1
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +3 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +47 -26
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +117 -0
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +47 -13
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +15 -6
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +93 -50
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-item-resizer.js +2 -2
- package/build-module/components/grid/grid-item-resizer.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +118 -38
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +61 -42
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
- package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +26 -4
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +20 -3
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-draggable-blocks/index.js +10 -3
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +1 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +3 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +2 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/utils.js +3 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +19 -23
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +60 -0
- package/build-module/components/tabbed-sidebar/index.js.map +1 -0
- package/build-module/components/url-popover/image-url-input-ui.js +3 -3
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/url-popover/index.js +3 -0
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/hooks/background.js +26 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +11 -17
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +168 -4
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/duotone.js +16 -11
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/grid-visualizer.js +61 -0
- package/build-module/hooks/grid-visualizer.js.map +1 -0
- package/build-module/hooks/index.js +3 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout-child.js +47 -23
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -15
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +96 -56
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/utils.js +2 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +50 -4
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/grid.js +92 -51
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +8 -6
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +15 -0
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +0 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/defaults.native.js +0 -3
- package/build-module/store/defaults.native.js.map +1 -1
- package/build-module/store/private-keys.js +1 -0
- package/build-module/store/private-keys.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +10 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/format-font-style.js +39 -0
- package/build-module/utils/format-font-style.js.map +1 -0
- package/build-module/utils/format-font-weight.js +62 -0
- package/build-module/utils/format-font-weight.js.map +1 -0
- package/build-module/utils/get-editor-region.js +28 -0
- package/build-module/utils/get-editor-region.js.map +1 -0
- package/build-module/utils/get-font-styles-and-weights.js +160 -0
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
- package/build-module/utils/pasting.js +5 -13
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/content-rtl.css +7 -6
- package/build-style/content.css +7 -6
- package/build-style/style-rtl.css +356 -181
- package/build-style/style.css +356 -181
- package/build-types/components/block-context/index.d.ts +2 -2
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +32 -32
- package/src/components/alignment-control/ui.js +2 -2
- package/src/components/block-alignment-control/ui.js +1 -1
- package/src/components/block-alignment-control/ui.native.js +1 -1
- package/src/components/block-breadcrumb/index.js +16 -1
- package/src/components/block-context/README.md +4 -4
- package/src/components/block-inspector/index.js +8 -4
- package/src/components/block-list/content.scss +2 -16
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
- package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -1
- package/src/components/block-lock/modal.js +10 -2
- package/src/components/block-lock/style.scss +4 -8
- package/src/components/block-lock/toolbar.js +0 -1
- package/src/components/block-mover/button.js +1 -1
- package/src/components/block-mover/index.js +1 -1
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
- package/src/components/block-patterns-paging/index.js +8 -11
- package/src/components/block-patterns-paging/style.scss +0 -5
- package/src/components/block-quick-navigation/index.js +21 -28
- package/src/components/block-removal-warning-modal/index.js +10 -2
- package/src/components/block-rename/modal.js +2 -8
- package/src/components/block-switcher/index.js +1 -1
- package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
- package/src/components/block-switcher/preview-block-popover.js +20 -14
- package/src/components/block-switcher/style.scss +8 -17
- package/src/components/block-switcher/test/index.js +6 -6
- package/src/components/block-toolbar/shuffle.js +9 -1
- package/src/components/block-toolbar/style.scss +1 -11
- package/src/components/block-tools/block-selection-button.js +11 -83
- package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
- package/src/components/block-tools/index.js +21 -1
- package/src/components/block-tools/style.scss +23 -0
- package/src/components/block-tools/use-show-block-tools.js +21 -10
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
- package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
- package/src/components/block-tools/zoom-out-popover.js +50 -0
- package/src/components/block-tools/zoom-out-toolbar.js +140 -0
- package/src/components/button-block-appender/index.js +2 -1
- package/src/components/child-layout-control/index.js +41 -23
- package/src/components/date-format-picker/index.js +2 -2
- package/src/components/date-format-picker/style.scss +0 -9
- package/src/components/default-block-appender/index.js +11 -4
- package/src/components/dimensions-tool/index.js +97 -89
- package/src/components/font-appearance-control/index.js +24 -82
- package/src/components/font-appearance-control/style.scss +3 -5
- package/src/components/global-styles/background-panel.js +266 -167
- package/src/components/global-styles/border-panel.js +3 -2
- package/src/components/global-styles/color-panel.js +3 -2
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/filters-panel.js +3 -2
- package/src/components/global-styles/hooks.js +14 -1
- package/src/components/global-styles/image-settings-panel.js +3 -2
- package/src/components/global-styles/style.scss +116 -19
- package/src/components/global-styles/test/typography-utils.js +594 -0
- package/src/components/global-styles/test/use-global-styles-output.js +3 -1
- package/src/components/global-styles/typography-panel.js +56 -27
- package/src/components/global-styles/typography-utils.js +159 -0
- package/src/components/global-styles/use-global-styles-output.js +45 -10
- package/src/components/global-styles/utils.js +17 -6
- package/src/components/grid/grid-item-movers.js +140 -86
- package/src/components/grid/grid-item-resizer.js +3 -2
- package/src/components/grid/grid-visualizer.js +172 -55
- package/src/components/grid/style.scss +157 -8
- package/src/components/grid/use-grid-layout-sync.js +88 -46
- package/src/components/iframe/content.scss +2 -1
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
- package/src/components/inserter/media-tab/media-panel.js +1 -0
- package/src/components/inserter/menu.js +47 -13
- package/src/components/inserter/preview-panel.js +27 -4
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +58 -92
- package/src/components/inserter-draggable-blocks/index.js +11 -3
- package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
- package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
- package/src/components/inspector-controls-tabs/style.scss +0 -21
- package/src/components/link-control/link-preview.js +1 -1
- package/src/components/list-view/block-select-button.js +3 -13
- package/src/components/list-view/block.js +10 -3
- package/src/components/list-view/style.scss +2 -1
- package/src/components/list-view/utils.js +13 -2
- package/src/components/media-placeholder/index.js +22 -32
- package/src/components/navigable-toolbar/index.js +3 -1
- package/src/components/rich-text/format-toolbar/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
- package/src/components/tabbed-sidebar/README.md +76 -0
- package/src/components/tabbed-sidebar/index.js +70 -0
- package/src/components/tabbed-sidebar/style.scss +53 -0
- package/src/components/url-popover/image-url-input-ui.js +3 -3
- package/src/components/url-popover/index.js +3 -0
- package/src/components/url-popover/style.scss +1 -0
- package/src/hooks/background.js +25 -10
- package/src/hooks/block-hooks.js +9 -16
- package/src/hooks/block-style-variation.js +202 -3
- package/src/hooks/duotone.js +16 -12
- package/src/hooks/grid-visualizer.js +62 -0
- package/src/hooks/index.js +3 -0
- package/src/hooks/layout-child.js +64 -39
- package/src/hooks/position.js +3 -20
- package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
- package/src/hooks/use-bindings-attributes.js +107 -63
- package/src/hooks/utils.js +2 -0
- package/src/layouts/constrained.js +53 -4
- package/src/layouts/grid.js +148 -51
- package/src/private-apis.js +12 -7
- package/src/store/actions.js +15 -0
- package/src/store/defaults.js +0 -2
- package/src/store/defaults.native.js +0 -3
- package/src/store/private-keys.js +1 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +10 -0
- package/src/style.scss +1 -1
- package/src/utils/format-font-style.js +40 -0
- package/src/utils/format-font-weight.js +63 -0
- package/src/utils/get-editor-region.js +31 -0
- package/src/utils/get-font-styles-and-weights.js +191 -0
- package/src/utils/pasting.js +5 -12
- package/src/utils/test/format-font-style.js +34 -0
- package/src/utils/test/format-font-weight.js +66 -0
- package/src/utils/test/get-font-styles-and-weights.js +513 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +0 -71
- package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
- package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
- package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
- package/src/components/inserter/reusable-block-rename-hint.js +0 -69
- package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
- package/src/hooks/position.scss +0 -18
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import clsx from 'clsx';
|
|
5
|
+
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
4
9
|
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import { ToolbarButton } from '@wordpress/components';
|
|
6
|
-
import {
|
|
10
|
+
import { VisuallyHidden, ToolbarButton, ToolbarGroup } from '@wordpress/components';
|
|
11
|
+
import { chevronLeft, chevronUp, chevronDown, chevronRight } from '@wordpress/icons';
|
|
7
12
|
import { useDispatch } from '@wordpress/data';
|
|
13
|
+
import { useInstanceId } from '@wordpress/compose';
|
|
8
14
|
|
|
9
15
|
/**
|
|
10
16
|
* Internal dependencies
|
|
@@ -14,6 +20,7 @@ import { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-befor
|
|
|
14
20
|
import { store as blockEditorStore } from '../../store';
|
|
15
21
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
22
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
24
|
export function GridItemMovers({
|
|
18
25
|
layout,
|
|
19
26
|
parentLayout,
|
|
@@ -34,56 +41,92 @@ export function GridItemMovers({
|
|
|
34
41
|
const rowEnd = rowStart + rowSpan - 1;
|
|
35
42
|
const columnCount = parentLayout?.columnCount;
|
|
36
43
|
const rowCount = parentLayout?.rowCount;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
const columnStartNumber = parseInt(columnStart, 10);
|
|
40
|
-
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(gridClientId, columnCountNumber);
|
|
41
|
-
return /*#__PURE__*/_jsxs(BlockControls, {
|
|
44
|
+
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(gridClientId, columnCount);
|
|
45
|
+
return /*#__PURE__*/_jsx(BlockControls, {
|
|
42
46
|
group: "parent",
|
|
47
|
+
children: /*#__PURE__*/_jsxs(ToolbarGroup, {
|
|
48
|
+
className: "block-editor-grid-item-mover__move-button-container",
|
|
49
|
+
children: [/*#__PURE__*/_jsx(GridItemMover, {
|
|
50
|
+
className: "is-left-button",
|
|
51
|
+
icon: chevronLeft,
|
|
52
|
+
label: __('Move left'),
|
|
53
|
+
description: __('Move left'),
|
|
54
|
+
isDisabled: columnStart <= 1,
|
|
55
|
+
onClick: () => {
|
|
56
|
+
onChange({
|
|
57
|
+
columnStart: columnStart - 1
|
|
58
|
+
});
|
|
59
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
60
|
+
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStart - 1, rowStart));
|
|
61
|
+
}
|
|
62
|
+
}), /*#__PURE__*/_jsxs("div", {
|
|
63
|
+
className: "block-editor-grid-item-mover__move-vertical-button-container",
|
|
64
|
+
children: [/*#__PURE__*/_jsx(GridItemMover, {
|
|
65
|
+
className: "is-up-button",
|
|
66
|
+
icon: chevronUp,
|
|
67
|
+
label: __('Move up'),
|
|
68
|
+
description: __('Move up'),
|
|
69
|
+
isDisabled: rowStart <= 1,
|
|
70
|
+
onClick: () => {
|
|
71
|
+
onChange({
|
|
72
|
+
rowStart: rowStart - 1
|
|
73
|
+
});
|
|
74
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
75
|
+
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStart, rowStart - 1));
|
|
76
|
+
}
|
|
77
|
+
}), /*#__PURE__*/_jsx(GridItemMover, {
|
|
78
|
+
className: "is-down-button",
|
|
79
|
+
icon: chevronDown,
|
|
80
|
+
label: __('Move down'),
|
|
81
|
+
description: __('Move down'),
|
|
82
|
+
isDisabled: rowCount && rowEnd >= rowCount,
|
|
83
|
+
onClick: () => {
|
|
84
|
+
onChange({
|
|
85
|
+
rowStart: rowStart + 1
|
|
86
|
+
});
|
|
87
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
88
|
+
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStart, rowStart + 1));
|
|
89
|
+
}
|
|
90
|
+
})]
|
|
91
|
+
}), /*#__PURE__*/_jsx(GridItemMover, {
|
|
92
|
+
className: "is-right-button",
|
|
93
|
+
icon: chevronRight,
|
|
94
|
+
label: __('Move right'),
|
|
95
|
+
description: __('Move right'),
|
|
96
|
+
isDisabled: columnCount && columnEnd >= columnCount,
|
|
97
|
+
onClick: () => {
|
|
98
|
+
onChange({
|
|
99
|
+
columnStart: columnStart + 1
|
|
100
|
+
});
|
|
101
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
102
|
+
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStart + 1, rowStart));
|
|
103
|
+
}
|
|
104
|
+
})]
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function GridItemMover({
|
|
109
|
+
className,
|
|
110
|
+
icon,
|
|
111
|
+
label,
|
|
112
|
+
isDisabled,
|
|
113
|
+
onClick,
|
|
114
|
+
description
|
|
115
|
+
}) {
|
|
116
|
+
const instanceId = useInstanceId(GridItemMover);
|
|
117
|
+
const descriptionId = `block-editor-grid-item-mover-button__description-${instanceId}`;
|
|
118
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
43
119
|
children: [/*#__PURE__*/_jsx(ToolbarButton, {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}), /*#__PURE__*/_jsx(ToolbarButton, {
|
|
55
|
-
icon: arrowDown,
|
|
56
|
-
label: __('Move block down'),
|
|
57
|
-
isDisabled: rowCount && rowEnd >= rowCount,
|
|
58
|
-
onClick: () => {
|
|
59
|
-
onChange({
|
|
60
|
-
rowStart: rowStart + 1
|
|
61
|
-
});
|
|
62
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
63
|
-
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStartNumber, rowStartNumber + 1));
|
|
64
|
-
}
|
|
65
|
-
}), /*#__PURE__*/_jsx(ToolbarButton, {
|
|
66
|
-
icon: arrowLeft,
|
|
67
|
-
label: __('Move block left'),
|
|
68
|
-
isDisabled: columnStart <= 1,
|
|
69
|
-
onClick: () => {
|
|
70
|
-
onChange({
|
|
71
|
-
columnStart: columnStartNumber - 1
|
|
72
|
-
});
|
|
73
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
74
|
-
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStartNumber - 1, rowStartNumber));
|
|
75
|
-
}
|
|
76
|
-
}), /*#__PURE__*/_jsx(ToolbarButton, {
|
|
77
|
-
icon: arrowRight,
|
|
78
|
-
label: __('Move block right'),
|
|
79
|
-
isDisabled: columnCount && columnEnd >= columnCount,
|
|
80
|
-
onClick: () => {
|
|
81
|
-
onChange({
|
|
82
|
-
columnStart: columnStartNumber + 1
|
|
83
|
-
});
|
|
84
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
85
|
-
moveBlocksToPosition([blockClientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(columnStartNumber + 1, rowStartNumber));
|
|
86
|
-
}
|
|
120
|
+
className: clsx('block-editor-grid-item-mover-button', className),
|
|
121
|
+
icon: icon,
|
|
122
|
+
label: label,
|
|
123
|
+
"aria-describedby": descriptionId,
|
|
124
|
+
onClick: isDisabled ? null : onClick,
|
|
125
|
+
disabled: isDisabled,
|
|
126
|
+
accessibleWhenDisabled: true
|
|
127
|
+
}), /*#__PURE__*/_jsx(VisuallyHidden, {
|
|
128
|
+
id: descriptionId,
|
|
129
|
+
children: description
|
|
87
130
|
})]
|
|
88
131
|
});
|
|
89
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","ToolbarButton","arrowLeft","arrowUp","arrowDown","arrowRight","useDispatch","BlockControls","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","GridItemMovers","layout","parentLayout","onChange","gridClientId","blockClientId","_layout$columnStart","_layout$rowStart","_layout$columnSpan","_layout$rowSpan","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","columnStart","rowStart","columnSpan","rowSpan","columnEnd","rowEnd","columnCount","rowCount","columnCountNumber","parseInt","rowStartNumber","columnStartNumber","getNumberOfBlocksBeforeCell","group","children","icon","label","isDisabled","onClick"],"sources":["@wordpress/block-editor/src/components/grid/grid-item-movers.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToolbarButton } from '@wordpress/components';\nimport { arrowLeft, arrowUp, arrowDown, arrowRight } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nexport function GridItemMovers( {\n\tlayout,\n\tparentLayout,\n\tonChange,\n\tgridClientId,\n\tblockClientId,\n} ) {\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst columnStart = layout?.columnStart ?? 1;\n\tconst rowStart = layout?.rowStart ?? 1;\n\tconst columnSpan = layout?.columnSpan ?? 1;\n\tconst rowSpan = layout?.rowSpan ?? 1;\n\tconst columnEnd = columnStart + columnSpan - 1;\n\tconst rowEnd = rowStart + rowSpan - 1;\n\tconst columnCount = parentLayout?.columnCount;\n\tconst rowCount = parentLayout?.rowCount;\n\n\tconst columnCountNumber = parseInt( columnCount, 10 );\n\tconst rowStartNumber = parseInt( rowStart, 10 );\n\tconst columnStartNumber = parseInt( columnStart, 10 );\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tcolumnCountNumber\n\t);\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ arrowUp }\n\t\t\t\tlabel={ __( 'Move block up' ) }\n\t\t\t\tisDisabled={ rowStart <= 1 }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\trowStart: rowStart - 1,\n\t\t\t\t\t} );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\tcolumnStartNumber,\n\t\t\t\t\t\t\trowStartNumber - 1\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ arrowDown }\n\t\t\t\tlabel={ __( 'Move block down' ) }\n\t\t\t\tisDisabled={ rowCount && rowEnd >= rowCount }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\trowStart: rowStart + 1,\n\t\t\t\t\t} );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\tcolumnStartNumber,\n\t\t\t\t\t\t\trowStartNumber + 1\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ arrowLeft }\n\t\t\t\tlabel={ __( 'Move block left' ) }\n\t\t\t\tisDisabled={ columnStart <= 1 }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tcolumnStart: columnStartNumber - 1,\n\t\t\t\t\t} );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\tcolumnStartNumber - 1,\n\t\t\t\t\t\t\trowStartNumber\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<ToolbarButton\n\t\t\t\ticon={ arrowRight }\n\t\t\t\tlabel={ __( 'Move block right' ) }\n\t\t\t\tisDisabled={ columnCount && columnEnd >= columnCount }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tcolumnStart: columnStartNumber + 1,\n\t\t\t\t\t} );\n\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\tcolumnStartNumber + 1,\n\t\t\t\t\t\t\trowStartNumber\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</BlockControls>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","__","VisuallyHidden","ToolbarButton","ToolbarGroup","chevronLeft","chevronUp","chevronDown","chevronRight","useDispatch","useInstanceId","BlockControls","useGetNumberOfBlocksBeforeCell","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GridItemMovers","layout","parentLayout","onChange","gridClientId","blockClientId","_layout$columnStart","_layout$rowStart","_layout$columnSpan","_layout$rowSpan","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","columnStart","rowStart","columnSpan","rowSpan","columnEnd","rowEnd","columnCount","rowCount","getNumberOfBlocksBeforeCell","group","children","className","GridItemMover","icon","label","description","isDisabled","onClick","instanceId","descriptionId","disabled","accessibleWhenDisabled","id"],"sources":["@wordpress/block-editor/src/components/grid/grid-item-movers.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tVisuallyHidden,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport {\n\tchevronLeft,\n\tchevronUp,\n\tchevronDown,\n\tchevronRight,\n} from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';\nimport { store as blockEditorStore } from '../../store';\n\nexport function GridItemMovers( {\n\tlayout,\n\tparentLayout,\n\tonChange,\n\tgridClientId,\n\tblockClientId,\n} ) {\n\tconst { moveBlocksToPosition, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst columnStart = layout?.columnStart ?? 1;\n\tconst rowStart = layout?.rowStart ?? 1;\n\tconst columnSpan = layout?.columnSpan ?? 1;\n\tconst rowSpan = layout?.rowSpan ?? 1;\n\tconst columnEnd = columnStart + columnSpan - 1;\n\tconst rowEnd = rowStart + rowSpan - 1;\n\tconst columnCount = parentLayout?.columnCount;\n\tconst rowCount = parentLayout?.rowCount;\n\n\tconst getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(\n\t\tgridClientId,\n\t\tcolumnCount\n\t);\n\n\treturn (\n\t\t<BlockControls group=\"parent\">\n\t\t\t<ToolbarGroup className=\"block-editor-grid-item-mover__move-button-container\">\n\t\t\t\t<GridItemMover\n\t\t\t\t\tclassName=\"is-left-button\"\n\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\tlabel={ __( 'Move left' ) }\n\t\t\t\t\tdescription={ __( 'Move left' ) }\n\t\t\t\t\tisDisabled={ columnStart <= 1 }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart: columnStart - 1,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\tcolumnStart - 1,\n\t\t\t\t\t\t\t\trowStart\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\t<div className=\"block-editor-grid-item-mover__move-vertical-button-container\">\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\tclassName=\"is-up-button\"\n\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\tlabel={ __( 'Move up' ) }\n\t\t\t\t\t\tdescription={ __( 'Move up' ) }\n\t\t\t\t\t\tisDisabled={ rowStart <= 1 }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\trowStart: rowStart - 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart - 1\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<GridItemMover\n\t\t\t\t\t\tclassName=\"is-down-button\"\n\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\tlabel={ __( 'Move down' ) }\n\t\t\t\t\t\tdescription={ __( 'Move down' ) }\n\t\t\t\t\t\tisDisabled={ rowCount && rowEnd >= rowCount }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\trowStart: rowStart + 1,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\t\tcolumnStart,\n\t\t\t\t\t\t\t\t\trowStart + 1\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</div>\n\t\t\t\t<GridItemMover\n\t\t\t\t\tclassName=\"is-right-button\"\n\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\tlabel={ __( 'Move right' ) }\n\t\t\t\t\tdescription={ __( 'Move right' ) }\n\t\t\t\t\tisDisabled={ columnCount && columnEnd >= columnCount }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\tcolumnStart: columnStart + 1,\n\t\t\t\t\t\t} );\n\t\t\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t[ blockClientId ],\n\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\tgridClientId,\n\t\t\t\t\t\t\tgetNumberOfBlocksBeforeCell(\n\t\t\t\t\t\t\t\tcolumnStart + 1,\n\t\t\t\t\t\t\t\trowStart\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</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n\nfunction GridItemMover( {\n\tclassName,\n\ticon,\n\tlabel,\n\tisDisabled,\n\tonClick,\n\tdescription,\n} ) {\n\tconst instanceId = useInstanceId( GridItemMover );\n\tconst descriptionId = `block-editor-grid-item-mover-button__description-${ instanceId }`;\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-grid-item-mover-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ label }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\tdisabled={ isDisabled }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t/>\n\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t{ description }\n\t\t\t</VisuallyHidden>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,7 @@ export function GridItemResizer({
|
|
|
20
20
|
const blockElement = useBlockElement(clientId);
|
|
21
21
|
const rootBlockElement = blockElement?.parentElement;
|
|
22
22
|
const {
|
|
23
|
-
|
|
23
|
+
isManualPlacement
|
|
24
24
|
} = parentLayout;
|
|
25
25
|
if (!blockElement || !rootBlockElement) {
|
|
26
26
|
return null;
|
|
@@ -31,7 +31,7 @@ export function GridItemResizer({
|
|
|
31
31
|
blockElement: blockElement,
|
|
32
32
|
rootBlockElement: rootBlockElement,
|
|
33
33
|
onChange: onChange,
|
|
34
|
-
isManualGrid:
|
|
34
|
+
isManualGrid: isManualPlacement && window.__experimentalEnableGridInteractivity
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
function GridItemResizerInner({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ResizableBox","useState","useEffect","__unstableUseBlockElement","useBlockElement","BlockPopoverCover","getComputedCSS","getGridTracks","getClosestTrack","jsx","_jsx","GridItemResizer","clientId","bounds","onChange","parentLayout","blockElement","rootBlockElement","parentElement","columnCount","GridItemResizerInner","isManualGrid","window","__experimentalEnableGridInteractivity","resizeDirection","setResizeDirection","enableSide","setEnableSide","top","bottom","left","right","observer","ResizeObserver","blockClientRect","getBoundingClientRect","rootBlockClientRect","observe","disconnect","justification","alignment","styles","display","justifyContent","alignItems","className","__unstablePopoverSlot","additionalStyles","children","size","width","height","enable","bottomLeft","bottomRight","topLeft","topRight","boundsByDirection","onResizeStart","event","direction","ownerDocument","addEventListener","target","dispatchEvent","Event","bubbles","once","onResizeStop","boxElement","columnGap","parseFloat","rowGap","gridColumnTracks","gridRowTracks","rect","DOMRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","columnStart","rowStart","columnEnd","rowEnd","columnSpan","rowSpan","undefined"],"sources":["@wordpress/block-editor/src/components/grid/grid-item-resizer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockPopoverCover from '../block-popover/cover';\nimport { getComputedCSS, getGridTracks, getClosestTrack } from './utils';\n\nexport function GridItemResizer( {\n\tclientId,\n\tbounds,\n\tonChange,\n\tparentLayout,\n} ) {\n\tconst blockElement = useBlockElement( clientId );\n\tconst rootBlockElement = blockElement?.parentElement;\n\tconst { columnCount } = parentLayout;\n\n\tif ( ! blockElement || ! rootBlockElement ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GridItemResizerInner\n\t\t\tclientId={ clientId }\n\t\t\tbounds={ bounds }\n\t\t\tblockElement={ blockElement }\n\t\t\trootBlockElement={ rootBlockElement }\n\t\t\tonChange={ onChange }\n\t\t\tisManualGrid={\n\t\t\t\t!! columnCount && window.__experimentalEnableGridInteractivity\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction GridItemResizerInner( {\n\tclientId,\n\tbounds,\n\tblockElement,\n\trootBlockElement,\n\tonChange,\n\tisManualGrid,\n} ) {\n\tconst [ resizeDirection, setResizeDirection ] = useState( null );\n\tconst [ enableSide, setEnableSide ] = useState( {\n\t\ttop: false,\n\t\tbottom: false,\n\t\tleft: false,\n\t\tright: false,\n\t} );\n\n\tuseEffect( () => {\n\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\tconst blockClientRect = blockElement.getBoundingClientRect();\n\t\t\tconst rootBlockClientRect =\n\t\t\t\trootBlockElement.getBoundingClientRect();\n\t\t\tsetEnableSide( {\n\t\t\t\ttop: blockClientRect.top > rootBlockClientRect.top,\n\t\t\t\tbottom: blockClientRect.bottom < rootBlockClientRect.bottom,\n\t\t\t\tleft: blockClientRect.left > rootBlockClientRect.left,\n\t\t\t\tright: blockClientRect.right < rootBlockClientRect.right,\n\t\t\t} );\n\t\t} );\n\t\tobserver.observe( blockElement );\n\t\treturn () => observer.disconnect();\n\t}, [ blockElement, rootBlockElement ] );\n\n\tconst justification = {\n\t\tright: 'flex-start',\n\t\tleft: 'flex-end',\n\t};\n\n\tconst alignment = {\n\t\ttop: 'flex-end',\n\t\tbottom: 'flex-start',\n\t};\n\n\tconst styles = {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\t...( justification[ resizeDirection ] && {\n\t\t\tjustifyContent: justification[ resizeDirection ],\n\t\t} ),\n\t\t...( alignment[ resizeDirection ] && {\n\t\t\talignItems: alignment[ resizeDirection ],\n\t\t} ),\n\t};\n\n\treturn (\n\t\t<BlockPopoverCover\n\t\t\tclassName=\"block-editor-grid-item-resizer\"\n\t\t\tclientId={ clientId }\n\t\t\t__unstablePopoverSlot=\"block-toolbar\"\n\t\t\tadditionalStyles={ styles }\n\t\t>\n\t\t\t<ResizableBox\n\t\t\t\tclassName=\"block-editor-grid-item-resizer__box\"\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t} }\n\t\t\t\tenable={ {\n\t\t\t\t\tbottom: enableSide.bottom,\n\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\tbottomRight: false,\n\t\t\t\t\tleft: enableSide.left,\n\t\t\t\t\tright: enableSide.right,\n\t\t\t\t\ttop: enableSide.top,\n\t\t\t\t\ttopLeft: false,\n\t\t\t\t\ttopRight: false,\n\t\t\t\t} }\n\t\t\t\tbounds={ bounds }\n\t\t\t\tboundsByDirection\n\t\t\t\tonResizeStart={ ( event, direction ) => {\n\t\t\t\t\t/*\n\t\t\t\t\t * The container justification and alignment need to be set\n\t\t\t\t\t * according to the direction the resizer is being dragged in,\n\t\t\t\t\t * so that it resizes in the right direction.\n\t\t\t\t\t */\n\t\t\t\t\tsetResizeDirection( direction );\n\n\t\t\t\t\t/*\n\t\t\t\t\t * The mouseup event on the resize handle doesn't trigger if the mouse\n\t\t\t\t\t * isn't directly above the handle, so we try to detect if it happens\n\t\t\t\t\t * outside the grid and dispatch a mouseup event on the handle.\n\t\t\t\t\t */\n\t\t\t\t\tblockElement.ownerDocument.addEventListener(\n\t\t\t\t\t\t'mouseup',\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tevent.target.dispatchEvent(\n\t\t\t\t\t\t\t\tnew Event( 'mouseup', { bubbles: true } )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ once: true }\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, boxElement ) => {\n\t\t\t\t\tconst columnGap = parseFloat(\n\t\t\t\t\t\tgetComputedCSS( rootBlockElement, 'column-gap' )\n\t\t\t\t\t);\n\t\t\t\t\tconst rowGap = parseFloat(\n\t\t\t\t\t\tgetComputedCSS( rootBlockElement, 'row-gap' )\n\t\t\t\t\t);\n\t\t\t\t\tconst gridColumnTracks = getGridTracks(\n\t\t\t\t\t\tgetComputedCSS(\n\t\t\t\t\t\t\trootBlockElement,\n\t\t\t\t\t\t\t'grid-template-columns'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcolumnGap\n\t\t\t\t\t);\n\t\t\t\t\tconst gridRowTracks = getGridTracks(\n\t\t\t\t\t\tgetComputedCSS(\n\t\t\t\t\t\t\trootBlockElement,\n\t\t\t\t\t\t\t'grid-template-rows'\n\t\t\t\t\t\t),\n\t\t\t\t\t\trowGap\n\t\t\t\t\t);\n\t\t\t\t\tconst rect = new window.DOMRect(\n\t\t\t\t\t\tblockElement.offsetLeft + boxElement.offsetLeft,\n\t\t\t\t\t\tblockElement.offsetTop + boxElement.offsetTop,\n\t\t\t\t\t\tboxElement.offsetWidth,\n\t\t\t\t\t\tboxElement.offsetHeight\n\t\t\t\t\t);\n\t\t\t\t\tconst columnStart =\n\t\t\t\t\t\tgetClosestTrack( gridColumnTracks, rect.left ) + 1;\n\t\t\t\t\tconst rowStart =\n\t\t\t\t\t\tgetClosestTrack( gridRowTracks, rect.top ) + 1;\n\t\t\t\t\tconst columnEnd =\n\t\t\t\t\t\tgetClosestTrack( gridColumnTracks, rect.right, 'end' ) +\n\t\t\t\t\t\t1;\n\t\t\t\t\tconst rowEnd =\n\t\t\t\t\t\tgetClosestTrack( gridRowTracks, rect.bottom, 'end' ) +\n\t\t\t\t\t\t1;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tcolumnSpan: columnEnd - columnStart + 1,\n\t\t\t\t\t\trowSpan: rowEnd - rowStart + 1,\n\t\t\t\t\t\tcolumnStart: isManualGrid ? columnStart : undefined,\n\t\t\t\t\t\trowStart: isManualGrid ? rowStart : undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</BlockPopoverCover>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ResizableBox","useState","useEffect","__unstableUseBlockElement","useBlockElement","BlockPopoverCover","getComputedCSS","getGridTracks","getClosestTrack","jsx","_jsx","GridItemResizer","clientId","bounds","onChange","parentLayout","blockElement","rootBlockElement","parentElement","isManualPlacement","GridItemResizerInner","isManualGrid","window","__experimentalEnableGridInteractivity","resizeDirection","setResizeDirection","enableSide","setEnableSide","top","bottom","left","right","observer","ResizeObserver","blockClientRect","getBoundingClientRect","rootBlockClientRect","observe","disconnect","justification","alignment","styles","display","justifyContent","alignItems","className","__unstablePopoverSlot","additionalStyles","children","size","width","height","enable","bottomLeft","bottomRight","topLeft","topRight","boundsByDirection","onResizeStart","event","direction","ownerDocument","addEventListener","target","dispatchEvent","Event","bubbles","once","onResizeStop","boxElement","columnGap","parseFloat","rowGap","gridColumnTracks","gridRowTracks","rect","DOMRect","offsetLeft","offsetTop","offsetWidth","offsetHeight","columnStart","rowStart","columnEnd","rowEnd","columnSpan","rowSpan","undefined"],"sources":["@wordpress/block-editor/src/components/grid/grid-item-resizer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockPopoverCover from '../block-popover/cover';\nimport { getComputedCSS, getGridTracks, getClosestTrack } from './utils';\n\nexport function GridItemResizer( {\n\tclientId,\n\tbounds,\n\tonChange,\n\tparentLayout,\n} ) {\n\tconst blockElement = useBlockElement( clientId );\n\tconst rootBlockElement = blockElement?.parentElement;\n\tconst { isManualPlacement } = parentLayout;\n\n\tif ( ! blockElement || ! rootBlockElement ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GridItemResizerInner\n\t\t\tclientId={ clientId }\n\t\t\tbounds={ bounds }\n\t\t\tblockElement={ blockElement }\n\t\t\trootBlockElement={ rootBlockElement }\n\t\t\tonChange={ onChange }\n\t\t\tisManualGrid={\n\t\t\t\tisManualPlacement &&\n\t\t\t\twindow.__experimentalEnableGridInteractivity\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction GridItemResizerInner( {\n\tclientId,\n\tbounds,\n\tblockElement,\n\trootBlockElement,\n\tonChange,\n\tisManualGrid,\n} ) {\n\tconst [ resizeDirection, setResizeDirection ] = useState( null );\n\tconst [ enableSide, setEnableSide ] = useState( {\n\t\ttop: false,\n\t\tbottom: false,\n\t\tleft: false,\n\t\tright: false,\n\t} );\n\n\tuseEffect( () => {\n\t\tconst observer = new window.ResizeObserver( () => {\n\t\t\tconst blockClientRect = blockElement.getBoundingClientRect();\n\t\t\tconst rootBlockClientRect =\n\t\t\t\trootBlockElement.getBoundingClientRect();\n\t\t\tsetEnableSide( {\n\t\t\t\ttop: blockClientRect.top > rootBlockClientRect.top,\n\t\t\t\tbottom: blockClientRect.bottom < rootBlockClientRect.bottom,\n\t\t\t\tleft: blockClientRect.left > rootBlockClientRect.left,\n\t\t\t\tright: blockClientRect.right < rootBlockClientRect.right,\n\t\t\t} );\n\t\t} );\n\t\tobserver.observe( blockElement );\n\t\treturn () => observer.disconnect();\n\t}, [ blockElement, rootBlockElement ] );\n\n\tconst justification = {\n\t\tright: 'flex-start',\n\t\tleft: 'flex-end',\n\t};\n\n\tconst alignment = {\n\t\ttop: 'flex-end',\n\t\tbottom: 'flex-start',\n\t};\n\n\tconst styles = {\n\t\tdisplay: 'flex',\n\t\tjustifyContent: 'center',\n\t\talignItems: 'center',\n\t\t...( justification[ resizeDirection ] && {\n\t\t\tjustifyContent: justification[ resizeDirection ],\n\t\t} ),\n\t\t...( alignment[ resizeDirection ] && {\n\t\t\talignItems: alignment[ resizeDirection ],\n\t\t} ),\n\t};\n\n\treturn (\n\t\t<BlockPopoverCover\n\t\t\tclassName=\"block-editor-grid-item-resizer\"\n\t\t\tclientId={ clientId }\n\t\t\t__unstablePopoverSlot=\"block-toolbar\"\n\t\t\tadditionalStyles={ styles }\n\t\t>\n\t\t\t<ResizableBox\n\t\t\t\tclassName=\"block-editor-grid-item-resizer__box\"\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t} }\n\t\t\t\tenable={ {\n\t\t\t\t\tbottom: enableSide.bottom,\n\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\tbottomRight: false,\n\t\t\t\t\tleft: enableSide.left,\n\t\t\t\t\tright: enableSide.right,\n\t\t\t\t\ttop: enableSide.top,\n\t\t\t\t\ttopLeft: false,\n\t\t\t\t\ttopRight: false,\n\t\t\t\t} }\n\t\t\t\tbounds={ bounds }\n\t\t\t\tboundsByDirection\n\t\t\t\tonResizeStart={ ( event, direction ) => {\n\t\t\t\t\t/*\n\t\t\t\t\t * The container justification and alignment need to be set\n\t\t\t\t\t * according to the direction the resizer is being dragged in,\n\t\t\t\t\t * so that it resizes in the right direction.\n\t\t\t\t\t */\n\t\t\t\t\tsetResizeDirection( direction );\n\n\t\t\t\t\t/*\n\t\t\t\t\t * The mouseup event on the resize handle doesn't trigger if the mouse\n\t\t\t\t\t * isn't directly above the handle, so we try to detect if it happens\n\t\t\t\t\t * outside the grid and dispatch a mouseup event on the handle.\n\t\t\t\t\t */\n\t\t\t\t\tblockElement.ownerDocument.addEventListener(\n\t\t\t\t\t\t'mouseup',\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tevent.target.dispatchEvent(\n\t\t\t\t\t\t\t\tnew Event( 'mouseup', { bubbles: true } )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{ once: true }\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, boxElement ) => {\n\t\t\t\t\tconst columnGap = parseFloat(\n\t\t\t\t\t\tgetComputedCSS( rootBlockElement, 'column-gap' )\n\t\t\t\t\t);\n\t\t\t\t\tconst rowGap = parseFloat(\n\t\t\t\t\t\tgetComputedCSS( rootBlockElement, 'row-gap' )\n\t\t\t\t\t);\n\t\t\t\t\tconst gridColumnTracks = getGridTracks(\n\t\t\t\t\t\tgetComputedCSS(\n\t\t\t\t\t\t\trootBlockElement,\n\t\t\t\t\t\t\t'grid-template-columns'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcolumnGap\n\t\t\t\t\t);\n\t\t\t\t\tconst gridRowTracks = getGridTracks(\n\t\t\t\t\t\tgetComputedCSS(\n\t\t\t\t\t\t\trootBlockElement,\n\t\t\t\t\t\t\t'grid-template-rows'\n\t\t\t\t\t\t),\n\t\t\t\t\t\trowGap\n\t\t\t\t\t);\n\t\t\t\t\tconst rect = new window.DOMRect(\n\t\t\t\t\t\tblockElement.offsetLeft + boxElement.offsetLeft,\n\t\t\t\t\t\tblockElement.offsetTop + boxElement.offsetTop,\n\t\t\t\t\t\tboxElement.offsetWidth,\n\t\t\t\t\t\tboxElement.offsetHeight\n\t\t\t\t\t);\n\t\t\t\t\tconst columnStart =\n\t\t\t\t\t\tgetClosestTrack( gridColumnTracks, rect.left ) + 1;\n\t\t\t\t\tconst rowStart =\n\t\t\t\t\t\tgetClosestTrack( gridRowTracks, rect.top ) + 1;\n\t\t\t\t\tconst columnEnd =\n\t\t\t\t\t\tgetClosestTrack( gridColumnTracks, rect.right, 'end' ) +\n\t\t\t\t\t\t1;\n\t\t\t\t\tconst rowEnd =\n\t\t\t\t\t\tgetClosestTrack( gridRowTracks, rect.bottom, 'end' ) +\n\t\t\t\t\t\t1;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tcolumnSpan: columnEnd - columnStart + 1,\n\t\t\t\t\t\trowSpan: rowEnd - rowStart + 1,\n\t\t\t\t\t\tcolumnStart: isManualGrid ? columnStart : undefined,\n\t\t\t\t\t\trowStart: isManualGrid ? rowStart : undefined,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</BlockPopoverCover>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,7 @@ import clsx from 'clsx';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { useState, useEffect, forwardRef } from '@wordpress/element';
|
|
9
|
+
import { useState, useEffect, forwardRef, useMemo } from '@wordpress/element';
|
|
10
10
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
11
11
|
import { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';
|
|
12
12
|
|
|
@@ -18,6 +18,7 @@ import BlockPopoverCover from '../block-popover/cover';
|
|
|
18
18
|
import { range, GridRect, getGridInfo } from './utils';
|
|
19
19
|
import { store as blockEditorStore } from '../../store';
|
|
20
20
|
import { useGetNumberOfBlocksBeforeCell } from './use-get-number-of-blocks-before-cell';
|
|
21
|
+
import ButtonBlockAppender from '../button-block-appender';
|
|
21
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
23
|
export function GridVisualizer({
|
|
23
24
|
clientId,
|
|
@@ -29,22 +30,21 @@ export function GridVisualizer({
|
|
|
29
30
|
if (isDistractionFree || !gridElement) {
|
|
30
31
|
return null;
|
|
31
32
|
}
|
|
32
|
-
const isManualGrid = parentLayout?.
|
|
33
|
+
const isManualGrid = parentLayout?.isManualPlacement && window.__experimentalEnableGridInteractivity;
|
|
33
34
|
return /*#__PURE__*/_jsx(GridVisualizerGrid, {
|
|
34
|
-
|
|
35
|
+
gridClientId: clientId,
|
|
35
36
|
gridElement: gridElement,
|
|
36
37
|
isManualGrid: isManualGrid,
|
|
37
38
|
ref: contentRef
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
const GridVisualizerGrid = forwardRef(({
|
|
41
|
-
|
|
42
|
+
gridClientId,
|
|
42
43
|
gridElement,
|
|
43
44
|
isManualGrid
|
|
44
45
|
}, ref) => {
|
|
45
46
|
const [gridInfo, setGridInfo] = useState(() => getGridInfo(gridElement));
|
|
46
47
|
const [isDroppingAllowed, setIsDroppingAllowed] = useState(false);
|
|
47
|
-
const [highlightedRect, setHighlightedRect] = useState(null);
|
|
48
48
|
useEffect(() => {
|
|
49
49
|
const observers = [];
|
|
50
50
|
for (const element of [gridElement, ...gridElement.children]) {
|
|
@@ -78,23 +78,16 @@ const GridVisualizerGrid = forwardRef(({
|
|
|
78
78
|
className: clsx('block-editor-grid-visualizer', {
|
|
79
79
|
'is-dropping-allowed': isDroppingAllowed
|
|
80
80
|
}),
|
|
81
|
-
clientId:
|
|
82
|
-
__unstablePopoverSlot: "block-
|
|
81
|
+
clientId: gridClientId,
|
|
82
|
+
__unstablePopoverSlot: "__unstable-block-tools-after",
|
|
83
83
|
children: /*#__PURE__*/_jsx("div", {
|
|
84
84
|
ref: ref,
|
|
85
85
|
className: "block-editor-grid-visualizer__grid",
|
|
86
86
|
style: gridInfo.style,
|
|
87
|
-
children: isManualGrid ?
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
row: row,
|
|
92
|
-
gridClientId: clientId,
|
|
93
|
-
gridInfo: gridInfo,
|
|
94
|
-
highlightedRect: highlightedRect,
|
|
95
|
-
setHighlightedRect: setHighlightedRect
|
|
96
|
-
})
|
|
97
|
-
}, `${row}-${column}`))) : Array.from({
|
|
87
|
+
children: isManualGrid ? /*#__PURE__*/_jsx(ManualGridVisualizer, {
|
|
88
|
+
gridClientId: gridClientId,
|
|
89
|
+
gridInfo: gridInfo
|
|
90
|
+
}) : Array.from({
|
|
98
91
|
length: gridInfo.numItems
|
|
99
92
|
}, (_, i) => /*#__PURE__*/_jsx(GridVisualizerCell, {
|
|
100
93
|
color: gridInfo.currentColor
|
|
@@ -102,29 +95,74 @@ const GridVisualizerGrid = forwardRef(({
|
|
|
102
95
|
})
|
|
103
96
|
});
|
|
104
97
|
});
|
|
98
|
+
function ManualGridVisualizer({
|
|
99
|
+
gridClientId,
|
|
100
|
+
gridInfo
|
|
101
|
+
}) {
|
|
102
|
+
const [highlightedRect, setHighlightedRect] = useState(null);
|
|
103
|
+
const gridItems = useSelect(select => select(blockEditorStore).getBlocks(gridClientId), [gridClientId]);
|
|
104
|
+
const occupiedRects = useMemo(() => {
|
|
105
|
+
const rects = [];
|
|
106
|
+
for (const block of gridItems) {
|
|
107
|
+
const {
|
|
108
|
+
columnStart,
|
|
109
|
+
rowStart,
|
|
110
|
+
columnSpan = 1,
|
|
111
|
+
rowSpan = 1
|
|
112
|
+
} = block.attributes.style?.layout || {};
|
|
113
|
+
if (!columnStart || !rowStart) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
rects.push(new GridRect({
|
|
117
|
+
columnStart,
|
|
118
|
+
rowStart,
|
|
119
|
+
columnSpan,
|
|
120
|
+
rowSpan
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
return rects;
|
|
124
|
+
}, [gridItems]);
|
|
125
|
+
return range(1, gridInfo.numRows).map(row => range(1, gridInfo.numColumns).map(column => {
|
|
126
|
+
var _highlightedRect$cont;
|
|
127
|
+
const isCellOccupied = occupiedRects.some(rect => rect.contains(column, row));
|
|
128
|
+
const isHighlighted = (_highlightedRect$cont = highlightedRect?.contains(column, row)) !== null && _highlightedRect$cont !== void 0 ? _highlightedRect$cont : false;
|
|
129
|
+
return /*#__PURE__*/_jsx(GridVisualizerCell, {
|
|
130
|
+
color: gridInfo.currentColor,
|
|
131
|
+
className: isHighlighted && 'is-highlighted',
|
|
132
|
+
children: isCellOccupied ? /*#__PURE__*/_jsx(GridVisualizerDropZone, {
|
|
133
|
+
column: column,
|
|
134
|
+
row: row,
|
|
135
|
+
gridClientId: gridClientId,
|
|
136
|
+
gridInfo: gridInfo,
|
|
137
|
+
setHighlightedRect: setHighlightedRect
|
|
138
|
+
}) : /*#__PURE__*/_jsx(GridVisualizerAppender, {
|
|
139
|
+
column: column,
|
|
140
|
+
row: row,
|
|
141
|
+
gridClientId: gridClientId,
|
|
142
|
+
gridInfo: gridInfo,
|
|
143
|
+
setHighlightedRect: setHighlightedRect
|
|
144
|
+
})
|
|
145
|
+
}, `${row}-${column}`);
|
|
146
|
+
}));
|
|
147
|
+
}
|
|
105
148
|
function GridVisualizerCell({
|
|
106
149
|
color,
|
|
107
|
-
children
|
|
150
|
+
children,
|
|
151
|
+
className
|
|
108
152
|
}) {
|
|
109
153
|
return /*#__PURE__*/_jsx("div", {
|
|
110
|
-
className:
|
|
154
|
+
className: clsx('block-editor-grid-visualizer__cell', className),
|
|
111
155
|
style: {
|
|
112
|
-
boxShadow: `inset 0 0 0 1px color-mix(in srgb, ${color} 20%, #0000)
|
|
156
|
+
boxShadow: `inset 0 0 0 1px color-mix(in srgb, ${color} 20%, #0000)`,
|
|
157
|
+
color
|
|
113
158
|
},
|
|
114
159
|
children: children
|
|
115
160
|
});
|
|
116
161
|
}
|
|
117
|
-
function
|
|
118
|
-
column,
|
|
119
|
-
row,
|
|
120
|
-
gridClientId,
|
|
121
|
-
gridInfo,
|
|
122
|
-
highlightedRect,
|
|
123
|
-
setHighlightedRect
|
|
124
|
-
}) {
|
|
125
|
-
var _highlightedRect$cont;
|
|
162
|
+
function useGridVisualizerDropZone(column, row, gridClientId, gridInfo, setHighlightedRect) {
|
|
126
163
|
const {
|
|
127
|
-
getBlockAttributes
|
|
164
|
+
getBlockAttributes,
|
|
165
|
+
getBlockRootClientId
|
|
128
166
|
} = useSelect(blockEditorStore);
|
|
129
167
|
const {
|
|
130
168
|
updateBlockAttributes,
|
|
@@ -132,7 +170,7 @@ function GridVisualizerDropZone({
|
|
|
132
170
|
__unstableMarkNextChangeAsNotPersistent
|
|
133
171
|
} = useDispatch(blockEditorStore);
|
|
134
172
|
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(gridClientId, gridInfo.numColumns);
|
|
135
|
-
|
|
173
|
+
return useDropZoneWithValidation({
|
|
136
174
|
validateDrag(srcClientId) {
|
|
137
175
|
const attributes = getBlockAttributes(srcClientId);
|
|
138
176
|
const rect = new GridRect({
|
|
@@ -176,15 +214,57 @@ function GridVisualizerDropZone({
|
|
|
176
214
|
}
|
|
177
215
|
});
|
|
178
216
|
__unstableMarkNextChangeAsNotPersistent();
|
|
179
|
-
moveBlocksToPosition([srcClientId],
|
|
217
|
+
moveBlocksToPosition([srcClientId], getBlockRootClientId(srcClientId), gridClientId, getNumberOfBlocksBeforeCell(column, row));
|
|
180
218
|
}
|
|
181
219
|
});
|
|
182
|
-
|
|
220
|
+
}
|
|
221
|
+
function GridVisualizerDropZone({
|
|
222
|
+
column,
|
|
223
|
+
row,
|
|
224
|
+
gridClientId,
|
|
225
|
+
gridInfo,
|
|
226
|
+
setHighlightedRect
|
|
227
|
+
}) {
|
|
183
228
|
return /*#__PURE__*/_jsx("div", {
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
229
|
+
className: "block-editor-grid-visualizer__drop-zone",
|
|
230
|
+
ref: useGridVisualizerDropZone(column, row, gridClientId, gridInfo, setHighlightedRect)
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
function GridVisualizerAppender({
|
|
234
|
+
column,
|
|
235
|
+
row,
|
|
236
|
+
gridClientId,
|
|
237
|
+
gridInfo,
|
|
238
|
+
setHighlightedRect
|
|
239
|
+
}) {
|
|
240
|
+
const {
|
|
241
|
+
updateBlockAttributes,
|
|
242
|
+
moveBlocksToPosition,
|
|
243
|
+
__unstableMarkNextChangeAsNotPersistent
|
|
244
|
+
} = useDispatch(blockEditorStore);
|
|
245
|
+
const getNumberOfBlocksBeforeCell = useGetNumberOfBlocksBeforeCell(gridClientId, gridInfo.numColumns);
|
|
246
|
+
return /*#__PURE__*/_jsx(ButtonBlockAppender, {
|
|
247
|
+
rootClientId: gridClientId,
|
|
248
|
+
className: "block-editor-grid-visualizer__appender",
|
|
249
|
+
ref: useGridVisualizerDropZone(column, row, gridClientId, gridInfo, setHighlightedRect),
|
|
250
|
+
style: {
|
|
251
|
+
color: gridInfo.currentColor
|
|
252
|
+
},
|
|
253
|
+
onSelect: block => {
|
|
254
|
+
if (!block) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
updateBlockAttributes(block.clientId, {
|
|
258
|
+
style: {
|
|
259
|
+
layout: {
|
|
260
|
+
columnStart: column,
|
|
261
|
+
rowStart: row
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
266
|
+
moveBlocksToPosition([block.clientId], gridClientId, gridClientId, getNumberOfBlocksBeforeCell(column, row));
|
|
267
|
+
}
|
|
188
268
|
});
|
|
189
269
|
}
|
|
190
270
|
function useDropZoneWithValidation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useState","useEffect","forwardRef","useSelect","useDispatch","__experimentalUseDropZone","useDropZone","__unstableUseBlockElement","useBlockElement","BlockPopoverCover","range","GridRect","getGridInfo","store","blockEditorStore","useGetNumberOfBlocksBeforeCell","jsx","_jsx","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","select","getSettings","gridElement","isManualGrid","columnCount","window","__experimentalEnableGridInteractivity","GridVisualizerGrid","ref","gridInfo","setGridInfo","isDroppingAllowed","setIsDroppingAllowed","highlightedRect","setHighlightedRect","observers","element","children","observer","ResizeObserver","observe","push","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","className","__unstablePopoverSlot","style","numRows","map","row","numColumns","column","GridVisualizerCell","color","currentColor","GridVisualizerDropZone","gridClientId","Array","from","length","numItems","_","i","boxShadow","_highlightedRect$cont","getBlockAttributes","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","attributes","rect","columnStart","rowStart","columnSpan","layout","rowSpan","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","isHighlighted","contains","getDraggedBlockClientIds"],"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 } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalUseDropZone as useDropZone } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as 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';\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?.columnCount &&\n\t\twindow.__experimentalEnableGridInteractivity;\n\treturn (\n\t\t<GridVisualizerGrid\n\t\t\tclientId={ 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( { clientId, 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\t\tconst [ highlightedRect, setHighlightedRect ] = useState( null );\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\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={ clientId }\n\t\t\t\t__unstablePopoverSlot=\"block-toolbar\"\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? range( 1, gridInfo.numRows ).map( ( row ) =>\n\t\t\t\t\t\t\t\trange( 1, gridInfo.numColumns ).map(\n\t\t\t\t\t\t\t\t\t( column ) => (\n\t\t\t\t\t\t\t\t\t\t<GridVisualizerCell\n\t\t\t\t\t\t\t\t\t\t\tkey={ `${ row }-${ column }` }\n\t\t\t\t\t\t\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<GridVisualizerDropZone\n\t\t\t\t\t\t\t\t\t\t\t\tcolumn={ column }\n\t\t\t\t\t\t\t\t\t\t\t\trow={ row }\n\t\t\t\t\t\t\t\t\t\t\t\tgridClientId={ clientId }\n\t\t\t\t\t\t\t\t\t\t\t\tgridInfo={ gridInfo }\n\t\t\t\t\t\t\t\t\t\t\t\thighlightedRect={\n\t\t\t\t\t\t\t\t\t\t\t\t\thighlightedRect\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tsetHighlightedRect={\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetHighlightedRect\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</GridVisualizerCell>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: Array.from(\n\t\t\t\t\t\t\t\t{ length: gridInfo.numItems },\n\t\t\t\t\t\t\t\t( _, i ) => (\n\t\t\t\t\t\t\t\t\t<GridVisualizerCell\n\t\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t\t\tcolor={ gridInfo.currentColor }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t</div>\n\t\t\t</BlockPopoverCover>\n\t\t);\n\t}\n);\n\nfunction GridVisualizerCell( { color, children } ) {\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-grid-visualizer__cell\"\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} }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction GridVisualizerDropZone( {\n\tcolumn,\n\trow,\n\tgridClientId,\n\tgridInfo,\n\thighlightedRect,\n\tsetHighlightedRect,\n} ) {\n\tconst { getBlockAttributes } = 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\tconst ref = useDropZoneWithValidation( {\n\t\tvalidateDrag( srcClientId ) {\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\tgridClientId,\n\t\t\t\tgridClientId,\n\t\t\t\tgetNumberOfBlocksBeforeCell( column, row )\n\t\t\t);\n\t\t},\n\t} );\n\n\tconst isHighlighted = highlightedRect?.contains( column, row ) ?? false;\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ clsx( 'block-editor-grid-visualizer__drop-zone', {\n\t\t\t\t'is-highlighted': isHighlighted,\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":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useState","useEffect","forwardRef","useMemo","useSelect","useDispatch","__experimentalUseDropZone","useDropZone","__unstableUseBlockElement","useBlockElement","BlockPopoverCover","range","GridRect","getGridInfo","store","blockEditorStore","useGetNumberOfBlocksBeforeCell","ButtonBlockAppender","jsx","_jsx","GridVisualizer","clientId","contentRef","parentLayout","isDistractionFree","select","getSettings","gridElement","isManualGrid","isManualPlacement","window","__experimentalEnableGridInteractivity","GridVisualizerGrid","gridClientId","ref","gridInfo","setGridInfo","isDroppingAllowed","setIsDroppingAllowed","observers","element","children","observer","ResizeObserver","observe","push","disconnect","onGlobalDrag","onGlobalDragEnd","document","addEventListener","removeEventListener","className","__unstablePopoverSlot","style","ManualGridVisualizer","Array","from","length","numItems","_","i","GridVisualizerCell","color","currentColor","highlightedRect","setHighlightedRect","gridItems","getBlocks","occupiedRects","rects","block","columnStart","rowStart","columnSpan","rowSpan","attributes","layout","numRows","map","row","numColumns","column","_highlightedRect$cont","isCellOccupied","some","rect","contains","isHighlighted","GridVisualizerDropZone","GridVisualizerAppender","boxShadow","useGridVisualizerDropZone","getBlockAttributes","getBlockRootClientId","updateBlockAttributes","moveBlocksToPosition","__unstableMarkNextChangeAsNotPersistent","getNumberOfBlocksBeforeCell","useDropZoneWithValidation","validateDrag","srcClientId","isInBounds","containsRect","onDragEnter","onDragLeave","prevHighlightedRect","onDrop","rootClientId","onSelect","getDraggedBlockClientIds"],"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 { __unstableUseBlockElement as 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';\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\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 gridItems = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlocks( gridClientId ),\n\t\t[ gridClientId ]\n\t);\n\tconst occupiedRects = useMemo( () => {\n\t\tconst rects = [];\n\t\tfor ( const block of gridItems ) {\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} = block.attributes.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}, [ gridItems ] );\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 { getBlockAttributes, getBlockRootClientId } =\n\t\tuseSelect( 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 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":[]}
|