@wordpress/block-editor 9.1.0 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/build/autocompleters/block.js +3 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +3 -7
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-context/index.js.map +1 -1
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.native.js +2 -1
- package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +7 -3
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +34 -32
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +2 -1
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +3 -9
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +3 -8
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-popover/inbetween.js +9 -6
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +2 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +21 -5
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings-menu/block-edit-visually-button.js +70 -0
- package/build/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
- package/build/components/block-settings-menu/block-mode-toggle.js +3 -7
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +6 -3
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js +6 -2
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +6 -3
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/menu-items.js +3 -7
- package/build/components/block-styles/menu-items.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +3 -10
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-toolbar/utils.js +5 -8
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +1 -0
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +16 -2
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +72 -95
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +22 -5
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/copy-handler/index.js +17 -1
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/default-style-picker/index.js.map +1 -1
- package/build/components/duotone/components.js +145 -0
- package/build/components/duotone/components.js.map +1 -0
- package/build/components/duotone/index.js +40 -0
- package/build/components/duotone/index.js.map +1 -0
- package/build/components/duotone/utils.js +38 -0
- package/build/components/duotone/utils.js.map +1 -0
- package/build/components/duotone-control/index.js +17 -5
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-size-control/index.js +3 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +41 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +3 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +3 -7
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/no-results.native.js.map +1 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +1 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +56 -0
- package/build/components/inspector-popover-header/index.js.map +1 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +4 -4
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-create-button.js +1 -3
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +5 -3
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +3 -7
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +1 -7
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +5 -6
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +4 -4
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +23 -14
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +10 -4
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +62 -7
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +4 -0
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +5 -3
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +56 -0
- package/build/components/publish-date-time-picker/index.js.map +1 -0
- package/build/components/rich-text/embed-handler-picker.native.js +4 -8
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +5 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +4 -13
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +20 -5
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +3 -7
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/url-input/index.js +14 -3
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-display-block-controls/index.native.js.map +1 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.native.js.map +1 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +12 -12
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-input.js +15 -0
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/elements/index.js +17 -0
- package/build/elements/index.js.map +1 -0
- package/build/hooks/aria-label.js +71 -0
- package/build/hooks/aria-label.js.map +1 -0
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color-panel.native.js.map +1 -1
- package/build/hooks/color.js +8 -88
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +14 -4
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +33 -160
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +3 -7
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +44 -5
- package/build/hooks/layout.js.map +1 -1
- package/build/index.js +14 -7
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +7 -4
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +24 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +35 -11
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +30 -2
- package/build/store/selectors.js.map +1 -1
- package/build/utils/pasting.js.map +1 -1
- package/build/utils/selection.js +34 -0
- package/build/utils/selection.js.map +1 -0
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/autocompleters/block.js +4 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +2 -5
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-context/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.native.js +2 -1
- package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +7 -3
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +35 -33
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +2 -1
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +3 -9
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +3 -8
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +9 -6
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +2 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +20 -5
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-edit-visually-button.js +56 -0
- package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
- package/build-module/components/block-settings-menu/block-mode-toggle.js +3 -5
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +6 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +6 -3
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +5 -2
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +5 -2
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js +3 -5
- package/build-module/components/block-styles/menu-items.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +3 -9
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/utils.js +3 -5
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +1 -0
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +13 -2
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +74 -97
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/copy-handler/index.js +18 -2
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/default-style-picker/index.js.map +1 -1
- package/build-module/components/duotone/components.js +130 -0
- package/build-module/components/duotone/components.js.map +1 -0
- package/build-module/components/duotone/index.js +3 -0
- package/build-module/components/duotone/index.js.map +1 -0
- package/build-module/components/duotone/utils.js +30 -0
- package/build-module/components/duotone/utils.js.map +1 -0
- package/build-module/components/duotone-control/index.js +18 -6
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-size-control/index.js +4 -1
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +4 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +2 -5
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/no-results.native.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +2 -2
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +46 -0
- package/build-module/components/inspector-popover-header/index.js.map +1 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +2 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +1 -2
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +3 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +2 -5
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +1 -6
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +3 -3
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +5 -3
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +24 -14
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +8 -3
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +63 -8
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +4 -0
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +4 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +42 -0
- package/build-module/components/publish-date-time-picker/index.js.map +1 -0
- package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +5 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +3 -11
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +20 -5
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +3 -5
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +11 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +12 -11
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +15 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/elements/index.js +8 -0
- package/build-module/elements/index.js.map +1 -0
- package/build-module/hooks/aria-label.js +59 -0
- package/build-module/hooks/aria-label.js.map +1 -0
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color-panel.native.js.map +1 -1
- package/build-module/hooks/color.js +8 -88
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/dimensions.js +14 -4
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +22 -140
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +1 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +45 -6
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/index.js +2 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +6 -4
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +18 -11
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +36 -12
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +25 -2
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/pasting.js.map +1 -1
- package/build-module/utils/selection.js +24 -0
- package/build-module/utils/selection.js.map +1 -0
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/style-rtl.css +37 -37
- package/build-style/style.css +37 -37
- package/package.json +30 -30
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-actions/index.js +2 -3
- package/src/components/block-alignment-control/ui.js +4 -6
- package/src/components/block-alignment-matrix-control/index.js +2 -4
- package/src/components/block-breadcrumb/index.js +2 -5
- package/src/components/block-compare/test/block-view.js +2 -1
- package/src/components/block-content-overlay/index.js +2 -5
- package/src/components/block-context/index.js +4 -4
- package/src/components/block-controls/hook.js +2 -3
- package/src/components/block-draggable/draggable-chip.native.js +1 -1
- package/src/components/block-draggable/index.js +6 -13
- package/src/components/block-draggable/index.native.js +10 -14
- package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
- package/src/components/block-draggable/test/helpers.native.js +183 -0
- package/src/components/block-draggable/test/index.native.js +493 -0
- package/src/components/block-edit/test/edit.js +2 -1
- package/src/components/block-list/block-list-item.native.js +4 -12
- package/src/components/block-list/block-selection-button.native.js +2 -3
- package/src/components/block-list/block.js +8 -10
- package/src/components/block-list/block.native.js +11 -15
- package/src/components/block-list/index.js +46 -47
- package/src/components/block-list/index.native.js +12 -21
- package/src/components/block-list/style.scss +1 -1
- package/src/components/block-list/test/block-list-context.native.js +8 -16
- package/src/components/block-list/use-block-props/index.js +6 -3
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
- package/src/components/block-list/use-in-between-inserter.js +2 -3
- package/src/components/block-list-appender/index.js +2 -5
- package/src/components/block-list-appender/index.native.js +2 -3
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
- package/src/components/block-mobile-toolbar/index.native.js +1 -0
- package/src/components/block-mover/button.js +2 -3
- package/src/components/block-mover/index.native.js +4 -6
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +4 -0
- package/src/components/block-parent-selector/index.js +2 -3
- package/src/components/block-pattern-setup/index.js +4 -14
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -9
- package/src/components/block-popover/inbetween.js +12 -7
- package/src/components/block-popover/index.js +1 -0
- package/src/components/block-preview/auto.js +21 -11
- package/src/components/block-selection-clearer/index.js +2 -3
- package/src/components/block-settings-menu/block-edit-visually-button.js +52 -0
- package/src/components/block-settings-menu/block-mode-toggle.js +4 -8
- package/src/components/block-settings-menu/block-settings-dropdown.js +9 -8
- package/src/components/block-settings-menu/index.js +15 -11
- package/src/components/block-settings-menu-controls/index.js +3 -2
- package/src/components/block-styles/index.js +3 -1
- package/src/components/block-styles/menu-items.js +2 -5
- package/src/components/block-switcher/block-transformations-menu.js +2 -4
- package/src/components/block-title/use-block-display-title.js +9 -7
- package/src/components/block-toolbar/index.native.js +2 -5
- package/src/components/block-toolbar/utils.js +3 -11
- package/src/components/block-tools/block-contextual-toolbar.js +2 -5
- package/src/components/block-tools/block-selection-button.js +1 -0
- package/src/components/block-tools/index.js +2 -3
- package/src/components/block-types-list/index.native.js +2 -4
- package/src/components/block-variation-transforms/index.js +10 -8
- package/src/components/color-palette/test/control.js +2 -1
- package/src/components/color-style-selector/index.js +27 -28
- package/src/components/colors/test/with-colors.js +14 -14
- package/src/components/colors/with-colors.js +8 -12
- package/src/components/colors-gradients/dropdown.js +49 -69
- package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
- package/src/components/colors-gradients/style.scss +11 -37
- package/src/components/colors-gradients/test/control.js +10 -10
- package/src/components/convert-to-group-buttons/toolbar.js +32 -19
- package/src/components/copy-handler/README.md +7 -2
- package/src/components/copy-handler/index.js +26 -6
- package/src/components/default-block-appender/index.js +4 -6
- package/src/components/default-block-appender/index.native.js +4 -9
- package/src/components/default-style-picker/index.js +20 -21
- package/src/components/duotone/components.js +133 -0
- package/src/components/duotone/index.js +7 -0
- package/src/components/duotone/utils.js +25 -0
- package/src/components/duotone-control/index.js +12 -7
- package/src/components/duotone-control/style.scss +5 -0
- package/src/components/font-sizes/with-font-sizes.js +2 -3
- package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
- package/src/components/image-size-control/index.js +4 -7
- package/src/components/index.js +4 -0
- package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
- package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
- package/src/components/inserter/block-types-tab.native.js +2 -3
- package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
- package/src/components/inserter/hooks/use-insertion-point.js +3 -2
- package/src/components/inserter/hooks/use-patterns-state.js +4 -5
- package/src/components/inserter/index.js +7 -11
- package/src/components/inserter/index.native.js +6 -11
- package/src/components/inserter/library.js +2 -5
- package/src/components/inserter/menu.js +14 -19
- package/src/components/inserter/menu.native.js +8 -6
- package/src/components/inserter/no-results.native.js +2 -1
- package/src/components/inserter/quick-inserter.js +2 -3
- package/src/components/inserter/search-items.js +6 -6
- package/src/components/inserter/search-results.native.js +4 -6
- package/src/components/inspector-popover-header/README.md +76 -0
- package/src/components/inspector-popover-header/index.js +56 -0
- package/src/components/inspector-popover-header/style.scss +16 -0
- package/src/components/line-height-control/index.js +1 -2
- package/src/components/link-control/index.js +4 -4
- package/src/components/link-control/search-create-button.js +4 -2
- package/src/components/link-control/search-input.js +3 -1
- package/src/components/link-control/settings-drawer.js +2 -5
- package/src/components/link-control/test/fixtures/index.js +5 -7
- package/src/components/link-control/test/index.js +79 -102
- package/src/components/link-control/use-search-handler.js +2 -2
- package/src/components/list-view/block-contents.js +2 -4
- package/src/components/list-view/branch.js +22 -23
- package/src/components/list-view/index.js +4 -8
- package/src/components/list-view/use-block-selection.js +5 -5
- package/src/components/list-view/use-list-view-drop-zone.js +2 -1
- package/src/components/list-view/utils.js +1 -6
- package/src/components/media-placeholder/index.js +3 -3
- package/src/components/media-placeholder/index.native.js +9 -5
- package/src/components/media-replace-flow/index.js +78 -55
- package/src/components/media-upload/README.md +8 -0
- package/src/components/media-upload/index.native.js +6 -2
- package/src/components/media-upload/test/index.native.js +31 -6
- package/src/components/navigable-toolbar/index.js +1 -2
- package/src/components/panel-color-settings/test/index.js +2 -1
- package/src/components/plain-text/index.native.js +60 -8
- package/src/components/preview-options/index.js +4 -0
- package/src/components/provider/use-block-sync.js +5 -2
- package/src/components/publish-date-time-picker/README.md +52 -0
- package/src/components/publish-date-time-picker/index.js +41 -0
- package/src/components/responsive-block-control/README.md +3 -1
- package/src/components/responsive-block-control/test/index.js +4 -4
- package/src/components/rich-text/embed-handler-picker.native.js +2 -5
- package/src/components/rich-text/index.js +9 -4
- package/src/components/rich-text/index.native.js +4 -0
- package/src/components/rich-text/use-format-types.js +16 -16
- package/src/components/rich-text/use-input-rules.js +6 -15
- package/src/components/rich-text/use-mark-persistent.js +2 -3
- package/src/components/rich-text/use-paste-handler.js +17 -5
- package/src/components/skip-to-selected-block/index.js +2 -3
- package/src/components/ungroup-button/index.native.js +4 -8
- package/src/components/url-input/index.js +21 -20
- package/src/components/use-block-display-information/index.js +4 -6
- package/src/components/use-block-drop-zone/index.js +2 -3
- package/src/components/use-block-drop-zone/index.native.js +2 -4
- package/src/components/use-block-drop-zone/test/index.js +22 -23
- package/src/components/use-display-block-controls/index.native.js +2 -3
- package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
- package/src/components/use-on-block-drop/index.js +2 -5
- package/src/components/use-on-block-drop/index.native.js +4 -8
- package/src/components/use-setting/index.js +8 -6
- package/src/components/writing-flow/test/index.js +22 -4
- package/src/components/writing-flow/use-arrow-nav.js +22 -10
- package/src/components/writing-flow/use-click-selection.js +2 -5
- package/src/components/writing-flow/use-drag-selection.js +6 -9
- package/src/components/writing-flow/use-input.js +12 -0
- package/src/components/writing-flow/use-multi-selection.js +2 -4
- package/src/components/writing-flow/use-select-all.js +2 -5
- package/src/components/writing-flow/use-selection-observer.js +4 -6
- package/src/components/writing-flow/use-tab-nav.js +2 -5
- package/src/elements/index.js +8 -0
- package/src/elements/test/index.js +18 -0
- package/src/hooks/aria-label.js +67 -0
- package/src/hooks/color-panel.js +4 -4
- package/src/hooks/color-panel.native.js +2 -2
- package/src/hooks/color.js +7 -76
- package/src/hooks/color.scss +9 -0
- package/src/hooks/dimensions.js +11 -3
- package/src/hooks/duotone.js +18 -139
- package/src/hooks/font-family.js +4 -2
- package/src/hooks/gap.js +2 -3
- package/src/hooks/index.js +1 -1
- package/src/hooks/layout.js +74 -13
- package/src/hooks/test/align.js +2 -1
- package/src/hooks/test/generated-class-name.js +2 -5
- package/src/hooks/test/utils.js +2 -5
- package/src/index.js +1 -1
- package/src/layouts/flex.js +13 -5
- package/src/store/actions.js +772 -729
- package/src/store/reducer.js +219 -183
- package/src/store/selectors.js +82 -54
- package/src/store/test/actions.js +2 -1
- package/src/store/test/reducer.js +145 -10
- package/src/store/test/selectors.js +20 -27
- package/src/style.scss +1 -0
- package/src/utils/pasting.js +3 -3
- package/src/utils/selection.js +26 -0
- package/src/utils/test/selection.js +39 -0
- package/src/utils/transform-styles/transforms/wrap.js +30 -28
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/colors/color-panel.js +0 -82
- package/build/components/colors/color-panel.js.map +0 -1
- package/build/components/colors/color-panel.native.js +0 -11
- package/build/components/colors/color-panel.native.js.map +0 -1
- package/build-module/components/colors/color-panel.js +0 -70
- package/build-module/components/colors/color-panel.js.map +0 -1
- package/build-module/components/colors/color-panel.native.js +0 -4
- package/build-module/components/colors/color-panel.native.js.map +0 -1
- package/src/components/colors/color-panel.js +0 -91
- package/src/components/colors/color-panel.native.js +0 -3
|
@@ -74,10 +74,8 @@ export default function useMultiSelection() {
|
|
|
74
74
|
|
|
75
75
|
if ( selection.rangeCount && ! selection.isCollapsed ) {
|
|
76
76
|
const blockNode = selectedRef.current;
|
|
77
|
-
const {
|
|
78
|
-
|
|
79
|
-
endContainer,
|
|
80
|
-
} = selection.getRangeAt( 0 );
|
|
77
|
+
const { startContainer, endContainer } =
|
|
78
|
+
selection.getRangeAt( 0 );
|
|
81
79
|
|
|
82
80
|
if (
|
|
83
81
|
!! blockNode &&
|
|
@@ -17,11 +17,8 @@ import { useRefEffect } from '@wordpress/compose';
|
|
|
17
17
|
import { store as blockEditorStore } from '../../store';
|
|
18
18
|
|
|
19
19
|
export default function useSelectAll() {
|
|
20
|
-
const {
|
|
21
|
-
|
|
22
|
-
getSelectedBlockClientIds,
|
|
23
|
-
getBlockRootClientId,
|
|
24
|
-
} = useSelect( blockEditorStore );
|
|
20
|
+
const { getBlockOrder, getSelectedBlockClientIds, getBlockRootClientId } =
|
|
21
|
+
useSelect( blockEditorStore );
|
|
25
22
|
const { multiSelect } = useDispatch( blockEditorStore );
|
|
26
23
|
const isMatch = useShortcutEventMatch();
|
|
27
24
|
|
|
@@ -73,12 +73,10 @@ function setContentEditableWrapper( node, value ) {
|
|
|
73
73
|
* Sets a multi-selection based on the native selection across blocks.
|
|
74
74
|
*/
|
|
75
75
|
export default function useSelectionObserver() {
|
|
76
|
-
const { multiSelect, selectBlock, selectionChange } =
|
|
77
|
-
blockEditorStore
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
blockEditorStore
|
|
81
|
-
);
|
|
76
|
+
const { multiSelect, selectBlock, selectionChange } =
|
|
77
|
+
useDispatch( blockEditorStore );
|
|
78
|
+
const { getBlockParents, getBlockSelectionStart } =
|
|
79
|
+
useSelect( blockEditorStore );
|
|
82
80
|
return useRefEffect(
|
|
83
81
|
( node ) => {
|
|
84
82
|
const { ownerDocument } = node;
|
|
@@ -17,11 +17,8 @@ export default function useTabNav() {
|
|
|
17
17
|
const focusCaptureBeforeRef = useRef();
|
|
18
18
|
const focusCaptureAfterRef = useRef();
|
|
19
19
|
const lastFocus = useRef();
|
|
20
|
-
const {
|
|
21
|
-
|
|
22
|
-
getSelectedBlockClientId,
|
|
23
|
-
getBlockCount,
|
|
24
|
-
} = useSelect( blockEditorStore );
|
|
20
|
+
const { hasMultiSelection, getSelectedBlockClientId, getBlockCount } =
|
|
21
|
+
useSelect( blockEditorStore );
|
|
25
22
|
const { setNavigationMode } = useDispatch( blockEditorStore );
|
|
26
23
|
const isNavigationMode = useSelect(
|
|
27
24
|
( select ) => select( blockEditorStore ).isNavigationMode(),
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __experimentalGetElementClassName } from '@wordpress/block-editor';
|
|
5
|
+
|
|
6
|
+
describe( 'element class names', () => {
|
|
7
|
+
it( 'should return the correct class name for button', () => {
|
|
8
|
+
expect( __experimentalGetElementClassName( 'button' ) ).toEqual(
|
|
9
|
+
'wp-element-button'
|
|
10
|
+
);
|
|
11
|
+
} );
|
|
12
|
+
|
|
13
|
+
it( 'should return an empty string for an unknown element', () => {
|
|
14
|
+
expect(
|
|
15
|
+
__experimentalGetElementClassName( 'unknown-element' )
|
|
16
|
+
).toEqual( '' );
|
|
17
|
+
} );
|
|
18
|
+
} );
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { addFilter } from '@wordpress/hooks';
|
|
5
|
+
import { hasBlockSupport } from '@wordpress/blocks';
|
|
6
|
+
|
|
7
|
+
const ARIA_LABEL_SCHEMA = {
|
|
8
|
+
type: 'string',
|
|
9
|
+
source: 'attribute',
|
|
10
|
+
attribute: 'aria-label',
|
|
11
|
+
selector: '*',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Filters registered block settings, extending attributes with ariaLabel using aria-label
|
|
16
|
+
* of the first node.
|
|
17
|
+
*
|
|
18
|
+
* @param {Object} settings Original block settings.
|
|
19
|
+
*
|
|
20
|
+
* @return {Object} Filtered block settings.
|
|
21
|
+
*/
|
|
22
|
+
export function addAttribute( settings ) {
|
|
23
|
+
// Allow blocks to specify their own attribute definition with default values if needed.
|
|
24
|
+
if ( settings?.attributes?.ariaLabel?.type ) {
|
|
25
|
+
return settings;
|
|
26
|
+
}
|
|
27
|
+
if ( hasBlockSupport( settings, 'ariaLabel' ) ) {
|
|
28
|
+
// Gracefully handle if settings.attributes is undefined.
|
|
29
|
+
settings.attributes = {
|
|
30
|
+
...settings.attributes,
|
|
31
|
+
ariaLabel: ARIA_LABEL_SCHEMA,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return settings;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Override props assigned to save component to inject aria-label, if block
|
|
40
|
+
* supports ariaLabel. This is only applied if the block's save result is an
|
|
41
|
+
* element and not a markup string.
|
|
42
|
+
*
|
|
43
|
+
* @param {Object} extraProps Additional props applied to save element.
|
|
44
|
+
* @param {Object} blockType Block type.
|
|
45
|
+
* @param {Object} attributes Current block attributes.
|
|
46
|
+
*
|
|
47
|
+
* @return {Object} Filtered props applied to save element.
|
|
48
|
+
*/
|
|
49
|
+
export function addSaveProps( extraProps, blockType, attributes ) {
|
|
50
|
+
if ( hasBlockSupport( blockType, 'ariaLabel' ) ) {
|
|
51
|
+
extraProps[ 'aria-label' ] =
|
|
52
|
+
attributes.ariaLabel === '' ? null : attributes.ariaLabel;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return extraProps;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
addFilter(
|
|
59
|
+
'blocks.registerBlockType',
|
|
60
|
+
'core/ariaLabel/attribute',
|
|
61
|
+
addAttribute
|
|
62
|
+
);
|
|
63
|
+
addFilter(
|
|
64
|
+
'blocks.getSaveContent.extraProps',
|
|
65
|
+
'core/ariaLabel/save-props',
|
|
66
|
+
addSaveProps
|
|
67
|
+
);
|
package/src/hooks/color-panel.js
CHANGED
|
@@ -43,8 +43,8 @@ export default function ColorPanel( {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
let backgroundColorNode = ref.current;
|
|
46
|
-
let backgroundColor =
|
|
47
|
-
.backgroundColor;
|
|
46
|
+
let backgroundColor =
|
|
47
|
+
getComputedStyle( backgroundColorNode ).backgroundColor;
|
|
48
48
|
while (
|
|
49
49
|
backgroundColor === 'rgba(0, 0, 0, 0)' &&
|
|
50
50
|
backgroundColorNode.parentNode &&
|
|
@@ -52,8 +52,8 @@ export default function ColorPanel( {
|
|
|
52
52
|
backgroundColorNode.parentNode.ELEMENT_NODE
|
|
53
53
|
) {
|
|
54
54
|
backgroundColorNode = backgroundColorNode.parentNode;
|
|
55
|
-
backgroundColor =
|
|
56
|
-
.backgroundColor;
|
|
55
|
+
backgroundColor =
|
|
56
|
+
getComputedStyle( backgroundColorNode ).backgroundColor;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
setDetectedBackgroundColor( backgroundColor );
|
|
@@ -23,8 +23,8 @@ const ColorPanel = ( { settings } ) => {
|
|
|
23
23
|
const { baseGlobalStyles } = useSelect( ( select ) => {
|
|
24
24
|
const { getSettings } = select( blockEditorStore );
|
|
25
25
|
return {
|
|
26
|
-
baseGlobalStyles:
|
|
27
|
-
?.__experimentalGlobalStylesBaseStyles?.color,
|
|
26
|
+
baseGlobalStyles:
|
|
27
|
+
getSettings()?.__experimentalGlobalStylesBaseStyles?.color,
|
|
28
28
|
};
|
|
29
29
|
} );
|
|
30
30
|
|
package/src/hooks/color.js
CHANGED
|
@@ -76,34 +76,6 @@ const hasTextColorSupport = ( blockType ) => {
|
|
|
76
76
|
return colorSupport && colorSupport.text !== false;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
/**
|
|
80
|
-
* Checks whether a color has been set either with a named preset color in
|
|
81
|
-
* a top level block attribute or as a custom value within the style attribute
|
|
82
|
-
* object.
|
|
83
|
-
*
|
|
84
|
-
* @param {string} name Name of the color to check.
|
|
85
|
-
* @return {boolean} Whether or not a color has a value.
|
|
86
|
-
*/
|
|
87
|
-
const hasColor = ( name ) => ( props ) => {
|
|
88
|
-
if ( name === 'background' ) {
|
|
89
|
-
return (
|
|
90
|
-
!! props.attributes.backgroundColor ||
|
|
91
|
-
!! props.attributes.style?.color?.background ||
|
|
92
|
-
!! props.attributes.gradient ||
|
|
93
|
-
!! props.attributes.style?.color?.gradient
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
if ( name === 'link' ) {
|
|
98
|
-
return !! props.attributes.style?.elements?.link?.color?.text;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return (
|
|
102
|
-
!! props.attributes[ `${ name }Color` ] ||
|
|
103
|
-
!! props.attributes.style?.color?.[ name ]
|
|
104
|
-
);
|
|
105
|
-
};
|
|
106
|
-
|
|
107
79
|
/**
|
|
108
80
|
* Clears a single color property from a style object.
|
|
109
81
|
*
|
|
@@ -114,20 +86,6 @@ const hasColor = ( name ) => ( props ) => {
|
|
|
114
86
|
const clearColorFromStyles = ( path, style ) =>
|
|
115
87
|
cleanEmptyObject( immutableSet( style, path, undefined ) );
|
|
116
88
|
|
|
117
|
-
/**
|
|
118
|
-
* Resets the block attributes for text color.
|
|
119
|
-
*
|
|
120
|
-
* @param {Object} props Current block props.
|
|
121
|
-
* @param {Object} props.attributes Block attributes.
|
|
122
|
-
* @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
|
|
123
|
-
*/
|
|
124
|
-
const resetTextColor = ( { attributes, setAttributes } ) => {
|
|
125
|
-
setAttributes( {
|
|
126
|
-
textColor: undefined,
|
|
127
|
-
style: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),
|
|
128
|
-
} );
|
|
129
|
-
};
|
|
130
|
-
|
|
131
89
|
/**
|
|
132
90
|
* Clears text color related properties from supplied attributes.
|
|
133
91
|
*
|
|
@@ -139,18 +97,6 @@ const resetAllTextFilter = ( attributes ) => ( {
|
|
|
139
97
|
style: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),
|
|
140
98
|
} );
|
|
141
99
|
|
|
142
|
-
/**
|
|
143
|
-
* Resets the block attributes for link color.
|
|
144
|
-
*
|
|
145
|
-
* @param {Object} props Current block props.
|
|
146
|
-
* @param {Object} props.attributes Block attributes.
|
|
147
|
-
* @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
|
|
148
|
-
*/
|
|
149
|
-
const resetLinkColor = ( { attributes, setAttributes } ) => {
|
|
150
|
-
const path = [ 'elements', 'link', 'color', 'text' ];
|
|
151
|
-
setAttributes( { style: clearColorFromStyles( path, attributes.style ) } );
|
|
152
|
-
};
|
|
153
|
-
|
|
154
100
|
/**
|
|
155
101
|
* Clears link color related properties from supplied attributes.
|
|
156
102
|
*
|
|
@@ -184,17 +130,6 @@ const clearBackgroundAndGradient = ( attributes ) => ( {
|
|
|
184
130
|
},
|
|
185
131
|
} );
|
|
186
132
|
|
|
187
|
-
/**
|
|
188
|
-
* Resets the block attributes for both background color and gradient.
|
|
189
|
-
*
|
|
190
|
-
* @param {Object} props Current block props.
|
|
191
|
-
* @param {Object} props.attributes Block attributes.
|
|
192
|
-
* @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
|
|
193
|
-
*/
|
|
194
|
-
const resetBackgroundAndGradient = ( { attributes, setAttributes } ) => {
|
|
195
|
-
setAttributes( clearBackgroundAndGradient( attributes ) );
|
|
196
|
-
};
|
|
197
|
-
|
|
198
133
|
/**
|
|
199
134
|
* Filters registered block settings, extending attributes to include
|
|
200
135
|
* `backgroundColor` and `textColor` attribute.
|
|
@@ -496,12 +431,16 @@ export function ColorEdit( props ) {
|
|
|
496
431
|
|
|
497
432
|
const newStyle = cleanEmptyObject(
|
|
498
433
|
immutableSet(
|
|
499
|
-
style,
|
|
434
|
+
localAttributes.current?.style,
|
|
500
435
|
[ 'elements', 'link', 'color', 'text' ],
|
|
501
436
|
newLinkColorValue
|
|
502
437
|
)
|
|
503
438
|
);
|
|
504
439
|
props.setAttributes( { style: newStyle } );
|
|
440
|
+
localAttributes.current = {
|
|
441
|
+
...localAttributes.current,
|
|
442
|
+
...{ style: newStyle },
|
|
443
|
+
};
|
|
505
444
|
};
|
|
506
445
|
|
|
507
446
|
const enableContrastChecking =
|
|
@@ -529,8 +468,6 @@ export function ColorEdit( props ) {
|
|
|
529
468
|
style?.color?.text
|
|
530
469
|
).color,
|
|
531
470
|
isShownByDefault: defaultColorControls?.text,
|
|
532
|
-
hasValue: () => hasColor( 'text' )( props ),
|
|
533
|
-
onDeselect: () => resetTextColor( props ),
|
|
534
471
|
resetAllFilter: resetAllTextFilter,
|
|
535
472
|
},
|
|
536
473
|
]
|
|
@@ -553,10 +490,6 @@ export function ColorEdit( props ) {
|
|
|
553
490
|
: undefined,
|
|
554
491
|
isShownByDefault:
|
|
555
492
|
defaultColorControls?.background,
|
|
556
|
-
hasValue: () =>
|
|
557
|
-
hasColor( 'background' )( props ),
|
|
558
|
-
onDeselect: () =>
|
|
559
|
-
resetBackgroundAndGradient( props ),
|
|
560
493
|
resetAllFilter: clearBackgroundAndGradient,
|
|
561
494
|
},
|
|
562
495
|
]
|
|
@@ -570,11 +503,9 @@ export function ColorEdit( props ) {
|
|
|
570
503
|
allSolids,
|
|
571
504
|
style?.elements?.link?.color?.text
|
|
572
505
|
),
|
|
573
|
-
clearable:
|
|
574
|
-
?.text,
|
|
506
|
+
clearable:
|
|
507
|
+
!! style?.elements?.link?.color?.text,
|
|
575
508
|
isShownByDefault: defaultColorControls?.link,
|
|
576
|
-
hasValue: () => hasColor( 'link' )( props ),
|
|
577
|
-
onDeselect: () => resetLinkColor( props ),
|
|
578
509
|
resetAllFilter: resetAllLinkFilter,
|
|
579
510
|
},
|
|
580
511
|
]
|
package/src/hooks/color.scss
CHANGED
|
@@ -20,4 +20,13 @@
|
|
|
20
20
|
row-gap: 0;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* After converting PanelColorGradientSettings to render as a ToolsPanel
|
|
26
|
+
* we need to remove the top margin when wrapping inner content due to
|
|
27
|
+
* rendering via SlotFills.
|
|
28
|
+
*/
|
|
29
|
+
.block-editor-tools-panel-color-gradient-settings__item.first {
|
|
30
|
+
margin-top: 0;
|
|
31
|
+
}
|
|
23
32
|
}
|
package/src/hooks/dimensions.js
CHANGED
|
@@ -153,7 +153,7 @@ const useIsDimensionsDisabled = ( props = {} ) => {
|
|
|
153
153
|
};
|
|
154
154
|
|
|
155
155
|
/**
|
|
156
|
-
* Custom hook to retrieve which padding/margin is supported
|
|
156
|
+
* Custom hook to retrieve which padding/margin/blockGap is supported
|
|
157
157
|
* e.g. top, right, bottom or left.
|
|
158
158
|
*
|
|
159
159
|
* Sides are opted into by default. It is only if a specific side is set to
|
|
@@ -162,7 +162,7 @@ const useIsDimensionsDisabled = ( props = {} ) => {
|
|
|
162
162
|
* @param {string} blockName Block name.
|
|
163
163
|
* @param {string} feature The feature custom sides relate to e.g. padding or margins.
|
|
164
164
|
*
|
|
165
|
-
* @return {
|
|
165
|
+
* @return {?string[]} Strings representing the custom sides available.
|
|
166
166
|
*/
|
|
167
167
|
export function useCustomSides( blockName, feature ) {
|
|
168
168
|
const support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );
|
|
@@ -172,7 +172,15 @@ export function useCustomSides( blockName, feature ) {
|
|
|
172
172
|
return;
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
// Return if the setting is an array of sides (e.g. `[ 'top', 'bottom' ]`).
|
|
176
|
+
if ( Array.isArray( support[ feature ] ) ) {
|
|
177
|
+
return support[ feature ];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Finally, attempt to return `.sides` if the setting is an object.
|
|
181
|
+
if ( support[ feature ]?.sides ) {
|
|
182
|
+
return support[ feature ].sides;
|
|
183
|
+
}
|
|
176
184
|
}
|
|
177
185
|
|
|
178
186
|
/**
|
package/src/hooks/duotone.js
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
-
import {
|
|
5
|
+
import { extend } from 'colord';
|
|
6
6
|
import namesPlugin from 'colord/plugins/names';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks';
|
|
12
|
-
import { SVG } from '@wordpress/components';
|
|
13
12
|
import { createHigherOrderComponent, useInstanceId } from '@wordpress/compose';
|
|
14
13
|
import { addFilter } from '@wordpress/hooks';
|
|
15
14
|
import { useMemo, useContext, createPortal } from '@wordpress/element';
|
|
@@ -23,145 +22,34 @@ import {
|
|
|
23
22
|
useSetting,
|
|
24
23
|
} from '../components';
|
|
25
24
|
import BlockList from '../components/block-list';
|
|
25
|
+
import {
|
|
26
|
+
__unstableDuotoneFilter as DuotoneFilter,
|
|
27
|
+
__unstableDuotoneStylesheet as DuotoneStylesheet,
|
|
28
|
+
__unstableDuotoneUnsetStylesheet as DuotoneUnsetStylesheet,
|
|
29
|
+
} from '../components/duotone';
|
|
26
30
|
|
|
27
31
|
const EMPTY_ARRAY = [];
|
|
28
32
|
|
|
29
33
|
extend( [ namesPlugin ] );
|
|
30
34
|
|
|
31
|
-
/**
|
|
32
|
-
* Convert a list of colors to an object of R, G, and B values.
|
|
33
|
-
*
|
|
34
|
-
* @param {string[]} colors Array of RBG color strings.
|
|
35
|
-
*
|
|
36
|
-
* @return {Object} R, G, and B values.
|
|
37
|
-
*/
|
|
38
|
-
export function getValuesFromColors( colors = [] ) {
|
|
39
|
-
const values = { r: [], g: [], b: [], a: [] };
|
|
40
|
-
|
|
41
|
-
colors.forEach( ( color ) => {
|
|
42
|
-
const rgbColor = colord( color ).toRgb();
|
|
43
|
-
values.r.push( rgbColor.r / 255 );
|
|
44
|
-
values.g.push( rgbColor.g / 255 );
|
|
45
|
-
values.b.push( rgbColor.b / 255 );
|
|
46
|
-
values.a.push( rgbColor.a );
|
|
47
|
-
} );
|
|
48
|
-
|
|
49
|
-
return values;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Values for the SVG `feComponentTransfer`.
|
|
54
|
-
*
|
|
55
|
-
* @typedef Values {Object}
|
|
56
|
-
* @property {number[]} r Red values.
|
|
57
|
-
* @property {number[]} g Green values.
|
|
58
|
-
* @property {number[]} b Blue values.
|
|
59
|
-
* @property {number[]} a Alpha values.
|
|
60
|
-
*/
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Stylesheet for rendering the duotone filter.
|
|
64
|
-
*
|
|
65
|
-
* @param {Object} props Duotone props.
|
|
66
|
-
* @param {string} props.selector Selector to apply the filter to.
|
|
67
|
-
* @param {string} props.id Unique id for this duotone filter.
|
|
68
|
-
*
|
|
69
|
-
* @return {WPElement} Duotone element.
|
|
70
|
-
*/
|
|
71
|
-
function DuotoneStylesheet( { selector, id } ) {
|
|
72
|
-
const css = `
|
|
73
|
-
${ selector } {
|
|
74
|
-
filter: url( #${ id } );
|
|
75
|
-
}
|
|
76
|
-
`;
|
|
77
|
-
return <style>{ css }</style>;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* SVG for rendering the duotone filter.
|
|
82
|
-
*
|
|
83
|
-
* @param {Object} props Duotone props.
|
|
84
|
-
* @param {string} props.id Unique id for this duotone filter.
|
|
85
|
-
* @param {Values} props.values R, G, B, and A values to filter with.
|
|
86
|
-
*
|
|
87
|
-
* @return {WPElement} Duotone element.
|
|
88
|
-
*/
|
|
89
|
-
function DuotoneFilter( { id, values } ) {
|
|
90
|
-
return (
|
|
91
|
-
<SVG
|
|
92
|
-
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
93
|
-
viewBox="0 0 0 0"
|
|
94
|
-
width="0"
|
|
95
|
-
height="0"
|
|
96
|
-
focusable="false"
|
|
97
|
-
role="none"
|
|
98
|
-
style={ {
|
|
99
|
-
visibility: 'hidden',
|
|
100
|
-
position: 'absolute',
|
|
101
|
-
left: '-9999px',
|
|
102
|
-
overflow: 'hidden',
|
|
103
|
-
} }
|
|
104
|
-
>
|
|
105
|
-
<defs>
|
|
106
|
-
<filter id={ id }>
|
|
107
|
-
<feColorMatrix
|
|
108
|
-
// Use sRGB instead of linearRGB so transparency looks correct.
|
|
109
|
-
colorInterpolationFilters="sRGB"
|
|
110
|
-
type="matrix"
|
|
111
|
-
// Use perceptual brightness to convert to grayscale.
|
|
112
|
-
values="
|
|
113
|
-
.299 .587 .114 0 0
|
|
114
|
-
.299 .587 .114 0 0
|
|
115
|
-
.299 .587 .114 0 0
|
|
116
|
-
.299 .587 .114 0 0
|
|
117
|
-
"
|
|
118
|
-
/>
|
|
119
|
-
<feComponentTransfer
|
|
120
|
-
// Use sRGB instead of linearRGB to be consistent with how CSS gradients work.
|
|
121
|
-
colorInterpolationFilters="sRGB"
|
|
122
|
-
>
|
|
123
|
-
<feFuncR
|
|
124
|
-
type="table"
|
|
125
|
-
tableValues={ values.r.join( ' ' ) }
|
|
126
|
-
/>
|
|
127
|
-
<feFuncG
|
|
128
|
-
type="table"
|
|
129
|
-
tableValues={ values.g.join( ' ' ) }
|
|
130
|
-
/>
|
|
131
|
-
<feFuncB
|
|
132
|
-
type="table"
|
|
133
|
-
tableValues={ values.b.join( ' ' ) }
|
|
134
|
-
/>
|
|
135
|
-
<feFuncA
|
|
136
|
-
type="table"
|
|
137
|
-
tableValues={ values.a.join( ' ' ) }
|
|
138
|
-
/>
|
|
139
|
-
</feComponentTransfer>
|
|
140
|
-
<feComposite
|
|
141
|
-
// Re-mask the image with the original transparency since the feColorMatrix above loses that information.
|
|
142
|
-
in2="SourceGraphic"
|
|
143
|
-
operator="in"
|
|
144
|
-
/>
|
|
145
|
-
</filter>
|
|
146
|
-
</defs>
|
|
147
|
-
</SVG>
|
|
148
|
-
);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
35
|
/**
|
|
152
36
|
* SVG and stylesheet needed for rendering the duotone filter.
|
|
153
37
|
*
|
|
154
|
-
* @param {Object} props
|
|
38
|
+
* @param {Object} props Duotone props.
|
|
155
39
|
* @param {string} props.selector Selector to apply the filter to.
|
|
156
|
-
* @param {string} props.id
|
|
157
|
-
* @param {
|
|
40
|
+
* @param {string} props.id Unique id for this duotone filter.
|
|
41
|
+
* @param {string[]|"unset"} props.colors Array of RGB color strings ordered from dark to light.
|
|
158
42
|
*
|
|
159
43
|
* @return {WPElement} Duotone element.
|
|
160
44
|
*/
|
|
161
|
-
function InlineDuotone( { selector, id,
|
|
45
|
+
function InlineDuotone( { selector, id, colors } ) {
|
|
46
|
+
if ( colors === 'unset' ) {
|
|
47
|
+
return <DuotoneUnsetStylesheet selector={ selector } />;
|
|
48
|
+
}
|
|
49
|
+
|
|
162
50
|
return (
|
|
163
51
|
<>
|
|
164
|
-
<DuotoneFilter id={ id }
|
|
52
|
+
<DuotoneFilter id={ id } colors={ colors } />
|
|
165
53
|
<DuotoneStylesheet id={ id } selector={ selector } />
|
|
166
54
|
</>
|
|
167
55
|
);
|
|
@@ -324,9 +212,9 @@ const withDuotoneStyles = createHigherOrderComponent(
|
|
|
324
212
|
props.name,
|
|
325
213
|
'color.__experimentalDuotone'
|
|
326
214
|
);
|
|
327
|
-
const
|
|
215
|
+
const colors = props?.attributes?.style?.color?.duotone;
|
|
328
216
|
|
|
329
|
-
if ( ! duotoneSupport || !
|
|
217
|
+
if ( ! duotoneSupport || ! colors ) {
|
|
330
218
|
return <BlockListBlock { ...props } />;
|
|
331
219
|
}
|
|
332
220
|
|
|
@@ -351,7 +239,7 @@ const withDuotoneStyles = createHigherOrderComponent(
|
|
|
351
239
|
<InlineDuotone
|
|
352
240
|
selector={ selectorsGroup }
|
|
353
241
|
id={ id }
|
|
354
|
-
|
|
242
|
+
colors={ colors }
|
|
355
243
|
/>,
|
|
356
244
|
element
|
|
357
245
|
) }
|
|
@@ -362,15 +250,6 @@ const withDuotoneStyles = createHigherOrderComponent(
|
|
|
362
250
|
'withDuotoneStyles'
|
|
363
251
|
);
|
|
364
252
|
|
|
365
|
-
export function PresetDuotoneFilter( { preset } ) {
|
|
366
|
-
return (
|
|
367
|
-
<DuotoneFilter
|
|
368
|
-
id={ `wp-duotone-${ preset.slug }` }
|
|
369
|
-
values={ getValuesFromColors( preset.colors ) }
|
|
370
|
-
/>
|
|
371
|
-
);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
253
|
addFilter(
|
|
375
254
|
'blocks.registerBlockType',
|
|
376
255
|
'core/editor/duotone/add-attributes',
|
package/src/hooks/font-family.js
CHANGED
|
@@ -111,8 +111,10 @@ export function FontFamilyEdit( {
|
|
|
111
111
|
} ) {
|
|
112
112
|
const fontFamilies = useSetting( 'typography.fontFamilies' );
|
|
113
113
|
|
|
114
|
-
const value = find(
|
|
115
|
-
|
|
114
|
+
const value = find(
|
|
115
|
+
fontFamilies,
|
|
116
|
+
( { slug } ) => fontFamily === slug
|
|
117
|
+
)?.fontFamily;
|
|
116
118
|
|
|
117
119
|
function onChange( newValue ) {
|
|
118
120
|
const predefinedFontFamily = find(
|
package/src/hooks/gap.js
CHANGED
|
@@ -67,9 +67,8 @@ export function getGapBoxControlValueFromStyle( blockGapValue ) {
|
|
|
67
67
|
* @return {string|null} The concatenated gap value (row and column).
|
|
68
68
|
*/
|
|
69
69
|
export function getGapCSSValue( blockGapValue, defaultValue = '0' ) {
|
|
70
|
-
const blockGapBoxControlValue =
|
|
71
|
-
blockGapValue
|
|
72
|
-
);
|
|
70
|
+
const blockGapBoxControlValue =
|
|
71
|
+
getGapBoxControlValueFromStyle( blockGapValue );
|
|
73
72
|
if ( ! blockGapBoxControlValue ) {
|
|
74
73
|
return null;
|
|
75
74
|
}
|
package/src/hooks/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import './compat';
|
|
|
5
5
|
import './align';
|
|
6
6
|
import './lock';
|
|
7
7
|
import './anchor';
|
|
8
|
+
import './aria-label';
|
|
8
9
|
import './custom-class-name';
|
|
9
10
|
import './generated-class-name';
|
|
10
11
|
import './style';
|
|
@@ -20,4 +21,3 @@ export { getBorderClassesAndStyles, useBorderProps } from './use-border-props';
|
|
|
20
21
|
export { getColorClassesAndStyles, useColorProps } from './use-color-props';
|
|
21
22
|
export { getSpacingClassesAndStyles } from './use-spacing-props';
|
|
22
23
|
export { useCachedTruthy } from './use-cached-truthy';
|
|
23
|
-
export { PresetDuotoneFilter } from './duotone';
|