@wordpress/block-editor 14.1.0 → 14.2.1-next.5368f64a9.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 +2 -0
- package/README.md +1 -10
- 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 +2 -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 +1 -0
- 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 +2 -0
- package/build/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build/components/block-inspector/index.js +27 -11
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +3 -2
- 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/index.js +14 -3
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +5 -1
- 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 +53 -0
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -0
- package/build/components/block-list/zoom-out-separator.js +98 -0
- package/build/components/block-list/zoom-out-separator.js.map +1 -0
- 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 +1 -0
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.js +1 -0
- 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 +2 -10
- 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 +12 -20
- 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-controls/index.js +4 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +30 -19
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +2 -10
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +19 -12
- 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/index.js +1 -1
- package/build/components/block-tools/index.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/zoom-out-mode-inserters.js +7 -21
- 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 +26 -7
- 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/button-block-appender/index.js +20 -23
- 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/editor-styles/index.js +4 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +8 -12
- 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/shadow-panel-components.js +14 -17
- 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/utils.js +4 -6
- 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/iframe/get-compatibility-styles.js +1 -1
- package/build/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build/components/iframe/index.js +5 -5
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -4
- 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/block-patterns-tab/pattern-category-previews.js +23 -13
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/index.js +4 -11
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/library.js +2 -4
- package/build/components/inserter/library.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 -8
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +9 -7
- 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 +7 -24
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -5
- 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 -13
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +6 -11
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +1 -9
- package/build/components/inserter-listbox/row.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/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/list-view/index.js +3 -7
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/media-placeholder/index.js +32 -11
- 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/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/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/use-block-drop-zone/index.js +31 -7
- 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/hooks/block-bindings.js +32 -29
- 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 -2
- 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 +41 -42
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +4 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +19 -16
- 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 +2 -3
- 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 +16 -18
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +1 -10
- 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 +16 -11
- package/build/utils/block-bindings.js.map +1 -1
- 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/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 +2 -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 +1 -0
- 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 +2 -0
- package/build-module/components/block-edit/multiple-usage-warning.js.map +1 -1
- package/build-module/components/block-inspector/index.js +27 -11
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +3 -2
- 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/index.js +14 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +5 -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-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 +47 -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/zoom-out-separator.js +90 -0
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -0
- 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 +1 -0
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.js +1 -0
- 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 +2 -10
- 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 +12 -20
- 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-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 +30 -19
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -10
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +19 -12
- 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/index.js +1 -1
- package/build-module/components/block-tools/index.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/zoom-out-mode-inserters.js +7 -22
- 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 +27 -8
- 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/button-block-appender/index.js +22 -26
- 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/editor-styles/index.js +4 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +8 -12
- 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/shadow-panel-components.js +14 -17
- 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/utils.js +4 -6
- 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/iframe/get-compatibility-styles.js +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build-module/components/iframe/index.js +5 -5
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -4
- 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/block-patterns-tab/pattern-category-previews.js +23 -13
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/index.js +4 -11
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/library.js +2 -4
- package/build-module/components/inserter/library.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 -8
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +10 -8
- 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 +7 -24
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +5 -6
- 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 -11
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +7 -12
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +2 -10
- package/build-module/components/inserter-listbox/row.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/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/list-view/index.js +3 -7
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +32 -11
- 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/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/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/use-block-drop-zone/index.js +31 -7
- 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/hooks/block-bindings.js +34 -31
- 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 -2
- 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 -45
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +4 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +21 -18
- 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 +3 -4
- 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 +15 -18
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +1 -9
- 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 +17 -12
- package/build-module/utils/block-bindings.js.map +1 -1
- 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 +19 -11
- package/build-style/content.css +19 -11
- package/build-style/style-rtl.css +27 -108
- package/build-style/style.css +27 -108
- 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/components/block-alignment-matrix-control/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +2 -2
- package/src/components/block-breadcrumb/style.scss +1 -30
- package/src/components/block-canvas/index.js +9 -1
- package/src/components/block-compare/block-view.js +6 -1
- package/src/components/block-compare/test/__snapshots__/block-view.js.snap +1 -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 +2 -0
- package/src/components/block-inspector/index.js +22 -7
- package/src/components/block-inspector/style.scss +2 -4
- package/src/components/block-list/block-invalid-warning.js +3 -2
- package/src/components/block-list/block.js +6 -2
- package/src/components/block-list/content.scss +23 -3
- package/src/components/block-list/index.js +59 -38
- package/src/components/block-list/use-block-props/index.js +3 -0
- 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 +56 -0
- package/src/components/block-list/zoom-out-separator.js +110 -0
- 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 +1 -0
- package/src/components/block-mover/index.js +1 -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 -15
- 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 -18
- 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-controls/index.js +7 -1
- package/src/components/block-switcher/index.js +45 -23
- package/src/components/block-switcher/pattern-transformations-menu.js +3 -12
- package/src/components/block-switcher/style.scss +5 -30
- package/src/components/block-toolbar/index.js +27 -11
- package/src/components/block-toolbar/shuffle.js +9 -7
- package/src/components/block-toolbar/style.scss +4 -1
- 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/index.js +1 -1
- package/src/components/block-tools/style.scss +3 -4
- package/src/components/block-tools/use-block-toolbar-popover-props.js +2 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +2 -17
- package/src/components/block-tools/zoom-out-popover.js +3 -7
- package/src/components/block-tools/zoom-out-toolbar.js +31 -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 +1 -1
- package/src/components/button-block-appender/content.scss +0 -1
- package/src/components/button-block-appender/index.js +30 -28
- 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/default-block-appender/content.scss +0 -1
- package/src/components/editor-styles/index.js +4 -3
- package/src/components/global-styles/background-panel.js +6 -14
- 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/shadow-panel-components.js +11 -15
- package/src/components/global-styles/style.scss +3 -4
- package/src/components/global-styles/test/typography-utils.js +96 -5
- 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/utils.js +4 -6
- package/src/components/grid/grid-item-movers.js +3 -3
- package/src/components/grid/style.scss +1 -1
- package/src/components/iframe/get-compatibility-styles.js +6 -1
- package/src/components/iframe/index.js +5 -5
- package/src/components/inner-blocks/index.js +2 -2
- 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/block-patterns-tab/pattern-category-previews.js +32 -15
- package/src/components/inserter/index.js +4 -10
- package/src/components/inserter/library.js +0 -2
- package/src/components/inserter/media-tab/hooks.js +3 -3
- package/src/components/inserter/media-tab/media-list.js +1 -7
- package/src/components/inserter/media-tab/media-preview.js +15 -8
- package/src/components/inserter/media-tab/media-tab.js +2 -0
- package/src/components/inserter/menu.js +15 -29
- package/src/components/inserter/quick-inserter.js +3 -4
- package/src/components/inserter/style.scss +10 -8
- package/src/components/inserter-list-item/index.js +4 -4
- package/src/components/inserter-list-item/style.scss +1 -3
- package/src/components/inserter-listbox/index.js +2 -11
- package/src/components/inserter-listbox/item.js +12 -14
- package/src/components/inserter-listbox/row.js +2 -9
- 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/link-control/index.js +17 -8
- package/src/components/link-control/settings-drawer.js +2 -0
- package/src/components/link-control/style.scss +1 -3
- package/src/components/list-view/block-select-button.js +2 -0
- package/src/components/list-view/index.js +3 -8
- package/src/components/list-view/style.scss +14 -16
- package/src/components/media-placeholder/README.md +2 -2
- package/src/components/media-placeholder/index.js +21 -4
- package/src/components/media-replace-flow/index.js +12 -1
- package/src/components/provider/use-block-sync.js +20 -20
- package/src/components/responsive-block-control/README.md +3 -27
- 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/style.scss +1 -0
- 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-popover/stories/index.story.js +7 -1
- package/src/components/use-block-drop-zone/index.js +37 -5
- 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/hooks/block-bindings.js +42 -43
- package/src/hooks/block-bindings.scss +1 -9
- package/src/hooks/content-lock-ui.js +11 -36
- package/src/hooks/duotone.js +0 -4
- package/src/hooks/layout.js +2 -1
- package/src/hooks/layout.scss +5 -27
- package/src/hooks/spacing-visualizer.js +3 -3
- package/src/hooks/style.js +1 -4
- package/src/hooks/use-bindings-attributes.js +23 -24
- package/src/hooks/use-zoom-out.js +7 -7
- package/src/layouts/constrained.js +53 -48
- package/src/layouts/flex.js +2 -0
- package/src/layouts/grid.js +29 -22
- 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 +2 -2
- 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 +18 -14
- package/src/store/reducer.js +0 -7
- package/src/store/selectors.js +32 -51
- package/src/store/utils.js +50 -0
- package/src/utils/block-bindings.js +15 -16
- 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 +259 -50
- package/src/utils/transform-styles/index.js +132 -21
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/utils/test/__snapshots__/transform-styles.js.snap +0 -109
package/src/private-apis.js
CHANGED
|
@@ -6,7 +6,6 @@ import { ExperimentalBlockEditorProvider } from './components/provider';
|
|
|
6
6
|
import { lock } from './lock-unlock';
|
|
7
7
|
import { getRichTextValues } from './components/rich-text/get-rich-text-values';
|
|
8
8
|
import ResizableBoxPopover from './components/resizable-box-popover';
|
|
9
|
-
import { ComposedPrivateInserter as PrivateInserter } from './components/inserter';
|
|
10
9
|
import { default as PrivateQuickInserter } from './components/inserter/quick-inserter';
|
|
11
10
|
import {
|
|
12
11
|
extractWords,
|
|
@@ -38,6 +37,7 @@ import {
|
|
|
38
37
|
reusableBlocksSelectKey,
|
|
39
38
|
globalStylesDataKey,
|
|
40
39
|
globalStylesLinksDataKey,
|
|
40
|
+
sectionRootClientIdKey,
|
|
41
41
|
} from './store/private-keys';
|
|
42
42
|
import { requiresWrapperOnCopy } from './components/writing-flow/utils';
|
|
43
43
|
import { PrivateRichText } from './components/rich-text/';
|
|
@@ -59,7 +59,6 @@ lock( privateApis, {
|
|
|
59
59
|
ExperimentalBlockEditorProvider,
|
|
60
60
|
getDuotoneFilter,
|
|
61
61
|
getRichTextValues,
|
|
62
|
-
PrivateInserter,
|
|
63
62
|
PrivateQuickInserter,
|
|
64
63
|
extractWords,
|
|
65
64
|
getNormalizedSearchTerms,
|
|
@@ -94,4 +93,5 @@ lock( privateApis, {
|
|
|
94
93
|
__unstableBlockStyleVariationOverridesWithConfig,
|
|
95
94
|
setBackgroundStyleDefaults,
|
|
96
95
|
useBlockBindingsUtils,
|
|
96
|
+
sectionRootClientIdKey,
|
|
97
97
|
} );
|
package/src/store/actions.js
CHANGED
|
@@ -34,8 +34,6 @@ import {
|
|
|
34
34
|
__experimentalUpdateSettings,
|
|
35
35
|
privateRemoveBlocks,
|
|
36
36
|
} from './private-actions';
|
|
37
|
-
import { STORE_NAME } from './constants';
|
|
38
|
-
import { unlock } from '../lock-unlock';
|
|
39
37
|
|
|
40
38
|
/** @typedef {import('../components/use-on-block-drop/types').WPDropOperation} WPDropOperation */
|
|
41
39
|
|
|
@@ -1670,13 +1668,13 @@ export const setNavigationMode =
|
|
|
1670
1668
|
*/
|
|
1671
1669
|
export const __unstableSetEditorMode =
|
|
1672
1670
|
( mode ) =>
|
|
1673
|
-
( { dispatch, select
|
|
1671
|
+
( { dispatch, select } ) => {
|
|
1674
1672
|
// When switching to zoom-out mode, we need to select the parent section
|
|
1675
1673
|
if ( mode === 'zoom-out' ) {
|
|
1676
1674
|
const firstSelectedClientId = select.getBlockSelectionStart();
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1675
|
+
|
|
1676
|
+
const sectionRootClientId = select.getSectionRootClientId();
|
|
1677
|
+
|
|
1680
1678
|
if ( firstSelectedClientId ) {
|
|
1681
1679
|
let sectionClientId;
|
|
1682
1680
|
|
|
@@ -367,6 +367,7 @@ export function expandBlock( clientId ) {
|
|
|
367
367
|
export const modifyContentLockBlock =
|
|
368
368
|
( clientId ) =>
|
|
369
369
|
( { select, dispatch } ) => {
|
|
370
|
+
dispatch.selectBlock( clientId );
|
|
370
371
|
dispatch.__unstableMarkNextChangeAsNotPersistent();
|
|
371
372
|
dispatch.updateBlockAttributes( clientId, {
|
|
372
373
|
templateLock: undefined,
|
|
@@ -2,3 +2,4 @@ export const globalStylesDataKey = Symbol( 'globalStylesDataKey' );
|
|
|
2
2
|
export const globalStylesLinksDataKey = Symbol( 'globalStylesLinks' );
|
|
3
3
|
export const selectBlockPatternsKey = Symbol( 'selectBlockPatternsKey' );
|
|
4
4
|
export const reusableBlocksSelectKey = Symbol( 'reusableBlocksSelect' );
|
|
5
|
+
export const sectionRootClientIdKey = Symbol( 'sectionRootClientIdKey' );
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
checkAllowListRecursive,
|
|
21
21
|
getAllPatternsDependants,
|
|
22
22
|
getInsertBlockTypeDependants,
|
|
23
|
+
getGrammar,
|
|
23
24
|
} from './utils';
|
|
24
25
|
import { INSERTER_PATTERN_TYPES } from '../components/inserter/block-patterns-tab/utils';
|
|
25
26
|
import { STORE_NAME } from './constants';
|
|
@@ -27,6 +28,7 @@ import { unlock } from '../lock-unlock';
|
|
|
27
28
|
import {
|
|
28
29
|
selectBlockPatternsKey,
|
|
29
30
|
reusableBlocksSelectKey,
|
|
31
|
+
sectionRootClientIdKey,
|
|
30
32
|
} from './private-keys';
|
|
31
33
|
|
|
32
34
|
export { getBlockSettings } from './get-block-settings';
|
|
@@ -112,6 +114,7 @@ export const getEnabledClientIdsTree = createSelector(
|
|
|
112
114
|
state.blockEditingModes,
|
|
113
115
|
state.settings.templateLock,
|
|
114
116
|
state.blockListSettings,
|
|
117
|
+
state.editorMode,
|
|
115
118
|
]
|
|
116
119
|
);
|
|
117
120
|
|
|
@@ -291,19 +294,18 @@ export const getInserterMediaCategories = createSelector(
|
|
|
291
294
|
export const hasAllowedPatterns = createRegistrySelector( ( select ) =>
|
|
292
295
|
createSelector(
|
|
293
296
|
( state, rootClientId = null ) => {
|
|
294
|
-
const { getAllPatterns
|
|
295
|
-
select( STORE_NAME )
|
|
296
|
-
);
|
|
297
|
+
const { getAllPatterns } = unlock( select( STORE_NAME ) );
|
|
297
298
|
const patterns = getAllPatterns();
|
|
298
299
|
const { allowedBlockTypes } = getSettings( state );
|
|
299
|
-
return patterns.some( (
|
|
300
|
+
return patterns.some( ( pattern ) => {
|
|
301
|
+
const { inserter = true } = pattern;
|
|
300
302
|
if ( ! inserter ) {
|
|
301
303
|
return false;
|
|
302
304
|
}
|
|
303
|
-
const
|
|
305
|
+
const grammar = getGrammar( pattern );
|
|
304
306
|
return (
|
|
305
|
-
checkAllowListRecursive(
|
|
306
|
-
|
|
307
|
+
checkAllowListRecursive( grammar, allowedBlockTypes ) &&
|
|
308
|
+
grammar.every( ( { name: blockName } ) =>
|
|
307
309
|
canInsertBlockType( state, blockName, rootClientId )
|
|
308
310
|
)
|
|
309
311
|
);
|
|
@@ -421,9 +423,11 @@ const EMPTY_ARRAY = [];
|
|
|
421
423
|
export const getReusableBlocks = createRegistrySelector(
|
|
422
424
|
( select ) => ( state ) => {
|
|
423
425
|
const reusableBlocksSelect = state.settings[ reusableBlocksSelectKey ];
|
|
424
|
-
return
|
|
425
|
-
|
|
426
|
-
|
|
426
|
+
return (
|
|
427
|
+
( reusableBlocksSelect
|
|
428
|
+
? reusableBlocksSelect( select )
|
|
429
|
+
: state.settings.__experimentalReusableBlocks ) ?? EMPTY_ARRAY
|
|
430
|
+
);
|
|
427
431
|
}
|
|
428
432
|
);
|
|
429
433
|
|
|
@@ -512,10 +516,6 @@ export function getTemporarilyEditingFocusModeToRevert( state ) {
|
|
|
512
516
|
return state.temporarilyEditingFocusModeRevert;
|
|
513
517
|
}
|
|
514
518
|
|
|
515
|
-
export function getInserterSearchInputRef( state ) {
|
|
516
|
-
return state.inserterSearchInputRef;
|
|
517
|
-
}
|
|
518
|
-
|
|
519
519
|
/**
|
|
520
520
|
* Returns the style attributes of multiple blocks.
|
|
521
521
|
*
|
|
@@ -547,3 +547,7 @@ export const getBlockStyles = createSelector(
|
|
|
547
547
|
export function isZoomOutMode( state ) {
|
|
548
548
|
return state.editorMode === 'zoom-out';
|
|
549
549
|
}
|
|
550
|
+
|
|
551
|
+
export function getSectionRootClientId( state ) {
|
|
552
|
+
return state.settings?.[ sectionRootClientIdKey ];
|
|
553
|
+
}
|
package/src/store/reducer.js
CHANGED
|
@@ -1624,8 +1624,6 @@ export function insertionPoint( state = null, action ) {
|
|
|
1624
1624
|
}
|
|
1625
1625
|
|
|
1626
1626
|
case 'HIDE_INSERTION_POINT':
|
|
1627
|
-
case 'CLEAR_SELECTED_BLOCK':
|
|
1628
|
-
case 'SELECT_BLOCK':
|
|
1629
1627
|
return null;
|
|
1630
1628
|
}
|
|
1631
1629
|
|
|
@@ -2087,10 +2085,6 @@ export function hoveredBlockClientId( state = false, action ) {
|
|
|
2087
2085
|
return state;
|
|
2088
2086
|
}
|
|
2089
2087
|
|
|
2090
|
-
export function inserterSearchInputRef( state = { current: null } ) {
|
|
2091
|
-
return state;
|
|
2092
|
-
}
|
|
2093
|
-
|
|
2094
2088
|
const combinedReducers = combineReducers( {
|
|
2095
2089
|
blocks,
|
|
2096
2090
|
isDragging,
|
|
@@ -2124,7 +2118,6 @@ const combinedReducers = combineReducers( {
|
|
|
2124
2118
|
openedBlockSettingsMenu,
|
|
2125
2119
|
registeredInserterMediaCategories,
|
|
2126
2120
|
hoveredBlockClientId,
|
|
2127
|
-
inserterSearchInputRef,
|
|
2128
2121
|
} );
|
|
2129
2122
|
|
|
2130
2123
|
function withAutomaticChangeReset( reducer ) {
|
package/src/store/selectors.js
CHANGED
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
getBlockVariations,
|
|
8
8
|
hasBlockSupport,
|
|
9
9
|
getPossibleBlockTransformations,
|
|
10
|
-
parse,
|
|
11
10
|
switchToBlockType,
|
|
12
11
|
store as blocksStore,
|
|
13
12
|
} from '@wordpress/blocks';
|
|
@@ -27,6 +26,8 @@ import {
|
|
|
27
26
|
checkAllowList,
|
|
28
27
|
getAllPatternsDependants,
|
|
29
28
|
getInsertBlockTypeDependants,
|
|
29
|
+
getParsedPattern,
|
|
30
|
+
getGrammar,
|
|
30
31
|
} from './utils';
|
|
31
32
|
import { orderBy } from '../utils/sorting';
|
|
32
33
|
import { STORE_NAME } from './constants';
|
|
@@ -36,6 +37,7 @@ import {
|
|
|
36
37
|
getContentLockingParent,
|
|
37
38
|
getTemporarilyEditingAsBlocks,
|
|
38
39
|
getTemporarilyEditingFocusModeToRevert,
|
|
40
|
+
getSectionRootClientId,
|
|
39
41
|
} from './private-selectors';
|
|
40
42
|
|
|
41
43
|
/**
|
|
@@ -1752,7 +1754,7 @@ export function canRemoveBlocks( state, clientIds ) {
|
|
|
1752
1754
|
* @param {Object} state Editor state.
|
|
1753
1755
|
* @param {string} clientId The block client Id.
|
|
1754
1756
|
*
|
|
1755
|
-
* @return {boolean
|
|
1757
|
+
* @return {boolean} Whether the given block is allowed to be moved.
|
|
1756
1758
|
*/
|
|
1757
1759
|
export function canMoveBlock( state, clientId ) {
|
|
1758
1760
|
const attributes = getBlockAttributes( state, clientId );
|
|
@@ -2057,9 +2059,8 @@ export const getInserterItems = createRegistrySelector( ( select ) =>
|
|
|
2057
2059
|
if ( ! item.rootClientId ) {
|
|
2058
2060
|
let sectionRootClientId;
|
|
2059
2061
|
try {
|
|
2060
|
-
sectionRootClientId =
|
|
2061
|
-
|
|
2062
|
-
).sectionRootClientId;
|
|
2062
|
+
sectionRootClientId =
|
|
2063
|
+
getSectionRootClientId( state );
|
|
2063
2064
|
} catch ( e ) {}
|
|
2064
2065
|
if (
|
|
2065
2066
|
sectionRootClientId &&
|
|
@@ -2349,40 +2350,12 @@ export function __experimentalGetDirectInsertBlock(
|
|
|
2349
2350
|
}
|
|
2350
2351
|
|
|
2351
2352
|
export const __experimentalGetParsedPattern = createRegistrySelector(
|
|
2352
|
-
( select ) =>
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
if ( ! pattern ) {
|
|
2359
|
-
return null;
|
|
2360
|
-
}
|
|
2361
|
-
const blocks = parse( pattern.content, {
|
|
2362
|
-
__unstableSkipMigrationLogs: true,
|
|
2363
|
-
} );
|
|
2364
|
-
if ( blocks.length === 1 ) {
|
|
2365
|
-
blocks[ 0 ].attributes = {
|
|
2366
|
-
...blocks[ 0 ].attributes,
|
|
2367
|
-
metadata: {
|
|
2368
|
-
...( blocks[ 0 ].attributes.metadata || {} ),
|
|
2369
|
-
categories: pattern.categories,
|
|
2370
|
-
patternName: pattern.name,
|
|
2371
|
-
name:
|
|
2372
|
-
blocks[ 0 ].attributes.metadata?.name ||
|
|
2373
|
-
pattern.title,
|
|
2374
|
-
},
|
|
2375
|
-
};
|
|
2376
|
-
}
|
|
2377
|
-
return {
|
|
2378
|
-
...pattern,
|
|
2379
|
-
blocks,
|
|
2380
|
-
};
|
|
2381
|
-
},
|
|
2382
|
-
( state, patternName ) => [
|
|
2383
|
-
unlock( select( STORE_NAME ) ).getPatternBySlug( patternName ),
|
|
2384
|
-
]
|
|
2385
|
-
)
|
|
2353
|
+
( select ) => ( state, patternName ) => {
|
|
2354
|
+
const pattern = unlock( select( STORE_NAME ) ).getPatternBySlug(
|
|
2355
|
+
patternName
|
|
2356
|
+
);
|
|
2357
|
+
return pattern ? getParsedPattern( pattern ) : null;
|
|
2358
|
+
}
|
|
2386
2359
|
);
|
|
2387
2360
|
|
|
2388
2361
|
const getAllowedPatternsDependants = ( select ) => ( state, rootClientId ) => [
|
|
@@ -2401,23 +2374,30 @@ const getAllowedPatternsDependants = ( select ) => ( state, rootClientId ) => [
|
|
|
2401
2374
|
export const __experimentalGetAllowedPatterns = createRegistrySelector(
|
|
2402
2375
|
( select ) => {
|
|
2403
2376
|
return createSelector( ( state, rootClientId = null ) => {
|
|
2404
|
-
const {
|
|
2405
|
-
getAllPatterns,
|
|
2406
|
-
__experimentalGetParsedPattern: getParsedPattern,
|
|
2407
|
-
} = unlock( select( STORE_NAME ) );
|
|
2377
|
+
const { getAllPatterns } = unlock( select( STORE_NAME ) );
|
|
2408
2378
|
const patterns = getAllPatterns();
|
|
2409
2379
|
const { allowedBlockTypes } = getSettings( state );
|
|
2410
|
-
|
|
2411
2380
|
const parsedPatterns = patterns
|
|
2412
2381
|
.filter( ( { inserter = true } ) => !! inserter )
|
|
2413
|
-
.map( (
|
|
2382
|
+
.map( ( pattern ) => {
|
|
2383
|
+
return {
|
|
2384
|
+
...pattern,
|
|
2385
|
+
get blocks() {
|
|
2386
|
+
return getParsedPattern( pattern ).blocks;
|
|
2387
|
+
},
|
|
2388
|
+
};
|
|
2389
|
+
} );
|
|
2390
|
+
|
|
2414
2391
|
const availableParsedPatterns = parsedPatterns.filter(
|
|
2415
|
-
(
|
|
2416
|
-
checkAllowListRecursive(
|
|
2392
|
+
( pattern ) =>
|
|
2393
|
+
checkAllowListRecursive(
|
|
2394
|
+
getGrammar( pattern ),
|
|
2395
|
+
allowedBlockTypes
|
|
2396
|
+
)
|
|
2417
2397
|
);
|
|
2418
2398
|
const patternsAllowed = availableParsedPatterns.filter(
|
|
2419
|
-
(
|
|
2420
|
-
|
|
2399
|
+
( pattern ) =>
|
|
2400
|
+
getGrammar( pattern ).every( ( { blockName: name } ) =>
|
|
2421
2401
|
canInsertBlockType( state, name, rootClientId )
|
|
2422
2402
|
)
|
|
2423
2403
|
);
|
|
@@ -2858,7 +2838,7 @@ export function __unstableHasActiveBlockOverlayActive( state, clientId ) {
|
|
|
2858
2838
|
|
|
2859
2839
|
// In zoom-out mode, the block overlay is always active for section level blocks.
|
|
2860
2840
|
if ( editorMode === 'zoom-out' ) {
|
|
2861
|
-
const
|
|
2841
|
+
const sectionRootClientId = getSectionRootClientId( state );
|
|
2862
2842
|
if ( sectionRootClientId ) {
|
|
2863
2843
|
const sectionClientIds = getBlockOrder(
|
|
2864
2844
|
state,
|
|
@@ -2951,7 +2931,8 @@ export const getBlockEditingMode = createRegistrySelector(
|
|
|
2951
2931
|
// sections.
|
|
2952
2932
|
const editorMode = __unstableGetEditorMode( state );
|
|
2953
2933
|
if ( editorMode === 'zoom-out' ) {
|
|
2954
|
-
const
|
|
2934
|
+
const sectionRootClientId = getSectionRootClientId( state );
|
|
2935
|
+
|
|
2955
2936
|
if ( clientId === '' /* ROOT_CONTAINER_CLIENT_ID */ ) {
|
|
2956
2937
|
return sectionRootClientId ? 'disabled' : 'contentOnly';
|
|
2957
2938
|
}
|
package/src/store/utils.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { parse } from '@wordpress/blocks';
|
|
5
|
+
import { parse as grammarParse } from '@wordpress/block-serialization-default-parser';
|
|
6
|
+
|
|
1
7
|
/**
|
|
2
8
|
* Internal dependencies
|
|
3
9
|
*/
|
|
@@ -7,6 +13,50 @@ import { STORE_NAME } from './constants';
|
|
|
7
13
|
|
|
8
14
|
export const withRootClientIdOptionKey = Symbol( 'withRootClientId' );
|
|
9
15
|
|
|
16
|
+
const parsedPatternCache = new WeakMap();
|
|
17
|
+
const grammarMapCache = new WeakMap();
|
|
18
|
+
|
|
19
|
+
function parsePattern( pattern ) {
|
|
20
|
+
const blocks = parse( pattern.content, {
|
|
21
|
+
__unstableSkipMigrationLogs: true,
|
|
22
|
+
} );
|
|
23
|
+
if ( blocks.length === 1 ) {
|
|
24
|
+
blocks[ 0 ].attributes = {
|
|
25
|
+
...blocks[ 0 ].attributes,
|
|
26
|
+
metadata: {
|
|
27
|
+
...( blocks[ 0 ].attributes.metadata || {} ),
|
|
28
|
+
categories: pattern.categories,
|
|
29
|
+
patternName: pattern.name,
|
|
30
|
+
name: blocks[ 0 ].attributes.metadata?.name || pattern.title,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
...pattern,
|
|
36
|
+
blocks,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function getParsedPattern( pattern ) {
|
|
41
|
+
let parsedPattern = parsedPatternCache.get( pattern );
|
|
42
|
+
if ( ! parsedPattern ) {
|
|
43
|
+
parsedPattern = parsePattern( pattern );
|
|
44
|
+
parsedPatternCache.set( pattern, parsedPattern );
|
|
45
|
+
}
|
|
46
|
+
return parsedPattern;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function getGrammar( pattern ) {
|
|
50
|
+
let grammarMap = grammarMapCache.get( pattern );
|
|
51
|
+
if ( ! grammarMap ) {
|
|
52
|
+
grammarMap = grammarParse( pattern.content );
|
|
53
|
+
// Block names are null only at the top level for whitespace.
|
|
54
|
+
grammarMap = grammarMap.filter( ( block ) => block.blockName !== null );
|
|
55
|
+
grammarMapCache.set( pattern, grammarMap );
|
|
56
|
+
}
|
|
57
|
+
return grammarMap;
|
|
58
|
+
}
|
|
59
|
+
|
|
10
60
|
export const checkAllowList = ( list, item, defaultResult = null ) => {
|
|
11
61
|
if ( typeof list === 'boolean' ) {
|
|
12
62
|
return list;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { useDispatch,
|
|
4
|
+
import { useDispatch, useRegistry } from '@wordpress/data';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
@@ -9,10 +9,14 @@ import { useDispatch, useSelect } from '@wordpress/data';
|
|
|
9
9
|
import { store as blockEditorStore } from '../store';
|
|
10
10
|
import { useBlockEditContext } from '../components/block-edit';
|
|
11
11
|
|
|
12
|
+
function isObjectEmpty( object ) {
|
|
13
|
+
return ! object || Object.keys( object ).length === 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
12
16
|
export function useBlockBindingsUtils() {
|
|
13
17
|
const { clientId } = useBlockEditContext();
|
|
14
18
|
const { updateBlockAttributes } = useDispatch( blockEditorStore );
|
|
15
|
-
const { getBlockAttributes } =
|
|
19
|
+
const { getBlockAttributes } = useRegistry().select( blockEditorStore );
|
|
16
20
|
|
|
17
21
|
/**
|
|
18
22
|
* Updates the value of the bindings connected to block attributes.
|
|
@@ -44,8 +48,10 @@ export function useBlockBindingsUtils() {
|
|
|
44
48
|
* ```
|
|
45
49
|
*/
|
|
46
50
|
const updateBlockBindings = ( bindings ) => {
|
|
47
|
-
const { metadata } =
|
|
48
|
-
|
|
51
|
+
const { metadata: { bindings: currentBindings, ...metadata } = {} } =
|
|
52
|
+
getBlockAttributes( clientId );
|
|
53
|
+
const newBindings = { ...currentBindings };
|
|
54
|
+
|
|
49
55
|
Object.entries( bindings ).forEach( ( [ attribute, binding ] ) => {
|
|
50
56
|
if ( ! binding && newBindings[ attribute ] ) {
|
|
51
57
|
delete newBindings[ attribute ];
|
|
@@ -59,15 +65,12 @@ export function useBlockBindingsUtils() {
|
|
|
59
65
|
bindings: newBindings,
|
|
60
66
|
};
|
|
61
67
|
|
|
62
|
-
if (
|
|
68
|
+
if ( isObjectEmpty( newMetadata.bindings ) ) {
|
|
63
69
|
delete newMetadata.bindings;
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
updateBlockAttributes( clientId, {
|
|
67
|
-
metadata:
|
|
68
|
-
Object.keys( newMetadata ).length === 0
|
|
69
|
-
? undefined
|
|
70
|
-
: newMetadata,
|
|
73
|
+
metadata: isObjectEmpty( newMetadata ) ? undefined : newMetadata,
|
|
71
74
|
} );
|
|
72
75
|
};
|
|
73
76
|
|
|
@@ -83,14 +86,10 @@ export function useBlockBindingsUtils() {
|
|
|
83
86
|
* ```
|
|
84
87
|
*/
|
|
85
88
|
const removeAllBlockBindings = () => {
|
|
86
|
-
const { metadata } =
|
|
87
|
-
|
|
88
|
-
delete newMetadata.bindings;
|
|
89
|
+
const { metadata: { bindings, ...metadata } = {} } =
|
|
90
|
+
getBlockAttributes( clientId );
|
|
89
91
|
updateBlockAttributes( clientId, {
|
|
90
|
-
metadata:
|
|
91
|
-
Object.keys( newMetadata ).length === 0
|
|
92
|
-
? undefined
|
|
93
|
-
: newMetadata,
|
|
92
|
+
metadata: isObjectEmpty( metadata ) ? undefined : metadata,
|
|
94
93
|
} );
|
|
95
94
|
};
|
|
96
95
|
|
package/src/utils/dom.js
CHANGED
|
@@ -57,3 +57,120 @@ export function getBlockClientId( node ) {
|
|
|
57
57
|
|
|
58
58
|
return blockNode.id.slice( 'block-'.length );
|
|
59
59
|
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Calculates the union of two rectangles.
|
|
63
|
+
*
|
|
64
|
+
* @param {DOMRect} rect1 First rectangle.
|
|
65
|
+
* @param {DOMRect} rect2 Second rectangle.
|
|
66
|
+
* @return {DOMRect} Union of the two rectangles.
|
|
67
|
+
*/
|
|
68
|
+
export function rectUnion( rect1, rect2 ) {
|
|
69
|
+
const left = Math.min( rect1.left, rect2.left );
|
|
70
|
+
const right = Math.max( rect1.right, rect2.right );
|
|
71
|
+
const bottom = Math.max( rect1.bottom, rect2.bottom );
|
|
72
|
+
const top = Math.min( rect1.top, rect2.top );
|
|
73
|
+
|
|
74
|
+
return new window.DOMRectReadOnly( left, top, right - left, bottom - top );
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Returns whether an element is visible.
|
|
79
|
+
*
|
|
80
|
+
* @param {Element} element Element.
|
|
81
|
+
* @return {boolean} Whether the element is visible.
|
|
82
|
+
*/
|
|
83
|
+
function isElementVisible( element ) {
|
|
84
|
+
const viewport = element.ownerDocument.defaultView;
|
|
85
|
+
if ( ! viewport ) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Check for <VisuallyHidden> component.
|
|
90
|
+
if ( element.classList.contains( 'components-visually-hidden' ) ) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const bounds = element.getBoundingClientRect();
|
|
95
|
+
if ( bounds.width === 0 || bounds.height === 0 ) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Older browsers, e.g. Safari < 17.4 may not support the `checkVisibility` method.
|
|
100
|
+
if ( element.checkVisibility ) {
|
|
101
|
+
return element.checkVisibility?.( {
|
|
102
|
+
opacityProperty: true,
|
|
103
|
+
contentVisibilityAuto: true,
|
|
104
|
+
visibilityProperty: true,
|
|
105
|
+
} );
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const style = viewport.getComputedStyle( element );
|
|
109
|
+
|
|
110
|
+
if (
|
|
111
|
+
style.display === 'none' ||
|
|
112
|
+
style.visibility === 'hidden' ||
|
|
113
|
+
style.opacity === '0'
|
|
114
|
+
) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Returns the rect of the element including all visible nested elements.
|
|
123
|
+
*
|
|
124
|
+
* Visible nested elements, including elements that overflow the parent, are
|
|
125
|
+
* taken into account.
|
|
126
|
+
*
|
|
127
|
+
* This function is useful for calculating the visible area of a block that
|
|
128
|
+
* contains nested elements that overflow the block, e.g. the Navigation block,
|
|
129
|
+
* which can contain overflowing Submenu blocks.
|
|
130
|
+
*
|
|
131
|
+
* The returned rect represents the full extent of the element and its visible
|
|
132
|
+
* children, which may extend beyond the viewport.
|
|
133
|
+
*
|
|
134
|
+
* @param {Element} element Element.
|
|
135
|
+
* @return {DOMRect} Bounding client rect of the element and its visible children.
|
|
136
|
+
*/
|
|
137
|
+
export function getVisibleElementBounds( element ) {
|
|
138
|
+
const viewport = element.ownerDocument.defaultView;
|
|
139
|
+
if ( ! viewport ) {
|
|
140
|
+
return new window.DOMRectReadOnly();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
let bounds = element.getBoundingClientRect();
|
|
144
|
+
|
|
145
|
+
const stack = [ element ];
|
|
146
|
+
let currentElement;
|
|
147
|
+
|
|
148
|
+
while ( ( currentElement = stack.pop() ) ) {
|
|
149
|
+
for ( const child of currentElement.children ) {
|
|
150
|
+
if ( isElementVisible( child ) ) {
|
|
151
|
+
const childBounds = child.getBoundingClientRect();
|
|
152
|
+
bounds = rectUnion( bounds, childBounds );
|
|
153
|
+
stack.push( child );
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/*
|
|
159
|
+
* Take into account the outer horizontal limits of the container in which
|
|
160
|
+
* an element is supposed to be "visible". For example, if an element is
|
|
161
|
+
* positioned -10px to the left of the window x value (0), this function
|
|
162
|
+
* discounts the negative overhang because it's not visible and therefore
|
|
163
|
+
* not to be counted in the visibility calculations. Top and bottom values
|
|
164
|
+
* are not accounted for to accommodate vertical scroll.
|
|
165
|
+
*/
|
|
166
|
+
const left = Math.max( bounds.left, 0 );
|
|
167
|
+
const right = Math.min( bounds.right, viewport.innerWidth );
|
|
168
|
+
bounds = new window.DOMRectReadOnly(
|
|
169
|
+
left,
|
|
170
|
+
bounds.top,
|
|
171
|
+
right - left,
|
|
172
|
+
bounds.height
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
return bounds;
|
|
176
|
+
}
|
|
@@ -79,7 +79,10 @@ export function getFontStylesAndWeights( fontFamilyFaces ) {
|
|
|
79
79
|
|
|
80
80
|
fontFamilyFaces?.forEach( ( face ) => {
|
|
81
81
|
// Check for variable font by looking for a space in the font weight value. e.g. "100 900"
|
|
82
|
-
if (
|
|
82
|
+
if (
|
|
83
|
+
'string' === typeof face.fontWeight &&
|
|
84
|
+
/\s/.test( face.fontWeight.trim() )
|
|
85
|
+
) {
|
|
83
86
|
isVariableFont = true;
|
|
84
87
|
|
|
85
88
|
// Find font weight start and end values.
|
|
@@ -105,11 +108,15 @@ export function getFontStylesAndWeights( fontFamilyFaces ) {
|
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
// Format font style and weight values.
|
|
108
|
-
const fontWeight = formatFontWeight(
|
|
111
|
+
const fontWeight = formatFontWeight(
|
|
112
|
+
'number' === typeof face.fontWeight
|
|
113
|
+
? face.fontWeight.toString()
|
|
114
|
+
: face.fontWeight
|
|
115
|
+
);
|
|
109
116
|
const fontStyle = formatFontStyle( face.fontStyle );
|
|
110
117
|
|
|
111
118
|
// Create font style and font weight lists without duplicates.
|
|
112
|
-
if ( fontStyle ) {
|
|
119
|
+
if ( fontStyle && Object.keys( fontStyle ).length ) {
|
|
113
120
|
if (
|
|
114
121
|
! fontStyles.some(
|
|
115
122
|
( style ) => style.value === fontStyle.value
|
|
@@ -118,7 +125,8 @@ export function getFontStylesAndWeights( fontFamilyFaces ) {
|
|
|
118
125
|
fontStyles.push( fontStyle );
|
|
119
126
|
}
|
|
120
127
|
}
|
|
121
|
-
|
|
128
|
+
|
|
129
|
+
if ( fontWeight && Object.keys( fontWeight ).length ) {
|
|
122
130
|
if (
|
|
123
131
|
! fontWeights.some(
|
|
124
132
|
( weight ) => weight.value === fontWeight.value
|