@wordpress/block-editor 15.23.0 → 16.0.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 +33 -0
- package/build/autocompleters/block.cjs +10 -2
- package/build/autocompleters/block.cjs.map +2 -2
- package/build/components/background-image-control/index.cjs +0 -2
- package/build/components/background-image-control/index.cjs.map +2 -2
- package/build/components/block-canvas/index.cjs +6 -1
- package/build/components/block-canvas/index.cjs.map +2 -2
- package/build/components/block-controls/groups.cjs +3 -1
- package/build/components/block-controls/groups.cjs.map +2 -2
- package/build/components/block-edit/edit.cjs +10 -18
- package/build/components/block-edit/edit.cjs.map +2 -2
- package/build/components/block-inspector/edit-contents.cjs +3 -0
- package/build/components/block-inspector/edit-contents.cjs.map +3 -3
- package/build/components/block-inspector/index.cjs +2 -3
- package/build/components/block-inspector/index.cjs.map +2 -2
- package/build/components/block-list/block-invalid-warning.cjs +8 -19
- package/build/components/block-list/block-invalid-warning.cjs.map +2 -2
- package/build/components/block-list/block.cjs +9 -3
- package/build/components/block-list/block.cjs.map +3 -3
- package/build/components/block-list/index.cjs +1 -3
- package/build/components/block-list/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/index.cjs +3 -1
- package/build/components/block-list/use-block-props/index.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs +9 -4
- package/build/components/block-list/use-block-props/use-focus-first-element.cjs.map +2 -2
- package/build/components/block-list/use-block-props/use-focus-handler.cjs +12 -4
- package/build/components/block-list/use-block-props/use-focus-handler.cjs.map +2 -2
- package/build/components/block-styles/use-styles-for-block.cjs +2 -1
- package/build/components/block-styles/use-styles-for-block.cjs.map +2 -2
- package/build/components/block-title/use-block-display-title.cjs +7 -2
- package/build/components/block-title/use-block-display-title.cjs.map +2 -2
- package/build/components/block-toolbar/block-toolbar-icon.cjs +10 -14
- package/build/components/block-toolbar/block-toolbar-icon.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +43 -24
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +7 -2
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-variation-transforms/index.cjs +0 -1
- package/build/components/block-variation-transforms/index.cjs.map +2 -2
- package/build/components/block-visibility/modal.cjs +20 -6
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +16 -6
- package/build/components/block-visibility/use-block-visibility.cjs.map +3 -3
- package/build/components/block-visibility/utils.cjs +15 -2
- package/build/components/block-visibility/utils.cjs.map +3 -3
- package/build/components/block-visibility/viewport-menu-item.cjs +7 -1
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +5 -0
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +5 -1
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
- package/build/components/child-layout-control/index.cjs +0 -6
- package/build/components/child-layout-control/index.cjs.map +2 -2
- package/build/components/colors-gradients/control.cjs +5 -5
- package/build/components/colors-gradients/control.cjs.map +2 -2
- package/build/components/date-format-picker/index.cjs +0 -1
- package/build/components/date-format-picker/index.cjs.map +2 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs +1 -2
- package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/scale-tool.cjs +0 -1
- package/build/components/dimensions-tool/scale-tool.cjs.map +2 -2
- package/build/components/dimensions-tool/width-height-tool.cjs +2 -4
- package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
- package/build/components/font-appearance-control/index.cjs +6 -25
- package/build/components/font-appearance-control/index.cjs.map +3 -3
- package/build/components/font-family/index.cjs +6 -15
- package/build/components/font-family/index.cjs.map +3 -3
- package/build/components/font-sizes/font-size-picker.cjs +1 -2
- package/build/components/font-sizes/font-size-picker.cjs.map +2 -2
- package/build/components/global-styles/border-panel.cjs +0 -1
- package/build/components/global-styles/border-panel.cjs.map +2 -2
- package/build/components/global-styles/dimensions-panel.cjs +0 -3
- package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
- package/build/components/global-styles/state-control-badges.cjs +39 -3
- package/build/components/global-styles/state-control-badges.cjs.map +2 -2
- package/build/components/global-styles/typography-panel.cjs +4 -11
- package/build/components/global-styles/typography-panel.cjs.map +2 -2
- package/build/components/height-control/index.cjs +0 -2
- package/build/components/height-control/index.cjs.map +2 -2
- package/build/components/html-element-control/index.cjs +0 -1
- package/build/components/html-element-control/index.cjs.map +2 -2
- package/build/components/image-editor/index.cjs +5 -0
- package/build/components/image-editor/index.cjs.map +3 -3
- package/build/components/image-editor/zoom-dropdown.cjs +0 -1
- package/build/components/image-editor/zoom-dropdown.cjs.map +2 -2
- package/build/components/image-size-control/index.cjs +3 -7
- package/build/components/image-size-control/index.cjs.map +2 -2
- package/build/components/inner-content/index.cjs +107 -0
- package/build/components/inner-content/index.cjs.map +7 -0
- package/build/components/inserter/hooks/use-block-types-state.cjs +10 -2
- package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
- package/build/components/inserter/media-tab/hooks.cjs +67 -12
- package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-list.cjs +3 -1
- package/build/components/inserter/media-tab/media-list.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-panel.cjs +287 -28
- package/build/components/inserter/media-tab/media-panel.cjs.map +3 -3
- package/build/components/inserter/media-tab/media-preview.cjs +32 -17
- package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
- package/build/components/inserter/media-tab/media-tab.cjs +26 -6
- package/build/components/inserter/media-tab/media-tab.cjs.map +2 -2
- package/build/components/inserter/mobile-tab-navigation.cjs +6 -1
- package/build/components/inserter/mobile-tab-navigation.cjs.map +2 -2
- package/build/components/inserter/no-results.cjs +2 -2
- package/build/components/inserter/no-results.cjs.map +2 -2
- package/build/components/inserter/preview-panel.cjs +2 -1
- package/build/components/inserter/preview-panel.cjs.map +2 -2
- package/build/components/inserter-list-item/index.cjs +8 -2
- package/build/components/inserter-list-item/index.cjs.map +2 -2
- package/build/components/keyboard-shortcuts/index.cjs +19 -11
- package/build/components/keyboard-shortcuts/index.cjs.map +2 -2
- package/build/components/letter-spacing-control/index.cjs +0 -24
- package/build/components/letter-spacing-control/index.cjs.map +3 -3
- package/build/components/line-height-control/index.cjs +6 -22
- package/build/components/line-height-control/index.cjs.map +3 -3
- package/build/components/list-view/block-select-button.cjs +90 -84
- package/build/components/list-view/block-select-button.cjs.map +2 -2
- package/build/components/list-view/block.cjs +61 -21
- package/build/components/list-view/block.cjs.map +2 -2
- package/build/components/list-view/expander.cjs +1 -1
- package/build/components/list-view/expander.cjs.map +2 -2
- package/build/components/list-view/use-list-view-client-ids.cjs +2 -2
- package/build/components/list-view/use-list-view-client-ids.cjs.map +2 -2
- package/build/components/media-placeholder/index.cjs +0 -1
- package/build/components/media-placeholder/index.cjs.map +2 -2
- package/build/components/observe-typing/index.cjs +4 -3
- package/build/components/observe-typing/index.cjs.map +2 -2
- package/build/components/preset-input-control/custom-value-controls.cjs +1 -3
- package/build/components/preset-input-control/custom-value-controls.cjs.map +2 -2
- package/build/components/preset-input-control/index.cjs +1 -3
- package/build/components/preset-input-control/index.cjs.map +2 -2
- package/build/components/resolution-tool/index.cjs +1 -2
- package/build/components/resolution-tool/index.cjs.map +2 -2
- package/build/components/rich-text/event-listeners/before-input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/before-input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/delete.cjs +2 -3
- package/build/components/rich-text/event-listeners/delete.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/enter.cjs +3 -2
- package/build/components/rich-text/event-listeners/enter.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs +3 -3
- package/build/components/rich-text/event-listeners/input-events.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/input-rules.cjs +3 -4
- package/build/components/rich-text/event-listeners/input-rules.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs +3 -3
- package/build/components/rich-text/event-listeners/insert-replacement-text.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/paste-handler.cjs +2 -1
- package/build/components/rich-text/event-listeners/paste-handler.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/remove-browser-shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs +3 -3
- package/build/components/rich-text/event-listeners/shortcuts.cjs.map +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs +3 -3
- package/build/components/rich-text/event-listeners/undo-automatic-change.cjs.map +3 -3
- package/build/components/rich-text/index.cjs +66 -17
- package/build/components/rich-text/index.cjs.map +2 -2
- package/build/components/text-alignment-control/index.cjs +0 -1
- package/build/components/text-alignment-control/index.cjs.map +2 -2
- package/build/components/text-decoration-control/index.cjs +0 -1
- package/build/components/text-decoration-control/index.cjs.map +2 -2
- package/build/components/text-indent-control/index.cjs +0 -8
- package/build/components/text-indent-control/index.cjs.map +2 -2
- package/build/components/text-transform-control/index.cjs +0 -1
- package/build/components/text-transform-control/index.cjs.map +2 -2
- package/build/components/typewriter/index.cjs +129 -136
- package/build/components/typewriter/index.cjs.map +3 -3
- package/build/components/use-block-commands/index.cjs +21 -17
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/components/use-block-display-information/index.cjs +10 -8
- package/build/components/use-block-display-information/index.cjs.map +2 -2
- package/build/components/use-on-block-drop/index.cjs +3 -7
- package/build/components/use-on-block-drop/index.cjs.map +2 -2
- package/build/components/writing-flow/index.cjs +12 -1
- package/build/components/writing-flow/index.cjs.map +3 -3
- package/build/components/writing-flow/use-arrow-nav.cjs +18 -5
- package/build/components/writing-flow/use-arrow-nav.cjs.map +2 -2
- package/build/components/writing-flow/use-click-selection.cjs +2 -2
- package/build/components/writing-flow/use-click-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-clipboard-handler.cjs +4 -1
- package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
- package/build/components/writing-flow/use-drag-selection.cjs +3 -8
- package/build/components/writing-flow/use-drag-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-editable-root.cjs +112 -0
- package/build/components/writing-flow/use-editable-root.cjs.map +7 -0
- package/build/components/writing-flow/use-home-end.cjs +64 -0
- package/build/components/writing-flow/use-home-end.cjs.map +7 -0
- package/build/components/writing-flow/use-input.cjs +15 -5
- package/build/components/writing-flow/use-input.cjs.map +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs +2 -2
- package/build/components/writing-flow/use-multi-selection.cjs.map +2 -2
- package/build/components/writing-flow/use-select-all.cjs +14 -2
- package/build/components/writing-flow/use-select-all.cjs.map +2 -2
- package/build/components/writing-flow/use-selection-observer.cjs +126 -20
- package/build/components/writing-flow/use-selection-observer.cjs.map +3 -3
- package/build/components/writing-flow/utils.cjs +39 -2
- package/build/components/writing-flow/utils.cjs.map +2 -2
- package/build/components/writing-mode-control/index.cjs +0 -1
- package/build/components/writing-mode-control/index.cjs.map +2 -2
- package/build/hooks/background.cjs +3 -2
- package/build/hooks/background.cjs.map +2 -2
- package/build/hooks/block-fields/rich-text/index.cjs +2 -3
- package/build/hooks/block-fields/rich-text/index.cjs.map +3 -3
- package/build/hooks/elements.cjs +1 -1
- package/build/hooks/elements.cjs.map +2 -2
- package/build/hooks/font-size.cjs +1 -2
- package/build/hooks/font-size.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +5 -3
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/layout-child.cjs +22 -12
- package/build/hooks/layout-child.cjs.map +3 -3
- package/build/hooks/layout.cjs +33 -16
- package/build/hooks/layout.cjs.map +3 -3
- package/build/hooks/position.cjs +36 -16
- package/build/hooks/position.cjs.map +2 -2
- package/build/hooks/states.cjs +29 -12
- package/build/hooks/states.cjs.map +3 -3
- package/build/hooks/style.cjs +31 -9
- package/build/hooks/style.cjs.map +3 -3
- package/build/hooks/text-align.cjs +36 -6
- package/build/hooks/text-align.cjs.map +3 -3
- package/build/hooks/typography.cjs +1 -1
- package/build/hooks/typography.cjs.map +2 -2
- package/build/layouts/constrained.cjs +35 -27
- package/build/layouts/constrained.cjs.map +2 -2
- package/build/layouts/flex.cjs +27 -22
- package/build/layouts/flex.cjs.map +2 -2
- package/build/layouts/grid.cjs +51 -11
- package/build/layouts/grid.cjs.map +2 -2
- package/build/private-apis.cjs +4 -1
- package/build/private-apis.cjs.map +3 -3
- package/build/store/actions.cjs +2 -2
- package/build/store/actions.cjs.map +2 -2
- package/build/store/private-keys.cjs +3 -0
- package/build/store/private-keys.cjs.map +2 -2
- package/build/store/private-selectors.cjs +85 -6
- package/build/store/private-selectors.cjs.map +3 -3
- package/build/store/selectors.cjs +13 -0
- package/build/store/selectors.cjs.map +2 -2
- package/build/utils/block-bindings.cjs +29 -0
- package/build/utils/block-bindings.cjs.map +2 -2
- package/build/utils/dom.cjs +14 -0
- package/build/utils/dom.cjs.map +2 -2
- package/build-module/autocompleters/block.mjs +10 -2
- package/build-module/autocompleters/block.mjs.map +2 -2
- package/build-module/components/background-image-control/index.mjs +0 -2
- package/build-module/components/background-image-control/index.mjs.map +2 -2
- package/build-module/components/block-canvas/index.mjs +7 -2
- package/build-module/components/block-canvas/index.mjs.map +2 -2
- package/build-module/components/block-controls/groups.mjs +3 -1
- package/build-module/components/block-controls/groups.mjs.map +2 -2
- package/build-module/components/block-edit/edit.mjs +11 -18
- package/build-module/components/block-edit/edit.mjs.map +2 -2
- package/build-module/components/block-inspector/edit-contents.mjs +4 -1
- package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +2 -3
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block-invalid-warning.mjs +8 -19
- package/build-module/components/block-list/block-invalid-warning.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +9 -3
- package/build-module/components/block-list/block.mjs.map +3 -3
- package/build-module/components/block-list/index.mjs +1 -3
- package/build-module/components/block-list/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/index.mjs +3 -1
- package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs +9 -4
- package/build-module/components/block-list/use-block-props/use-focus-first-element.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs +12 -4
- package/build-module/components/block-list/use-block-props/use-focus-handler.mjs.map +2 -2
- package/build-module/components/block-styles/use-styles-for-block.mjs +2 -1
- package/build-module/components/block-styles/use-styles-for-block.mjs.map +2 -2
- package/build-module/components/block-title/use-block-display-title.mjs +7 -2
- package/build-module/components/block-title/use-block-display-title.mjs.map +2 -2
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs +10 -14
- package/build-module/components/block-toolbar/block-toolbar-icon.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +43 -24
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +7 -2
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-variation-transforms/index.mjs +0 -1
- package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +22 -10
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +17 -7
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
- package/build-module/components/block-visibility/utils.mjs +18 -3
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +7 -1
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +5 -0
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +5 -1
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
- package/build-module/components/child-layout-control/index.mjs +0 -6
- package/build-module/components/child-layout-control/index.mjs.map +2 -2
- package/build-module/components/colors-gradients/control.mjs +5 -5
- package/build-module/components/colors-gradients/control.mjs.map +2 -2
- package/build-module/components/date-format-picker/index.mjs +0 -1
- package/build-module/components/date-format-picker/index.mjs.map +2 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +1 -2
- package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/scale-tool.mjs +0 -1
- package/build-module/components/dimensions-tool/scale-tool.mjs.map +2 -2
- package/build-module/components/dimensions-tool/width-height-tool.mjs +2 -4
- package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
- package/build-module/components/font-appearance-control/index.mjs +6 -15
- package/build-module/components/font-appearance-control/index.mjs.map +2 -2
- package/build-module/components/font-family/index.mjs +6 -15
- package/build-module/components/font-family/index.mjs.map +2 -2
- package/build-module/components/font-sizes/font-size-picker.mjs +1 -2
- package/build-module/components/font-sizes/font-size-picker.mjs.map +2 -2
- package/build-module/components/global-styles/border-panel.mjs +0 -1
- package/build-module/components/global-styles/border-panel.mjs.map +2 -2
- package/build-module/components/global-styles/dimensions-panel.mjs +0 -3
- package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
- package/build-module/components/global-styles/state-control-badges.mjs +41 -5
- package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
- package/build-module/components/global-styles/typography-panel.mjs +4 -11
- package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
- package/build-module/components/height-control/index.mjs +0 -2
- package/build-module/components/height-control/index.mjs.map +2 -2
- package/build-module/components/html-element-control/index.mjs +0 -1
- package/build-module/components/html-element-control/index.mjs.map +2 -2
- package/build-module/components/image-editor/index.mjs +5 -0
- package/build-module/components/image-editor/index.mjs.map +2 -2
- package/build-module/components/image-editor/zoom-dropdown.mjs +0 -1
- package/build-module/components/image-editor/zoom-dropdown.mjs.map +2 -2
- package/build-module/components/image-size-control/index.mjs +3 -7
- package/build-module/components/image-size-control/index.mjs.map +2 -2
- package/build-module/components/inner-content/index.mjs +82 -0
- package/build-module/components/inner-content/index.mjs.map +7 -0
- package/build-module/components/inserter/hooks/use-block-types-state.mjs +10 -2
- package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/hooks.mjs +66 -12
- package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-list.mjs +3 -1
- package/build-module/components/inserter/media-tab/media-list.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-panel.mjs +297 -32
- package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-preview.mjs +33 -18
- package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
- package/build-module/components/inserter/media-tab/media-tab.mjs +27 -7
- package/build-module/components/inserter/media-tab/media-tab.mjs.map +2 -2
- package/build-module/components/inserter/mobile-tab-navigation.mjs +6 -1
- package/build-module/components/inserter/mobile-tab-navigation.mjs.map +2 -2
- package/build-module/components/inserter/no-results.mjs +2 -2
- package/build-module/components/inserter/no-results.mjs.map +2 -2
- package/build-module/components/inserter/preview-panel.mjs +2 -1
- package/build-module/components/inserter/preview-panel.mjs.map +2 -2
- package/build-module/components/inserter-list-item/index.mjs +8 -2
- package/build-module/components/inserter-list-item/index.mjs.map +2 -2
- package/build-module/components/keyboard-shortcuts/index.mjs +19 -11
- package/build-module/components/keyboard-shortcuts/index.mjs.map +2 -2
- package/build-module/components/letter-spacing-control/index.mjs +0 -14
- package/build-module/components/letter-spacing-control/index.mjs.map +2 -2
- package/build-module/components/line-height-control/index.mjs +6 -12
- package/build-module/components/line-height-control/index.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +90 -84
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +61 -21
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/list-view/expander.mjs +1 -1
- package/build-module/components/list-view/expander.mjs.map +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.mjs +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.mjs.map +2 -2
- package/build-module/components/media-placeholder/index.mjs +0 -1
- package/build-module/components/media-placeholder/index.mjs.map +2 -2
- package/build-module/components/observe-typing/index.mjs +4 -3
- package/build-module/components/observe-typing/index.mjs.map +2 -2
- package/build-module/components/preset-input-control/custom-value-controls.mjs +1 -3
- package/build-module/components/preset-input-control/custom-value-controls.mjs.map +2 -2
- package/build-module/components/preset-input-control/index.mjs +1 -3
- package/build-module/components/preset-input-control/index.mjs.map +2 -2
- package/build-module/components/resolution-tool/index.mjs +1 -2
- package/build-module/components/resolution-tool/index.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/before-input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/delete.mjs +7 -4
- package/build-module/components/rich-text/event-listeners/delete.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/enter.mjs +8 -3
- package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-events.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/input-events.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/input-rules.mjs +8 -5
- package/build-module/components/rich-text/event-listeners/input-rules.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/insert-replacement-text.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs +8 -2
- package/build-module/components/rich-text/event-listeners/paste-handler.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/shortcuts.mjs.map +2 -2
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs +3 -3
- package/build-module/components/rich-text/event-listeners/undo-automatic-change.mjs.map +2 -2
- package/build-module/components/rich-text/index.mjs +64 -13
- package/build-module/components/rich-text/index.mjs.map +2 -2
- package/build-module/components/text-alignment-control/index.mjs +0 -1
- package/build-module/components/text-alignment-control/index.mjs.map +2 -2
- package/build-module/components/text-decoration-control/index.mjs +0 -1
- package/build-module/components/text-decoration-control/index.mjs.map +2 -2
- package/build-module/components/text-indent-control/index.mjs +0 -8
- package/build-module/components/text-indent-control/index.mjs.map +2 -2
- package/build-module/components/text-transform-control/index.mjs +0 -1
- package/build-module/components/text-transform-control/index.mjs.map +2 -2
- package/build-module/components/typewriter/index.mjs +129 -136
- package/build-module/components/typewriter/index.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +21 -17
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/components/use-block-display-information/index.mjs +10 -8
- package/build-module/components/use-block-display-information/index.mjs.map +2 -2
- package/build-module/components/use-on-block-drop/index.mjs +4 -7
- package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
- package/build-module/components/writing-flow/index.mjs +12 -1
- package/build-module/components/writing-flow/index.mjs.map +2 -2
- package/build-module/components/writing-flow/use-arrow-nav.mjs +19 -6
- package/build-module/components/writing-flow/use-arrow-nav.mjs.map +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs +2 -2
- package/build-module/components/writing-flow/use-click-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs +5 -2
- package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
- package/build-module/components/writing-flow/use-drag-selection.mjs +1 -6
- package/build-module/components/writing-flow/use-drag-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-editable-root.mjs +86 -0
- package/build-module/components/writing-flow/use-editable-root.mjs.map +7 -0
- package/build-module/components/writing-flow/use-home-end.mjs +43 -0
- package/build-module/components/writing-flow/use-home-end.mjs.map +7 -0
- package/build-module/components/writing-flow/use-input.mjs +15 -5
- package/build-module/components/writing-flow/use-input.mjs.map +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs +2 -2
- package/build-module/components/writing-flow/use-multi-selection.mjs.map +2 -2
- package/build-module/components/writing-flow/use-select-all.mjs +19 -3
- package/build-module/components/writing-flow/use-select-all.mjs.map +2 -2
- package/build-module/components/writing-flow/use-selection-observer.mjs +128 -19
- package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
- package/build-module/components/writing-flow/utils.mjs +35 -1
- package/build-module/components/writing-flow/utils.mjs.map +2 -2
- package/build-module/components/writing-mode-control/index.mjs +0 -1
- package/build-module/components/writing-mode-control/index.mjs.map +2 -2
- package/build-module/hooks/background.mjs +3 -2
- package/build-module/hooks/background.mjs.map +2 -2
- package/build-module/hooks/block-fields/rich-text/index.mjs +2 -6
- package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
- package/build-module/hooks/elements.mjs +1 -1
- package/build-module/hooks/elements.mjs.map +2 -2
- package/build-module/hooks/font-size.mjs +1 -2
- package/build-module/hooks/font-size.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +5 -3
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/layout-child.mjs +22 -12
- package/build-module/hooks/layout-child.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +32 -16
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/position.mjs +38 -18
- package/build-module/hooks/position.mjs.map +2 -2
- package/build-module/hooks/states.mjs +29 -12
- package/build-module/hooks/states.mjs.map +2 -2
- package/build-module/hooks/style.mjs +40 -11
- package/build-module/hooks/style.mjs.map +2 -2
- package/build-module/hooks/text-align.mjs +39 -10
- package/build-module/hooks/text-align.mjs.map +2 -2
- package/build-module/hooks/typography.mjs +1 -1
- package/build-module/hooks/typography.mjs.map +2 -2
- package/build-module/layouts/constrained.mjs +35 -27
- package/build-module/layouts/constrained.mjs.map +2 -2
- package/build-module/layouts/flex.mjs +27 -22
- package/build-module/layouts/flex.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +52 -11
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/private-apis.mjs +5 -1
- package/build-module/private-apis.mjs.map +2 -2
- package/build-module/store/actions.mjs +3 -3
- package/build-module/store/actions.mjs.map +2 -2
- package/build-module/store/private-keys.mjs +2 -0
- package/build-module/store/private-keys.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +84 -6
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/store/selectors.mjs +13 -0
- package/build-module/store/selectors.mjs.map +2 -2
- package/build-module/utils/block-bindings.mjs +28 -0
- package/build-module/utils/block-bindings.mjs.map +2 -2
- package/build-module/utils/dom.mjs +13 -0
- package/build-module/utils/dom.mjs.map +2 -2
- package/build-style/content-rtl.css +15 -14
- package/build-style/content.css +15 -14
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +144 -47
- package/build-style/style.css +144 -47
- package/build-types/components/block-context/index.d.ts +7 -0
- package/build-types/components/block-context/index.d.ts.map +1 -1
- package/build-types/utils/block-bindings.d.ts +19 -0
- package/build-types/utils/block-bindings.d.ts.map +1 -1
- package/build-types/utils/dom.d.ts +11 -0
- package/build-types/utils/dom.d.ts.map +1 -1
- package/build-types/utils/get-px-from-css-unit.d.ts +2 -2
- package/build-types/utils/get-px-from-css-unit.d.ts.map +1 -1
- package/build-types/utils/pasting.d.ts +1 -1
- package/build-types/utils/pasting.d.ts.map +1 -1
- package/package.json +46 -44
- package/src/autocompleters/block.js +10 -3
- package/src/autocompleters/test/block.js +53 -0
- package/src/components/background-image-control/index.js +0 -2
- package/src/components/block-canvas/index.js +9 -2
- package/src/components/block-card/style.scss +1 -1
- package/src/components/block-controls/groups.js +2 -0
- package/src/components/block-edit/edit.js +13 -31
- package/src/components/block-inspector/edit-contents.js +5 -1
- package/src/components/block-inspector/index.js +3 -2
- package/src/components/block-list/block-invalid-warning.js +8 -19
- package/src/components/block-list/block.js +6 -0
- package/src/components/block-list/index.js +0 -2
- package/src/components/block-list/use-block-props/index.js +2 -0
- package/src/components/block-list/use-block-props/use-focus-first-element.js +23 -4
- package/src/components/block-list/use-block-props/use-focus-handler.js +34 -9
- package/src/components/block-lock/style.scss +1 -1
- package/src/components/block-manager/style.scss +1 -1
- package/src/components/block-navigation/style.scss +1 -1
- package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
- package/src/components/block-quick-navigation/style.scss +1 -3
- package/src/components/block-styles/style.scss +2 -2
- package/src/components/block-styles/use-styles-for-block.js +1 -0
- package/src/components/block-title/use-block-display-title.js +7 -2
- package/src/components/block-toolbar/block-toolbar-icon.js +11 -16
- package/src/components/block-toolbar/index.js +41 -18
- package/src/components/block-toolbar/test/block-toolbar-icon.js +32 -9
- package/src/components/block-tools/index.js +7 -0
- package/src/components/block-types-list/style.scss +0 -1
- package/src/components/block-variation-transforms/index.js +0 -1
- package/src/components/block-visibility/modal.js +24 -10
- package/src/components/block-visibility/style.scss +1 -1
- package/src/components/block-visibility/test/use-block-visibility.js +128 -35
- package/src/components/block-visibility/test/utils.js +11 -0
- package/src/components/block-visibility/use-block-visibility.js +33 -11
- package/src/components/block-visibility/utils.js +31 -6
- package/src/components/block-visibility/viewport-menu-item.js +10 -1
- package/src/components/block-visibility/viewport-toolbar.js +6 -0
- package/src/components/block-visibility/viewport-visibility-info.js +5 -1
- package/src/components/button-block-appender/content.scss +1 -7
- package/src/components/child-layout-control/index.js +0 -6
- package/src/components/color-palette/test/__snapshots__/control.js.snap +13 -108
- package/src/components/colors-gradients/control.js +4 -4
- package/src/components/colors-gradients/style.scss +2 -2
- package/src/components/date-format-picker/index.js +0 -1
- package/src/components/dimensions-tool/aspect-ratio-tool.js +0 -1
- package/src/components/dimensions-tool/scale-tool.js +0 -1
- package/src/components/dimensions-tool/width-height-tool.js +0 -2
- package/src/components/font-appearance-control/index.js +6 -19
- package/src/components/font-family/README.md +0 -9
- package/src/components/font-family/index.js +6 -19
- package/src/components/font-family/stories/index.story.jsx +1 -2
- package/src/components/font-sizes/font-size-picker.js +0 -1
- package/src/components/global-styles/border-panel.js +0 -1
- package/src/components/global-styles/dimensions-panel.js +0 -3
- package/src/components/global-styles/state-control-badges.js +45 -6
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/global-styles/test/state-control-badges.js +65 -0
- package/src/components/global-styles/typography-panel.js +0 -7
- package/src/components/height-control/index.js +0 -2
- package/src/components/html-element-control/index.js +0 -1
- package/src/components/iframe/content.scss +3 -3
- package/src/components/image-editor/index.js +22 -0
- package/src/components/image-editor/zoom-dropdown.js +0 -1
- package/src/components/image-size-control/index.js +0 -4
- package/src/components/inner-content/index.js +119 -0
- package/src/components/inner-content/test/index.js +81 -0
- package/src/components/inserter/hooks/use-block-types-state.js +10 -2
- package/src/components/inserter/media-tab/hooks.js +114 -16
- package/src/components/inserter/media-tab/media-list.js +2 -0
- package/src/components/inserter/media-tab/media-panel.js +354 -19
- package/src/components/inserter/media-tab/media-preview.js +34 -17
- package/src/components/inserter/media-tab/media-tab.js +20 -2
- package/src/components/inserter/media-tab/test/hooks.js +267 -0
- package/src/components/inserter/media-tab/test/media-panel.js +127 -0
- package/src/components/inserter/mobile-tab-navigation.js +6 -1
- package/src/components/inserter/no-results.js +2 -2
- package/src/components/inserter/preview-panel.js +1 -0
- package/src/components/inserter/style.scss +115 -3
- package/src/components/inserter-list-item/index.js +8 -2
- package/src/components/inserter-list-item/style.scss +0 -15
- package/src/components/keyboard-shortcuts/index.js +28 -11
- package/src/components/letter-spacing-control/README.md +0 -8
- package/src/components/letter-spacing-control/index.js +5 -23
- package/src/components/letter-spacing-control/stories/index.story.jsx +0 -12
- package/src/components/line-height-control/README.md +0 -8
- package/src/components/line-height-control/index.js +6 -16
- package/src/components/line-height-control/stories/index.story.jsx +0 -1
- package/src/components/line-height-control/test/index.js +1 -7
- package/src/components/link-control/style.scss +2 -2
- package/src/components/link-control/test/index.js +6 -6
- package/src/components/link-picker/style.scss +1 -2
- package/src/components/link-picker/test/index.js +3 -1
- package/src/components/list-view/block-select-button.js +5 -1
- package/src/components/list-view/block.js +69 -23
- package/src/components/list-view/expander.js +5 -1
- package/src/components/list-view/style.scss +23 -5
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/media-placeholder/index.js +0 -1
- package/src/components/multi-selection-inspector/style.scss +1 -1
- package/src/components/observe-typing/index.js +9 -4
- package/src/components/preset-input-control/custom-value-controls.js +0 -2
- package/src/components/preset-input-control/index.js +0 -2
- package/src/components/resolution-tool/index.js +0 -1
- package/src/components/responsive-block-control/style.scss +1 -1
- package/src/components/responsive-block-control/test/index.js +1 -5
- package/src/components/rich-text/event-listeners/before-input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/delete.js +7 -4
- package/src/components/rich-text/event-listeners/enter.js +10 -4
- package/src/components/rich-text/event-listeners/input-events.js +4 -3
- package/src/components/rich-text/event-listeners/input-rules.js +8 -5
- package/src/components/rich-text/event-listeners/insert-replacement-text.js +4 -3
- package/src/components/rich-text/event-listeners/paste-handler.js +15 -3
- package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/shortcuts.js +4 -3
- package/src/components/rich-text/event-listeners/undo-automatic-change.js +4 -3
- package/src/components/rich-text/index.js +94 -25
- package/src/components/skip-to-selected-block/style.scss +1 -1
- package/src/components/text-alignment-control/index.js +0 -1
- package/src/components/text-decoration-control/index.js +0 -1
- package/src/components/text-indent-control/index.js +7 -16
- package/src/components/text-transform-control/index.js +0 -1
- package/src/components/typewriter/index.js +228 -224
- package/src/components/use-block-commands/index.js +27 -17
- package/src/components/use-block-display-information/index.js +9 -13
- package/src/components/use-block-display-information/test/index.js +47 -9
- package/src/components/use-on-block-drop/index.js +4 -7
- package/src/components/writing-flow/index.js +15 -1
- package/src/components/writing-flow/use-arrow-nav.js +39 -12
- package/src/components/writing-flow/use-click-selection.js +2 -3
- package/src/components/writing-flow/use-clipboard-handler.js +5 -2
- package/src/components/writing-flow/use-drag-selection.js +1 -14
- package/src/components/writing-flow/use-editable-root.js +182 -0
- package/src/components/writing-flow/use-home-end.js +63 -0
- package/src/components/writing-flow/use-input.js +25 -8
- package/src/components/writing-flow/use-multi-selection.js +2 -3
- package/src/components/writing-flow/use-select-all.js +33 -3
- package/src/components/writing-flow/use-selection-observer.js +197 -38
- package/src/components/writing-flow/utils.js +83 -0
- package/src/components/writing-mode-control/index.js +0 -1
- package/src/hooks/background.js +7 -9
- package/src/hooks/block-fields/link/styles.scss +1 -6
- package/src/hooks/block-fields/media/styles.scss +1 -6
- package/src/hooks/block-fields/rich-text/index.js +6 -9
- package/src/hooks/block-hooks.scss +15 -0
- package/src/hooks/elements.js +0 -1
- package/src/hooks/font-size.js +0 -1
- package/src/hooks/grid-visualizer.js +40 -36
- package/src/hooks/layout-child.js +19 -9
- package/src/hooks/layout.js +53 -35
- package/src/hooks/position.js +44 -23
- package/src/hooks/states.js +36 -13
- package/src/hooks/style.js +67 -17
- package/src/hooks/test/cross-origin-isolation.js +0 -4
- package/src/hooks/test/layout.js +75 -1
- package/src/hooks/test/style.js +29 -0
- package/src/hooks/test/text-align.js +34 -1
- package/src/hooks/text-align.js +41 -10
- package/src/hooks/typography.js +0 -1
- package/src/layouts/constrained.js +56 -29
- package/src/layouts/flex.js +5 -4
- package/src/layouts/grid.js +59 -9
- package/src/layouts/test/constrained.js +91 -0
- package/src/layouts/test/grid.js +71 -0
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +43 -14
- package/src/store/private-keys.js +1 -0
- package/src/store/private-selectors.js +166 -9
- package/src/store/selectors.js +41 -0
- package/src/store/test/actions.js +1 -1
- package/src/store/test/private-selectors.js +533 -0
- package/src/store/test/reducer.js +11 -11
- package/src/store/test/selectors.js +133 -0
- package/src/style.scss +1 -0
- package/src/utils/block-bindings.ts +50 -0
- package/src/utils/dom.ts +33 -0
- package/src/utils/test/block-bindings.js +181 -0
- package/build/components/rich-text/input-event.cjs +0 -50
- package/build/components/rich-text/input-event.cjs.map +0 -7
- package/build/components/rich-text/shortcut.cjs +0 -51
- package/build/components/rich-text/shortcut.cjs.map +0 -7
- package/build-module/components/rich-text/input-event.mjs +0 -25
- package/build-module/components/rich-text/input-event.mjs.map +0 -7
- package/build-module/components/rich-text/shortcut.mjs +0 -26
- package/build-module/components/rich-text/shortcut.mjs.map +0 -7
- package/src/components/rich-text/input-event.js +0 -31
- package/src/components/rich-text/shortcut.js +0 -32
|
@@ -6,11 +6,12 @@ import { renderHook } from '@testing-library/react';
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { useMediaQuery } from '@wordpress/compose';
|
|
10
10
|
|
|
11
11
|
// Mock WordPress dependencies before importing the hook
|
|
12
12
|
jest.mock( '@wordpress/compose', () => ( {
|
|
13
|
-
|
|
13
|
+
...jest.requireActual( '@wordpress/compose' ),
|
|
14
|
+
useMediaQuery: jest.fn(),
|
|
14
15
|
} ) );
|
|
15
16
|
|
|
16
17
|
/**
|
|
@@ -20,17 +21,17 @@ import useBlockVisibility from '../use-block-visibility';
|
|
|
20
21
|
|
|
21
22
|
describe( 'useBlockVisibility', () => {
|
|
22
23
|
// Helper function to set up viewport matches
|
|
23
|
-
const setupViewport = ( {
|
|
24
|
+
const setupViewport = ( { isMobileViewport, isTabletViewport } ) => {
|
|
24
25
|
if (
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
isMobileViewport !== undefined &&
|
|
27
|
+
isTabletViewport !== undefined
|
|
27
28
|
) {
|
|
28
|
-
|
|
29
|
-
.mockReturnValueOnce(
|
|
30
|
-
.mockReturnValueOnce(
|
|
29
|
+
useMediaQuery
|
|
30
|
+
.mockReturnValueOnce( isMobileViewport )
|
|
31
|
+
.mockReturnValueOnce( isTabletViewport );
|
|
31
32
|
} else {
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
useMediaQuery.mockReturnValue(
|
|
34
|
+
isMobileViewport ?? isTabletViewport ?? false
|
|
34
35
|
);
|
|
35
36
|
}
|
|
36
37
|
};
|
|
@@ -42,7 +43,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
42
43
|
|
|
43
44
|
describe( 'Device type overrides', () => {
|
|
44
45
|
it( 'should return true when deviceType is Mobile and block is hidden on mobile', () => {
|
|
45
|
-
setupViewport( {
|
|
46
|
+
setupViewport( { isMobileViewport: false } );
|
|
46
47
|
|
|
47
48
|
const { result } = renderHook( () =>
|
|
48
49
|
useBlockVisibility( {
|
|
@@ -55,7 +56,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
55
56
|
} );
|
|
56
57
|
|
|
57
58
|
it( 'should return false when deviceType is Mobile and block is visible on mobile', () => {
|
|
58
|
-
setupViewport( {
|
|
59
|
+
setupViewport( { isMobileViewport: false } );
|
|
59
60
|
|
|
60
61
|
const { result } = renderHook( () =>
|
|
61
62
|
useBlockVisibility( {
|
|
@@ -74,7 +75,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
74
75
|
} );
|
|
75
76
|
|
|
76
77
|
it( 'should return true when deviceType is Tablet and block is hidden on tablet', () => {
|
|
77
|
-
setupViewport( {
|
|
78
|
+
setupViewport( { isMobileViewport: false } );
|
|
78
79
|
|
|
79
80
|
const { result } = renderHook( () =>
|
|
80
81
|
useBlockVisibility( {
|
|
@@ -88,8 +89,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
88
89
|
|
|
89
90
|
it( 'should use actual viewport detection when deviceType is Desktop', () => {
|
|
90
91
|
setupViewport( {
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
isMobileViewport: false,
|
|
93
|
+
isTabletViewport: false,
|
|
93
94
|
} );
|
|
94
95
|
|
|
95
96
|
const { result } = renderHook( () =>
|
|
@@ -106,8 +107,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
106
107
|
describe( 'Viewport detection with Desktop deviceType', () => {
|
|
107
108
|
it( 'should return true when on mobile viewport and block is hidden on mobile', () => {
|
|
108
109
|
setupViewport( {
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
isMobileViewport: true,
|
|
111
|
+
isTabletViewport: false,
|
|
111
112
|
} );
|
|
112
113
|
|
|
113
114
|
const { result } = renderHook( () =>
|
|
@@ -122,8 +123,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
122
123
|
|
|
123
124
|
it( 'should return false when on mobile viewport and block is visible on mobile', () => {
|
|
124
125
|
setupViewport( {
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
isMobileViewport: true,
|
|
127
|
+
isTabletViewport: false,
|
|
127
128
|
} );
|
|
128
129
|
|
|
129
130
|
const { result } = renderHook( () =>
|
|
@@ -144,8 +145,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
144
145
|
|
|
145
146
|
it( 'should return true when on tablet viewport and block is hidden on tablet', () => {
|
|
146
147
|
setupViewport( {
|
|
147
|
-
|
|
148
|
-
|
|
148
|
+
isMobileViewport: false,
|
|
149
|
+
isTabletViewport: true,
|
|
149
150
|
} );
|
|
150
151
|
|
|
151
152
|
const { result } = renderHook( () =>
|
|
@@ -160,8 +161,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
160
161
|
|
|
161
162
|
it( 'should return false when on tablet viewport and block is visible on tablet', () => {
|
|
162
163
|
setupViewport( {
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
isMobileViewport: false,
|
|
165
|
+
isTabletViewport: true,
|
|
165
166
|
} );
|
|
166
167
|
|
|
167
168
|
const { result } = renderHook( () =>
|
|
@@ -182,8 +183,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
182
183
|
|
|
183
184
|
it( 'should return true when on desktop viewport and block is hidden on desktop', () => {
|
|
184
185
|
setupViewport( {
|
|
185
|
-
|
|
186
|
-
|
|
186
|
+
isMobileViewport: false,
|
|
187
|
+
isTabletViewport: false,
|
|
187
188
|
} );
|
|
188
189
|
|
|
189
190
|
const { result } = renderHook( () =>
|
|
@@ -198,8 +199,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
198
199
|
|
|
199
200
|
it( 'should return false when on desktop viewport and block is visible on desktop', () => {
|
|
200
201
|
setupViewport( {
|
|
201
|
-
|
|
202
|
-
|
|
202
|
+
isMobileViewport: false,
|
|
203
|
+
isTabletViewport: false,
|
|
203
204
|
} );
|
|
204
205
|
|
|
205
206
|
const { result } = renderHook( () =>
|
|
@@ -217,11 +218,103 @@ describe( 'useBlockVisibility', () => {
|
|
|
217
218
|
|
|
218
219
|
expect( result.current.isBlockCurrentlyHidden ).toBe( false );
|
|
219
220
|
} );
|
|
221
|
+
|
|
222
|
+
it( 'should use custom viewport breakpoints for viewport detection', () => {
|
|
223
|
+
setupViewport( {
|
|
224
|
+
isMobileViewport: false,
|
|
225
|
+
isTabletViewport: true,
|
|
226
|
+
} );
|
|
227
|
+
|
|
228
|
+
const { result } = renderHook( () =>
|
|
229
|
+
useBlockVisibility( {
|
|
230
|
+
blockVisibility: { viewport: { tablet: false } },
|
|
231
|
+
deviceType: 'desktop',
|
|
232
|
+
viewportSettings: {
|
|
233
|
+
mobile: '640px',
|
|
234
|
+
tablet: '960px',
|
|
235
|
+
},
|
|
236
|
+
} )
|
|
237
|
+
);
|
|
238
|
+
|
|
239
|
+
expect( useMediaQuery ).toHaveBeenNthCalledWith(
|
|
240
|
+
1,
|
|
241
|
+
'(width <= 640px)',
|
|
242
|
+
window
|
|
243
|
+
);
|
|
244
|
+
expect( useMediaQuery ).toHaveBeenNthCalledWith(
|
|
245
|
+
2,
|
|
246
|
+
'(640px < width <= 960px)',
|
|
247
|
+
window
|
|
248
|
+
);
|
|
249
|
+
expect( result.current.currentViewport ).toBe( 'tablet' );
|
|
250
|
+
expect( result.current.isBlockCurrentlyHidden ).toBe( true );
|
|
251
|
+
} );
|
|
252
|
+
|
|
253
|
+
it( 'should use tablet viewport detection for a single tablet breakpoint', () => {
|
|
254
|
+
setupViewport( {
|
|
255
|
+
isMobileViewport: false,
|
|
256
|
+
isTabletViewport: true,
|
|
257
|
+
} );
|
|
258
|
+
|
|
259
|
+
const { result } = renderHook( () =>
|
|
260
|
+
useBlockVisibility( {
|
|
261
|
+
blockVisibility: { viewport: { tablet: false } },
|
|
262
|
+
deviceType: 'desktop',
|
|
263
|
+
viewportSettings: {
|
|
264
|
+
tablet: '64rem',
|
|
265
|
+
},
|
|
266
|
+
} )
|
|
267
|
+
);
|
|
268
|
+
|
|
269
|
+
expect( useMediaQuery ).toHaveBeenNthCalledWith(
|
|
270
|
+
1,
|
|
271
|
+
undefined,
|
|
272
|
+
window
|
|
273
|
+
);
|
|
274
|
+
expect( useMediaQuery ).toHaveBeenNthCalledWith(
|
|
275
|
+
2,
|
|
276
|
+
'(width <= 64rem)',
|
|
277
|
+
window
|
|
278
|
+
);
|
|
279
|
+
expect( result.current.currentViewport ).toBe( 'tablet' );
|
|
280
|
+
expect( result.current.isBlockCurrentlyHidden ).toBe( true );
|
|
281
|
+
} );
|
|
282
|
+
|
|
283
|
+
it( 'should not use tablet viewport detection when the tablet breakpoint is not larger than mobile', () => {
|
|
284
|
+
setupViewport( {
|
|
285
|
+
isMobileViewport: false,
|
|
286
|
+
isTabletViewport: true,
|
|
287
|
+
} );
|
|
288
|
+
|
|
289
|
+
const { result } = renderHook( () =>
|
|
290
|
+
useBlockVisibility( {
|
|
291
|
+
blockVisibility: { viewport: { tablet: false } },
|
|
292
|
+
deviceType: 'desktop',
|
|
293
|
+
viewportSettings: {
|
|
294
|
+
mobile: '960px',
|
|
295
|
+
tablet: '640px',
|
|
296
|
+
},
|
|
297
|
+
} )
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
expect( useMediaQuery ).toHaveBeenNthCalledWith(
|
|
301
|
+
1,
|
|
302
|
+
'(width <= 960px)',
|
|
303
|
+
window
|
|
304
|
+
);
|
|
305
|
+
expect( useMediaQuery ).toHaveBeenNthCalledWith(
|
|
306
|
+
2,
|
|
307
|
+
undefined,
|
|
308
|
+
window
|
|
309
|
+
);
|
|
310
|
+
expect( result.current.currentViewport ).toBe( 'desktop' );
|
|
311
|
+
expect( result.current.isBlockCurrentlyHidden ).toBe( false );
|
|
312
|
+
} );
|
|
220
313
|
} );
|
|
221
314
|
|
|
222
315
|
describe( 'Block visibility (hidden everywhere)', () => {
|
|
223
316
|
it( 'should return true when blockVisibility is false', () => {
|
|
224
|
-
setupViewport( {
|
|
317
|
+
setupViewport( { isMobileViewport: false } );
|
|
225
318
|
|
|
226
319
|
const { result } = renderHook( () =>
|
|
227
320
|
useBlockVisibility( {
|
|
@@ -234,7 +327,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
234
327
|
} );
|
|
235
328
|
|
|
236
329
|
it( 'should return false when blockVisibility is true and no viewport restrictions', () => {
|
|
237
|
-
setupViewport( {
|
|
330
|
+
setupViewport( { isMobileViewport: false } );
|
|
238
331
|
|
|
239
332
|
const { result } = renderHook( () =>
|
|
240
333
|
useBlockVisibility( {
|
|
@@ -247,7 +340,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
247
340
|
} );
|
|
248
341
|
|
|
249
342
|
it( 'should return false when blockVisibility is undefined', () => {
|
|
250
|
-
setupViewport( {
|
|
343
|
+
setupViewport( { isMobileViewport: false } );
|
|
251
344
|
|
|
252
345
|
const { result } = renderHook( () =>
|
|
253
346
|
useBlockVisibility( {
|
|
@@ -260,7 +353,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
260
353
|
} );
|
|
261
354
|
|
|
262
355
|
it( 'should return true when blockVisibility is false regardless of viewport settings', () => {
|
|
263
|
-
setupViewport( {
|
|
356
|
+
setupViewport( { isMobileViewport: false } );
|
|
264
357
|
|
|
265
358
|
const { result } = renderHook( () =>
|
|
266
359
|
useBlockVisibility( {
|
|
@@ -275,7 +368,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
275
368
|
|
|
276
369
|
describe( 'Edge cases', () => {
|
|
277
370
|
it( 'should return false when no visibility settings are defined', () => {
|
|
278
|
-
setupViewport( {
|
|
371
|
+
setupViewport( { isMobileViewport: false } );
|
|
279
372
|
|
|
280
373
|
const { result } = renderHook( () =>
|
|
281
374
|
useBlockVisibility( {
|
|
@@ -288,7 +381,7 @@ describe( 'useBlockVisibility', () => {
|
|
|
288
381
|
} );
|
|
289
382
|
|
|
290
383
|
it( 'should return false when blockVisibility is undefined', () => {
|
|
291
|
-
setupViewport( {
|
|
384
|
+
setupViewport( { isMobileViewport: false } );
|
|
292
385
|
|
|
293
386
|
const { result } = renderHook( () =>
|
|
294
387
|
useBlockVisibility( {
|
|
@@ -302,8 +395,8 @@ describe( 'useBlockVisibility', () => {
|
|
|
302
395
|
|
|
303
396
|
it( 'should default to desktop deviceType when not provided', () => {
|
|
304
397
|
setupViewport( {
|
|
305
|
-
|
|
306
|
-
|
|
398
|
+
isMobileViewport: false,
|
|
399
|
+
isTabletViewport: false,
|
|
307
400
|
} );
|
|
308
401
|
|
|
309
402
|
const { result } = renderHook( () =>
|
|
@@ -2,11 +2,22 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
import {
|
|
5
|
+
getBlockVisibilityViewportEntries,
|
|
5
6
|
getViewportCheckboxState,
|
|
6
7
|
getHideEverywhereCheckboxState,
|
|
7
8
|
} from '../utils';
|
|
8
9
|
|
|
9
10
|
describe( 'block-visibility utils', () => {
|
|
11
|
+
describe( 'getBlockVisibilityViewportEntries', () => {
|
|
12
|
+
it( 'returns the configured viewport for a single breakpoint', () => {
|
|
13
|
+
expect(
|
|
14
|
+
getBlockVisibilityViewportEntries( { tablet: '64rem' } ).map(
|
|
15
|
+
( [ key ] ) => key
|
|
16
|
+
)
|
|
17
|
+
).toEqual( [ 'desktop', 'tablet' ] );
|
|
18
|
+
} );
|
|
19
|
+
} );
|
|
20
|
+
|
|
10
21
|
describe( 'getViewportCheckboxState', () => {
|
|
11
22
|
it( 'should return false for empty or invalid input', () => {
|
|
12
23
|
expect( getViewportCheckboxState( [], 'mobile' ) ).toBe( false );
|
|
@@ -1,31 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { useMediaQuery } from '@wordpress/compose';
|
|
5
|
+
import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
8
9
|
*/
|
|
9
10
|
import { BLOCK_VISIBILITY_VIEWPORTS } from './constants';
|
|
11
|
+
import { unlock } from '../../lock-unlock';
|
|
12
|
+
|
|
13
|
+
const { getViewportBreakpoints } = unlock( globalStylesEnginePrivateApis );
|
|
10
14
|
|
|
11
15
|
/**
|
|
12
16
|
* Returns information about the current block visibility state.
|
|
13
17
|
*
|
|
14
|
-
* @param {Object} options
|
|
15
|
-
* @param {Object|boolean} options.blockVisibility
|
|
16
|
-
* @param {string} options.deviceType
|
|
17
|
-
* @param {
|
|
18
|
+
* @param {Object} options Parameters to avoid extra store subscriptions.
|
|
19
|
+
* @param {Object|boolean} options.blockVisibility Block visibility metadata.
|
|
20
|
+
* @param {string} options.deviceType Current device type ('desktop', 'tablet', 'mobile').
|
|
21
|
+
* @param {Object} options.viewportSettings Viewport breakpoint settings.
|
|
22
|
+
* @param {Window?} options.view Window instance in which to perform viewport matching
|
|
18
23
|
* @return {Object} Object with `isBlockCurrentlyHidden` (boolean) and `currentViewport` (string) properties.
|
|
19
24
|
*/
|
|
20
25
|
export default function useBlockVisibility( options = {} ) {
|
|
21
26
|
const {
|
|
22
27
|
blockVisibility = undefined,
|
|
23
28
|
deviceType = BLOCK_VISIBILITY_VIEWPORTS.desktop.key,
|
|
29
|
+
viewportSettings,
|
|
24
30
|
view = window,
|
|
25
31
|
} = options;
|
|
26
32
|
|
|
27
|
-
const
|
|
28
|
-
const
|
|
33
|
+
const viewportBreakpoints = getViewportBreakpoints( viewportSettings );
|
|
34
|
+
const mobileMediaQuery = viewportBreakpoints.mobile
|
|
35
|
+
? `(width <= ${ viewportBreakpoints.mobile })`
|
|
36
|
+
: undefined;
|
|
37
|
+
const isMobileViewport = useMediaQuery( mobileMediaQuery, view );
|
|
38
|
+
let tabletMediaQuery;
|
|
39
|
+
if ( viewportBreakpoints.tablet ) {
|
|
40
|
+
tabletMediaQuery = viewportBreakpoints.mobile
|
|
41
|
+
? `(${ viewportBreakpoints.mobile } < width <= ${ viewportBreakpoints.tablet })`
|
|
42
|
+
: `(width <= ${ viewportBreakpoints.tablet })`;
|
|
43
|
+
}
|
|
44
|
+
const isTabletViewport = useMediaQuery( tabletMediaQuery, view );
|
|
29
45
|
|
|
30
46
|
/*
|
|
31
47
|
* Priority:
|
|
@@ -33,13 +49,19 @@ export default function useBlockVisibility( options = {} ) {
|
|
|
33
49
|
* 2. Actual window size (Desktop mode) - uses viewport detection
|
|
34
50
|
*/
|
|
35
51
|
let currentViewport;
|
|
36
|
-
if (
|
|
52
|
+
if (
|
|
53
|
+
deviceType === BLOCK_VISIBILITY_VIEWPORTS.mobile.key &&
|
|
54
|
+
viewportBreakpoints.mobile
|
|
55
|
+
) {
|
|
37
56
|
currentViewport = BLOCK_VISIBILITY_VIEWPORTS.mobile.key;
|
|
38
|
-
} else if (
|
|
57
|
+
} else if (
|
|
58
|
+
deviceType === BLOCK_VISIBILITY_VIEWPORTS.tablet.key &&
|
|
59
|
+
viewportBreakpoints.tablet
|
|
60
|
+
) {
|
|
39
61
|
currentViewport = BLOCK_VISIBILITY_VIEWPORTS.tablet.key;
|
|
40
|
-
} else if (
|
|
62
|
+
} else if ( isMobileViewport ) {
|
|
41
63
|
currentViewport = BLOCK_VISIBILITY_VIEWPORTS.mobile.key;
|
|
42
|
-
} else if (
|
|
64
|
+
} else if ( isTabletViewport && viewportBreakpoints.tablet ) {
|
|
43
65
|
currentViewport = BLOCK_VISIBILITY_VIEWPORTS.tablet.key;
|
|
44
66
|
} else {
|
|
45
67
|
currentViewport = BLOCK_VISIBILITY_VIEWPORTS.desktop.key;
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
+
import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
|
|
4
5
|
import { __, sprintf } from '@wordpress/i18n';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
8
9
|
*/
|
|
9
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
BLOCK_VISIBILITY_VIEWPORT_ENTRIES,
|
|
12
|
+
BLOCK_VISIBILITY_VIEWPORTS,
|
|
13
|
+
} from './constants';
|
|
14
|
+
import { unlock } from '../../lock-unlock';
|
|
15
|
+
|
|
16
|
+
const { getViewportBreakpoints } = unlock( globalStylesEnginePrivateApis );
|
|
17
|
+
|
|
18
|
+
export function getBlockVisibilityViewportEntries( viewportSettings ) {
|
|
19
|
+
const breakpoints = getViewportBreakpoints( viewportSettings );
|
|
20
|
+
|
|
21
|
+
// Desktop has no breakpoint, so only filter mobile/tablet by configured viewport support.
|
|
22
|
+
return BLOCK_VISIBILITY_VIEWPORT_ENTRIES.filter(
|
|
23
|
+
( [ viewport ] ) =>
|
|
24
|
+
( viewport !== BLOCK_VISIBILITY_VIEWPORTS.tablet.key ||
|
|
25
|
+
breakpoints.tablet !== undefined ) &&
|
|
26
|
+
( viewport !== BLOCK_VISIBILITY_VIEWPORTS.mobile.key ||
|
|
27
|
+
breakpoints.mobile !== undefined )
|
|
28
|
+
);
|
|
29
|
+
}
|
|
10
30
|
|
|
11
31
|
/**
|
|
12
32
|
* Checks if a block is hidden for a specific viewport.
|
|
@@ -110,10 +130,11 @@ export function getHideEverywhereCheckboxState( blocks ) {
|
|
|
110
130
|
/**
|
|
111
131
|
* Get a human-readable label describing which viewports a block is hidden on.
|
|
112
132
|
*
|
|
113
|
-
* @param {boolean|Object} blockVisibility
|
|
133
|
+
* @param {boolean|Object} blockVisibility The block's visibility metadata.
|
|
134
|
+
* @param {Object} viewportSettings Viewport breakpoint settings.
|
|
114
135
|
* @return {string|null} A descriptive label, or null if the block is not hidden.
|
|
115
136
|
*/
|
|
116
|
-
export function getBlockVisibilityLabel( blockVisibility ) {
|
|
137
|
+
export function getBlockVisibilityLabel( blockVisibility, viewportSettings ) {
|
|
117
138
|
// Not hidden at all
|
|
118
139
|
if ( ! blockVisibility && blockVisibility !== false ) {
|
|
119
140
|
return null;
|
|
@@ -126,9 +147,13 @@ export function getBlockVisibilityLabel( blockVisibility ) {
|
|
|
126
147
|
|
|
127
148
|
if ( blockVisibility?.viewport ) {
|
|
128
149
|
// Hidden on specific viewports - list them
|
|
129
|
-
const hiddenViewports =
|
|
130
|
-
|
|
131
|
-
)
|
|
150
|
+
const hiddenViewports = getBlockVisibilityViewportEntries(
|
|
151
|
+
viewportSettings
|
|
152
|
+
)
|
|
153
|
+
.filter(
|
|
154
|
+
( [ key ] ) => blockVisibility.viewport?.[ key ] === false
|
|
155
|
+
)
|
|
156
|
+
.map( ( [ , viewport ] ) => viewport.label );
|
|
132
157
|
|
|
133
158
|
if ( hiddenViewports.length > 0 ) {
|
|
134
159
|
return sprintf(
|
|
@@ -11,8 +11,10 @@ import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
|
11
11
|
*/
|
|
12
12
|
import { store as blockEditorStore } from '../../store';
|
|
13
13
|
import { unlock } from '../../lock-unlock';
|
|
14
|
+
import { useSettings } from '../use-settings';
|
|
14
15
|
|
|
15
16
|
export default function BlockVisibilityViewportMenuItem( { clientIds } ) {
|
|
17
|
+
const [ blockVisibility ] = useSettings( 'blockVisibility.allowEditing' );
|
|
16
18
|
const { areBlocksHiddenAnywhere, shortcut } = useSelect(
|
|
17
19
|
( select ) => {
|
|
18
20
|
const { isBlockHiddenAnywhere } = unlock(
|
|
@@ -31,7 +33,14 @@ export default function BlockVisibilityViewportMenuItem( { clientIds } ) {
|
|
|
31
33
|
},
|
|
32
34
|
[ clientIds ]
|
|
33
35
|
);
|
|
34
|
-
const
|
|
36
|
+
const dispatch = useDispatch( blockEditorStore );
|
|
37
|
+
|
|
38
|
+
if ( blockVisibility === false ) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const { showViewportModal } = unlock( dispatch );
|
|
43
|
+
|
|
35
44
|
return (
|
|
36
45
|
<MenuItem
|
|
37
46
|
onClick={ () => showViewportModal( clientIds ) }
|
|
@@ -13,9 +13,11 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
13
13
|
*/
|
|
14
14
|
import { store as blockEditorStore } from '../../store';
|
|
15
15
|
import { unlock } from '../../lock-unlock';
|
|
16
|
+
import { useSettings } from '../use-settings';
|
|
16
17
|
|
|
17
18
|
export default function BlockVisibilityViewportToolbar( { clientIds } ) {
|
|
18
19
|
const hasBlockVisibilityButtonShownRef = useRef( false );
|
|
20
|
+
const [ blockVisibility ] = useSettings( 'blockVisibility.allowEditing' );
|
|
19
21
|
const { canToggleBlockVisibility, areBlocksHiddenAnywhere } = useSelect(
|
|
20
22
|
( select ) => {
|
|
21
23
|
const { getBlocksByClientId, getBlockName, isBlockHiddenAnywhere } =
|
|
@@ -52,6 +54,10 @@ export default function BlockVisibilityViewportToolbar( { clientIds } ) {
|
|
|
52
54
|
}
|
|
53
55
|
}, [ areBlocksHiddenAnywhere ] );
|
|
54
56
|
|
|
57
|
+
if ( blockVisibility === false ) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
55
61
|
if (
|
|
56
62
|
! areBlocksHiddenAnywhere &&
|
|
57
63
|
! hasBlockVisibilityButtonShownRef.current
|
|
@@ -32,6 +32,7 @@ export default function ViewportVisibilityInfo( { clientId } ) {
|
|
|
32
32
|
const {
|
|
33
33
|
currentBlockVisibility,
|
|
34
34
|
selectedDeviceType,
|
|
35
|
+
viewportSettings,
|
|
35
36
|
hasParentHiddenEverywhere,
|
|
36
37
|
} = useSelect(
|
|
37
38
|
( select ) => {
|
|
@@ -43,13 +44,15 @@ export default function ViewportVisibilityInfo( { clientId } ) {
|
|
|
43
44
|
isBlockParentHiddenEverywhere,
|
|
44
45
|
getSettings,
|
|
45
46
|
} = unlock( select( blockEditorStore ) );
|
|
47
|
+
const settings = getSettings();
|
|
46
48
|
|
|
47
49
|
return {
|
|
48
50
|
currentBlockVisibility:
|
|
49
51
|
getBlockAttributes( clientId )?.metadata?.blockVisibility,
|
|
50
52
|
selectedDeviceType:
|
|
51
|
-
|
|
53
|
+
settings?.[ deviceTypeKey ]?.toLowerCase() ||
|
|
52
54
|
BLOCK_VISIBILITY_VIEWPORTS.desktop.key,
|
|
55
|
+
viewportSettings: settings?.__experimentalFeatures?.viewport,
|
|
53
56
|
hasParentHiddenEverywhere:
|
|
54
57
|
isBlockParentHiddenEverywhere( clientId ),
|
|
55
58
|
};
|
|
@@ -66,6 +69,7 @@ export default function ViewportVisibilityInfo( { clientId } ) {
|
|
|
66
69
|
const { isBlockCurrentlyHidden, currentViewport } = useBlockVisibility( {
|
|
67
70
|
blockVisibility: currentBlockVisibility,
|
|
68
71
|
deviceType: selectedDeviceType,
|
|
72
|
+
viewportSettings,
|
|
69
73
|
view: canvasView,
|
|
70
74
|
} );
|
|
71
75
|
|
|
@@ -9,20 +9,14 @@
|
|
|
9
9
|
width: 100%;
|
|
10
10
|
height: auto;
|
|
11
11
|
color: $gray-900;
|
|
12
|
-
|
|
12
|
+
border-color: currentColor;
|
|
13
13
|
|
|
14
14
|
.is-dark-theme & {
|
|
15
15
|
color: $light-gray-placeholder;
|
|
16
|
-
box-shadow: inset 0 0 0 $border-width $light-gray-placeholder;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
&:hover {
|
|
20
19
|
color: var(--wp-admin-theme-color);
|
|
21
|
-
box-shadow: inset 0 0 0 $border-width var(--wp-admin-theme-color);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&:focus {
|
|
25
|
-
box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color);
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
&:active {
|
|
@@ -178,7 +178,6 @@ function FlexControls( {
|
|
|
178
178
|
panelId={ panelId }
|
|
179
179
|
>
|
|
180
180
|
<ToggleGroupControl
|
|
181
|
-
size="__unstable-large"
|
|
182
181
|
label={ childLayoutOrientation( parentLayout ) }
|
|
183
182
|
value={ flexControlValue }
|
|
184
183
|
help={ helpText( flexControlValue, parentLayout ) }
|
|
@@ -225,7 +224,6 @@ function FlexControls( {
|
|
|
225
224
|
</ToggleGroupControl>
|
|
226
225
|
{ hasFlexSizeValue && (
|
|
227
226
|
<UnitControl
|
|
228
|
-
size="__unstable-large"
|
|
229
227
|
units={ units }
|
|
230
228
|
onChange={ ( value ) => {
|
|
231
229
|
onChange( {
|
|
@@ -308,7 +306,6 @@ function GridControls( {
|
|
|
308
306
|
>
|
|
309
307
|
<FlexItem style={ { width: '50%' } }>
|
|
310
308
|
<InputControl
|
|
311
|
-
size="__unstable-large"
|
|
312
309
|
label={ __( 'Column span' ) }
|
|
313
310
|
type="number"
|
|
314
311
|
onChange={ ( value ) => {
|
|
@@ -333,7 +330,6 @@ function GridControls( {
|
|
|
333
330
|
</FlexItem>
|
|
334
331
|
<FlexItem style={ { width: '50%' } }>
|
|
335
332
|
<InputControl
|
|
336
|
-
size="__unstable-large"
|
|
337
333
|
label={ __( 'Row span' ) }
|
|
338
334
|
type="number"
|
|
339
335
|
onChange={ ( value ) => {
|
|
@@ -371,7 +367,6 @@ function GridControls( {
|
|
|
371
367
|
>
|
|
372
368
|
<FlexItem style={ { width: '50%' } }>
|
|
373
369
|
<InputControl
|
|
374
|
-
size="__unstable-large"
|
|
375
370
|
label={ __( 'Column' ) }
|
|
376
371
|
type="number"
|
|
377
372
|
onChange={ ( value ) => {
|
|
@@ -406,7 +401,6 @@ function GridControls( {
|
|
|
406
401
|
</FlexItem>
|
|
407
402
|
<FlexItem style={ { width: '50%' } }>
|
|
408
403
|
<InputControl
|
|
409
|
-
size="__unstable-large"
|
|
410
404
|
label={ __( 'Row' ) }
|
|
411
405
|
type="number"
|
|
412
406
|
onChange={ ( value ) => {
|