@wordpress/block-editor 8.3.0 → 8.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +56 -18
- package/build/components/alignment-control/index.js +13 -6
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/index.js +13 -6
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-icon/index.js +4 -0
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +4 -1
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block.js +4 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -6
- 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 +22 -6
- 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-focus-handler.js +7 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-list-appender/index.js +6 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-lock/index.js +32 -0
- package/build/components/block-lock/index.js.map +1 -0
- package/build/components/block-lock/menu-item.js +67 -0
- package/build/components/block-lock/menu-item.js.map +1 -0
- package/build/components/block-lock/modal.js +134 -0
- package/build/components/block-lock/modal.js.map +1 -0
- package/build/components/block-lock/toolbar.js +78 -0
- package/build/components/block-lock/toolbar.js.map +1 -0
- package/build/components/block-mover/index.js +4 -0
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +75 -10
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +19 -9
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +1 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +2 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +8 -6
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/block-name-context.js +17 -0
- package/build/components/block-toolbar/block-name-context.js.map +1 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js +20 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build/components/block-toolbar/index.js +24 -5
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/index.js +0 -16
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +92 -47
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +13 -6
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/border-radius-control/index.js +0 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +1 -1
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +3 -1
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/contrast-checker/index.js +4 -0
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +8 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +105 -0
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build/components/copy-handler/index.js +4 -0
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +132 -0
- package/build/components/date-format-picker/index.js.map +1 -0
- package/build/components/font-sizes/font-size-picker.js +4 -0
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/iframe/index.js +6 -9
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +27 -0
- package/build/components/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +13 -6
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/line-height-control/index.js +15 -6
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +24 -23
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +38 -13
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +16 -13
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +7 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +9 -2
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/media-replace-flow/index.js +4 -0
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +1 -1
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/rich-text/index.js +27 -5
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +13 -9
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/split-value.js +12 -2
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-firefox-compat.js +49 -0
- package/build/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +34 -2
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -0
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +11 -27
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/writing-flow/index.js +9 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +3 -44
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js +68 -0
- package/build/components/writing-flow/use-click-selection.js.map +1 -0
- package/build/components/writing-flow/use-drag-selection.js +134 -0
- package/build/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build/components/writing-flow/use-input.js +116 -0
- package/build/components/writing-flow/use-input.js.map +1 -0
- package/build/components/writing-flow/use-multi-selection.js +18 -38
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +161 -0
- package/build/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build/components/writing-flow/use-tab-nav.js +1 -8
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/anchor.js +7 -6
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border-color.js +3 -3
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border.js +0 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +20 -17
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +5 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +4 -2
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +77 -5
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +7 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +34 -3
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +29 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +82 -15
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +22 -13
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +297 -51
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +25 -13
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +171 -21
- package/build/store/selectors.js.map +1 -1
- package/build/utils/dom.js +2 -1
- package/build/utils/dom.js.map +1 -1
- package/build-module/components/alignment-control/index.js +12 -4
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +12 -4
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +2 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -0
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +5 -2
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -2
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -4
- 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 +22 -6
- 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-focus-handler.js +7 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +6 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-lock/index.js +4 -0
- package/build-module/components/block-lock/index.js.map +1 -0
- package/build-module/components/block-lock/menu-item.js +53 -0
- package/build-module/components/block-lock/menu-item.js.map +1 -0
- package/build-module/components/block-lock/modal.js +119 -0
- package/build-module/components/block-lock/modal.js.map +1 -0
- package/build-module/components/block-lock/toolbar.js +63 -0
- package/build-module/components/block-lock/toolbar.js.map +1 -0
- package/build-module/components/block-mover/index.js +4 -0
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +75 -12
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +18 -9
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +2 -2
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +2 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +8 -6
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/block-name-context.js +9 -0
- package/build-module/components/block-toolbar/block-name-context.js.map +1 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js +11 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +19 -4
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/index.js +0 -16
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +95 -49
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +12 -4
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +0 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +1 -1
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -1
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +4 -0
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +2 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +90 -0
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build-module/components/copy-handler/index.js +4 -0
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +122 -0
- package/build-module/components/date-format-picker/index.js.map +1 -0
- package/build-module/components/font-sizes/font-size-picker.js +4 -0
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/iframe/index.js +6 -9
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +3 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +12 -4
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +14 -5
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +24 -23
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +36 -13
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +16 -13
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +7 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +10 -3
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -0
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +26 -5
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +13 -9
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +12 -2
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-firefox-compat.js +39 -0
- package/build-module/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +35 -4
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -0
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +12 -28
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -45
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js +57 -0
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-drag-selection.js +124 -0
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +104 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -0
- package/build-module/components/writing-flow/use-multi-selection.js +18 -37
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +150 -0
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build-module/components/writing-flow/use-tab-nav.js +1 -9
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/anchor.js +7 -6
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border-color.js +5 -5
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border.js +0 -12
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +19 -18
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +75 -7
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +7 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +33 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +26 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +81 -16
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +20 -13
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +286 -49
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +25 -13
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +162 -20
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/dom.js +2 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-style/style-rtl.css +214 -24
- package/build-style/style.css +214 -24
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +28 -27
- package/src/components/alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/index.js +9 -4
- package/src/components/block-draggable/index.js +2 -5
- package/src/components/block-icon/index.js +3 -0
- package/src/components/block-inspector/index.js +4 -0
- package/src/components/block-list/block-html.js +8 -4
- package/src/components/block-list/block.js +5 -1
- package/src/components/block-list/style.scss +4 -5
- package/src/components/block-list/use-block-props/index.js +0 -5
- package/src/components/block-list/use-block-props/use-focus-first-element.js +27 -6
- package/src/components/block-list/use-block-props/use-focus-handler.js +8 -0
- package/src/components/block-list-appender/index.js +5 -0
- package/src/components/block-lock/index.js +3 -0
- package/src/components/block-lock/menu-item.js +59 -0
- package/src/components/block-lock/modal.js +170 -0
- package/src/components/block-lock/style.scss +70 -0
- package/src/components/block-lock/toolbar.js +68 -0
- package/src/components/block-mover/index.js +3 -0
- package/src/components/block-mover/style.scss +4 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +109 -9
- package/src/components/block-settings-menu-controls/index.js +33 -12
- package/src/components/block-switcher/index.js +2 -2
- package/src/components/block-switcher/style.scss +8 -1
- package/src/components/block-switcher/test/index.js +2 -2
- package/src/components/block-title/README.md +6 -1
- package/src/components/block-title/index.js +2 -2
- package/src/components/block-title/test/index.js +43 -1
- package/src/components/block-title/use-block-display-title.js +10 -7
- package/src/components/block-toolbar/block-name-context.js +8 -0
- package/src/components/block-toolbar/block-toolbar-last-item.js +12 -0
- package/src/components/block-toolbar/index.js +24 -2
- package/src/components/block-toolbar/style.scss +10 -0
- package/src/components/block-tools/index.js +0 -19
- package/src/components/block-tools/style.scss +27 -0
- package/src/components/block-variation-transforms/index.js +105 -36
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/block-vertical-alignment-control/index.js +9 -4
- package/src/components/border-radius-control/index.js +0 -1
- package/src/components/border-radius-control/test/utils.js +4 -0
- package/src/components/border-radius-control/utils.js +2 -1
- package/src/components/button-block-appender/style.scss +5 -1
- package/src/components/color-palette/test/__snapshots__/control.js.snap +70 -4
- package/src/components/colors-gradients/control.js +1 -1
- package/src/components/colors-gradients/style.scss +6 -0
- package/src/components/contrast-checker/index.js +3 -0
- package/src/components/convert-to-group-buttons/index.js +6 -1
- package/src/components/convert-to-group-buttons/toolbar.js +87 -0
- package/src/components/copy-handler/index.js +3 -0
- package/src/components/date-format-picker/README.md +58 -0
- package/src/components/date-format-picker/index.js +161 -0
- package/src/components/date-format-picker/style.scss +31 -0
- package/src/components/font-sizes/font-size-picker.js +3 -0
- package/src/components/iframe/index.js +5 -7
- package/src/components/index.js +3 -0
- package/src/components/justify-content-control/index.js +9 -4
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/line-height-control/index.js +11 -6
- package/src/components/link-control/README.md +1 -1
- package/src/components/list-view/block-select-button.js +21 -30
- package/src/components/list-view/block.js +55 -13
- package/src/components/list-view/branch.js +37 -15
- package/src/components/list-view/index.js +6 -0
- package/src/components/list-view/style.scss +56 -14
- package/src/components/list-view/use-block-selection.js +15 -2
- package/src/components/media-placeholder/README.md +8 -0
- package/src/components/media-replace-flow/index.js +3 -0
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/rich-text/index.js +25 -2
- package/src/components/rich-text/index.native.js +24 -8
- package/src/components/rich-text/split-value.js +5 -1
- package/src/components/rich-text/use-firefox-compat.js +39 -0
- package/src/components/rich-text/use-input-rules.js +40 -3
- package/src/components/skip-to-selected-block/index.js +3 -0
- package/src/components/url-input/style.scss +3 -2
- package/src/components/url-popover/image-url-input-ui.js +16 -29
- package/src/components/writing-flow/index.js +8 -0
- package/src/components/writing-flow/readme.md +28 -0
- package/src/components/writing-flow/use-arrow-nav.js +4 -53
- package/src/components/writing-flow/use-click-selection.js +65 -0
- package/src/components/writing-flow/use-drag-selection.js +126 -0
- package/src/components/writing-flow/use-input.js +112 -0
- package/src/components/writing-flow/use-multi-selection.js +13 -36
- package/src/components/writing-flow/use-selection-observer.js +153 -0
- package/src/components/writing-flow/use-tab-nav.js +1 -11
- package/src/hooks/anchor.js +8 -6
- package/src/hooks/border-color.js +5 -5
- package/src/hooks/border.js +0 -13
- package/src/hooks/color.js +51 -24
- package/src/hooks/font-family.js +5 -2
- package/src/hooks/font-size.js +10 -7
- package/src/hooks/gap.js +91 -12
- package/src/hooks/layout.js +11 -1
- package/src/hooks/style.js +40 -4
- package/src/hooks/test/gap.js +66 -0
- package/src/hooks/test/style.js +94 -0
- package/src/hooks/test/utils.js +1 -1
- package/src/hooks/utils.js +26 -0
- package/src/layouts/flex.js +93 -6
- package/src/layouts/flow.js +28 -12
- package/src/store/actions.js +349 -32
- package/src/store/defaults.js +7 -1
- package/src/store/reducer.js +25 -10
- package/src/store/selectors.js +207 -25
- package/src/store/test/selectors.js +305 -5
- package/src/style.scss +2 -0
- package/src/utils/dom.js +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +0 -205
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +0 -77
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +0 -192
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +0 -63
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/src/components/block-list/use-block-props/use-multi-selection.js +0 -227
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -73
package/build/store/selectors.js
CHANGED
|
@@ -5,13 +5,16 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.__experimentalGetDirectInsertBlock = exports.__experimentalGetBlockListSettingsForBlocks = exports.__experimentalGetAllowedPatterns = exports.__experimentalGetAllowedBlocks = exports.__experimentalGetActiveBlockIdByBlockNames = void 0;
|
|
8
|
+
exports.__experimentalGetGlobalBlocksByName = exports.__experimentalGetDirectInsertBlock = exports.__experimentalGetBlockListSettingsForBlocks = exports.__experimentalGetAllowedPatterns = exports.__experimentalGetAllowedBlocks = exports.__experimentalGetActiveBlockIdByBlockNames = void 0;
|
|
9
9
|
exports.__experimentalGetLastBlockAttributeChanges = __experimentalGetLastBlockAttributeChanges;
|
|
10
10
|
exports.__unstableGetClientIdsTree = exports.__unstableGetClientIdWithClientIdsTree = exports.__unstableGetBlockWithoutInnerBlocks = exports.__experimentalGetReusableBlockTitle = exports.__experimentalGetPatternsByBlockTypes = exports.__experimentalGetPatternTransformItems = exports.__experimentalGetParsedPattern = void 0;
|
|
11
|
+
exports.__unstableIsFullySelected = __unstableIsFullySelected;
|
|
11
12
|
exports.__unstableIsLastBlockChangeIgnored = __unstableIsLastBlockChangeIgnored;
|
|
13
|
+
exports.__unstableIsSelectionMergeable = __unstableIsSelectionMergeable;
|
|
12
14
|
exports.areInnerBlocksControlled = areInnerBlocksControlled;
|
|
13
15
|
exports.canInsertBlockType = void 0;
|
|
14
16
|
exports.canInsertBlocks = canInsertBlocks;
|
|
17
|
+
exports.canLockBlockType = canLockBlockType;
|
|
15
18
|
exports.canMoveBlock = canMoveBlock;
|
|
16
19
|
exports.canMoveBlocks = canMoveBlocks;
|
|
17
20
|
exports.canRemoveBlock = canRemoveBlock;
|
|
@@ -93,6 +96,8 @@ var _hooks = require("@wordpress/hooks");
|
|
|
93
96
|
|
|
94
97
|
var _icons = require("@wordpress/icons");
|
|
95
98
|
|
|
99
|
+
var _i18n = require("@wordpress/i18n");
|
|
100
|
+
|
|
96
101
|
/**
|
|
97
102
|
* External dependencies
|
|
98
103
|
*/
|
|
@@ -282,8 +287,9 @@ const __unstableGetClientIdsTree = (0, _rememo.default)(function (state) {
|
|
|
282
287
|
return (0, _lodash.map)(getBlockOrder(state, rootClientId), clientId => __unstableGetClientIdWithClientIdsTree(state, clientId));
|
|
283
288
|
}, state => [state.blocks.order]);
|
|
284
289
|
/**
|
|
285
|
-
* Returns an array containing the clientIds of all descendants
|
|
286
|
-
* of the
|
|
290
|
+
* Returns an array containing the clientIds of all descendants of the blocks
|
|
291
|
+
* given. Returned ids are ordered first by the order of the ids given, then
|
|
292
|
+
* by the order that they appear in the editor.
|
|
287
293
|
*
|
|
288
294
|
* @param {Object} state Global application state.
|
|
289
295
|
* @param {Array} clientIds Array of blocks to inspect.
|
|
@@ -293,25 +299,36 @@ const __unstableGetClientIdsTree = (0, _rememo.default)(function (state) {
|
|
|
293
299
|
|
|
294
300
|
|
|
295
301
|
exports.__unstableGetClientIdsTree = __unstableGetClientIdsTree;
|
|
302
|
+
const getClientIdsOfDescendants = (0, _rememo.default)((state, clientIds) => {
|
|
303
|
+
const collectedIds = [];
|
|
296
304
|
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
}
|
|
305
|
+
for (const givenId of clientIds) {
|
|
306
|
+
for (const descendantId of getBlockOrder(state, givenId)) {
|
|
307
|
+
collectedIds.push(descendantId, ...getClientIdsOfDescendants(state, [descendantId]));
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
return collectedIds;
|
|
312
|
+
}, state => [state.blocks.order]);
|
|
301
313
|
/**
|
|
302
|
-
* Returns an array containing the clientIds of the top-level blocks
|
|
303
|
-
*
|
|
314
|
+
* Returns an array containing the clientIds of the top-level blocks and
|
|
315
|
+
* their descendants of any depth (for nested blocks). Ids are returned
|
|
316
|
+
* in the same order that they appear in the editor.
|
|
304
317
|
*
|
|
305
318
|
* @param {Object} state Global application state.
|
|
306
319
|
*
|
|
307
320
|
* @return {Array} ids of top-level and descendant blocks.
|
|
308
321
|
*/
|
|
309
322
|
|
|
310
|
-
|
|
311
323
|
exports.getClientIdsOfDescendants = getClientIdsOfDescendants;
|
|
312
324
|
const getClientIdsWithDescendants = (0, _rememo.default)(state => {
|
|
313
|
-
const
|
|
314
|
-
|
|
325
|
+
const collectedIds = [];
|
|
326
|
+
|
|
327
|
+
for (const topLevelId of getBlockOrder(state)) {
|
|
328
|
+
collectedIds.push(topLevelId, ...getClientIdsOfDescendants(state, [topLevelId]));
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
return collectedIds;
|
|
315
332
|
}, state => [state.blocks.order]);
|
|
316
333
|
/**
|
|
317
334
|
* Returns the total number of blocks, or the total number of blocks with a specific name in a post.
|
|
@@ -336,6 +353,29 @@ const getGlobalBlockCount = (0, _rememo.default)((state, blockName) => {
|
|
|
336
353
|
return block.name === blockName ? accumulator + 1 : accumulator;
|
|
337
354
|
}, 0);
|
|
338
355
|
}, state => [state.blocks.order, state.blocks.byClientId]);
|
|
356
|
+
/**
|
|
357
|
+
* Returns all global blocks that match a blockName. Results include nested blocks.
|
|
358
|
+
*
|
|
359
|
+
* @param {Object} state Global application state.
|
|
360
|
+
* @param {?string} blockName Optional block name, if not specified, returns an empty array.
|
|
361
|
+
*
|
|
362
|
+
* @return {Array} Array of clientIds of blocks with name equal to blockName.
|
|
363
|
+
*/
|
|
364
|
+
|
|
365
|
+
exports.getGlobalBlockCount = getGlobalBlockCount;
|
|
366
|
+
|
|
367
|
+
const __experimentalGetGlobalBlocksByName = (0, _rememo.default)((state, blockName) => {
|
|
368
|
+
if (!blockName) {
|
|
369
|
+
return EMPTY_ARRAY;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
const clientIds = getClientIdsWithDescendants(state);
|
|
373
|
+
const foundBlocks = clientIds.filter(clientId => {
|
|
374
|
+
const block = state.blocks.byClientId[clientId];
|
|
375
|
+
return block.name === blockName;
|
|
376
|
+
});
|
|
377
|
+
return foundBlocks.length > 0 ? foundBlocks : EMPTY_ARRAY;
|
|
378
|
+
}, state => [state.blocks.order, state.blocks.byClientId]);
|
|
339
379
|
/**
|
|
340
380
|
* Given an array of block client IDs, returns the corresponding array of block
|
|
341
381
|
* objects.
|
|
@@ -346,7 +386,8 @@ const getGlobalBlockCount = (0, _rememo.default)((state, blockName) => {
|
|
|
346
386
|
* @return {WPBlock[]} Block objects.
|
|
347
387
|
*/
|
|
348
388
|
|
|
349
|
-
|
|
389
|
+
|
|
390
|
+
exports.__experimentalGetGlobalBlocksByName = __experimentalGetGlobalBlocksByName;
|
|
350
391
|
const getBlocksByClientId = (0, _rememo.default)((state, clientIds) => (0, _lodash.map)((0, _lodash.castArray)(clientIds), clientId => getBlock(state, clientId)), (state, clientIds) => (0, _lodash.map)((0, _lodash.castArray)(clientIds), clientId => state.blocks.tree[clientId]));
|
|
351
392
|
/**
|
|
352
393
|
* Returns the number of blocks currently present in the post.
|
|
@@ -944,6 +985,72 @@ function getMultiSelectedBlocksEndClientId(state) {
|
|
|
944
985
|
|
|
945
986
|
return selectionEnd.clientId || null;
|
|
946
987
|
}
|
|
988
|
+
/**
|
|
989
|
+
* Returns true if the selection is not partial.
|
|
990
|
+
*
|
|
991
|
+
* @param {Object} state Editor state.
|
|
992
|
+
*
|
|
993
|
+
* @return {boolean} Whether the selection is mergeable.
|
|
994
|
+
*/
|
|
995
|
+
|
|
996
|
+
|
|
997
|
+
function __unstableIsFullySelected(state) {
|
|
998
|
+
const selectionAnchor = getSelectionStart(state);
|
|
999
|
+
const selectionFocus = getSelectionEnd(state);
|
|
1000
|
+
return !selectionAnchor.attributeKey && !selectionFocus.attributeKey && typeof selectionAnchor.offset === 'undefined' && typeof selectionFocus.offset === 'undefined';
|
|
1001
|
+
}
|
|
1002
|
+
/**
|
|
1003
|
+
* Check whether the selection is mergeable.
|
|
1004
|
+
*
|
|
1005
|
+
* @param {Object} state Editor state.
|
|
1006
|
+
* @param {boolean} isForward Whether to merge forwards.
|
|
1007
|
+
*
|
|
1008
|
+
* @return {boolean} Whether the selection is mergeable.
|
|
1009
|
+
*/
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
function __unstableIsSelectionMergeable(state, isForward) {
|
|
1013
|
+
const selectionAnchor = getSelectionStart(state);
|
|
1014
|
+
const selectionFocus = getSelectionEnd(state); // It's not mergeable if the start and end are within the same block.
|
|
1015
|
+
|
|
1016
|
+
if (selectionAnchor.clientId === selectionFocus.clientId) return false; // It's not mergeable if there's no rich text selection.
|
|
1017
|
+
|
|
1018
|
+
if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false;
|
|
1019
|
+
const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId);
|
|
1020
|
+
const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); // It's not mergeable if the selection doesn't start and end in the same
|
|
1021
|
+
// block list. Maybe in the future it should be allowed.
|
|
1022
|
+
|
|
1023
|
+
if (anchorRootClientId !== focusRootClientId) {
|
|
1024
|
+
return false;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
const blockOrder = getBlockOrder(state, anchorRootClientId);
|
|
1028
|
+
const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
|
|
1029
|
+
const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
|
|
1030
|
+
|
|
1031
|
+
let selectionStart, selectionEnd;
|
|
1032
|
+
|
|
1033
|
+
if (anchorIndex > focusIndex) {
|
|
1034
|
+
selectionStart = selectionFocus;
|
|
1035
|
+
selectionEnd = selectionAnchor;
|
|
1036
|
+
} else {
|
|
1037
|
+
selectionStart = selectionAnchor;
|
|
1038
|
+
selectionEnd = selectionFocus;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
const targetBlockClientId = isForward ? selectionEnd.clientId : selectionStart.clientId;
|
|
1042
|
+
const blockToMergeClientId = isForward ? selectionStart.clientId : selectionEnd.clientId;
|
|
1043
|
+
const targetBlock = getBlock(state, targetBlockClientId);
|
|
1044
|
+
const targetBlockType = (0, _blocks.getBlockType)(targetBlock.name);
|
|
1045
|
+
if (!targetBlockType.merge) return false;
|
|
1046
|
+
const blockToMerge = getBlock(state, blockToMergeClientId); // It's mergeable if the blocks are of the same type.
|
|
1047
|
+
|
|
1048
|
+
if (blockToMerge.name === targetBlock.name) return true; // If the blocks are of a different type, try to transform the block being
|
|
1049
|
+
// merged into the same type of block.
|
|
1050
|
+
|
|
1051
|
+
const blocksToMerge = (0, _blocks.switchToBlockType)(blockToMerge, targetBlock.name);
|
|
1052
|
+
return blocksToMerge && blocksToMerge.length;
|
|
1053
|
+
}
|
|
947
1054
|
/**
|
|
948
1055
|
* Returns an array containing all block client IDs in the editor in the order
|
|
949
1056
|
* they appear. Optionally accepts a root client ID of the block list for which
|
|
@@ -1356,7 +1463,15 @@ const canInsertBlockTypeUnmemoized = function (state, blockName) {
|
|
|
1356
1463
|
const blockAllowedParentBlocks = blockType.parent;
|
|
1357
1464
|
const parentName = getBlockName(state, rootClientId);
|
|
1358
1465
|
const hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName);
|
|
1359
|
-
|
|
1466
|
+
let hasBlockAllowedAncestor = true;
|
|
1467
|
+
const blockAllowedAncestorBlocks = blockType.ancestor;
|
|
1468
|
+
|
|
1469
|
+
if (blockAllowedAncestorBlocks) {
|
|
1470
|
+
const ancestors = [rootClientId, ...getBlockParents(state, rootClientId)];
|
|
1471
|
+
hasBlockAllowedAncestor = (0, _lodash.some)(ancestors, ancestorClientId => checkAllowList(blockAllowedAncestorBlocks, getBlockName(state, ancestorClientId)));
|
|
1472
|
+
}
|
|
1473
|
+
|
|
1474
|
+
const canInsert = hasBlockAllowedAncestor && (hasParentAllowedBlock === null && hasBlockAllowedParent === null || hasParentAllowedBlock === true || hasBlockAllowedParent === true);
|
|
1360
1475
|
|
|
1361
1476
|
if (!canInsert) {
|
|
1362
1477
|
return canInsert;
|
|
@@ -1504,6 +1619,26 @@ function canMoveBlocks(state, clientIds) {
|
|
|
1504
1619
|
let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1505
1620
|
return clientIds.every(clientId => canMoveBlock(state, clientId, rootClientId));
|
|
1506
1621
|
}
|
|
1622
|
+
/**
|
|
1623
|
+
* Determines if the given block type can be locked/unlocked by a user.
|
|
1624
|
+
*
|
|
1625
|
+
* @param {Object} state Editor state.
|
|
1626
|
+
* @param {(string|Object)} nameOrType Block name or type object.
|
|
1627
|
+
*
|
|
1628
|
+
* @return {boolean} Whether a given block type can be locked/unlocked.
|
|
1629
|
+
*/
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
function canLockBlockType(state, nameOrType) {
|
|
1633
|
+
var _state$settings;
|
|
1634
|
+
|
|
1635
|
+
if (!(0, _blocks.hasBlockSupport)(nameOrType, 'lock', true)) {
|
|
1636
|
+
return false;
|
|
1637
|
+
} // Use block editor settings as the default value.
|
|
1638
|
+
|
|
1639
|
+
|
|
1640
|
+
return !!((_state$settings = state.settings) !== null && _state$settings !== void 0 && _state$settings.canLockBlocks);
|
|
1641
|
+
}
|
|
1507
1642
|
/**
|
|
1508
1643
|
* Returns information about how recently and frequently a block has been inserted.
|
|
1509
1644
|
*
|
|
@@ -1834,7 +1969,10 @@ const getInserterItems = (0, _rememo.default)(function (state) {
|
|
|
1834
1969
|
|
|
1835
1970
|
exports.getInserterItems = getInserterItems;
|
|
1836
1971
|
const getBlockTransformItems = (0, _rememo.default)(function (state, blocks) {
|
|
1972
|
+
var _itemsByName$sourceBl;
|
|
1973
|
+
|
|
1837
1974
|
let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1975
|
+
const [sourceBlock] = blocks;
|
|
1838
1976
|
const buildBlockTypeTransformItem = buildBlockTypeItem(state, {
|
|
1839
1977
|
buildScope: 'transform'
|
|
1840
1978
|
});
|
|
@@ -1844,16 +1982,26 @@ const getBlockTransformItems = (0, _rememo.default)(function (state, blocks) {
|
|
|
1844
1982
|
name
|
|
1845
1983
|
} = _ref5;
|
|
1846
1984
|
return name;
|
|
1847
|
-
});
|
|
1985
|
+
}); // Consider unwraping the highest priority.
|
|
1986
|
+
|
|
1987
|
+
itemsByName['*'] = {
|
|
1988
|
+
frecency: +Infinity,
|
|
1989
|
+
id: '*',
|
|
1990
|
+
isDisabled: false,
|
|
1991
|
+
name: '*',
|
|
1992
|
+
title: (0, _i18n.__)('Unwrap'),
|
|
1993
|
+
icon: (_itemsByName$sourceBl = itemsByName[sourceBlock.name]) === null || _itemsByName$sourceBl === void 0 ? void 0 : _itemsByName$sourceBl.icon
|
|
1994
|
+
};
|
|
1848
1995
|
const possibleTransforms = (0, _blocks.getPossibleBlockTransformations)(blocks).reduce((accumulator, block) => {
|
|
1849
|
-
if (
|
|
1996
|
+
if (block === '*') {
|
|
1997
|
+
accumulator.push(itemsByName['*']);
|
|
1998
|
+
} else if (itemsByName[block === null || block === void 0 ? void 0 : block.name]) {
|
|
1850
1999
|
accumulator.push(itemsByName[block.name]);
|
|
1851
2000
|
}
|
|
1852
2001
|
|
|
1853
2002
|
return accumulator;
|
|
1854
2003
|
}, []);
|
|
1855
|
-
|
|
1856
|
-
return possibleBlockTransformations;
|
|
2004
|
+
return (0, _lodash.orderBy)(possibleTransforms, block => itemsByName[block.name].frecency, 'desc');
|
|
1857
2005
|
}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, (0, _blocks.getBlockTypes)()]);
|
|
1858
2006
|
/**
|
|
1859
2007
|
* Determines whether there are items to show in the inserter.
|
|
@@ -1977,7 +2125,9 @@ const __experimentalGetParsedPattern = (0, _rememo.default)((state, patternName)
|
|
|
1977
2125
|
}
|
|
1978
2126
|
|
|
1979
2127
|
return { ...pattern,
|
|
1980
|
-
blocks: (0, _blocks.parse)(pattern.content
|
|
2128
|
+
blocks: (0, _blocks.parse)(pattern.content, {
|
|
2129
|
+
__unstableSkipMigrationLogs: true
|
|
2130
|
+
})
|
|
1981
2131
|
};
|
|
1982
2132
|
}, state => [state.settings.__experimentalBlockPatterns]);
|
|
1983
2133
|
|
|
@@ -2251,9 +2401,9 @@ function __experimentalGetLastBlockAttributeChanges(state) {
|
|
|
2251
2401
|
|
|
2252
2402
|
|
|
2253
2403
|
function getReusableBlocks(state) {
|
|
2254
|
-
var _state$settings$__exp, _state$
|
|
2404
|
+
var _state$settings$__exp, _state$settings2;
|
|
2255
2405
|
|
|
2256
|
-
return (_state$settings$__exp = state === null || state === void 0 ? void 0 : (_state$
|
|
2406
|
+
return (_state$settings$__exp = state === null || state === void 0 ? void 0 : (_state$settings2 = state.settings) === null || _state$settings2 === void 0 ? void 0 : _state$settings2.__experimentalReusableBlocks) !== null && _state$settings$__exp !== void 0 ? _state$settings$__exp : EMPTY_ARRAY;
|
|
2257
2407
|
}
|
|
2258
2408
|
/**
|
|
2259
2409
|
* Returns whether the navigation mode is enabled.
|