@wordpress/block-editor 14.0.0 → 14.2.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 +10 -24
- package/build/autocompleters/block.js +1 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +2 -2
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +8 -2
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-canvas/index.js +8 -1
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-compare/block-view.js +4 -1
- package/build/components/block-compare/block-view.js.map +1 -1
- package/build/components/block-draggable/index.js +4 -4
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build/components/block-edit/multiple-usage-warning.js +8 -2
- package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build/components/block-inspector/index.js +27 -9
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +6 -3
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block.js +5 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +7 -3
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +46 -0
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build/components/block-list/use-in-between-inserter.js +11 -4
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/toolbar.js +3 -3
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-mover/button.js +4 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +4 -1
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +4 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +1 -4
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +22 -7
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +11 -14
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +12 -3
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-popover/index.js +2 -15
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +4 -1
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +22 -17
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +12 -11
- package/build/components/block-toolbar/index.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 +8 -2
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +10 -6
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -1
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +4 -5
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-popover.js +3 -4
- package/build/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +14 -5
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +4 -1
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +4 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/index.js +1 -0
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +14 -3
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +4 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/content-lock/index.js +13 -0
- package/build/components/content-lock/index.js.map +1 -0
- package/build/components/content-lock/modify-content-lock-menu-item.js +64 -0
- package/build/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -0
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/editor-styles/index.js +4 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +3 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +118 -50
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +8 -5
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js +1 -1
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +34 -37
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +4 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +3 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -7
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -6
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +13 -7
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +17 -6
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +11 -29
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-item-movers.js +2 -2
- package/build/components/grid/grid-item-movers.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +20 -5
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/height-control/index.js +1 -0
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +8 -6
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +11 -7
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +8 -8
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +7 -25
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +8 -12
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +4 -1
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +3 -3
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +1 -4
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +8 -2
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +4 -1
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/menu.js +14 -13
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +8 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter-list-item/index.js +4 -4
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inserter-listbox/index.js +3 -7
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +4 -1
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +4 -1
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +8 -2
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +7 -4
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +3 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +19 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +4 -1
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-select-button.js +4 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +36 -10
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +8 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +12 -12
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +19 -19
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +12 -1
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/index.js +38 -30
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js +5 -5
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -1
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +13 -8
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +13 -8
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +13 -8
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +4 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +12 -3
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +4 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -0
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +12 -2
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/writing-flow/index.js +2 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +4 -1
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-event-redirect.js +66 -0
- package/build/components/writing-flow/use-event-redirect.js.map +1 -0
- package/build/components/writing-flow/use-input.js +31 -1
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +14 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +20 -6
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +4 -4
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-flow/utils.js +27 -0
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/components/writing-mode-control/index.js +13 -8
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/background.js +19 -23
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +64 -103
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/content-lock-ui.js +8 -26
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/duotone.js +0 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout.js +4 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/spacing-visualizer.js +3 -3
- package/build/hooks/spacing-visualizer.js.map +1 -1
- package/build/hooks/style.js +1 -5
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +19 -20
- package/build/hooks/use-bindings-attributes.js.map +1 -1
- package/build/hooks/use-zoom-out.js +7 -7
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/layouts/constrained.js +42 -41
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +6 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +3 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/layouts/utils.js +1 -7
- package/build/layouts/utils.js.map +1 -1
- package/build/private-apis.js +4 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +2 -7
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +1 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-keys.js +2 -1
- package/build/store/private-keys.js.map +1 -1
- package/build/store/private-selectors.js +39 -11
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +2 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +19 -43
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +48 -0
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +117 -0
- package/build/utils/block-bindings.js.map +1 -0
- package/build/utils/dom.js +101 -0
- package/build/utils/dom.js.map +1 -1
- package/build/utils/get-font-styles-and-weights.js +4 -4
- package/build/utils/get-font-styles-and-weights.js.map +1 -1
- package/build/utils/transform-styles/index.js +120 -16
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/autocompleters/block.js +1 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +8 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-canvas/index.js +9 -1
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-compare/block-view.js +4 -1
- package/build-module/components/block-compare/block-view.js.map +1 -1
- package/build-module/components/block-draggable/index.js +4 -4
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
- package/build-module/components/block-edit/multiple-usage-warning.js +8 -2
- package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build-module/components/block-inspector/index.js +27 -9
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +6 -3
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +7 -3
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +40 -0
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build-module/components/block-list/use-in-between-inserter.js +11 -4
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +3 -3
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-mover/button.js +4 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -1
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +4 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +1 -4
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +23 -8
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +11 -14
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +12 -3
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -15
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +4 -1
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +4 -0
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +22 -17
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +1 -4
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +12 -11
- package/build-module/components/block-toolbar/index.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 +8 -2
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +10 -6
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +14 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -1
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +4 -5
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-popover.js +3 -4
- package/build-module/components/block-tools/zoom-out-popover.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +15 -6
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +4 -1
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +4 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +1 -0
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +15 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +4 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/content-lock/index.js +2 -0
- package/build-module/components/content-lock/index.js.map +1 -0
- package/build-module/components/content-lock/modify-content-lock-menu-item.js +57 -0
- package/build-module/components/content-lock/modify-content-lock-menu-item.js.map +1 -0
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -0
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +4 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +3 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +121 -53
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +7 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js +2 -2
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +36 -39
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +4 -1
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -6
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +13 -7
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +17 -6
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +5 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +11 -28
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-item-movers.js +3 -3
- package/build-module/components/grid/grid-item-movers.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +20 -5
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/height-control/index.js +1 -0
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +8 -6
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +12 -8
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +7 -6
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +6 -23
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +8 -12
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +4 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +4 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +3 -3
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +1 -4
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +8 -2
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +4 -1
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -13
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +9 -2
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +4 -4
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +3 -7
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +4 -1
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +4 -1
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js +3 -1
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +8 -2
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +7 -4
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +3 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +19 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +4 -1
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +4 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +36 -10
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +8 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +12 -12
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +19 -19
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +12 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/index.js +39 -31
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js +5 -5
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -1
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +13 -8
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +13 -8
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +13 -8
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +4 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +12 -3
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +2 -0
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +12 -2
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +2 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -1
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-event-redirect.js +60 -0
- package/build-module/components/writing-flow/use-event-redirect.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +31 -1
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +14 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +16 -2
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +4 -4
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-flow/utils.js +26 -0
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +13 -8
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/background.js +19 -23
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +66 -105
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +10 -30
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/duotone.js +0 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout.js +4 -1
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/spacing-visualizer.js +3 -3
- package/build-module/hooks/spacing-visualizer.js.map +1 -1
- package/build-module/hooks/style.js +1 -5
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +19 -20
- package/build-module/hooks/use-bindings-attributes.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +7 -7
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/layouts/constrained.js +44 -43
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +6 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +3 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/layouts/utils.js +1 -7
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +2 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +1 -0
- package/build-module/store/private-actions.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/private-selectors.js +36 -12
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +2 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +22 -46
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +46 -0
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +110 -0
- package/build-module/utils/block-bindings.js.map +1 -0
- package/build-module/utils/dom.js +99 -0
- package/build-module/utils/dom.js.map +1 -1
- package/build-module/utils/get-font-styles-and-weights.js +4 -4
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +120 -16
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +9 -25
- package/build-style/content.css +9 -25
- package/build-style/default-editor-styles-rtl.css +2 -2
- package/build-style/default-editor-styles.css +2 -2
- package/build-style/style-rtl.css +53 -76
- package/build-style/style.css +53 -76
- package/build-types/utils/dom.d.ts +25 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +34 -32
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-alignment-matrix-control/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +4 -0
- package/src/components/block-breadcrumb/style.scss +1 -1
- package/src/components/block-canvas/index.js +9 -1
- package/src/components/block-compare/block-view.js +7 -1
- package/src/components/block-draggable/content.scss +1 -1
- package/src/components/block-draggable/index.js +4 -4
- package/src/components/block-draggable/style.scss +1 -1
- package/src/components/block-draggable/use-scroll-when-dragging.js +25 -25
- package/src/components/block-edit/multiple-usage-warning.js +4 -0
- package/src/components/block-inspector/index.js +22 -6
- package/src/components/block-list/block-invalid-warning.js +4 -2
- package/src/components/block-list/block.js +6 -2
- package/src/components/block-list/content.scss +7 -16
- package/src/components/block-list/use-block-props/index.js +5 -2
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -0
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +44 -0
- package/src/components/block-list/use-in-between-inserter.js +17 -5
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-lock/toolbar.js +3 -3
- package/src/components/block-mover/button.js +2 -0
- package/src/components/block-mover/index.js +2 -0
- package/src/components/block-mover/style.scss +1 -1
- package/src/components/block-navigation/dropdown.js +2 -0
- package/src/components/block-pattern-setup/index.js +3 -7
- package/src/components/block-pattern-setup/setup-toolbar.js +17 -4
- package/src/components/block-pattern-setup/style.scss +2 -2
- package/src/components/block-patterns-list/index.js +15 -13
- package/src/components/block-patterns-list/style.scss +2 -2
- package/src/components/block-patterns-paging/index.js +6 -0
- package/src/components/block-popover/index.js +7 -28
- package/src/components/block-popover/style.scss +1 -1
- package/src/components/block-quick-navigation/index.js +2 -0
- package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
- package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
- package/src/components/block-settings-menu-controls/index.js +7 -1
- package/src/components/block-switcher/index.js +26 -20
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -7
- package/src/components/block-switcher/style.scss +5 -6
- package/src/components/block-toolbar/index.js +17 -8
- package/src/components/block-toolbar/shuffle.js +9 -7
- package/src/components/block-tools/block-selection-button.js +4 -0
- package/src/components/block-tools/block-toolbar-popover.js +10 -6
- package/src/components/block-tools/insertion-point.js +11 -0
- package/src/components/block-tools/style.scss +4 -5
- package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/src/components/block-tools/use-show-block-tools.js +4 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +5 -2
- package/src/components/block-tools/zoom-out-popover.js +3 -7
- package/src/components/block-tools/zoom-out-toolbar.js +20 -6
- package/src/components/block-variation-picker/README.md +2 -2
- package/src/components/block-variation-picker/index.js +6 -1
- package/src/components/block-variation-transforms/index.js +2 -0
- package/src/components/block-variation-transforms/style.scss +2 -2
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/style.scss +0 -10
- package/src/components/button-block-appender/content.scss +0 -1
- package/src/components/button-block-appender/index.js +14 -3
- package/src/components/color-palette/test/control.js +15 -2
- package/src/components/colors-gradients/dropdown.js +5 -1
- package/src/components/colors-gradients/style.scss +4 -4
- package/src/components/content-lock/index.js +1 -0
- package/src/components/content-lock/modify-content-lock-menu-item.js +58 -0
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/date-format-picker/index.js +2 -0
- package/src/components/default-block-appender/content.scss +0 -1
- package/src/components/editor-styles/index.js +4 -3
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-family/README.md +11 -2
- package/src/components/font-family/index.js +3 -0
- package/src/components/global-styles/background-panel.js +135 -64
- package/src/components/global-styles/color-panel.js +8 -4
- package/src/components/global-styles/color-panel.native.js +2 -2
- package/src/components/global-styles/dimensions-panel.js +40 -40
- package/src/components/global-styles/filters-panel.js +5 -1
- package/src/components/global-styles/get-global-styles-changes.js +4 -1
- package/src/components/global-styles/hooks.js +0 -5
- package/src/components/global-styles/index.js +0 -1
- package/src/components/global-styles/shadow-panel-components.js +12 -8
- package/src/components/global-styles/style.scss +16 -6
- package/src/components/global-styles/test/typography-utils.js +96 -5
- package/src/components/global-styles/test/use-global-styles-output.js +20 -4
- package/src/components/global-styles/test/utils.js +10 -0
- package/src/components/global-styles/typography-utils.js +22 -6
- package/src/components/global-styles/use-global-styles-output.js +5 -6
- package/src/components/global-styles/utils.js +11 -35
- package/src/components/grid/grid-item-movers.js +3 -3
- package/src/components/grid/grid-visualizer.js +22 -7
- package/src/components/grid/style.scss +1 -1
- package/src/components/height-control/index.js +1 -0
- package/src/components/iframe/index.js +8 -6
- package/src/components/image-editor/zoom-dropdown.js +17 -9
- package/src/components/inner-blocks/button-block-appender.js +5 -7
- package/src/components/inner-blocks/default-block-appender.js +4 -23
- package/src/components/inner-blocks/index.js +11 -10
- package/src/components/inner-blocks/use-inner-block-template-sync.js +3 -3
- package/src/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +2 -0
- package/src/components/inserter/block-patterns-tab/index.js +2 -0
- package/src/components/inserter/media-tab/hooks.js +3 -3
- package/src/components/inserter/media-tab/media-list.js +1 -4
- package/src/components/inserter/media-tab/media-preview.js +12 -2
- package/src/components/inserter/media-tab/media-tab.js +2 -0
- package/src/components/inserter/menu.js +13 -22
- package/src/components/inserter/quick-inserter.js +6 -1
- package/src/components/inserter/style.scss +7 -9
- package/src/components/inserter-list-item/index.js +4 -4
- package/src/components/inserter-list-item/style.scss +2 -3
- package/src/components/inserter-listbox/index.js +2 -8
- package/src/components/inserter-listbox/item.js +9 -1
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/index.js +2 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +1 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +5 -2
- package/src/components/inspector-popover-header/index.js +4 -0
- package/src/components/letter-spacing-control/README.md +8 -1
- package/src/components/letter-spacing-control/index.js +7 -4
- package/src/components/line-height-control/README.md +7 -0
- package/src/components/line-height-control/index.js +3 -0
- package/src/components/link-control/index.js +17 -8
- package/src/components/link-control/settings-drawer.js +2 -0
- package/src/components/link-control/style.scss +2 -4
- package/src/components/list-view/block-select-button.js +2 -0
- package/src/components/list-view/style.scss +14 -16
- package/src/components/media-placeholder/index.js +26 -7
- package/src/components/media-replace-flow/index.js +12 -1
- package/src/components/media-upload/README.md +2 -0
- package/src/components/media-upload/index.native.js +2 -0
- package/src/components/multi-selection-inspector/index.js +8 -9
- package/src/components/provider/use-block-sync.js +20 -20
- package/src/components/responsive-block-control/README.md +3 -26
- package/src/components/responsive-block-control/test/index.js +1 -0
- package/src/components/rich-text/content.scss +1 -1
- package/src/components/rich-text/event-listeners/paste-handler.js +6 -1
- package/src/components/rich-text/index.js +54 -41
- package/src/components/rich-text/style.scss +1 -1
- package/src/components/rich-text/use-mark-persistent.js +5 -5
- package/src/components/skip-to-selected-block/index.js +2 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
- package/src/components/spacing-sizes-control/style.scss +17 -16
- package/src/components/text-alignment-control/index.js +20 -8
- package/src/components/text-decoration-control/index.js +20 -8
- package/src/components/text-decoration-control/stories/index.story.js +0 -4
- package/src/components/text-transform-control/index.js +20 -8
- package/src/components/text-transform-control/stories/index.story.js +0 -4
- package/src/components/tool-selector/index.js +2 -0
- package/src/components/url-input/button.js +6 -0
- package/src/components/url-input/index.js +2 -0
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +2 -0
- package/src/components/url-popover/stories/index.story.js +7 -1
- package/src/components/use-block-drop-zone/index.js +21 -3
- package/src/components/warning/content.scss +3 -10
- package/src/components/writing-flow/index.js +2 -0
- package/src/components/writing-flow/use-arrow-nav.js +9 -2
- package/src/components/writing-flow/use-event-redirect.js +72 -0
- package/src/components/writing-flow/use-input.js +36 -1
- package/src/components/writing-flow/use-select-all.js +18 -1
- package/src/components/writing-flow/use-selection-observer.js +23 -3
- package/src/components/writing-flow/use-tab-nav.js +4 -4
- package/src/components/writing-flow/utils.js +30 -0
- package/src/components/writing-mode-control/index.js +20 -8
- package/src/hooks/background.js +21 -27
- package/src/hooks/block-bindings.js +64 -122
- package/src/hooks/block-bindings.scss +2 -10
- package/src/hooks/content-lock-ui.js +11 -36
- package/src/hooks/duotone.js +0 -4
- package/src/hooks/layout.js +2 -0
- package/src/hooks/layout.scss +3 -11
- package/src/hooks/spacing-visualizer.js +3 -3
- package/src/hooks/style.js +1 -4
- package/src/hooks/test/background.js +60 -0
- package/src/hooks/use-bindings-attributes.js +23 -24
- package/src/hooks/use-zoom-out.js +7 -7
- package/src/layouts/constrained.js +51 -47
- package/src/layouts/flex.js +4 -0
- package/src/layouts/grid.js +3 -0
- package/src/layouts/test/grid.js +2 -2
- package/src/layouts/test/utils.js +6 -8
- package/src/layouts/utils.js +1 -9
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +4 -6
- package/src/store/private-actions.js +1 -0
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +44 -7
- package/src/store/reducer.js +2 -0
- package/src/store/selectors.js +32 -51
- package/src/store/test/private-selectors.js +89 -0
- package/src/store/utils.js +50 -0
- package/src/style.scss +0 -1
- package/src/utils/block-bindings.js +97 -0
- package/src/utils/dom.js +117 -0
- package/src/utils/get-font-styles-and-weights.js +12 -4
- package/src/utils/test/get-font-styles-and-weights.js +148 -0
- package/src/utils/test/transform-styles.js +284 -26
- package/src/utils/transform-styles/index.js +132 -21
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/global-styles/theme-file-uri-utils.js +0 -21
- package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build/components/inner-blocks/with-client-id.js +0 -28
- package/build/components/inner-blocks/with-client-id.js.map +0 -1
- package/build/components/segmented-text-control/index.js +0 -63
- package/build/components/segmented-text-control/index.js.map +0 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build-module/components/inner-blocks/with-client-id.js +0 -21
- package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
- package/build-module/components/segmented-text-control/index.js +0 -58
- package/build-module/components/segmented-text-control/index.js.map +0 -1
- package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
- package/src/components/global-styles/theme-file-uri-utils.js +0 -18
- package/src/components/inner-blocks/with-client-id.js +0 -19
- package/src/components/segmented-text-control/index.js +0 -63
- package/src/components/segmented-text-control/style.scss +0 -15
- package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
|
@@ -9,11 +9,10 @@ import {
|
|
|
9
9
|
__experimentalText as Text,
|
|
10
10
|
__experimentalToolsPanel as ToolsPanel,
|
|
11
11
|
__experimentalToolsPanelItem as ToolsPanelItem,
|
|
12
|
-
__experimentalTruncate as Truncate,
|
|
13
12
|
__experimentalVStack as VStack,
|
|
14
13
|
privateApis as componentsPrivateApis,
|
|
15
14
|
} from '@wordpress/components';
|
|
16
|
-
import {
|
|
15
|
+
import { useRegistry, useSelect } from '@wordpress/data';
|
|
17
16
|
import { useContext, Fragment } from '@wordpress/element';
|
|
18
17
|
import { useViewportMatch } from '@wordpress/compose';
|
|
19
18
|
|
|
@@ -24,19 +23,13 @@ import {
|
|
|
24
23
|
canBindAttribute,
|
|
25
24
|
getBindableAttributes,
|
|
26
25
|
} from '../hooks/use-bindings-attributes';
|
|
27
|
-
import { store as blockEditorStore } from '../store';
|
|
28
26
|
import { unlock } from '../lock-unlock';
|
|
29
27
|
import InspectorControls from '../components/inspector-controls';
|
|
30
28
|
import BlockContext from '../components/block-context';
|
|
29
|
+
import { useBlockBindingsUtils } from '../utils/block-bindings';
|
|
30
|
+
import { store as blockEditorStore } from '../store';
|
|
31
31
|
|
|
32
|
-
const {
|
|
33
|
-
DropdownMenuV2: DropdownMenu,
|
|
34
|
-
DropdownMenuGroupV2: DropdownMenuGroup,
|
|
35
|
-
DropdownMenuRadioItemV2: DropdownMenuRadioItem,
|
|
36
|
-
DropdownMenuItemLabelV2: DropdownMenuItemLabel,
|
|
37
|
-
DropdownMenuItemHelpTextV2: DropdownMenuItemHelpText,
|
|
38
|
-
DropdownMenuSeparatorV2: DropdownMenuSeparator,
|
|
39
|
-
} = unlock( componentsPrivateApis );
|
|
32
|
+
const { DropdownMenuV2 } = unlock( componentsPrivateApis );
|
|
40
33
|
|
|
41
34
|
const useToolsPanelDropdownMenuProps = () => {
|
|
42
35
|
const isMobile = useViewportMatch( 'medium', '<' );
|
|
@@ -51,49 +44,47 @@ const useToolsPanelDropdownMenuProps = () => {
|
|
|
51
44
|
: {};
|
|
52
45
|
};
|
|
53
46
|
|
|
54
|
-
function BlockBindingsPanelDropdown( {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
binding,
|
|
59
|
-
} ) {
|
|
47
|
+
function BlockBindingsPanelDropdown( { fieldsList, attribute, binding } ) {
|
|
48
|
+
const { getBlockBindingsSources } = unlock( blocksPrivateApis );
|
|
49
|
+
const registeredSources = getBlockBindingsSources();
|
|
50
|
+
const { updateBlockBindings } = useBlockBindingsUtils();
|
|
60
51
|
const currentKey = binding?.args?.key;
|
|
61
52
|
return (
|
|
62
53
|
<>
|
|
63
|
-
{ Object.entries( fieldsList ).map( ( [
|
|
64
|
-
<Fragment key={
|
|
65
|
-
<
|
|
54
|
+
{ Object.entries( fieldsList ).map( ( [ name, fields ], i ) => (
|
|
55
|
+
<Fragment key={ name }>
|
|
56
|
+
<DropdownMenuV2.Group>
|
|
66
57
|
{ Object.keys( fieldsList ).length > 1 && (
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
variant="muted"
|
|
71
|
-
aria-hidden
|
|
72
|
-
>
|
|
73
|
-
{ label }
|
|
74
|
-
</Text>
|
|
58
|
+
<DropdownMenuV2.GroupLabel>
|
|
59
|
+
{ registeredSources[ name ].label }
|
|
60
|
+
</DropdownMenuV2.GroupLabel>
|
|
75
61
|
) }
|
|
76
62
|
{ Object.entries( fields ).map( ( [ key, value ] ) => (
|
|
77
|
-
<
|
|
63
|
+
<DropdownMenuV2.RadioItem
|
|
78
64
|
key={ key }
|
|
79
65
|
onChange={ () =>
|
|
80
|
-
|
|
66
|
+
updateBlockBindings( {
|
|
67
|
+
[ attribute ]: {
|
|
68
|
+
source: name,
|
|
69
|
+
args: { key },
|
|
70
|
+
},
|
|
71
|
+
} )
|
|
81
72
|
}
|
|
82
73
|
name={ attribute + '-binding' }
|
|
83
74
|
value={ key }
|
|
84
75
|
checked={ key === currentKey }
|
|
85
76
|
>
|
|
86
|
-
<
|
|
77
|
+
<DropdownMenuV2.ItemLabel>
|
|
87
78
|
{ key }
|
|
88
|
-
</
|
|
89
|
-
<
|
|
79
|
+
</DropdownMenuV2.ItemLabel>
|
|
80
|
+
<DropdownMenuV2.ItemHelpText>
|
|
90
81
|
{ value }
|
|
91
|
-
</
|
|
92
|
-
</
|
|
82
|
+
</DropdownMenuV2.ItemHelpText>
|
|
83
|
+
</DropdownMenuV2.RadioItem>
|
|
93
84
|
) ) }
|
|
94
|
-
</
|
|
85
|
+
</DropdownMenuV2.Group>
|
|
95
86
|
{ i !== Object.keys( fieldsList ).length - 1 && (
|
|
96
|
-
<
|
|
87
|
+
<DropdownMenuV2.Separator />
|
|
97
88
|
) }
|
|
98
89
|
</Fragment>
|
|
99
90
|
) ) }
|
|
@@ -105,17 +96,19 @@ function BlockBindingsAttribute( { attribute, binding } ) {
|
|
|
105
96
|
const { source: sourceName, args } = binding || {};
|
|
106
97
|
const sourceProps =
|
|
107
98
|
unlock( blocksPrivateApis ).getBlockBindingsSource( sourceName );
|
|
99
|
+
const isSourceInvalid = ! sourceProps;
|
|
108
100
|
return (
|
|
109
|
-
<VStack>
|
|
110
|
-
<
|
|
101
|
+
<VStack className="block-editor-bindings__item">
|
|
102
|
+
<Text truncate>{ attribute }</Text>
|
|
111
103
|
{ !! binding && (
|
|
112
104
|
<Text
|
|
113
|
-
|
|
114
|
-
|
|
105
|
+
truncate
|
|
106
|
+
variant={ ! isSourceInvalid && 'muted' }
|
|
107
|
+
isDestructive={ isSourceInvalid }
|
|
115
108
|
>
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
{ isSourceInvalid
|
|
110
|
+
? __( 'Invalid source' )
|
|
111
|
+
: args?.key || sourceProps?.label || sourceName }
|
|
119
112
|
</Text>
|
|
120
113
|
) }
|
|
121
114
|
</VStack>
|
|
@@ -141,9 +134,8 @@ function EditableBlockBindingsPanelItems( {
|
|
|
141
134
|
attributes,
|
|
142
135
|
bindings,
|
|
143
136
|
fieldsList,
|
|
144
|
-
addConnection,
|
|
145
|
-
removeConnection,
|
|
146
137
|
} ) {
|
|
138
|
+
const { updateBlockBindings } = useBlockBindingsUtils();
|
|
147
139
|
const isMobile = useViewportMatch( 'medium', '<' );
|
|
148
140
|
return (
|
|
149
141
|
<>
|
|
@@ -155,15 +147,16 @@ function EditableBlockBindingsPanelItems( {
|
|
|
155
147
|
hasValue={ () => !! binding }
|
|
156
148
|
label={ attribute }
|
|
157
149
|
onDeselect={ () => {
|
|
158
|
-
|
|
150
|
+
updateBlockBindings( {
|
|
151
|
+
[ attribute ]: undefined,
|
|
152
|
+
} );
|
|
159
153
|
} }
|
|
160
154
|
>
|
|
161
|
-
<
|
|
155
|
+
<DropdownMenuV2
|
|
162
156
|
placement={
|
|
163
157
|
isMobile ? 'bottom-start' : 'left-start'
|
|
164
158
|
}
|
|
165
159
|
gutter={ isMobile ? 8 : 36 }
|
|
166
|
-
className="block-editor-bindings__popover"
|
|
167
160
|
trigger={
|
|
168
161
|
<Item>
|
|
169
162
|
<BlockBindingsAttribute
|
|
@@ -175,11 +168,10 @@ function EditableBlockBindingsPanelItems( {
|
|
|
175
168
|
>
|
|
176
169
|
<BlockBindingsPanelDropdown
|
|
177
170
|
fieldsList={ fieldsList }
|
|
178
|
-
addConnection={ addConnection }
|
|
179
171
|
attribute={ attribute }
|
|
180
172
|
binding={ binding }
|
|
181
173
|
/>
|
|
182
|
-
</
|
|
174
|
+
</DropdownMenuV2>
|
|
183
175
|
</ToolsPanelItem>
|
|
184
176
|
);
|
|
185
177
|
} ) }
|
|
@@ -187,31 +179,28 @@ function EditableBlockBindingsPanelItems( {
|
|
|
187
179
|
);
|
|
188
180
|
}
|
|
189
181
|
|
|
190
|
-
export const BlockBindingsPanel = ( { name, metadata } ) => {
|
|
182
|
+
export const BlockBindingsPanel = ( { name: blockName, metadata } ) => {
|
|
191
183
|
const registry = useRegistry();
|
|
192
184
|
const blockContext = useContext( BlockContext );
|
|
193
185
|
const { bindings } = metadata || {};
|
|
194
|
-
|
|
195
|
-
const bindableAttributes = getBindableAttributes(
|
|
186
|
+
const { removeAllBlockBindings } = useBlockBindingsUtils();
|
|
187
|
+
const bindableAttributes = getBindableAttributes( blockName );
|
|
196
188
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
197
189
|
|
|
198
190
|
const filteredBindings = { ...bindings };
|
|
199
191
|
Object.keys( filteredBindings ).forEach( ( key ) => {
|
|
200
192
|
if (
|
|
201
|
-
! canBindAttribute(
|
|
193
|
+
! canBindAttribute( blockName, key ) ||
|
|
202
194
|
filteredBindings[ key ].source === 'core/pattern-overrides'
|
|
203
195
|
) {
|
|
204
196
|
delete filteredBindings[ key ];
|
|
205
197
|
}
|
|
206
198
|
} );
|
|
207
199
|
|
|
208
|
-
const {
|
|
209
|
-
|
|
210
|
-
const { _id } = useSelect( ( select ) => {
|
|
211
|
-
const { getSelectedBlockClientId } = select( blockEditorStore );
|
|
212
|
-
|
|
200
|
+
const { canUpdateBlockBindings } = useSelect( ( select ) => {
|
|
213
201
|
return {
|
|
214
|
-
|
|
202
|
+
canUpdateBlockBindings:
|
|
203
|
+
select( blockEditorStore ).getSettings().canUpdateBlockBindings,
|
|
215
204
|
};
|
|
216
205
|
}, [] );
|
|
217
206
|
|
|
@@ -219,59 +208,11 @@ export const BlockBindingsPanel = ( { name, metadata } ) => {
|
|
|
219
208
|
return null;
|
|
220
209
|
}
|
|
221
210
|
|
|
222
|
-
const removeAllConnections = () => {
|
|
223
|
-
const newMetadata = { ...metadata };
|
|
224
|
-
delete newMetadata.bindings;
|
|
225
|
-
updateBlockAttributes( _id, {
|
|
226
|
-
metadata:
|
|
227
|
-
Object.keys( newMetadata ).length === 0
|
|
228
|
-
? undefined
|
|
229
|
-
: newMetadata,
|
|
230
|
-
} );
|
|
231
|
-
};
|
|
232
|
-
|
|
233
|
-
const addConnection = ( value, attribute ) => {
|
|
234
|
-
// Assuming the block expects a flat structure for its metadata attribute
|
|
235
|
-
const newMetadata = {
|
|
236
|
-
...metadata,
|
|
237
|
-
// Adjust this according to the actual structure expected by your block
|
|
238
|
-
bindings: {
|
|
239
|
-
...metadata?.bindings,
|
|
240
|
-
[ attribute ]: {
|
|
241
|
-
source: 'core/post-meta',
|
|
242
|
-
args: { key: value },
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
// Update the block's attributes with the new metadata
|
|
247
|
-
updateBlockAttributes( _id, {
|
|
248
|
-
metadata: newMetadata,
|
|
249
|
-
} );
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
const removeConnection = ( key ) => {
|
|
253
|
-
const newMetadata = { ...metadata };
|
|
254
|
-
if ( ! newMetadata.bindings ) {
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
delete newMetadata.bindings[ key ];
|
|
259
|
-
if ( Object.keys( newMetadata.bindings ).length === 0 ) {
|
|
260
|
-
delete newMetadata.bindings;
|
|
261
|
-
}
|
|
262
|
-
updateBlockAttributes( _id, {
|
|
263
|
-
metadata:
|
|
264
|
-
Object.keys( newMetadata ).length === 0
|
|
265
|
-
? undefined
|
|
266
|
-
: newMetadata,
|
|
267
|
-
} );
|
|
268
|
-
};
|
|
269
|
-
|
|
270
211
|
const fieldsList = {};
|
|
271
212
|
const { getBlockBindingsSources } = unlock( blocksPrivateApis );
|
|
272
213
|
const registeredSources = getBlockBindingsSources();
|
|
273
|
-
Object.
|
|
274
|
-
( { getFieldsList,
|
|
214
|
+
Object.entries( registeredSources ).forEach(
|
|
215
|
+
( [ sourceName, { getFieldsList, usesContext } ] ) => {
|
|
275
216
|
if ( getFieldsList ) {
|
|
276
217
|
// Populate context.
|
|
277
218
|
const context = {};
|
|
@@ -286,7 +227,7 @@ export const BlockBindingsPanel = ( { name, metadata } ) => {
|
|
|
286
227
|
} );
|
|
287
228
|
// Only add source if the list is not empty.
|
|
288
229
|
if ( sourceList ) {
|
|
289
|
-
fieldsList[
|
|
230
|
+
fieldsList[ sourceName ] = { ...sourceList };
|
|
290
231
|
}
|
|
291
232
|
}
|
|
292
233
|
}
|
|
@@ -298,21 +239,20 @@ export const BlockBindingsPanel = ( { name, metadata } ) => {
|
|
|
298
239
|
}
|
|
299
240
|
} );
|
|
300
241
|
|
|
301
|
-
// Lock the UI when the
|
|
242
|
+
// Lock the UI when the user can't update bindings or there are no fields to connect to.
|
|
302
243
|
const readOnly =
|
|
303
|
-
!
|
|
304
|
-
! Object.keys( fieldsList ).length;
|
|
244
|
+
! canUpdateBlockBindings || ! Object.keys( fieldsList ).length;
|
|
305
245
|
|
|
306
246
|
if ( readOnly && Object.keys( filteredBindings ).length === 0 ) {
|
|
307
247
|
return null;
|
|
308
248
|
}
|
|
309
249
|
|
|
310
250
|
return (
|
|
311
|
-
<InspectorControls>
|
|
251
|
+
<InspectorControls group="bindings">
|
|
312
252
|
<ToolsPanel
|
|
313
253
|
label={ __( 'Attributes' ) }
|
|
314
254
|
resetAll={ () => {
|
|
315
|
-
|
|
255
|
+
removeAllBlockBindings();
|
|
316
256
|
} }
|
|
317
257
|
dropdownMenuProps={ dropdownMenuProps }
|
|
318
258
|
className="block-editor-bindings__panel"
|
|
@@ -327,14 +267,16 @@ export const BlockBindingsPanel = ( { name, metadata } ) => {
|
|
|
327
267
|
attributes={ bindableAttributes }
|
|
328
268
|
bindings={ filteredBindings }
|
|
329
269
|
fieldsList={ fieldsList }
|
|
330
|
-
addConnection={ addConnection }
|
|
331
|
-
removeConnection={ removeConnection }
|
|
332
270
|
/>
|
|
333
271
|
) }
|
|
334
272
|
</ItemGroup>
|
|
335
|
-
<
|
|
336
|
-
|
|
337
|
-
|
|
273
|
+
<ItemGroup>
|
|
274
|
+
<Text variant="muted">
|
|
275
|
+
{ __(
|
|
276
|
+
'Attributes connected to custom fields or other dynamic data.'
|
|
277
|
+
) }
|
|
278
|
+
</Text>
|
|
279
|
+
</ItemGroup>
|
|
338
280
|
</ToolsPanel>
|
|
339
281
|
</InspectorControls>
|
|
340
282
|
);
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
div.block-editor-bindings__panel {
|
|
2
|
-
grid-template-columns: auto;
|
|
3
|
-
button:hover .block-editor-bindings__item
|
|
2
|
+
grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
|
|
3
|
+
button:hover .block-editor-bindings__item span {
|
|
4
4
|
color: inherit;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
.block-editor-bindings__popover {
|
|
9
|
-
// This won't be needed if `DropdownMenuGroup` component handles the label.
|
|
10
|
-
.block-editor-bindings__source-label {
|
|
11
|
-
grid-column: 2;
|
|
12
|
-
margin: $grid-unit-10 0;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { ToolbarButton
|
|
4
|
+
import { ToolbarButton } from '@wordpress/components';
|
|
5
5
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
6
6
|
import { __ } from '@wordpress/i18n';
|
|
7
7
|
import { useCallback } from '@wordpress/element';
|
|
@@ -10,7 +10,7 @@ import { useCallback } from '@wordpress/element';
|
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
12
12
|
import { store as blockEditorStore } from '../store';
|
|
13
|
-
import { BlockControls
|
|
13
|
+
import { BlockControls } from '../components';
|
|
14
14
|
import { unlock } from '../lock-unlock';
|
|
15
15
|
|
|
16
16
|
// The implementation of content locking is mainly in this file, although the mechanism
|
|
@@ -19,7 +19,7 @@ import { unlock } from '../lock-unlock';
|
|
|
19
19
|
// Besides the components on this file and the file referenced above the implementation
|
|
20
20
|
// also includes artifacts on the store (actions, reducers, and selector).
|
|
21
21
|
|
|
22
|
-
function ContentLockControlsPure( { clientId
|
|
22
|
+
function ContentLockControlsPure( { clientId } ) {
|
|
23
23
|
const { templateLock, isLockedByParent, isEditingAsBlocks } = useSelect(
|
|
24
24
|
( select ) => {
|
|
25
25
|
const {
|
|
@@ -36,9 +36,7 @@ function ContentLockControlsPure( { clientId, isSelected } ) {
|
|
|
36
36
|
[ clientId ]
|
|
37
37
|
);
|
|
38
38
|
|
|
39
|
-
const { stopEditingAsBlocks
|
|
40
|
-
useDispatch( blockEditorStore )
|
|
41
|
-
);
|
|
39
|
+
const { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );
|
|
42
40
|
const isContentLocked =
|
|
43
41
|
! isLockedByParent && templateLock === 'contentOnly';
|
|
44
42
|
|
|
@@ -51,38 +49,15 @@ function ContentLockControlsPure( { clientId, isSelected } ) {
|
|
|
51
49
|
}
|
|
52
50
|
|
|
53
51
|
const showStopEditingAsBlocks = isEditingAsBlocks && ! isContentLocked;
|
|
54
|
-
const showStartEditingAsBlocks =
|
|
55
|
-
! isEditingAsBlocks && isContentLocked && isSelected;
|
|
56
52
|
|
|
57
53
|
return (
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
</BlockControls>
|
|
66
|
-
</>
|
|
67
|
-
) }
|
|
68
|
-
{ showStartEditingAsBlocks && (
|
|
69
|
-
<BlockSettingsMenuControls>
|
|
70
|
-
{ ( { selectedClientIds, onClose } ) =>
|
|
71
|
-
selectedClientIds.length === 1 &&
|
|
72
|
-
selectedClientIds[ 0 ] === clientId && (
|
|
73
|
-
<MenuItem
|
|
74
|
-
onClick={ () => {
|
|
75
|
-
modifyContentLockBlock( clientId );
|
|
76
|
-
onClose();
|
|
77
|
-
} }
|
|
78
|
-
>
|
|
79
|
-
{ __( 'Modify' ) }
|
|
80
|
-
</MenuItem>
|
|
81
|
-
)
|
|
82
|
-
}
|
|
83
|
-
</BlockSettingsMenuControls>
|
|
84
|
-
) }
|
|
85
|
-
</>
|
|
54
|
+
showStopEditingAsBlocks && (
|
|
55
|
+
<BlockControls group="other">
|
|
56
|
+
<ToolbarButton onClick={ stopEditingAsBlockCallback }>
|
|
57
|
+
{ __( 'Done' ) }
|
|
58
|
+
</ToolbarButton>
|
|
59
|
+
</BlockControls>
|
|
60
|
+
)
|
|
86
61
|
);
|
|
87
62
|
}
|
|
88
63
|
|
package/src/hooks/duotone.js
CHANGED
|
@@ -251,10 +251,6 @@ function useDuotoneStyles( {
|
|
|
251
251
|
const selectors = duotoneSelector.split( ',' );
|
|
252
252
|
|
|
253
253
|
const selectorsScoped = selectors.map( ( selectorPart ) => {
|
|
254
|
-
// Extra .editor-styles-wrapper specificity is needed in the editor
|
|
255
|
-
// since we're not using inline styles to apply the filter. We need to
|
|
256
|
-
// override duotone applied by global styles and theme.json.
|
|
257
|
-
|
|
258
254
|
// Assuming the selector part is a subclass selector (not a tag name)
|
|
259
255
|
// so we can prepend the filter id class. If we want to support elements
|
|
260
256
|
// such as `img` or namespaces, we'll need to add a case for that here.
|
package/src/hooks/layout.js
CHANGED
|
@@ -320,6 +320,8 @@ function LayoutTypeSwitcher( { type, onChange } ) {
|
|
|
320
320
|
{ getLayoutTypes().map( ( { name, label } ) => {
|
|
321
321
|
return (
|
|
322
322
|
<Button
|
|
323
|
+
// TODO: Switch to `true` (40px size) if possible
|
|
324
|
+
__next40pxDefaultSize={ false }
|
|
323
325
|
key={ name }
|
|
324
326
|
isPressed={ type === name }
|
|
325
327
|
onClick={ () => onChange( name ) }
|
package/src/hooks/layout.scss
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
.block-editor-hooks__layout-controls {
|
|
1
|
+
.block-editor-hooks__layout-controls-units {
|
|
2
2
|
display: flex;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
.block-editor-hooks__layout-controls-unit {
|
|
6
|
-
display: flex;
|
|
7
|
-
margin-right: $grid-unit-30;
|
|
8
|
-
|
|
9
|
-
svg {
|
|
10
|
-
margin: auto 0 $grid-unit-05 $grid-unit-10;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: $grid-unit-20;
|
|
13
5
|
}
|
|
14
6
|
|
|
15
7
|
.block-editor-block-inspector .block-editor-hooks__layout-controls-unit-input {
|
|
@@ -36,16 +36,16 @@ function SpacingVisualizer( { clientId, value, computeStyle, forceShow } ) {
|
|
|
36
36
|
);
|
|
37
37
|
}, [ blockElement, value ] );
|
|
38
38
|
|
|
39
|
-
const
|
|
39
|
+
const previousValueRef = useRef( value );
|
|
40
40
|
const [ isActive, setIsActive ] = useState( false );
|
|
41
41
|
|
|
42
42
|
useEffect( () => {
|
|
43
|
-
if ( isShallowEqual( value,
|
|
43
|
+
if ( isShallowEqual( value, previousValueRef.current ) || forceShow ) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
setIsActive( true );
|
|
48
|
-
|
|
48
|
+
previousValueRef.current = value;
|
|
49
49
|
|
|
50
50
|
const timeout = setTimeout( () => {
|
|
51
51
|
setIsActive( false );
|
package/src/hooks/style.js
CHANGED
|
@@ -381,10 +381,7 @@ function useBlockProps( { name, style } ) {
|
|
|
381
381
|
useBlockProps
|
|
382
382
|
) }`;
|
|
383
383
|
|
|
384
|
-
|
|
385
|
-
// added to all other editor styles, not providing it causes reset and global
|
|
386
|
-
// styles to override element styles because of higher specificity.
|
|
387
|
-
const baseElementSelector = `.editor-styles-wrapper .${ blockElementsContainerIdentifier }`;
|
|
384
|
+
const baseElementSelector = `.${ blockElementsContainerIdentifier }`;
|
|
388
385
|
const blockElementStyles = style?.elements;
|
|
389
386
|
|
|
390
387
|
const styles = useMemo( () => {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
setBackgroundStyleDefaults,
|
|
6
|
+
BACKGROUND_BLOCK_DEFAULT_VALUES,
|
|
7
|
+
} from '../background';
|
|
8
|
+
|
|
9
|
+
describe( 'background', () => {
|
|
10
|
+
describe( 'setBackgroundStyleDefaults', () => {
|
|
11
|
+
const backgroundStyles = {
|
|
12
|
+
backgroundImage: { id: 123, url: 'image.png' },
|
|
13
|
+
};
|
|
14
|
+
const backgroundStylesContain = {
|
|
15
|
+
backgroundImage: { id: 123, url: 'image.png' },
|
|
16
|
+
backgroundSize: 'contain',
|
|
17
|
+
};
|
|
18
|
+
const backgroundStylesNoURL = { backgroundImage: { id: 123 } };
|
|
19
|
+
it.each( [
|
|
20
|
+
[
|
|
21
|
+
'return background size default',
|
|
22
|
+
backgroundStyles,
|
|
23
|
+
{
|
|
24
|
+
backgroundSize:
|
|
25
|
+
BACKGROUND_BLOCK_DEFAULT_VALUES.backgroundSize,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
[ 'return early if no styles are passed', undefined, undefined ],
|
|
29
|
+
[
|
|
30
|
+
'return early if images has no id',
|
|
31
|
+
backgroundStylesNoURL,
|
|
32
|
+
undefined,
|
|
33
|
+
],
|
|
34
|
+
[
|
|
35
|
+
'return early if images has no URL',
|
|
36
|
+
backgroundStylesNoURL,
|
|
37
|
+
undefined,
|
|
38
|
+
],
|
|
39
|
+
[
|
|
40
|
+
'return background position default',
|
|
41
|
+
backgroundStylesContain,
|
|
42
|
+
{
|
|
43
|
+
backgroundPosition:
|
|
44
|
+
BACKGROUND_BLOCK_DEFAULT_VALUES.backgroundPosition,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
[
|
|
48
|
+
'not apply background position value if one already exists in styles',
|
|
49
|
+
{
|
|
50
|
+
...backgroundStylesContain,
|
|
51
|
+
backgroundPosition: 'center',
|
|
52
|
+
},
|
|
53
|
+
undefined,
|
|
54
|
+
],
|
|
55
|
+
] )( 'should %s', ( message, styles, expected ) => {
|
|
56
|
+
const result = setBackgroundStyleDefaults( styles );
|
|
57
|
+
expect( result ).toEqual( expected );
|
|
58
|
+
} );
|
|
59
|
+
} );
|
|
60
|
+
} );
|
|
@@ -10,6 +10,7 @@ import { addFilter } from '@wordpress/hooks';
|
|
|
10
10
|
/**
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
|
+
import isURLLike from '../components/link-control/is-url-like';
|
|
13
14
|
import { unlock } from '../lock-unlock';
|
|
14
15
|
import BlockContext from '../components/block-context';
|
|
15
16
|
|
|
@@ -134,10 +135,7 @@ export const withBlockBindingSupport = createHigherOrderComponent(
|
|
|
134
135
|
) ) {
|
|
135
136
|
const { source: sourceName, args: sourceArgs } = binding;
|
|
136
137
|
const source = sources[ sourceName ];
|
|
137
|
-
if (
|
|
138
|
-
! source?.getValues ||
|
|
139
|
-
! canBindAttribute( name, attributeName )
|
|
140
|
-
) {
|
|
138
|
+
if ( ! source || ! canBindAttribute( name, attributeName ) ) {
|
|
141
139
|
continue;
|
|
142
140
|
}
|
|
143
141
|
|
|
@@ -161,29 +159,30 @@ export const withBlockBindingSupport = createHigherOrderComponent(
|
|
|
161
159
|
}
|
|
162
160
|
|
|
163
161
|
// Get values in batch if the source supports it.
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
162
|
+
let values = {};
|
|
163
|
+
if ( ! source.getValues ) {
|
|
164
|
+
Object.keys( bindings ).forEach( ( attr ) => {
|
|
165
|
+
// Default to the `key` or the source label when `getValues` doesn't exist
|
|
166
|
+
values[ attr ] =
|
|
167
|
+
bindings[ attr ].args?.key || source.label;
|
|
168
|
+
} );
|
|
169
|
+
} else {
|
|
170
|
+
values = source.getValues( {
|
|
171
|
+
registry,
|
|
172
|
+
context,
|
|
173
|
+
clientId,
|
|
174
|
+
bindings,
|
|
175
|
+
} );
|
|
176
|
+
}
|
|
170
177
|
for ( const [ attributeName, value ] of Object.entries(
|
|
171
178
|
values
|
|
172
179
|
) ) {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
source.getPlaceholder?.( {
|
|
180
|
-
registry,
|
|
181
|
-
context,
|
|
182
|
-
clientId,
|
|
183
|
-
attributeName,
|
|
184
|
-
args: bindings[ attributeName ].args,
|
|
185
|
-
} );
|
|
186
|
-
}
|
|
180
|
+
if (
|
|
181
|
+
attributeName === 'url' &&
|
|
182
|
+
( ! value || ! isURLLike( value ) )
|
|
183
|
+
) {
|
|
184
|
+
// Return null if value is not a valid URL.
|
|
185
|
+
attributes[ attributeName ] = null;
|
|
187
186
|
} else {
|
|
188
187
|
attributes[ attributeName ] = value;
|
|
189
188
|
}
|
|
@@ -18,22 +18,22 @@ export function useZoomOut( zoomOut = true ) {
|
|
|
18
18
|
const { __unstableSetEditorMode } = useDispatch( blockEditorStore );
|
|
19
19
|
const { __unstableGetEditorMode } = useSelect( blockEditorStore );
|
|
20
20
|
|
|
21
|
-
const
|
|
21
|
+
const originalEditingModeRef = useRef( null );
|
|
22
22
|
const mode = __unstableGetEditorMode();
|
|
23
23
|
|
|
24
24
|
useEffect( () => {
|
|
25
25
|
// Only set this on mount so we know what to return to when we unmount.
|
|
26
|
-
if ( !
|
|
27
|
-
|
|
26
|
+
if ( ! originalEditingModeRef.current ) {
|
|
27
|
+
originalEditingModeRef.current = mode;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
return () => {
|
|
31
31
|
// We need to use __unstableGetEditorMode() here and not `mode`, as mode may not update on unmount
|
|
32
32
|
if (
|
|
33
33
|
__unstableGetEditorMode() === 'zoom-out' &&
|
|
34
|
-
__unstableGetEditorMode() !==
|
|
34
|
+
__unstableGetEditorMode() !== originalEditingModeRef.current
|
|
35
35
|
) {
|
|
36
|
-
__unstableSetEditorMode(
|
|
36
|
+
__unstableSetEditorMode( originalEditingModeRef.current );
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
}, [] );
|
|
@@ -45,9 +45,9 @@ export function useZoomOut( zoomOut = true ) {
|
|
|
45
45
|
} else if (
|
|
46
46
|
! zoomOut &&
|
|
47
47
|
__unstableGetEditorMode() === 'zoom-out' &&
|
|
48
|
-
|
|
48
|
+
originalEditingModeRef.current !== mode
|
|
49
49
|
) {
|
|
50
|
-
__unstableSetEditorMode(
|
|
50
|
+
__unstableSetEditorMode( originalEditingModeRef.current );
|
|
51
51
|
}
|
|
52
52
|
}, [ __unstableGetEditorMode, __unstableSetEditorMode, zoomOut ] ); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes.
|
|
53
53
|
}
|